MCP转OpenAPI代理

一个Docker化的代理服务,将任何MCP服务器暴露为标准OpenAPI接口,便于与LLM和其他开发者工具集成。

  • by christian-taillon
  • Shell
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 christian-taillon/MCP-to-OpenAPI-Proxy

使用说明

MCP到OpenAPI代理

一个Docker化的代理,将任何MCP(主控制程序)服务器作为标准OpenAPI接口公开,实现与LLM和其他开发工具的集成。

该项目由 mcpo 并通过承载令牌认证进行保护。

该代理允许大型语言模型(LLM)和其他开发工具与OpenAPI兼容的端点进行交互,从而实现了广泛的自动化和集成可能性。

为什么使用此代理?

  • 兼容性:使非标准MCP API与庞大的OpenAPI工具生态系统兼容,如代码生成器、测试框架和API探索者。
  • LLM集成:使LLM能够理解您的API并与之交互,以执行自动化测试、数据检索和复杂的工作流执行等任务。一个例子是 OpenWeb用户界面,它可以使用此代理为其LLM工具提供与现实世界交互的功能。
  • 简化身份验证:将复杂的身份验证机制抽象为简单、统一的Bearer令牌,简化客户端代码。
  • 标准化:提供一个一致的、可预测的API接口,而不考虑潜在的MCP实现。

特性

  • OpenAPI转换:将MCP转换为标准OpenAPI规范。
  • 安全认证:启动时自动生成安全的Bearer令牌。
  • Docker化:使用Docker Compose易于部署和管理。
  • 可定制的:支持自定义Bearer令牌和灵活配置。

先决条件

  • Docker和Docker Compose
  • 使用API凭据访问MCP服务器

快速开始

  1. 配置API访问: 复制 template.config.json 到 config.json:

    cp template.config.json config.json
    

    编辑 config.json 指向您的MCP服务器并包含必要的身份验证标头。看 example.config.json 以Armis集成为例。

  2. 启动代理服务:

    docker compose up -d
    
  3. 取回承载令牌: 身份验证令牌保存在 ./.mcpo 目录。要查看它,请运行:

    ./show-token.sh
    

用法

  • API端点: http://localhost:8100/<your-mcp-server-name>
  • OpenAPI文档: http://localhost:8100/docs

使用API端点和生成的Bearer令牌与MCP服务器进行交互。

安全

  • API密钥:The config.json 文件包含您的API密钥,被Git忽略。请确保此文件的安全。
  • 持有者令牌:每次容器启动时都会生成一个新的安全令牌,并将其存储在 ./.mcpo 目录。对于生产,考虑通过设置使用长期令牌 MCPO_BEARER_TOKEN 在 docker-compose.yml.
  • 网络:该服务公开于 0.0.0.0:8100。对于生产,限制对受信任IP的访问,或将其置于具有TLS的反向代理之后。

发展

  • 查看日志: docker logs mcpo-proxy
  • 重新启动服务: docker compose restart (生成新令牌)
  • 停止服务: docker compose down