OpenAPI转MCP协议适配器

MCP Adapter是一款自动将OpenAPI规范(v2/v3)转换为MCP应用的工具,使HTTP API能够无缝转换为MCP API,便于通过MCP协议暴露和管理服务。

  • by TaylorTrz
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TaylorTrz/mcp-adapter

使用说明

MCP适配器

介绍

MCP适配器 是一个旨在将OpenAPI规范(v2/v3)自动转换为MCP(模型上下文协议)应用程序的工具。它能够将HTTP API无缝转换为MCP API,允许通过MCP协议暴露和管理遗留或新的HTTP服务,而只需最少的手动干预。

思想与建筑

该项目围绕一个 事件驱动、解耦架构.核心工作流程是:

  1. 资源监视器:监视OpenAPI规范的文件更改或Kubernetes ConfigMaps。
  2. OpenAPI加载器:解析和验证OpenAPI文档,提取API路由,并为MCP转换做好准备。
  3. MCP服务器:根据解析的OpenAPI规范动态创建和管理MCP服务器和工具。
  4. HTTP服务器:提供健康检查和自检端点。

每个阶段都通过异步通道(队列)进行通信,确保松耦合和可扩展性。该系统支持基于文件和基于Kubernetes的资源监视,使其能够灵活地适应不同的部署场景。

高水位流量:

Resource Watcher (File or Kubernetes)
    │
    └─(channel 1: watcher → openapi)─▶ OpenAPILoader (parses OpenAPI spec, builds HTTP client definitions)
            │
            └─(channel 2: openapi → server)─▶ MCPServer (manages MCP instances and tools)
                    │
                    └─▶ MCPInstance / FastMCP (runs the actual MCP protocol server)

设计要点:

  • 明确模块边界:为了可维护性,每个职责(监视、解析、服务)都是隔离的。
  • 由渠道驱动的事件:异步消息传递使组件解耦。
  • 可扩展:轻松添加新的资源源或协议。
  • 平滑关闭:监听信号/信号并清理所有任务。

依赖项

待办事项

  • 重构CLI解析:将CLI参数解析移出模块顶级,以避免对导入产生副作用。
  • 统一异步运行时:对所有并发原语的anyio或asyncio进行标准化。
  • 优雅的服务器生命周期:确保HTTP和MCP服务器可以干净地启动和停止。
  • 定义严格的消息类型:为通道消息使用数据类以提高类型安全性。
  • 完整的OpenAPI加载器逻辑:完成路线提取、差异化和错误处理。
  • 增强错误处理和重试:添加强大的异常管理和重试策略。
  • 较低的Python版本要求:更新 pyproject.toml 为了与主流Python版本兼容。
  • 添加单元测试和CI:通过自动化测试和持续集成覆盖核心逻辑。
  • 改进配置管理:考虑使用Pydantic的 BaseSettings 通过env/CLI/文件进行统一配置。
  • 添加结构化日志记录和指标:支持JSON日志和Prometheus度量以实现可观察性。

有关更多详细信息,请参阅 源代码 和 OpenAPI规范示例.