MCProxy 能够轻松且几乎无缝地在您的现有API与客户端之间生成并部署一个代理。 <br /> 它不会用现有的API替换现有的接口,但它会通过MCP扩展您系统的功能。 <br />
MCP(模型上下文协议)是一种标准化的通信协议,使AI工具和服务能够无缝交互, 其中服务器暴露具有定义的输入/输出模式的操作(“工具”),而客户端可以动态地发现、调用和使用它们。 <br /> 在这个生态系统中,MCP服务器充当网关,暴露AI能力、工作流或API——通常带有流式输出——而MCP客户端,通常是AI代理或应用程序,发现并调用这些工具来执行任务。 <br /> <br /> <b>MCProxy</b>作为MCP服务器的代理层,封装您的现有REST API,使AI客户端能够使用MCP协议与您的服务进行交互,而无需更改底层API。
部署MCProxy非常简单:
构建Docker镜像:
docker build -t mcp-proxy:<version> .
准备配置文件
定义您希望暴露给MCP客户端的端点。默认情况下,MCProxy会查找config.json。
挂载配置文件
将其挂载到您的Docker容器、Kubernetes Pod或部署中。
暴露MCProxy
通过您首选的路由或入口方法使服务可访问。
💡 您可以在./dev/目录下的示例中获得配置和设置的灵感。
一旦部署完成,MCP客户端就可以连接到MCProxy并访问您允许的数据——无需额外编码。
| 变量 | 描述 | 默认值 |
|---|---|---|
CONFIG_FILE | 配置文件的完整路径。 | ./config.json |
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "API端点模式",
"type": "object",
"required": [
"version",
"endpoints"
],
"properties": {
"version": {
"type": "string",
"description": "模式或API定义的版本"
},
"endpoints": {
"type": "array",
"description": "API端点列表",
"items": {
"type": "object",
"required": [
"name",
"description",
"url",
"method"
],
"properties": {
"name": {
"type": "string",
"description": "端点的唯一名称"
},
"description": {
"type": "string",
"description": "端点的简短描述"
},
"url": {
"type": "string",
"format": "uri",
"description": "端点的基础URL"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"description": "要使用的HTTP方法"
},
"path_params": {
"type": "array",
"description": "路径参数列表",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"query_params": {
"type": "array",
"description": "查询参数列表",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
配置文件示例:./dev/deployment/docker/endpoints.json
设置环境,包括:
cd ./dev/deployment/docker
docker compose up -d
要测试默认配置,您可以使用可用脚本,例如:
cd ./dev/scripts
python3 test_list_tools.py
<b>注意:</b> Nginx和http-https-echo仅用于示例Docker Compose设置,并未捆绑在此项目中。
MCProxy的创建者不对通过您配置的端点无意泄露的数据负责。确保您暴露的端点不泄漏敏感或不必要的信息是您的责任。