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
4.8K
4.5分
M
Moltbrain
MoltBrain是一個為OpenClaw、MoltBook和Claude Code設計的長期記憶層插件,能夠自動學習和回憶項目上下文,提供智能搜索、觀察記錄、分析統計和持久化存儲功能。
TypeScript
5.3K
4.5分

Bm.md
一個功能豐富的Markdown排版工具,支持多種樣式主題和平臺適配,提供即時編輯預覽、圖片導出和API集成能力
TypeScript
4.9K
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.2K
4分

Paperbanana
PaperBanana是一個自動化生成學術圖表和統計圖的智能框架,支持從文本描述生成高質量的論文插圖,採用多智能體管道和迭代優化,提供CLI、Python API和MCP服務器等多種使用方式。
Python
6.3K
5分

Better Icons
一個提供超過20萬圖標搜索和檢索的MCP服務器和CLI工具,支持150多個圖標庫,幫助AI助手和開發者快速獲取和使用圖標。
TypeScript
6.0K
4.5分

Assistant Ui
assistant-ui是一個開源TypeScript/React庫,用於快速構建生產級AI聊天界面,提供可組合的UI組件、流式響應、無障礙訪問等功能,支持多種AI後端和模型。
TypeScript
7.7K
5分
A
Apify MCP Server
Apify MCP服務器是一個基於模型上下文協議(MCP)的工具,允許AI助手通過數千個現成的爬蟲、抓取器和自動化工具(Apify Actor)從社交媒體、搜索引擎、電商等網站提取數據。它支持OAuth和Skyfire代理支付,可通過HTTPS端點或本地stdio方式集成到Claude、VS Code等MCP客戶端中。
TypeScript
7.7K
5分

Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
31.6K
5分

Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
38.0K
4.5分

Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
120.7K
5分

Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
30.4K
4.5分

Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
20.4K
5分

Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
80.4K
4.7分

Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
18.1K
4.5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
23.1K
4.8分