MCP Tool Factory Ts
概述
安装
内容详情
替代品
什么是MCP Tool Factory?
MCP Tool Factory是一个智能代码生成工具,专门用于创建MCP(Model Context Protocol)服务器。MCP是一个开放标准,允许AI助手(如Claude、ChatGPT等)安全地连接到外部数据源和工具。这个工具能够理解您的需求描述,自动生成完整的、可直接使用的服务器代码,大大简化了开发过程。如何使用MCP Tool Factory?
使用非常简单:只需用自然语言描述您想要的工具功能,MCP Tool Factory就会生成完整的服务器代码。支持多种输入方式:直接描述、OpenAPI规范文件、数据库结构、GraphQL模式或本体论文件。生成的代码包含所有必要的组件,可以直接部署使用。适用场景
适用于需要为AI助手创建自定义工具的开发者、希望快速原型验证的团队、需要将现有API转换为MCP格式的项目,以及任何想要扩展AI助手能力的用户。特别适合: - 为Claude创建自定义工具 - 将现有API转换为MCP兼容格式 - 快速开发数据连接工具 - 教育和演示项目主要功能
自然语言生成
只需用普通英语描述您想要的工具,系统就能理解并生成完整的MCP服务器代码。无需编写任何代码。
多格式支持
支持从OpenAPI规范、数据库结构、GraphQL模式、RDF/OWL本体论等多种格式生成MCP服务器。
10种AI模型支持
集成Anthropic、OpenAI、Google、Mistral、DeepSeek、Groq、xAI、Azure、Cohere和Claude Code等10种AI提供商,自动选择最佳模型。
成本跟踪与预算控制
实时计算每次生成的费用,支持设置预算限制,避免意外开销。提供跨提供商成本比较。
并行生成加速
多个工具实现同时生成,大幅提高生成速度,特别适合包含多个工具的复杂服务器。
生产就绪特性
生成的服务器包含日志记录、性能监控、速率限制、重试机制等生产环境所需的所有功能。
完整的MCP支持
支持MCP的所有三种原语:工具(Tools)、资源(Resources)和提示(Prompts),提供完整的MCP功能。
自身也是MCP服务器
MCP Tool Factory本身就是一个MCP服务器,可以直接集成到Claude等AI助手中,通过对话生成其他MCP服务器。
优势
零代码生成:无需编写任何代码即可创建功能完整的MCP服务器
快速原型开发:几分钟内从想法到可运行的服务器
多平台兼容:生成的服务器可在Claude、OpenAI Agents、Google ADK、LangChain等多种平台上使用
成本透明:清晰的费用计算和预算控制,避免意外开销
生产就绪:生成的代码包含企业级应用所需的所有功能
灵活输入:支持多种输入格式,适应不同开发场景
局限性
需要API密钥:必须配置至少一个AI提供商的API密钥才能使用
复杂逻辑限制:对于极其复杂的业务逻辑,可能需要手动调整生成的代码
学习曲线:虽然简化了开发,但仍需了解MCP基本概念
依赖外部服务:生成过程依赖AI服务,需要网络连接
如何使用
安装工具
通过npm全局安装MCP Tool Factory,或使用npx直接运行。
配置API密钥
设置至少一个AI提供商的API密钥。支持Anthropic、OpenAI、Google等多种提供商。
生成服务器
使用自然语言描述您想要的工具功能,工具会自动生成完整的MCP服务器代码。
测试和运行
进入生成的服务器目录,安装依赖并启动服务器进行测试。
集成到AI助手
将生成的服务器配置到Claude Desktop、Claude Code或其他MCP兼容的AI助手中。
使用案例
待办事项管理工具
为个人生产力创建待办事项管理工具,支持添加、完成、删除和优先级排序功能。
天气查询服务
创建天气查询工具,支持按城市查询当前天气和未来预报。
GitHub API集成
将GitHub REST API转换为MCP工具,支持仓库管理、问题跟踪和拉取请求操作。
数据库CRUD操作
基于现有数据库结构自动生成完整的CRUD(创建、读取、更新、删除)操作工具。
常见问题
什么是MCP?为什么我需要它?
MCP(Model Context Protocol)是一个开放标准,允许AI助手安全地连接到外部数据源和工具。如果您希望让Claude等AI助手能够访问您的数据、API或执行特定操作,就需要MCP服务器作为桥梁。
我需要编程知识才能使用这个工具吗?
基本不需要。您可以用自然语言描述需求,工具会生成完整的代码。但如果您想修改或扩展生成的功能,基本的TypeScript/JavaScript知识会有帮助。
这个工具是免费的吗?
MCP Tool Factory本身是开源免费的,但生成过程需要使用AI模型,这会产生费用。费用取决于您选择的AI提供商和模型。工具提供成本跟踪和预算控制功能。
支持哪些AI助手?
支持所有MCP兼容的AI助手,包括:Claude Desktop、Claude Code、Cursor、VS Code、OpenAI Agents SDK、Google ADK、LangChain、CrewAI等。
生成的代码质量如何?
生成的代码是生产就绪的,包含类型安全、错误处理、日志记录、性能监控等企业级功能。代码使用TypeScript编写,遵循最佳实践。
如果生成的代码不符合我的需求怎么办?
您可以手动修改生成的代码,或者重新生成时提供更详细的描述。工具也支持渐进式改进 - 您可以先生成基础功能,然后手动添加复杂逻辑。
如何控制生成成本?
使用--budget参数设置预算限制(如--budget 0.50表示最多花费0.5美元),工具会在达到预算时停止。还可以使用--compare-costs比较不同提供商的费用。
支持私有API或本地数据库吗?
是的,完全支持。您可以基于本地数据库文件(SQLite)或私有API的OpenAPI规范生成工具。所有处理都在本地进行,数据不会上传到云端。
相关资源
GitHub仓库
完整的源代码、问题跟踪和贡献指南
npm包页面
安装包和版本历史
MCP官方文档
Model Context Protocol官方规范和文档
MCP注册表
发现和分享MCP服务器的官方注册表
Python版本
MCP Tool Factory的Python版本
Vercel AI SDK
工具使用的统一AI SDK,支持10种AI提供商
安装
复制以下命令到你的Client进行配置
{
"mcpServers": {
"mcp-tool-factory": {
"command": "node",
"args": ["/path/to/mcp-tool-factory-ts/bin/mcp-server.js"],
"env": {
"ANTHROPIC_API_KEY": "your-key-here"
}
}
}
}
{
"mcpServers": {
"mcp-tool-factory": {
"command": "node",
"args": ["/path/to/mcp-tool-factory-ts/bin/mcp-server.js"],
"env": {
"OPENAI_API_KEY": "your-key-here",
"MCP_FACTORY_PROVIDER": "openai",
"MCP_FACTORY_MODEL": "gpt-5.2",
"MCP_FACTORY_BUDGET": "0.50"
}
}
}
}
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["tsx", "./servers/my-server/src/index.ts"]
}
}
}注意:您的密钥属于敏感信息,请勿与任何人分享。
🚀 MCP工具工厂 (TypeScript)
MCP工具工厂能够根据自然语言描述、OpenAPI规范、数据库模式、GraphQL模式或本体,快速生成可用于生产环境的MCP(模型上下文协议)服务器。
🚀 快速开始
安装
# 全局安装
npm install -g @heshamfsalama/mcp-tool-factory
# 或者使用npx
npx @heshamfsalama/mcp-tool-factory generate "Create tools for managing a todo list"
设置API密钥
至少需要设置一个提供商的API密钥:
# Anthropic Claude(推荐)
export ANTHROPIC_API_KEY=your-key-here
# 或者Claude Code OAuth
export CLAUDE_CODE_OAUTH_TOKEN=your-token-here
# 或者其他支持的提供商
export OPENAI_API_KEY=your-key-here
export GOOGLE_API_KEY=your-key-here
export MISTRAL_API_KEY=your-key-here
export DEEPSEEK_API_KEY=your-key-here
export GROQ_API_KEY=your-key-here
export XAI_API_KEY=your-key-here
export AZURE_OPENAI_API_KEY=your-key-here
export COHERE_API_KEY=your-key-here
生成第一个服务器
# 从自然语言生成
mcp-factory generate "Create tools for fetching weather data by city and converting temperatures"
# 从OpenAPI规范生成
mcp-factory from-openapi ./api-spec.yaml
# 从数据库生成
mcp-factory from-database ./data.db
# 从GraphQL模式生成
mcp-factory from-graphql ./schema.graphql
# 从本体生成
mcp-factory from-ontology ./ontology.owl --format rdf
✨ 主要特性
| 特性 | 描述 |
|---|---|
| 自然语言支持 | 用简洁的英语描述你的工具 |
| OpenAPI导入 | 将任何REST API规范转换为MCP工具 |
| 数据库CRUD操作 | 根据SQLite或PostgreSQL模式生成工具 |
| GraphQL导入 | 将GraphQL模式转换为MCP工具(查询转换为读取操作,突变转换为写入操作) |
| 本体导入 | 从RDF/OWL、JSON-LD或YAML本体生成工具 |
| 资源与提示 | 全面支持所有三种MCP原语:工具、资源和提示 |
| 10种LLM提供商 | Anthropic、OpenAI、Google、Mistral、DeepSeek、Groq、xAI、Azure、Cohere + 通过Vercel AI SDK支持Claude Code |
| 成本跟踪 | 每次调用的成本计算、预算限制、提供商成本比较 |
| 并行生成 | 工具实现并发生成,加快输出速度 |
| LLM响应缓存 | 通过可配置的TTL去重相同的LLM调用 |
| 可流式HTTP | 生成的服务器使用现代的可流式HTTP传输 |
| 网络搜索 | 自动获取API文档以实现更好的生成效果 |
| 生产就绪 | 内置日志记录、指标监控、速率限制和重试机制 |
| 类型安全 | 完全使用TypeScript并开启严格模式 |
| MCP注册表 | 生成server.json以发布到注册表 |
| 作为MCP服务器 | 可直接与Claude配合使用,实时生成服务器 |
📦 安装指南
全局安装
npm install -g @heshamfsalama/mcp-tool-factory
使用npx
npx @heshamfsalama/mcp-tool-factory generate "Create tools for managing a todo list"
💻 使用示例
自然语言生成
mcp-factory generate "Create tools for managing a todo list with priorities" \
--name todo-server \
--output ./servers/todo \
--web-search \
--logging \
--metrics
OpenAPI规范
# 从本地文件生成
mcp-factory from-openapi ./openapi.yaml --name my-api-server
# 使用自定义基础URL生成
mcp-factory from-openapi ./spec.json --base-url https://api.example.com
数据库模式
# SQLite
mcp-factory from-database ./myapp.db --tables users,posts,comments
# PostgreSQL
mcp-factory from-database "postgresql://user:pass@localhost/mydb" --type postgresql
GraphQL模式
# 从GraphQL SDL文件生成
mcp-factory from-graphql ./schema.graphql --name my-graphql-server
# 从URL端点生成
mcp-factory from-graphql https://api.example.com/graphql --name my-api-server
GraphQL查询会映射为只读的MCP工具,突变会映射为写入工具。GraphQL类型会自动转换为Zod验证模式。
本体
# 从RDF/OWL文件(.owl, .rdf, .ttl)生成
mcp-factory from-ontology ./ontology.owl --format rdf --name knowledge-server
# 从JSON-LD文件(.jsonld)生成
mcp-factory from-ontology ./schema.jsonld --format jsonld --name linked-data-server
# 从自定义YAML本体生成
mcp-factory from-ontology ./domain.yaml --format yaml --name domain-server
OWL类会映射为MCP资源,对象属性会成为工具,数据属性会成为工具参数。
测试与服务
# 运行测试
mcp-factory test ./servers/my-server
# 启动服务器进行测试
mcp-factory serve ./servers/my-server
📚 详细文档
生成的服务器结构
servers/my-server/
├── src/
│ └── index.ts # 包含工具、资源和提示的MCP服务器
├── tests/
│ └── tools.test.ts # Vitest测试(InMemoryTransport)
├── package.json # 依赖项
├── tsconfig.json # TypeScript配置
├── Dockerfile # 容器部署
├── README.md # 使用文档
├── skill.md # Claude Code技能文件
├── server.json # MCP注册表清单
├── EXECUTION_LOG.md # 生成跟踪(可选)
└── .github/
└── workflows/
└── ci.yml # GitHub Actions CI/CD
生成的服务器导出一个createServer()工厂函数,方便进行测试。服务器使用可流式HTTP传输,有一个/mcp POST端点和一个/health GET端点。测试使用InMemoryTransport.createLinkedPair()进行快速、可靠的进程内测试。
CLI参考
| 命令 | 描述 |
|---|---|
generate <description> |
根据自然语言生成MCP服务器 |
from-openapi <spec> |
根据OpenAPI规范生成 |
from-database <path> |
根据数据库模式生成 |
from-graphql <schema> |
根据GraphQL模式生成 |
from-ontology <file> |
根据RDF/OWL、JSON-LD或YAML本体生成 |
test <server-path> |
对生成的服务器运行测试 |
serve <server-path> |
启动服务器进行测试 |
info |
显示工厂信息 |
生成选项
mcp-factory generate "..." \
--output, -o <path> # 输出目录(默认:./servers)
--name, -n <name> # 服务器名称
--description, -d <desc> # 包描述
--github-username, -g <user> # MCP注册表的GitHub用户名
--version, -v <ver> # 服务器版本(默认:1.0.0)
--provider, -p <provider> # LLM提供商(anthropic, openai, google, mistral, deepseek, groq, xai, azure, cohere, claude_code)
--model, -m <model> # 要使用的特定模型
--web-search, -w # 搜索网络以获取API文档
--auth <vars...> # 用于身份验证的环境变量
--health-check # 包含健康检查端点(默认:true)
--logging # 启用结构化日志记录(默认:true)
--metrics # 启用Prometheus指标
--rate-limit <n> # 速率限制(每分钟请求数)
--retries # 启用重试逻辑(默认:true)
--budget <amount> # 以美元为单位的最大花费(超过预算则中止)
--compare-costs # 在生成前显示各提供商的成本比较
配置
环境变量
| 变量 | 描述 | 是否必需 |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic Claude API密钥 | 至少需要一个 |
CLAUDE_CODE_OAUTH_TOKEN |
Claude Code OAuth令牌 | 提供商密钥 |
OPENAI_API_KEY |
OpenAI API密钥 | 用于生成 |
GOOGLE_API_KEY |
Google Gemini API密钥 | |
MISTRAL_API_KEY |
Mistral AI API密钥 | |
DEEPSEEK_API_KEY |
DeepSeek API密钥 | |
GROQ_API_KEY |
Groq API密钥 | |
XAI_API_KEY |
xAI Grok API密钥 | |
AZURE_OPENAI_API_KEY |
Azure OpenAI API密钥 | |
COHERE_API_KEY |
Cohere API密钥 |
LLM提供商
所有提供商都通过统一的UnifiedLLMProvider类使用Vercel AI SDK,采用延迟动态导入方式 —— 运行时仅加载所选提供商的@ai-sdk/*包。
| 提供商 | 模型 | 适用场景 |
|---|---|---|
| Anthropic | claude-opus-4-6, claude-sonnet-4-5, claude-haiku-4-5 | 高质量输出 |
| OpenAI | gpt-5.2, gpt-5.2-codex, o3, o4-mini | 快速生成 |
| gemini-3-pro, gemini-3-flash, gemini-2.5-pro | 成本效益高 | |
| Mistral | mistral-large, codestral, magistral | 欧洲AI和代码相关 |
| DeepSeek | deepseek-chat, deepseek-reasoner | 超低成本 |
| Groq | llama-3.3-70b, llama-4-maverick | 超快速推理 |
| xAI | grok-4, grok-3, grok-code-fast | 推理任务 |
| Azure | gpt-4o(Azure托管) | 企业合规性 |
| Cohere | command-a, command-r+ | RAG和企业搜索 |
| Claude Code | claude-sonnet-4-5(OAuth) | Claude Code用户 |
编程式使用
基本用法
import { ToolFactoryAgent, writeServerToDirectory, formatCost } from '@heshamfsalama/mcp-tool-factory';
// 创建代理(从环境变量自动检测提供商)
const agent = new ToolFactoryAgent();
// 根据描述生成
const server = await agent.generateFromDescription(
'Create tools for managing a todo list with priorities',
{
serverName: 'todo-server',
webSearch: true,
parallel: true, // 启用并行生成(默认)
maxConcurrency: 5, // 最大并发LLM调用数(默认)
budget: 1.00, // 可选:如果成本超过1美元则中止
productionConfig: {
enableLogging: true,
enableMetrics: true,
},
}
);
// 成本跟踪 —— 查看生成成本
if (server.executionLog) {
console.log(`Cost: ${formatCost(server.executionLog.totalCost)}`);
}
// 写入目录
await writeServerToDirectory(server, './servers/todo');
从OpenAPI生成
import { ToolFactoryAgent, writeServerToDirectory } from '@heshamfsalama/mcp-tool-factory';
import { readFileSync } from 'fs';
import yaml from 'js-yaml';
const spec = yaml.load(readFileSync('./openapi.yaml', 'utf-8'));
const agent = new ToolFactoryAgent({ requireLlm: false });
const server = await agent.generateFromOpenAPI(spec, {
serverName: 'my-api-server',
baseUrl: 'https://api.example.com',
});
await writeServerToDirectory(server, './servers/api');
从数据库生成
import { ToolFactoryAgent, writeServerToDirectory } from '@heshamfsalama/mcp-tool-factory';
const agent = new ToolFactoryAgent({ requireLlm: false });
// SQLite(从文件路径自动检测)
const server = await agent.generateFromDatabase('./data/app.db', {
serverName: 'app-database-server',
tables: ['users', 'posts', 'comments'],
});
// PostgreSQL(从连接字符串自动检测)
const pgServer = await agent.generateFromDatabase(
'postgresql://user:pass@localhost/mydb',
{ serverName: 'postgres-server' }
);
await writeServerToDirectory(server, './servers/app-db');
从GraphQL生成
import { ToolFactoryAgent, writeServerToDirectory } from '@heshamfsalama/mcp-tool-factory';
import { readFileSync } from 'fs';
const schema = readFileSync('./schema.graphql', 'utf-8');
const agent = new ToolFactoryAgent({ requireLlm: false });
const server = await agent.generateFromGraphQL(schema, {
serverName: 'my-graphql-server',
});
await writeServerToDirectory(server, './servers/graphql');
从本体生成
import { ToolFactoryAgent, writeServerToDirectory } from '@heshamfsalama/mcp-tool-factory';
import { readFileSync } from 'fs';
const ontologyData = readFileSync('./ontology.owl', 'utf-8');
const agent = new ToolFactoryAgent({ requireLlm: false });
const server = await agent.generateFromOntology(ontologyData, {
serverName: 'knowledge-server',
format: 'rdf',
});
await writeServerToDirectory(server, './servers/knowledge');
代码验证
import { validateTypeScriptCode, validateGeneratedServer } from '@heshamfsalama/mcp-tool-factory';
// 验证TypeScript语法
const result = await validateTypeScriptCode(code);
// { valid: false, errors: [{ line: 4, column: 1, message: "'}' expected." }] }
// 验证完整服务器
const serverResult = await validateGeneratedServer(serverCode);
// { valid: true, errors: [], summary: 'Generated server code is syntactically valid' }
与AI框架配合使用
Claude Code / Claude Desktop
添加到MCP设置(claude_desktop_config.json):
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["tsx", "./servers/my-server/src/index.ts"]
}
}
}
OpenAI Agents SDK
from agents import Agent
from agents.mcp import MCPServerStdio
async with MCPServerStdio(
command="npx",
args=["tsx", "./servers/my-server/src/index.ts"]
) as mcp:
agent = Agent(
name="My Agent",
tools=mcp.list_tools()
)
Google ADK
from google.adk.tools.mcp_tool import MCPToolset
tools = MCPToolset(
connection_params=StdioServerParameters(
command="npx",
args=["tsx", "./servers/my-server/src/index.ts"]
)
)
LangChain
from langchain_mcp_adapters.client import MCPClient
client = MCPClient(
command="npx",
args=["tsx", "./servers/my-server/src/index.ts"]
)
tools = client.get_tools()
🔧 技术细节
生产特性
结构化日志记录
mcp-factory generate "..." --logging
生成的服务器使用pino进行结构化JSON日志记录:
const logger = pino({ level: 'info' });
logger.info({ tool: 'get_weather', params }, 'Tool called');
Prometheus指标
mcp-factory generate "..." --metrics
生成的服务器使用prom-client进行指标监控:
mcp_tool_calls_total- 工具调用计数器mcp_tool_duration_seconds- 执行时间直方图
速率限制
mcp-factory generate "..." --rate-limit 100
可配置每个客户端的速率限制,采用滑动窗口机制。
重试逻辑
mcp-factory generate "..." --retries
对于瞬态故障采用指数退避重试机制。
结构化错误代码
生成的服务器使用结构化错误代码进行一致的错误处理:
INVALID_INPUT- 工具参数格式错误或无效NOT_FOUND- 请求的资源不存在AUTH_ERROR- 身份验证或授权失败INTERNAL_ERROR- 意外的服务器错误
增强的健康检查
/health端点返回详细的服务器状态:
{
"status": "ok",
"version": "1.0.0",
"uptime": 3600,
"memory": { "rss": 52428800, "heapUsed": 20971520 },
"transport": "streamable-http"
}
MCP注册表发布
将生成的服务器发布到MCP注册表以提高可发现性。
生成支持注册表的服务器
mcp-factory generate "Create weather tools" \
--name weather-server \
--github-username your-github-username \
--description "Weather tools for Claude" \
--version 1.0.0
这将生成符合注册表要求的文件:
package.json:
{
"name": "@your-github-username/weather-server",
"mcpName": "io.github.your-github-username/weather-server"
}
server.json:
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.your-github-username/weather-server",
"packages": [{
"registryType": "npm",
"identifier": "@your-github-username/weather-server",
"transport": { "type": "stdio" }
}],
"tools": [...]
}
发布工作流程
# 1. 构建并发布到npm
cd ./servers/weather-server
npm install && npm run build
npm publish --access public
# 2. 安装mcp-publisher
brew install modelcontextprotocol/tap/mcp-publisher
# 3. 进行身份验证
mcp-publisher login github
# 4. 发布到注册表
mcp-publisher publish
详细说明请参阅发布指南。
架构
┌───────────────────────────────────────────────────────────────────────┐
│ MCP Tool Factory │
├───────────────────────────────────────────────────────────────────────┤
│ Input Sources │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────┐│
│ │ Natural │ │ OpenAPI │ │ Database │ │ GraphQL │ │Ontology ││
│ │ Language │ │ Spec │ │ Schema │ │ Schema │ │RDF/YAML ││
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └────┬────┘│
│ └──────────┬───┴─────────────┴─────────────┴────────────┘ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ ToolFactoryAgent │ │
│ │ ┌─────────────────────────────────────────────────────────┐ │ │
│ │ │ UnifiedLLMProvider (Vercel AI SDK) │ │ │
│ │ │ Anthropic │ OpenAI │ Google │ Mistral │ DeepSeek │ │ │
│ │ │ Groq │ xAI │ Azure │ Cohere + Claude Code OAuth │ │ │
│ │ └─────────────────────────────────────────────────────────┘ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌───────────────────────┐ │ │
│ │ │ LLM Cache │ │ Cost │ │ Parallel Generation │ │ │
│ │ │ (TTL-based) │ │ Tracking │ │ (max concurrency: 5) │ │ │
│ │ └──────────────┘ └──────────────┘ └───────────────────────┘ │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Generators │ │
│ │ ServerGenerator │ DocsGenerator │ TestsGenerator │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ GeneratedServer │ │
│ │ Tools │ Resources │ Prompts │ Tests │ Docs │ Dockerfile │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Streamable HTTP Transport │ │
│ │ POST /mcp │ GET /health │ │
│ └────────────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────────┘
开发
# 克隆仓库
git clone https://github.com/HeshamFS/mcp-tool-factory-ts.git
cd mcp-tool-factory-ts
# 安装依赖
pnpm install
# 构建
pnpm run build
# 运行测试
pnpm test
# 类型检查
pnpm run typecheck
# 代码检查
pnpm run lint
项目结构
mcp-tool-factory-ts/
├── src/
│ ├── agent/ # 主要的ToolFactoryAgent
│ ├── auth/ # OAuth2提供商
│ ├── cache/ # 具有可配置TTL的LLM响应缓存
│ ├── cli/ # 命令行界面
│ ├── config/ # 配置管理
│ ├── database/ # 数据库内省(SQLite, PostgreSQL)
│ ├── execution-logger/ # 执行日志记录
│ ├── generators/ # 代码生成器(服务器、文档、测试)
│ ├── graphql/ # GraphQL SDL解析和服务器生成
│ ├── middleware/ # 验证中间件
│ ├── models/ # 数据模型
│ ├── observability/ # 遥测和跟踪
│ ├── ontology/ # 本体解析(RDF/OWL, JSON-LD, YAML)
│ ├── openapi/ # OpenAPI规范解析
│ ├── production/ # 生产代码生成
│ ├── prompts/ # LLM提示模板
│ ├── providers/ # LLM提供商(通过Vercel AI SDK支持10种提供商 + Claude Code)
│ ├── security/ # 安全扫描
│ ├── server/ # MCP服务器模式(工厂即服务器)
│ ├── templates/ # 生成文件的Handlebars模板
│ ├── validation/ # 代码验证和Zod模式
│ └── web-search/ # 网络搜索集成
├── docs/ # 文档
├── tests/ # 测试文件
└── dist/ # 构建输出
文档
- 入门指南
- CLI参考
- API参考
- 示例
- OpenAPI指南
- 数据库指南
- 提供商指南
- 生产特性
- 架构
- 故障排除
- 贡献指南
故障排除
常见问题
未找到API密钥
# 检查环境变量
echo $ANTHROPIC_API_KEY
# 设置API密钥
export ANTHROPIC_API_KEY=your-key-here
生成的服务器无法启动
# 先安装依赖
cd ./servers/my-server
npm install
npx tsx src/index.ts
TypeScript错误
# 验证生成的代码
import { validateGeneratedServer } from '@heshamfsalama/mcp-tool-factory';
const result = await validateGeneratedServer(code);
console.log(result.errors);
更多解决方案请参阅故障排除指南。
变更日志
v0.3.0
- Vercel AI SDK迁移 - 所有LLM提供商现在都通过单一的
UnifiedLLMProvider类使用Vercel AI SDK,采用延迟动态导入方式。移除了约473行特定提供商的实现代码。运行时仅加载所选提供商的@ai-sdk/*包。 - 10种LLM提供商 - 除了现有的Anthropic、OpenAI、Google和Claude Code提供商,还添加了Mistral、DeepSeek、Groq、xAI、Azure和Cohere。所有提供商都使用相同的统一接口。
- 成本跟踪 - 每次LLM调用现在都使用内置的50多种模型定价表计算估计成本。显示每次调用的成本、总生成成本以及每个阶段的成本细分(工具提取、实现、测试、文档)。详细的令牌细分包括缓存读写令牌和AI SDK的推理令牌。
- 预算限制 (
--budget <amount>) - 设置以美元为单位的最大花费。如果累计成本超过预算,生成将优雅地中止并抛出BudgetExceededError。 - 提供商成本比较 (
--compare-costs) - 在生成之前,估计所有可用提供商的成本并显示一个排序的比较表。无需额外的API调用 —— 使用静态定价表。 - 按阶段成本细分 - CLI输出和执行日志显示哪些生成步骤成本最高(工具提取、实现、资源提取、提示提取、测试生成、文档生成)。
- OpenAI推理模型支持 - 对于不支持温度参数的OpenAI o系列和gpt-5.x模型,会自动省略该参数。
v0.2.0
- 可流式HTTP传输 - 生成的服务器使用
StreamableHTTPServerTransport和原生http模块,而不是Express/SSE(2025年6月已弃用)。有一个/mcpPOST端点和一个/healthGET端点。 - MCP SDK v1.26.0 - 从
^1.0.0更新到^1.26.0 - 资源与提示 - 全面支持所有三种MCP原语。资源公开结构化数据(文档、数据库记录、文件树)。提示为引导式LLM工作流提供可重用的模板。代理通过LLM自动从描述中提取资源和提示。
- GraphQL输入源 - 新增
from-graphqlCLI命令和generate_from_graphqlMCP工具。查询映射为读取工具,突变映射为写入工具,GraphQL类型转换为Zod模式。 - 本体输入源 - 新增
from-ontologyCLI命令和generate_from_ontologyMCP工具。支持RDF/OWL、JSON-LD和自定义YAML格式。OWL类映射为资源,对象属性映射为工具,数据属性映射为工具参数。 - LLM响应缓存 - 通过可配置的TTL去重相同的LLM调用。可使用
skipCache选项绕过缓存。 - 并行生成 - 默认情况下工具实现并发生成(
parallel: true,maxConcurrency: 5)。对于多工具服务器,显著提高了生成速度。 - InMemoryTransport测试 - 生成的测试使用
InMemoryTransport.createLinkedPair()而不是子进程生成。服务器导出createServer()工厂函数以方便测试。 - 生产增强 - 速率限制、结构化日志记录、指标监控和持续时间跟踪集成到工具处理程序中。增强的健康检查包含版本、正常运行时间、内存和传输信息。结构化错误代码:
INVALID_INPUT、NOT_FOUND、AUTH_ERROR、INTERNAL_ERROR。
v0.1.0
- 初始TypeScript版本发布
- 支持使用Claude、Claude Code、OpenAI、Google Gemini进行自然语言生成
- 支持导入OpenAPI 3.0+规范
- 支持数据库CRUD操作生成(SQLite、PostgreSQL)
- 具备生产特性(日志记录、指标监控、速率限制)
- 支持生成MCP注册表的server.json文件
- 支持TypeScript语法验证
- 支持网络搜索API文档
- 支持生成GitHub Actions CI/CD配置
- 支持MCP服务器模式,可与Claude实时生成服务器
📄 许可证
本项目采用MIT许可证。
链接
替代品

Vestige
Vestige是一个基于认知科学的AI记忆引擎,通过实现预测误差门控、FSRS-6间隔重复、记忆梦境等29个神经科学模块,为AI提供长期记忆能力。包含3D可视化仪表板和21个MCP工具,完全本地运行,无需云端。
Rust
5.5K
4.5分
M
Moltbrain
MoltBrain是一个为OpenClaw、MoltBook和Claude Code设计的长期记忆层插件,能够自动学习和回忆项目上下文,提供智能搜索、观察记录、分析统计和持久化存储功能。
TypeScript
5.0K
4.5分

Bm.md
一个功能丰富的Markdown排版工具,支持多种样式主题和平台适配,提供实时编辑预览、图片导出和API集成能力
TypeScript
3.4K
5分
S
Security Detections MCP
Security Detections MCP 是一个基于Model Context Protocol的服务器,允许LLM查询统一的安全检测规则数据库,涵盖Sigma、Splunk ESCU、Elastic和KQL格式。最新3.0版本升级为自主检测工程平台,可自动从威胁情报中提取TTPs、分析覆盖差距、生成SIEM原生格式检测规则、运行测试并验证。项目包含71+工具、11个预构建工作流提示和知识图谱系统,支持多SIEM平台。
TypeScript
6.0K
4分

Paperbanana
PaperBanana是一个自动化生成学术图表和统计图的智能框架,支持从文本描述生成高质量的论文插图,采用多智能体管道和迭代优化,提供CLI、Python API和MCP服务器等多种使用方式。
Python
7.5K
5分

Better Icons
一个提供超过20万图标搜索和检索的MCP服务器和CLI工具,支持150多个图标库,帮助AI助手和开发者快速获取和使用图标。
TypeScript
5.6K
4.5分

Assistant Ui
assistant-ui是一个开源TypeScript/React库,用于快速构建生产级AI聊天界面,提供可组合的UI组件、流式响应、无障碍访问等功能,支持多种AI后端和模型。
TypeScript
7.2K
5分
A
Apify MCP Server
Apify MCP服务器是一个基于模型上下文协议(MCP)的工具,允许AI助手通过数千个现成的爬虫、抓取器和自动化工具(Apify Actor)从社交媒体、搜索引擎、电商等网站提取数据。它支持OAuth和Skyfire代理支付,可通过HTTPS端点或本地stdio方式集成到Claude、VS Code等MCP客户端中。
TypeScript
7.4K
5分

Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
84.2K
4.3分

Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
149.7K
5分

Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
74.4K
4.5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
33.0K
4.8分

Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
50.1K
4.5分

Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
56.2K
5分

Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
63.6K
4.8分

Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
105.8K
4.7分