MCP Compose
使用说明
-
项目简介
- MCP Compose 是一个用于管理和编排多个 MCP 服务器的后端平台。它能够自动发现、组合来自不同 MCP 服务器的工具、提示和资源,提供统一的访问入口,并通过多种传输协议与客户端进行交互,同时附带 REST API 和基于 Web 的管理界面,方便监控、配置和扩展。
-
主要功能点
- 多服务器编排与管理:同时启动、停止、监控多个 MCP 服务器,统一对外暴露工具和提示。
- 资源、工具、 prompts 的集中发现与合并:从各个子服务器聚合可用资源、工具和提示,支持命名冲突的规则配置(前缀/后缀/覆盖等)。
- 协议转换与传输支持:提供 STDIO、SSE、Streamable HTTP 等传输方案的对接与转换能力,方便与不同类型的 MCP 服务对接。
- 安全与认证:内置认证与授权框架,支持不同的认证方式,并可对工具访问进行细粒度控制。
- REST API 与 Web UI:提供完整的 REST API 与现代化的 Web UI,用于查看、配置、监控和操作 MCP 服务。
- 运行时监控与度量:集成监控与指标系统,实现对服务器、工具、请求等的观测。
-
安装步骤
- 该仓库在 Python 环境中即可使用。常见的安装步骤包括:
- 获取代码后在根目录执行安装:
- 通过源码安装并开启开发环境,安装依赖。
- 按需要启动 UI(前端)和后端服务,或使用 Docker 进行编排部署。
- 获取代码后在根目录执行安装:
- 具体的安装与运行请参考仓库提供的文档与示例(文档中包含部署、运行和测试的详细步骤)。
- 该仓库在 Python 环境中即可使用。常见的安装步骤包括:
-
服务器配置(面向 MCP 客户端的配置说明)
- MCP 客户端需要配置一个 MCP 服务器的启动信息,以便建立与 MCP 服务器的连接。配置内容以 JSON 形式描述,包含以下字段:
- name: 服务器标识名称,例如 filesystem、calculator 等,需唯一。
- command: 启动服务器的命令,例如 "python"。
- args: 启动命令的参数数组,例如 ["-m", "mcp_server_filesystem", "/data"]。
- transport: 传输协议,常见值为 "stdio"、"streamable-http" 等,决定与服务器沟通的底层传输方式。
- auto_start: 是否在 MCP Compose 启动时自动启动该服务器(true/false)。
- 示例(简化展示,实际使用请以需求为准): { "servers": [ { "name": "filesystem", "command": "python", "args": ["-m", "mcp_server_filesystem", "/data"], "transport": "stdio", "auto_start": true }, { "name": "calculator", "command": "python", "args": ["-m", "mcp_server_calculator"], "transport": "stdio", "auto_start": true } ] }
- 注释说明
- name 是 MCP Compose 所暴露的服务器名称,也是工具与资源的来源标签。
- command 与 args 共同构成启动子服务器的完整命令,用于在本地以子进程形式启动 MCP 服务器。
- transport 指定与子服务器通信的传输协议。若使用 STDIO 传输,需要确保子服务器支持 MCP 的 JSON-RPC 协议。
- auto_start 控制是否在 MCP Compose 启动时自动启动该子服务器。
- MCP 客户端需要配置一个 MCP 服务器的启动信息,以便建立与 MCP 服务器的连接。配置内容以 JSON 形式描述,包含以下字段:
-
基本使用方法
- 启动与管理
- 使用 MCP Compose 的命令行界面(CLI)或 API 来启动、停止和监控编排后的 MCP 服务器集合。
- 通过 UI 可以实时查看服务器状态、工具、日志和指标,便于运维和调试。
- 使用要点
- 通过“发现/编排”流程,将各子服务器的工具、提示和资源合并到统一的服务中,并将它们暴露给 LLM 客户端。
- 使用合适的冲突解决策略,确保同名工具/提示不会产生冲突(前缀、后缀、覆盖等选项)。
- 如需对传输链路进行优化,可以选择带有协议翻译的传输模式(如 Streamable HTTP),以提升性能和可扩展性。
- 启动与管理
-
运行与监控要点
- 运行时监控:系统提供实时指标、日志与健康检查,便于排查工具执行、资源访问和 API 调用中的问题。
- 安全性:默认开启 token/认证机制,确保 MCP 服务对外暴露的接口受到保护,避免未授权访问。
-
更多信息
- 项目提供了丰富的架构、示例与 API 文档,包含对工具发现、冲突解决、传输协议、远程工具代理等功能的详细说明。建议结合官方文档进行逐步落地。