The production-grade, TypeScript-first framework for building MCP servers — decorators, DI, auth, and Streamable HTTP, batteries included.
Docs • Quickstart • API Reference • Discord
FrontMCP turns the Model Context Protocol into a
typed, declarative framework. You write clean @Tool, @Resource, and @App
classes; FrontMCP handles the protocol, transport, dependency injection, sessions,
auth, and execution flow — and the same server runs locally and ships to
production unchanged.
import 'reflect-metadata';
import { FrontMcp, LogLevel } from '@frontmcp/sdk';
import HelloApp from './hello.app';
@FrontMcp({
info: { name: 'Demo', version: '0.1.0' },
apps: [HelloApp],
http: { port: 3000 },
logging: { level: LogLevel.Info },
})
export default class Server {}
Why FrontMCP
- Typed by default — decorators + Zod schemas give end-to-end types from input to output, with editor autocomplete and compile-time checks.
- Batteries included — auth (OAuth/JWKS/DCR), sessions, transport, discovery, and DI are built in, not bolted on.
- Ship anywhere — one codebase deploys to Node, Vercel, AWS Lambda, Cloudflare Workers, or a serverless bundle.
- Production-minded — stateful/stateless sessions, high-availability transport, structured observability, and a 95%+ tested core.
- Extensible — plugins, lifecycle hooks, OpenAPI adapters, and external MCP sub-apps when you outgrow the defaults.
Installation
Node.js 24+ required.
# New project (recommended)
npx frontmcp create my-app
# Existing project
npm i -D frontmcp @types/node@^24
npx frontmcp init
Full setup guide: Installation · Quickstart
Capabilities
Build — decorator-configured @FrontMcp server and @App
domains; typed @Tool, @Resource, and
@Prompt primitives; @Agent multi-step chains; and
scoped Providers / DI.
Secure — Remote & Local OAuth, JWKS, DCR, per-app auth with stateful / stateless sessions (JWT or UUID transport IDs).
Connect & operate — Streamable HTTP + SSE transport,
every MCP protocol revision from 2024-11-05 through
2026-07-28 on one endpoint, capability discovery,
elicitation, hooks, HTTP-discoverable
skills, tool UI / MCP Apps, an in-process
Direct Client (connectOpenAI / connectClaude), and
first-class deployment.
Extend & tooling — official plugins (Cache, Remember, CodeCall,
Dashboard), the OpenAPI adapter, a UI library (HTML/React
widgets, SSR, MCP Bridge), an E2E testing framework, and a
CLI (create, init, dev, build, inspect, doctor).
→ Full reference: docs.agentfront.dev/frontmcp
Packages
You install frontmcp (the CLI) and @frontmcp/sdk. Everything else is either
pulled in for you or opt-in.
Core
| Package | Description |
|---|---|
frontmcp |
The CLI — create, init, dev, build, inspect, doctor |
@frontmcp/sdk |
Core framework — decorators, DI, flows, transport, MCP protocol |
@frontmcp/auth |
Authentication, OAuth, JWKS, DCR/CIMD, credential vault |
@frontmcp/testing |
E2E test framework with fixtures and matchers |
Extend
| Package | Description |
|---|---|
@frontmcp/plugins |
Plugin authoring toolkit + official plugin re-exports |
@frontmcp/adapters |
OpenAPI adapter — generate tools from an OpenAPI spec |
@frontmcp/skills |
Curated SKILL.md catalog for scaffolding and skills install |
@frontmcp/guard |
Policy/guard rules for tool inputs and outputs |
@frontmcp/observability |
Structured logging, metrics, and tracing helpers |
UI
| Package | Description |
|---|---|
@frontmcp/react |
React hooks + client for talking to a FrontMCP server |
@frontmcp/ui |
React components, SSR renderers, MCP Bridge |
@frontmcp/uipack |
React-free themes, build tools, platform adapters |
Runtime & storage
| Package | Description |
|---|---|
@frontmcp/edge |
Run a server on Cloudflare Workers / V8 isolates from a config |
@frontmcp/storage-sqlite |
SQLite-backed session, task, and elicitation stores |
@frontmcp/nx |
Nx generators and executors for FrontMCP workspaces |
Internal
Published so the packages above resolve, but not intended for direct use:
| Package | Description |
|---|---|
@frontmcp/protocol |
The single boundary to the upstream MCP SDK — protocol types |
@frontmcp/di |
Dependency injection container |
@frontmcp/utils |
Shared utilities — naming, URI, crypto, FS |
@frontmcp/lazy-zod |
Lazily-loaded Zod wrapper that keeps cold starts small |
Official plugins
| Package | Description |
|---|---|
@frontmcp/plugin-cache |
Cache tool results with a TTL |
@frontmcp/plugin-remember |
Per-session memory (this.remember) |
@frontmcp/plugin-approval |
Human approval gates before a tool runs |
@frontmcp/plugin-codecall |
Let the model compose tool calls as code |
@frontmcp/plugin-dashboard |
Built-in web dashboard |
@frontmcp/plugin-feature-flags |
Toggle tools and apps at runtime |
@frontmcp/plugin-skilled-openapi |
OpenAPI → skills + meta-tools for large APIs |
Version Alignment
Keep all @frontmcp/* packages on the same version. A clear "version mismatch" error is thrown at boot if versions drift. (Production Build)
Contributing
PRs welcome! See CONTRIBUTING.md for workflow, coding standards, and the PR checklist.
No comments yet
Be the first to share your take.