MCP服务器生成工具

MCP Factory是一个CLI工具,能够从API文档中快速生成类型安全的Model Context Protocol (MCP)服务器,适用于Claude Desktop和Claude Code。

  • by StackkedJohn
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 StackkedJohn/mcp-factory

使用说明

MCP工厂

在几秒钟内将任何API文档转换为可用于生产的MCP服务器。

MCP工厂是一个CLI工具,用于从API文档生成完整的、类型安全的模型上下文协议(MCP)服务器。给它一个OpenAPI规范、Swagger文档或YAML文件,并为Claude Desktop和Claude Code准备一个带有数百个工具的工作MCP服务器。

为什么选择MCP工厂?

  • 零手动编码 -自动生成完整的TypeScript MCP服务器
  • 类型安全输出 -每个工具上都有完整的TypeScript类型和Zod输入验证
  • 全面覆盖API -每个端点都成为MCP工具
  • 适用于任何地方 -从任何目录运行,指向任何API文档
  • 自动安装 -使用一个命令配置Claude Desktop/Code

安装

npm install -g @stackkedjohn/mcp-factory-cli

快速开始

# Generate MCP server from API documentation
mcp-factory create ./api-docs.yaml

# Build the generated server
cd "My API-mcp"
npm install && npm run build

# Install to Claude Desktop
mcp-factory install "My API"

# Done! Restart Claude and start using it

真实示例:Neon CRM API

# Generate from 466KB OpenAPI spec
mcp-factory create ./neon-crm-v2.11.yaml

# Output:
# ✓ Parsed API: Neon CRM API Reference
# ✓ Generated 276 tools (5,772 lines of code)
# ✓ Build time: <3 seconds

cd "Neon CRM API Reference-mcp"
npm install && npm run build
mcp-factory install "Neon CRM API Reference"

# Now in Claude:
# "Get customer 12345 from Neon CRM"
# "Create a new donation for $100"
# "List all upcoming events"

生成什么

My API-mcp/
├── src/
│   ├── index.ts          # MCP server implementation
│   ├── client.ts         # HTTP client with auth handling
│   ├── tools.ts          # Tool handlers for each endpoint
│   ├── types.ts          # TypeScript type definitions
│   └── validation.ts     # Zod schemas for input validation
├── build/                # Compiled JavaScript
├── package.json          # Dependencies & scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # Usage instructions & Claude config

生成的代码特性

  • ✅ 类型安全 -每个工具上都有完整的TypeScript类型和Zod输入验证
  • ✅ 认证 -处理OAuth、API密钥、承载令牌、基本身份验证
  • ✅ 错误处理 -带有状态代码的详细错误消息
  • ✅ 文档 -使用配置示例完成README
  • ✅ 类型检查 -生成的项目包括 npm test 用于类型验证

命令

create

根据API文档生成MCP服务器。

mcp-factory create <input> [options]

Arguments:
  input                 Path to API documentation file or URL

Options:
  --ai-parse           Use AI to parse unstructured documentation (coming soon)
  -o, --output <dir>   Custom output directory (default: ./<API Name>-mcp)

支持的格式:

  • OpenAPI 3.x(JSON/YAML)
  • Swagger 2.0(JSON/YAML)
  • 邮差系列(即将推出)
  • 非结构化文档 --ai-parse (即将推出)

示例:

# Local file
mcp-factory create ./openapi.yaml

# URL (coming soon)
mcp-factory create https://api.example.com/openapi.json

# Custom output directory
mcp-factory create ./swagger.json -o ./custom-mcp

validate

在不生成代码的情况下验证API规范。

mcp-factory validate <input>

检查API文档是否有效并且可以处理。

list

列出注册表跟踪的所有生成的MCP服务器。

mcp-factory list

显示您生成的所有服务器及其路径和创建日期。

install

在Claude Desktop或Claude Code中自动配置生成的服务器。

mcp-factory install <server-name>

它的作用:

  • 在注册表中查找服务器
  • 检测克劳德桌面和/或克劳德代码
  • 使用正确的路径更新配置
  • 提供添加API凭据的下一步步骤

配置文件:

  • 克劳德桌面(macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • 克劳德桌面(Windows): %APPDATA%\Claude\claude_desktop_config.json
  • 克劳德代码: ~/.claude/config.json

完成工作流程

1.生成服务器

cd ~/my-projects
mcp-factory create ./stripe-openapi.yaml

输出:

ℹ Detecting format: OpenAPI 3.0
✓ Parsed API: Stripe API
ℹ Detected patterns: auth=bearer, pagination=cursor
✓ Generated MCP server with 247 tools

2.构建和测试

cd "Stripe API-mcp"
npm install
npm run build
npm test

生成的文件:

  • build/index.js -编译的MCP服务器
  • src/*.ts -TypeScript源代码
  • 测试通过✓

3.安装到Claude

mcp-factory install "Stripe API"

输出:

✓ Installed Stripe API to Claude Desktop

Next steps:
  1. Edit config and add API credentials
  2. Restart Claude Desktop to load server

4.添加凭据

编辑Claude桌面配置:

{
  "mcpServers": {
    "Stripe API": {
      "command": "node",
      "args": ["/path/to/Stripe API-mcp/build/index.js"],
      "env": {
        "STRIPE_API_KEY": "sk_live_..."
      }
    }
  }
}

5.在Claude中使用

重新启动Claude Desktop,然后:

"List my Stripe customers"
"Create a new payment intent for $50"
"Get details for charge ch_abc123"

Claude自动使用MCP服务器工具进行API调用。

运作原理

  1. 格式检测 -分析您的文档并确定格式
  2. API解析 -提取端点、参数、身份验证模式和模式
  3. 模式分析 -检测分页、速率限制和错误格式
  4. 代码生成 -使用Handlebars模板创建TypeScript MCP服务器
  5. 输出 -仅使用API使用的身份验证模式生成干净的TypeScript

关键设计决策:

  • 生成代码,不使用运行时抽象(透明,无黑盒)
  • TypeScript用于类型安全和IDE支持
  • 最小依赖性(MCP SDK、Zod)
  • Auth-aware生成(仅包括API的Auth模式的代码)

发展

设置

git clone https://github.com/StackkedJohn/mcp-factory.git
cd mcp-factory
npm install
npm run build

本地测试

# Test with sample OpenAPI spec
node dist/cli.js create test-fixtures/weather-api.json

# Test generated server
cd "Weather API-mcp"
npm install && npm run build && npm test

项目结构

mcp-factory/
├── src/
│   ├── cli.ts                    # CLI entry point
│   ├── commands/                 # Command implementations
│   ├── parsers/                  # Format parsers (OpenAPI, Postman)
│   ├── generator/                # Code generation engine
│   ├── schema/                   # Internal API schema types
│   ├── registry/                 # Server registry management
│   └── utils/                    # Logging, errors
├── templates/                    # Handlebars templates
│   ├── index.ts.hbs             # MCP server template
│   ├── client.ts.hbs            # HTTP client template
│   ├── tools.ts.hbs             # Tool handlers template
│   └── ...
├── test-fixtures/               # Sample API specs
└── docs/                        # Design docs

故障排除

生成的服务器无法启动

# Check build succeeded
npm run build

# Check for TypeScript errors
npm run build -- --noEmit

工具未出现在Claude中

  1. 验证服务器是否在Claude配置中
  2. 检查服务器路径是否为绝对路径,而非相对路径
  3. 重新启动克劳德桌面/代码
  4. 检查Claude日志是否有错误

身份验证失败

  1. 在配置中验证API凭据 env 部分
  2. 检查API密钥格式是否符合API的要求
  3. 首先使用curl测试凭据

链接

  • npm包: https://www.npmjs.com/package/@stackkedjohn/mcp工厂cli
  • GitHub存储库: https://github.com/StackkedJohn/mcp-factory
  • 问题与支持: https://github.com/StackkedJohn/mcp-factory/issues
  • MCP文件: https://modelcontextprotocol.io

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

贡献

欢迎投稿!请先打开一个问题来讨论拟议的更改。


建于❤️ 克劳德MCP生态系统