MCP 服务器构建器

mcp-server-builder
分类编程
作者Alireza Rezvani
许可MIT
评分4.60/5
使用13.6K

MCP Server Builder

等级: 强大 (POWERFUL) · 类别: 工程 (Engineering) · 领域: AI / API 集成

概述

使用此技能通过 API 契约而非手动编写的一次性工具包装器来设计和交付生产级 MCP 服务器。它专注于快速脚手架搭建、模式质量、验证以及安全演进。

该工作流支持 Python 和 TypeScript 的 MCP 实现,并将 OpenAPI 视为唯一事实来源。

核心能力

  • 将 OpenAPI 路径/操作转换为 MCP 工具定义
  • 生成服务器启动脚手架(Python 或 TypeScript)
  • 强制执行命名、描述和模式的一致性
  • 验证 MCP 工具清单以防止常见的生产环境故障
  • 应用版本控制和向后兼容性检查
  • 将传输/运行时决策与工具契约设计分离

使用场景

  • 需要将内部/外部 REST API 暴露给 LLM Agent
  • 计划用强类型工具替换脆弱的浏览器自动化
  • 希望在团队和助手之间共享同一个 MCP 服务器
  • 在发布 MCP 工具前需要可重复的质量检查
  • 希望基于现有的 OpenAPI 规范快速启动 MCP 服务器

关键工作流

1. 从 OpenAPI 到 MCP 脚手架

1. 从有效的 OpenAPI 规范开始。
2. 生成工具清单 + 服务器启动代码。
3. 审查命名和认证策略。
4. 添加特定端点的运行时逻辑。

bash
python3 scripts/openapi_to_mcp.py \
  --input openapi.json \
  --server-name billing-mcp \
  --language python \
  --output-dir ./out \
  --format text

同样支持标准输入 (stdin):

bash
cat openapi.json | python3 scripts/openapi_to_mcp.py --server-name billing-mcp --language typescript

2. 验证 MCP 工具定义

在集成测试前运行验证器:

bash
python3 scripts/mcp_validator.py --input out/tool_manifest.json --strict --format text

检查项包括:重复命名、无效的模式结构、缺失描述、必填字段为空以及命名规范。

3. 运行时选择

  • Python:适用于快速迭代和数据密集型后端。
  • TypeScript:适用于统一的 JS 技术栈以及更紧密的前后端契约复用。
  • 即使传输/运行时发生变化,也要保持工具契约的稳定性。

4. 生产环境加固

发布前的关键事项:

  • 将密钥保存在环境变量中,而非工具模式中
  • 优先使用出站主机白名单而非开放代理
  • 仅采用增量变更;严禁直接重命名现有工具

完整加固指南:references/production-hardening-guide.md

脚本接口

  • python3 scripts/openapi_to_mcp.py --help
- 从 stdin 或 --input 读取 OpenAPI - 生成清单 + 服务器脚手架 - 输出 JSON 摘要或文本报告
  • python3 scripts/mcp_validator.py --help
- 验证清单及可选的运行时配置 - 在严格模式下,若存在错误则返回非零退出码

参考资料

决策、契约质量门禁、测试策略、部署实践、安全控制