mcp-framework
mcp-framework 是一个专为 TypeScript 开发者设计的开源框架,旨在帮助用户优雅、高效地构建符合模型上下文协议(MCP)的服务器。它解决了传统开发中手动配置繁琐、架构不统一以及缺乏类型安全等痛点,让开发者能专注于业务逻辑而非底层基础设施。
该工具非常适合希望扩展 AI 助手能力、构建自定义工具链的后端工程师和全栈开发者。通过 mcp-framework,用户可以利用基于目录的自动发现机制,轻松注册和管理工具、资源及提示词,无需编写大量样板代码。其核心技术亮点包括:原生支持多种传输协议(如 stdio、SSE 和 HTTP Stream),提供完整的 TypeScript 类型安全保障,并内置了针对 SSE 端点的 OAuth 2.1、JWT 等认证方案。此外,它强大的命令行界面(CLI)不仅支持一键创建项目和添加功能模块,还集成了严格的自动化验证流程,确保每个工具的定义清晰、文档完整,从而显著降低出错率并提升协作效率。无论是快速原型开发还是生产级部署,mcp-framework 都能提供坚实可靠的架构支持。
使用场景
某金融科技团队正在开发一个能让 AI 助手实时查询股票行情并生成投资建议的 MCP 服务,以便集成到内部交易终端中。
没有 mcp-framework 时
- 架构混乱:开发者需手动编写底层通信逻辑(如 stdio 或 SSE),导致工具、资源和提示词的代码分散,难以维护。
- 类型安全隐患:缺乏统一的 TypeScript 抽象层,输入参数校验依赖手写逻辑,容易因字段缺失或类型错误导致运行时崩溃。
- 文档不同步:工具的参数描述常与代码实现脱节,AI 模型经常因无法理解模糊的工具定义而调用失败。
- 部署繁琐:每次新增功能都需重复配置传输协议和认证机制,从构思到上线往往耗时数天。
使用 mcp-framework 后
- 自动发现架构:利用基于目录的自动加载特性,只需将新工具文件放入指定文件夹,mcp-framework 即可自动识别并注册,无需修改主入口代码。
- 强类型校验:通过内置的 Zod 模式定义工具参数,mcp-framework 在构建时自动强制要求每个字段包含描述,确保类型安全且文档即时生成。
- 智能验证机制:执行
mcp validate或在构建时自动检查,若发现字段缺少描述会立即报错,彻底杜绝了 AI 调用时的“幻觉”式失败。 - 一键启动:借助 CLI 命令
mcp create和预置的认证模块(如 JWT/API Key),团队能在几分钟内搭建起支持多种传输协议的生产级服务器。
mcp-framework 通过标准化的架构和自动化验证,将 MCP 服务的开发周期从数天缩短至小时级,同时确保了 AI 交互的准确性与稳定性。
运行环境要求
- macOS
- Windows
- Linux
未说明
未说明

快速开始
MCP 框架
MCP-Framework 是一个用于以优雅的方式在 TypeScript 中构建模型上下文协议(MCP)服务器的框架。
MCP-Framework 提供开箱即用的架构,支持基于目录的工具、资源和提示的自动发现。您可以使用我们强大的 MCP 抽象来以优雅的方式定义工具、资源或提示。我们的 CLI 使您轻松上手自己的 MCP 服务器。
特性
- 🛠️ 自动发现并加载工具、资源和提示
- 多种传输方式支持(stdio、SSE、HTTP 流)
- 以 TypeScript 为先的开发,具有完全的类型安全性
- 基于官方 MCP SDK 构建
- 易于使用的工具、提示和资源基类
- 为 SSE 端点提供开箱即用的身份验证(OAuth 2.1、JWT、API 密钥)
使用 MCP 框架构建的项目
以下项目和服务是使用 MCP 框架构建的:
tip.md
一个加密货币打赏服务,允许 AI 助手帮助用户直接从聊天界面向内容创作者发送加密货币打赏。该 MCP 服务支持:- 检查用户的钱包类型
- 为用户/代理准备加密货币打赏以完成交易 各种客户端(Cursor、Sage、Claude Desktop)的设置说明可在其 MCP 服务器文档 中找到。
支持我们的工作
在此阅读完整文档
使用 MCP 框架创建仓库
使用 CLI(推荐)
# 全局安装框架
npm install -g mcp-framework
# 创建一个新的 MCP 服务器项目
mcp create my-mcp-server
# 进入您的项目
cd my-mcp-server
# 您的服务器已准备就绪!
CLI 使用方法
该框架提供了一个功能强大的 CLI 来管理您的 MCP 服务器项目:
项目创建
# 创建新项目
mcp create <您的项目名称>
# 使用新的实验性 HTTP 传输方式创建新项目
注意:这会将 CORS 允许的源设置为“*”,如果您需要,请在 index 文件中进行修改。
mcp create <您的项目名称> --http --port 1337 --cors
选项:
--http:使用 HTTP 传输方式代替默认的 stdio
--port <数字>:指定 HTTP 端口(默认:8080)
--cors:启用带有通配符 (*) 访问的 CORS
添加工具
# 添加新工具
mcp add tool price-fetcher
构建与验证
该框架提供了全面的验证,以确保您的工具被正确地记录并正常运行:
# 推荐使用自动验证进行构建
npm run build
# 使用自定义验证设置进行构建
MCP_SKIP_TOOL_VALIDATION=false npm run build # 强制验证(默认)
MCP_SKIP_TOOL_VALIDATION=true npm run build # 跳过验证(不推荐)
验证工具
# 验证所有工具是否具有适当的描述(针对 Zod 模式)
mcp validate
此命令会检查所有使用 Zod 模式的工具,确保每个字段都有描述。验证会在构建时自动运行,但您也可以单独运行它:
- ✅ 构建时:
npm run build会自动验证工具 - ✅ 单独运行:
mcp validate可用于手动验证 - ✅ 开发时:使用
defineSchema()辅助函数可获得即时反馈 - ✅ 运行时:服务器会在启动时验证工具
验证错误示例:
❌ 工具验证失败:
❌ PriceFetcher.js:price_fetcher 中的 symbol 和 currency 字段缺少描述。
使用 Zod 对象模式时,所有字段都必须有描述。
请对每个字段使用 .describe() 方法,例如 z.string().describe("字段描述")。
将验证集成到 CI/CD 流程中:
{
"scripts": {
"build": "tsc && mcp-build",
"test": "jest && mcp validate",
"prepack": "npm run build && mcp validate"
}
}
添加提示
# 添加新提示
mcp add prompt price-analysis
添加资源
# 添加新资源
mcp add resource market-data
开发工作流
创建您的项目:
mcp create my-mcp-server cd my-mcp-server添加工具:
mcp add tool data-fetcher mcp add tool data-processor mcp add tool report-generator定义您的工具模式并进行自动验证:
// tools/DataFetcher.ts import { MCPTool, MCPInput as AddToolInput } from "mcp-framework"; import { z } from "zod"; const AddToolSchema = z.object({ a: z.number().describe("要相加的第一个数字"), b: z.number().describe("要相加的第二个数字"), }); class AddTool extends MCPTool { name = "add"; description = "加法工具描述"; schema = AddToolSchema; async execute(input: AddToolInput<this>) { const result = input.a + input.b; return `结果:${result}`; } } export default AddTool;使用自动验证进行构建:
npm run build # 自动验证模式并编译可选:单独运行验证:
mcp validate # 独立检查所有工具测试您的服务器:
node dist/index.js # 服务器会在启动时验证工具添加到 MCP 客户端(参见下方 Claude Desktop 示例)
实用技巧:
- 在开发过程中使用
defineSchema()以获得即时反馈 - 构建过程会自动捕获缺失的描述
- 服务器启动时会验证所有工具,然后才接受连接
- 使用 TypeScript 的自动补全功能配合
MCPInput<this>以提升开发体验
与 Claude Desktop 配合使用
本地开发
将以下配置添加到您的 Claude Desktop 配置文件中:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"${projectName}": {
"command": "node",
"args":["/绝对路径/to/${projectName}/dist/index.js"]
}
}
}
发布后
将以下配置添加到您的 Claude Desktop 配置文件中:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"${projectName}": {
"command": "npx",
"args": ["${projectName}"]
}
}
}
构建与测试
- 对您的工具进行更改
- 运行
npm run build进行编译 - 服务器将在启动时自动加载您的工具
环境变量
该框架支持以下环境变量进行配置:
| 变量 | 描述 | 默认值 |
|---|---|---|
| MCP_ENABLE_FILE_LOGGING | 启用文件日志记录(true/false) | false |
| MCP_LOG_DIRECTORY | 日志文件将存储的目录 | logs |
| MCP_DEBUG_CONSOLE | 在控制台显示调试级别消息(true/false) | false |
示例用法:
# 启用文件日志记录
MCP_ENABLE_FILE_LOGGING=true node dist/index.js
# 指定自定义日志目录
MCP_ENABLE_FILE_LOGGING=true MCP_LOG_DIRECTORY=my-logs node dist/index.js
# 在控制台启用调试信息
MCP_DEBUG_CONSOLE=true node dist/index.js
快速入门
定义工具
MCP 框架使用 Zod 模式来定义工具输入,提供类型安全、验证和自动文档:
import { MCPTool, MCPInput } from "mcp-framework";
import { z } from "zod";
const AddToolSchema = z.object({
a: z.number().describe("要相加的第一个数"),
b: z.number().describe("要相加的第二个数"),
});
class AddTool extends MCPTool {
name = "add";
description = "加法工具描述";
schema = AddToolSchema;
async execute(input: MCPInput<this>) {
const result = input.a + input.b;
return `结果:${result}`;
}
}
export default AddTool;
主要优势:
- ✅ 单一事实来源 - 在一处定义类型和验证规则
- ✅ 自动类型推断 - TypeScript 类型从您的模式中推断出来
- ✅ 丰富的验证功能 - 利用 Zod 强大的验证特性
- ✅ 强制性描述 - 框架会强制要求提供文档说明
- ✅ 更好的 IDE 支持 - 完整的自动补全和类型检查
- ✅ 更整洁的代码 - 无需重复定义类型
高级 Zod 模式特性
该框架支持所有 Zod 特性:
import { MCPTool, MCPInput } from "mcp-framework";
import { z } from "zod";
const AdvancedSchema = z.object({
// 字符串约束和格式
email: z.string().email().describe("用户电子邮件地址"),
name: z.string().min(2).max(50).describe("用户姓名"),
website: z.string().url().optional().describe("可选的网站 URL"),
// 数字约束
age: z.number().int().positive().max(120).describe("用户年龄"),
rating: z.number().min(1).max(5).describe("1 到 5 的评分"),
// 数组和对象
tags: z.array(z.string()).describe("标签列表"),
metadata: z.object({
priority: z.enum(['low', 'medium', 'high']).describe("任务优先级"),
dueDate: z.string().optional().describe("ISO 格式的截止日期")
}).describe("附加元数据"),
// 默认值
status: z.string().default('pending').describe("当前状态"),
// 联合类型和枚举
category: z.union([
z.literal('personal'),
z.literal('work'),
z.literal('other')
]).describe("类别类型")
});
class AdvancedTool extends MCPTool {
name = "advanced_tool";
description = "演示高级 Zod 特性的工具";
schema = AdvancedSchema;
async execute(input: MCPInput<this>) {
// TypeScript 自动知道所有类型!
const { email, name, website, age, rating, tags, metadata, status, category } = input;
console.log(input.name.toUpperCase()); // ✅ TypeScript 知道这是有效的
console.log(input.age.toFixed(2)); // ✅ 可以使用数字方法
console.log(input.tags.length); // ✅ 可以使用数组方法
console.log(input.website?.includes("https")); // ✅ 处理可选字段
return `处理了用户:${name}`;
}
}
自动类型推断
MCPInput<this> 类型会自动从您的模式中推断出正确的输入类型,从而无需手动定义类型:
class MyTool extends MCPTool {
schema = z.object({
name: z.string().describe("用户名"),
age: z.number().optional().describe("用户年龄"),
tags: z.array(z.string()).describe("用户标签")
});
async execute(input: MCPInput<this>) {
// TypeScript 自动知道:
// input.name 是 string
// input.age 是 number | undefined
// input.tags 是 string[]
console.log(input.name.toUpperCase()); // ✅ TypeScript 知道这是有效的
console.log(input.age?.toFixed(2)); // ✅ 正确处理可选字段
console.log(input.tags.length); // ✅ 可以使用数组方法
}
}
再也不需要重复定义接口或泛型类型参数了!
模式验证与描述
所有模式字段都必须有描述。这确保了您的工具文档齐全,并在 MCP 客户端中提供更好的用户体验。
框架会在多个层面验证描述:
1. 构建时验证(推荐)
npm run build # 在编译过程中自动验证
2. 开发时验证
使用 defineSchema 辅助函数以获得即时反馈:
import { defineSchema } from "mcp-framework";
// 如果缺少描述,此操作会立即抛出错误
const MySchema = defineSchema({
name: z.string(), // ❌ 错误:缺少描述
age: z.number().describe("用户年龄") // ✅ 好的
});
3. 独立验证
mcp validate # 检查所有工具是否具有适当的描述
4. 运行时验证
服务器会在启动时自动验证工具。
若要跳过验证(不推荐):
# 构建时跳过
MCP_SKIP_TOOL_VALIDATION=true npm run build
# 开发时跳过
NODE_ENV=production npm run dev
设置服务器
import { MCPServer } from "mcp-framework";
const server = new MCPServer();
// 或者(互斥!)使用 SSE 传输
const server = new MCPServer({
transport: {
type: "sse",
options: {
port: 8080 // 可选(默认:8080)
}
}
});
// 启动服务器
await server.start();
传输配置
stdio 传输(默认)
如果未提供传输配置,将默认使用 stdio 传输:
const server = new MCPServer();
// 或显式指定:
const server = new MCPServer({
transport: { type: "stdio" }
});
SSE 传输
要使用服务器发送事件(SSE)传输:
const server = new MCPServer({
transport: {
type: "sse",
options: {
port: 8080, // 可选(默认:8080)
endpoint: "/sse", // 可选(默认:"/sse")
messageEndpoint: "/messages", // 可选(默认:"/messages")
cors: {
allowOrigin: "*", // 可选(默认:"*")
allowMethods: "GET, POST, OPTIONS", // 可选(默认:"GET, POST, OPTIONS")
allowHeaders: "Content-Type, Authorization, x-api-key", // 可选(默认:"Content-Type, Authorization, x-api-key")
exposeHeaders: "Content-Type, Authorization, x-api-key", // 可选(默认:"Content-Type, Authorization, x-api-key")
maxAge: "86400" // 可选(默认:"86400")
}
}
}
});
HTTP 流传输
要使用 HTTP 流传输:
const server = new MCPServer({
transport: {
type: "http-stream",
options: {
port: 8080, // 可选(默认:8080)
endpoint: "/mcp", // 可选(默认:"/mcp")
responseMode: "batch", // 可选(默认:"batch"),可为 "batch" 或 "stream"
batchTimeout: 30000, // 可选(默认:30000毫秒)——批量响应的超时时间
maxMessageSize: "4mb", // 可选(默认:"4mb")——消息的最大大小
// 会话配置
session: {
enabled: true, // 可选(默认:true)
headerName: "Mcp-Session-Id", // 可选(默认:"Mcp-Session-Id")
allowClientTermination: true, // 可选(默认:true)
},
// 流的可恢复性(用于处理丢失的消息)
resumability: {
enabled: false, // 可选(默认:false)
historyDuration: 300000, // 可选(默认:300000毫秒 = 5分钟)——保留消息历史的时间长度
},
// CORS 配置
cors: {
allowOrigin: "*" // 其他 CORS 选项使用默认值
}
}
}
});
响应模式
HTTP 流传输支持两种响应模式:
批量模式(默认):响应会被收集并作为单个 JSON-RPC 响应发送。这适用于典型的请求-响应模式,在大多数情况下效率更高。
流模式:所有响应都会通过为每个请求打开的持久化 SSE 连接发送。这非常适合长时间运行的操作,或者当服务器需要对单个请求发送多条消息时。
您可以根据具体需求配置响应模式:
// 对于批量模式(默认):
const server = new MCPServer({
transport: {
type: "http-stream",
options: {
responseMode: "batch"
}
}
});
// 对于流模式:
const server = new MCPServer({
transport: {
type: "http-stream",
options: {
responseMode: "stream"
}
}
});
HTTP 流传输特性
- 会话管理:自动会话跟踪与管理
- 流的可恢复性:可选支持在连接中断后恢复流
- 批量处理:支持 JSON-RPC 批量请求/响应
- 全面的错误处理:提供包含 JSON-RPC 错误码的详细错误响应
身份验证
MCP 框架为 SSE 端点提供了可选的身份验证功能。您可以选择 JWT、API 密钥、OAuth 2.1 身份验证,或实现您自己的自定义身份验证提供程序。
JWT 身份验证
import { MCPServer, JWTAuthProvider } from "mcp-framework";
import { Algorithm } from "jsonwebtoken";
const server = new MCPServer({
transport: {
type: "sse",
options: {
auth: {
provider: new JWTAuthProvider({
secret: process.env.JWT_SECRET,
algorithms: ["HS256" as Algorithm], // 可选(默认:["HS256"])
headerName: "Authorization" // 可选(默认:"Authorization")
}),
endpoints: {
sse: true, // 保护 SSE 端点(默认:false)
messages: true // 保护消息端点(默认:true)
}
}
}
}
});
客户端必须在 Authorization 头中包含有效的 JWT 令牌:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
API 密钥身份验证
import { MCPServer, APIKeyAuthProvider } from "mcp-framework";
const server = new MCPServer({
transport: {
type: "sse",
options: {
auth: {
provider: new APIKeyAuthProvider({
keys: [process.env.API_KEY],
headerName: "X-API-Key" // 可选(默认:"X-API-Key")
})
}
}
}
});
客户端必须在 X-API-Key 头中包含有效的 API 密钥:
X-API-Key: your-api-key
OAuth 2.1 身份验证
MCP 框架支持符合 MCP 规范(2025-06-18)的 OAuth 2.1 身份验证,包括受保护资源元数据(RFC 9728)以及使用 JWKS 的正确令牌验证。
OAuth 身份验证同时适用于 SSE 和 HTTP 流传输,并支持两种验证策略:
JWT 验证(推荐用于性能优化)
JWT 验证会从您的授权服务器的 JWKS 端点获取公钥,并在本地验证令牌。由于无需为每个请求都与认证服务器进行往返通信,因此这是最快的选项。
import { MCPServer, OAuthAuthProvider } from "mcp-framework";
const server = new MCPServer({
transport: {
type: "http-stream",
options: {
port: 8080,
auth: {
provider: new OAuthAuthProvider({
authorizationServers: [
process.env.OAUTH_AUTHORIZATION_SERVER
],
resource: process.env.OAUTH_RESOURCE,
validation: {
type: 'jwt',
jwksUri: process.env.OAUTH_JWKS_URI,
audience: process.env.OAUTH_AUDIENCE,
issuer: process.env.OAUTH_ISSUER,
algorithms: ['RS256', 'ES256'] // 可选(默认:['RS256', 'ES256'])
}
}),
endpoints: {
initialize: true, // 保护会话初始化
messages: true // 保护 MCP 消息
}
}
}
}
});
环境变量:
OAUTH_AUTHORIZATION_SERVER=https://auth.example.com
OAUTH_RESOURCE=https://mcp.example.com
OAUTH_JWKS_URI=https://auth.example.com/.well-known/jwks.json
OAUTH_AUDIENCE=https://mcp.example.com
OAUTH_ISSUER=https://auth.example.com
令牌内省(推荐用于集中控制)
令牌内省通过调用您的授权服务器的内省端点来验证令牌。这提供了集中控制,并在需要实时令牌撤销时非常有用。
import { MCPServer, OAuthAuthProvider } from "mcp-framework";
const server = new MCPServer({
transport: {
type: "sse",
options: {
auth: {
provider: new OAuthAuthProvider({
authorizationServers: [
process.env.OAUTH_AUTHORIZATION_SERVER
],
resource: process.env.OAUTH_RESOURCE,
validation: {
type: 'introspection',
audience: process.env.OAUTH_AUDIENCE,
issuer: process.env.OAUTH_ISSUER,
introspection: {
endpoint: process.env.OAUTH_INTROSPECTION_ENDPOINT,
clientId: process.env.OAUTH_CLIENT_ID,
clientSecret: process.env.OAUTH_CLIENT_SECRET
}
}
})
}
}
}
});
环境变量:
OAUTH_AUTHORIZATION_SERVER=https://auth.example.com
OAUTH_RESOURCE=https://mcp.example.com
OAUTH_AUDIENCE=https://mcp.example.com
OAUTH_ISSUER=https://auth.example.com
OAUTH_INTROSPECTION_ENDPOINT=https://auth.example.com/oauth/introspect
OAUTH_CLIENT_ID=mcp-server
OAUTH_CLIENT_SECRET=your-client-secret
OAuth 功能
- RFC 9728 兼容性:自动提供受保护资源元数据端点
/.well-known/oauth-protected-resource - RFC 6750 WWW-Authenticate 头部:带有质询头部的正确 OAuth 错误响应
- JWKS 密钥缓存:公钥缓存时间为 15 分钟(可配置)
- 令牌内省缓存:内省结果缓存时间为 5 分钟(可配置)
- 安全性:查询字符串中的令牌将被自动拒绝
- 声明提取:您可以在工具处理程序中通过
AuthResult访问访问令牌声明。
常见 OAuth 提供商
OAuth 提供商可与任何符合 RFC 标准的 OAuth 2.1 授权服务器配合使用:
- Auth0:使用您的 Auth0 租户的 JWKS URI 和颁发者
- Okta:使用您的 Okta 授权服务器配置
- AWS Cognito:使用您的 Cognito 用户池的 JWKS 端点
- Azure AD / Entra ID:使用 Microsoft Entra ID 端点
- 自定义:任何符合 OAuth 2.1 标准的授权服务器
有关特定提供商的详细设置指南,请参阅 OAuth 设置指南。
客户端使用
客户端必须在 Authorization 头部中包含有效的 OAuth 访问令牌:
# 使用 OAuth 令牌发起请求
curl -X POST http://localhost:8080/mcp \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
# 发现 OAuth 配置
curl http://localhost:8080/.well-known/oauth-protected-resource
安全最佳实践
- 生产环境中始终使用 HTTPS:OAuth 令牌绝不应通过未加密的连接传输
- 验证受众声明:防止令牌在不同服务之间重复使用
- 使用短期令牌:降低令牌泄露后的风险
- 启用令牌内省缓存:在保持安全性的前提下减少授权服务器的负载
- 监控令牌错误:跟踪身份验证失败尝试以获取安全洞察。
自定义身份验证
您可以通过实现 AuthProvider 接口来实现自己的身份验证提供程序:
import { AuthProvider, AuthResult } from "mcp-framework";
import { IncomingMessage } from "node:http";
class CustomAuthProvider implements AuthProvider {
async authenticate(req: IncomingMessage): Promise<boolean | AuthResult> {
// 实现您的自定义身份验证逻辑
return true;
}
getAuthError() {
return {
status: 401,
message: "身份验证失败"
};
}
}
文档 MCP 服务器(@mcpframework/docs)
您可以从任何 Fumadocs 站点或任何包含 llms.txt 的站点启动一个 MCP 文档服务器——AI 代理将获得搜索、浏览和检索您文档的工具。
快速入门(CLI)
# 构建一个新的文档 MCP 服务器项目
npx create-docs-mcp my-api-docs
cd my-api-docs
# 配置您的文档站点 URL
cp .env.example .env
# 编辑 .env → 设置 DOCS_BASE_URL=https://docs.myapi.com
# 构建并运行
npm run build
npm start
快速入门(程序化)
import { DocsServer, FumadocsRemoteSource } from "@mcpframework/docs";
const source = new FumadocsRemoteSource({
baseUrl: "https://docs.myapi.com",
});
const server = new DocsServer({
source,
name: "my-api-docs",
version: "1.0.0",
});
server.start();
源适配器
| 适配器 | 最适合 | 搜索 |
|---|---|---|
FumadocsRemoteSource |
Fumadocs 站点 | 原生 Orama 搜索,备用方案 |
LlmsTxtSource |
包含 llms.txt 的任何站点 |
本地文本匹配 |
自定义 DocSource |
任何文档后端 | 您的实现 |
内置 MCP 工具
| 工具 | 描述 |
|---|---|
search_docs |
按关键词或短语搜索文档 |
get_page |
获取页面的完整 Markdown 内容 |
list_sections |
浏览文档的树状结构 |
添加到您的 MCP 客户端
# Claude 代码
claude mcp add my-api-docs -- node /path/to/my-api-docs/dist/index.js
# 或者使用环境变量
claude mcp add my-api-docs -e DOCS_BASE_URL=https://docs.myapi.com -- node /path/to/my-api-docs/dist/index.js
有关 Claude Desktop / Cursor 的配置和完整文档,请参阅 @mcpframework/docs README。
许可证
MIT
版本历史
mcp-framework-v0.2.222026/04/16mcp-framework-v0.2.212026/04/02mcp-framework-v0.2.202026/04/02mcp-framework-v0.2.192026/04/01mcp-framework-v0.2.182026/02/05mcp-framework-v0.2.172025/11/21mcp-framework-v0.2.162025/11/14mcp-framework-v0.2.152025/06/18mcp-framework-v0.2.142025/06/16mcp-framework-v0.2.132025/05/23mcp-framework-v0.2.122025/05/23mcp-framework-v0.2.112025/03/30mcp-framework-v0.2.102025/03/30mcp-framework-v0.2.92025/03/29mcp-framework-v0.2.82025/03/28常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器