RESTful API代理服务

MCProxy是一个为现有RESTful API提供MCP协议代理层的服务,无需修改底层API即可让AI客户端通过MCP协议与您的服务交互。

  • by YahelB05
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 yahelb05/mcproxy

使用说明

MCProxy-用于RESTful API的MCP代理

MCProxy easley几乎无缝地在您的 现有的 API和客户。
它不会用现有的API替换现有的接口,但它会扩展系统的功能 随着 主控程序.


什么是MCP?

MCP(模型上下文协议)是一种标准化的通信协议,使人工智能工具和服务能够进行交互 无缝, 其中服务器公开具有定义的输入/输出模式的操作(“工具”),客户端可以发现、调用和使用 它们是动态的。
在这个生态系统中,MCP服务器充当网关,暴露人工智能功能、工作流程或API——通常是流媒体 输出——而MCP客户端(通常是AI代理或应用程序)发现并调用这些工具来执行任务。

MCProxy 充当MCP服务器代理层,包装现有的REST API,使AI客户端能够与 您的服务使用MCP协议,而不更改您的基本API。


部署

部署 MCProxy 很简单:

  1. 构建Docker镜像:
    docker build -t mcp-proxy:<version> .

  2. 准备配置文件
    定义要向MCP客户端公开的端点。默认情况下,MCProxy将查找 config.json.

  3. 装载配置文件
    将其挂载到Docker容器、Kubernetes pod或部署中。

  4. 暴露MCProxy
    通过您首选的路由或入口方法访问服务。

💡 您可以在中查看示例 ./dev/ 以获取配置和设置的灵感。

部署后,MCP客户端可以连接到MCProxy并访问您允许的数据-- 无需额外编码 必需的.


环境变量

变量 描述 默认值
CONFIG_FILE 配置文件的完整路径。 ./config.json

配置JSON架构:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "API Endpoints Schema",
  "type": "object",
  "required": [
    "version",
    "endpoints"
  ],
  "properties": {
    "version": {
      "type": "string",
      "description": "Version of the schema or API definition"
    },
    "endpoints": {
      "type": "array",
      "description": "List of API endpoints",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "url",
          "method"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Unique name of the endpoint"
          },
          "description": {
            "type": "string",
            "description": "A short description of the endpoint"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Base URL of the endpoint"
          },
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "PATCH"
            ],
            "description": "HTTP method to use"
          },
          "path_params": {
            "type": "array",
            "description": "List of path parameters",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "query_params": {
            "type": "array",
            "description": "List of query parameters",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}

配置文件示例: ./dev/deployment/docker/endpoints.json


测试

设置环境,包括:

  • Nginx 作为反向代理(BSD 2条款许可证)
  • mendhak/http-https-echo 作为RESTful API(MIT许可证)
  • 这 MCProxy 服务器
cd ./dev/deployment/docker
docker compose up -d

要测试默认配置,您可以使用可用的脚本,例如:

cd ./dev/scripts
python3 test_list_tools.py

注: Nginx和http-https-echo仅在示例Docker Compose设置中使用,并不与 这个项目。


⚠️ 免责声明:

MCProxy的创建者不负责通过您配置的端点意外暴露数据。它 您有责任确保您公开的端点不会泄露敏感或不需要的信息。