使用说明

  • 项目简介 该仓库实现了一个 MCP 服务器端(Control Server),通过 FastMCP 将 mcpproxy 的 REST 控制接口映射为 MCP 工具,允许 MCP 客户端以统一的 MCP 形式调用并管理外部 MCP 服务。核心在于将 OpenAPI 规范中的端点筛选为可暴露的工具,并提供一个可运行的服务器实例,便于在 LLM 驱动的工作流中进行合规、可控的工具调用。
  • 主要功能点
    • 控制端 MCP 服务器:从 mcpproxy 的 OpenAPI 规范生成可暴露的 MCP 工具集合,只暴露对外控制相关的端点。
    • 路由筛选与暴露:通过 control_route_mapper 根据路径模式决定暴露为 TOOL 或排除为 EXCLUDE。
    • OpenAPI 驱动的工具暴露:基于 OpenAPI 描述动态创建 MCP 服务,简化后端 API 的对接。
    • 支持多传输与 JSON-RPC 风格交互:服务器端通过 MCP 的方式与 MCP 客户端进行请求/响应(在底层使用 FastMCP 提供路由和通信能力)。
    • 自带本地运行入口:提供 get_server()/main() 等入口以便直接启动。
  • 安装步骤
    • 需要 Python 环境,确保可运行 FastMCP 和相关依赖。
    • 将项目依赖安装到当前环境(如 pip install -e .)。
    • 启动控制服务器通常通过执行 control_server/server.py 提供的入口或导出 FastMCP 服务,然后以 MCP 客户端进行调用。
  • 服务器配置(JSON 配置示例,说明性描述,不涉及代码片段) { "serverName": "mcpproxy-control", "command": ["python3", "-m", "src.mcp_eval.control_server.server"], "args": [], "notes": "通过 OpenAPI 描述生成的控制工具集合对外暴露,仅暴露与 MCPProxy 控制相关的端点。若需要自定义 API Key、地址或其他连接参数,可在环境变量中配置,例如 MCPPROXY_BASE_URL、MCPPROXY_API_KEY 等。" } 说明:
    • serverName:用于标识 MCP 服务器的名称,便于在 MCP 客户端侧辨识与管理。
    • command/args:MCP 客户端启动该 MCP 服务器的命令及参数(该实现以 Python 模块入口启动为主,因此示例中给出执行入口)。
    • 该配置不要求客户端包含代码,只用于描述运行所需启动信息,实际连接由 MCP 客户端负责使用该 server 配置进行请求。
  • 基本使用方法
    • 启动服务器:按照上方命令格式启动控制服务器,确保 OpenAPI 描述与本地依赖就绪。
    • 与 MCP 客户端交互:MCP 客户端向服务器发起请求,服务器按 MCP 协议处理并返回 JSON-RPC 风格响应。
    • 监控与日志:通过服务器日志与 MCP 客户端日志,监控工具暴露情况、路由是否正确、以及对目标 mcpproxy 的控制操作是否生效。
    • 调试与扩展:如需变更暴露的工具集合,可调整 control_route_mapper 的规则,或扩展 tool 描述与路由策略。

信息

分类

网页与API