frontmcp
TypeScript-first framework for the Model Context Protocol (MCP). You write clean, typed code; FrontMCP handles the protocol, transport, DI, session/auth, and execution flow.
The TypeScript way to build MCP servers with decorators, DI, and Streamable HTTP.
Docs • Quickstart • API Reference • Discord
FrontMCP is a TypeScript-first framework for the Model Context Protocol (MCP).
You write clean, typed code; FrontMCP handles the protocol, transport, DI, session/auth, and execution flow.
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 {}
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
Capabilities
| Capability | Description | Docs |
|---|---|---|
| @FrontMcp Server | Decorator-configured server with info, apps, HTTP, logging, session, auth | Server |
| @App | Organizational units grouping tools, resources, prompts with optional isolation | Apps |
| @Tool | Typed actions with Zod schemas — class or function style | Tools |
| @Resource | Read-only data exposure with static and template URIs | Resources |
| @Prompt | Reusable message templates returning GetPromptResult |
Prompts |
| @Agent | Orchestrated multi-step tool chains | Agents |
| Elicitation | Request structured user input mid-flow | Elicitation |
| Skills | HTTP-discoverable tool manifests for agent marketplaces | Skills |
| Discovery | Automatic capability advertisement for MCP clients | Discovery |
| Authentication | Remote OAuth, Local OAuth, JWKS, DCR, per-app auth | Authentication |
| Sessions | Stateful/stateless session modes with JWT or UUID transport IDs | Server |
| Direct Client | In-process create(), connect(), connectOpenAI(), connectClaude() |
Direct Client |
| Transport | Streamable HTTP + SSE with session headers | Transport |
| Ext-Apps | Mount external MCP servers as sub-apps | Ext-Apps |
| Hooks | 5 hook families: tool, list-tools, HTTP, resource, prompt | Hooks |
| Providers / DI | Scoped dependency injection with GLOBAL and CONTEXT scopes | Providers |
| Plugins | Cache, Remember, CodeCall, Dashboard — or build your own | Plugins |
| Adapters | Generate tools from OpenAPI specs | Adapters |
| Testing | E2E fixtures, matchers, HTTP mocking for MCP servers | Testing |
| UI Library | HTML/React widgets, SSR, MCP Bridge, web components | UI |
| CLI | create, init, dev, build, inspector, doctor |
CLI |
| Deployment | Local dev, production builds, version alignment | Deployment |
Packages
| Package | Description |
|---|---|
@frontmcp/sdk |
Core framework — decorators, DI, flows, transport |
@frontmcp/cli |
CLI tooling (frontmcp create, dev, build) |
@frontmcp/auth |
Authentication, OAuth, JWKS, credential vault |
@frontmcp/adapters |
OpenAPI adapter for auto-generating tools |
@frontmcp/plugins |
Official plugins: Cache, Remember, CodeCall, Dashboard |
@frontmcp/testing |
E2E test framework with fixtures and matchers |
@frontmcp/ui |
React components, hooks, SSR renderers |
@frontmcp/uipack |
React-free themes, build tools, platform adapters |
@frontmcp/di |
Dependency injection container (internal) |
@frontmcp/utils |
Shared utilities — naming, URI, crypto, FS (internal) |
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.
License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi