TypeScript 优先的 MCP 服务器生产级框架,采用装饰器驱动架构,内置协议处理、依赖注入、OAuth/JWKS 认证、会话管理及 Streamable HTTP + SSE 传输层支持。
项目概述#
FrontMCP 是一个专注于 Model Context Protocol (MCP) 服务器开发的 TypeScript 企业级框架。采用装饰器驱动的架构模式(类似 NestJS),让开发者专注于编写类型安全的业务逻辑(Tools、Resources、Prompts),由框架处理底层协议细节、认证授权、会话管理及传输机制。
当前版本: v0.12.1
运行环境: Node.js 22+ (推荐 24)
主要语言: TypeScript (99.1%)
核心能力#
| 特性 | 描述 |
|---|---|
| @FrontMcp / @App | 装饰器驱动的服务器与应用组织单元,支持模块化隔离 |
| @Tool / @Resource / @Prompt | 基于 Zod Schema 的类型化操作、只读数据暴露及消息模板 |
| @Agent & Skills | 多步骤工具链编排与 HTTP 可发现的工具清单 |
| Elicitation | 在工具执行流程中主动请求结构化用户输入 |
| Authentication | Remote OAuth、Local OAuth、JWKS、DCR 及 per-app 鉴权 |
| Transport | Streamable HTTP + SSE,支持有状态/无状态会话 |
| Providers / DI | GLOBAL 和 CONTEXT 作用域的依赖注入容器 |
| Adapters | 从 OpenAPI 规范自动生成 MCP 工具 |
| Plugins | Cache、Remember、CodeCall、Dashboard 等内置插件 |
| UI Library | React 组件、Hooks、Web Components 及 MCP Bridge |
| Testing | E2E 测试框架,包含 fixtures 和 matchers |
| CLI | create、init、dev、build、inspector、doctor 命令 |
安装与快速开始#
新项目创建:
npx frontmcp create my-app
现有项目集成:
npm i -D frontmcp @types/node@^22
npx frontmcp init
最小化示例:
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 {}
包结构#
| 包名 | 描述 |
|---|---|
@frontmcp/sdk | 核心框架 — decorators、DI、flows、transport |
@frontmcp/cli | CLI 工具 (create、dev、build) |
@frontmcp/auth | Authentication、OAuth、JWKS、credential vault |
@frontmcp/adapters | OpenAPI adapter 自动生成工具 |
@frontmcp/plugins | 官方插件: Cache、Remember、CodeCall、Dashboard |
@frontmcp/testing | E2E 测试框架 |
@frontmcp/ui | React components、hooks、SSR renderers |
架构特点#
- Monorepo 架构: 基于 Nx 22.3.3 管理,使用 esbuild/Rspack 构建
- 装饰器驱动: 声明式配置,类 NestJS 风格
- 类型安全: 深度集成 Zod v4,端到端类型检查
- 多传输协议: Streamable HTTP + SSE
- 版本对齐: 所有 @frontmcp/* 包必须保持相同版本