使用说明
项目简介
MCP Host CLI 是一个基于 Node.js 开发的 MCP 主机应用程序,它本身不是 MCP 服务器,而是一个MCP 服务器的管理和代理工具。它可以帮助用户连接和管理多个独立的 MCP 服务器,并通过统一的 HTTP API 接口,对外提供这些 MCP 服务器所提供的工具和资源访问能力。您可以将 MCP Host CLI 理解为一个 MCP 服务器的网关或者聚合层。
主要功能点
- 统一管理多个 MCP 服务器: 通过 JSON 配置文件集中管理多个 MCP 服务器连接,支持同时连接多种类型的 MCP 服务器。
- 支持多种传输协议: 支持 STDIO 和 SSE 两种 MCP 服务器客户端与服务器端的通信方式。
- 统一 HTTP API 接口: 提供简洁的 HTTP API,用于获取所有托管服务器的工具和资源列表,以及调用特定服务器上的工具和读取资源。
- 动态更新服务器连接: 无需重启 Host CLI,即可通过 API 动态更新服务器连接配置,方便灵活地调整和扩展后端 MCP 服务器。
安装步骤
推荐使用 'npx' 直接运行,无需本地构建:
npx mcp-host-cli
或者,您也可以选择本地构建:
- 克隆仓库到本地:
git clone https://github.com/liujilongObject/mcp-host-cli.git cd mcp-host-cli - 安装依赖:
npm install - 启动服务(开发模式或生产模式):
- 开发模式: 'npm run dev'
- 生产模式: 'npm run build' 后,根据您的 Node.js 环境选择执行 'production_node.exe dist/index.js' 或 'node dist/index.js'
服务器配置
MCP Host CLI 通过读取当前工作目录下的 'mcp_servers.config.json' 文件来管理 MCP 服务器连接。您需要创建或修改该文件来配置您要连接的 MCP 服务器。
'mcp_servers.config.json' 示例:
{ "mcp_servers": [ { "enabled": true, "server_name": "server-puppeteer", // 服务器名称,自定义,用于API请求时指定服务器 "type": "stdio", // 连接类型,支持 "stdio" 或 "sse" "command": "npx", // 启动服务器的命令,例如 "npx" 表示使用 npx 命令 "args": [ // 命令参数,例如 ["-y", "@modelcontextprotocol/server-puppeteer"] 表示使用 npx 运行 @modelcontextprotocol/server-puppeteer "-y", "@modelcontextprotocol/server-puppeteer" ] }, { "enabled": true, "server_name": "server-everything-sse", // 服务器名称 "type": "sse", // 连接类型,SSE "sse_url": "http://localhost:3001/sse" // SSE 服务器的 URL 地址 }, { "enabled": true, "server_name": "github", // 服务器名称 "type": "stdio", // 连接类型,stdio "command": "npx", // 启动命令 "args": [ // 命令参数 "-y", "@modelcontextprotocol/server-github" ], "env": { // 环境变量配置,如果 MCP 服务器需要环境变量,可以在这里配置 "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } ] }
配置项说明:
- 'enabled': 布尔值,'true' 表示启用该服务器连接,'false' 表示禁用。
- 'server_name': 字符串,服务器名称,用于在 API 请求中标识和指定服务器。请确保名称的唯一性。
- 'type': 字符串,连接类型,'"stdio"' 表示使用 STDIO 传输协议,'"sse"' 表示使用 SSE 传输协议。
- 'command' (当 'type' 为 '"stdio"' 时): 字符串,启动 MCP 服务器的命令。通常是可执行文件的路径或系统命令,例如 'node'、'python'、'npx' 等。
- 'args' (当 'type' 为 '"stdio"' 时): 字符串数组,传递给启动命令的参数。例如,如果命令是 'npx',参数可以是 '["-y", "@modelcontextprotocol/server-xxx"]',用于运行指定的 npm 包。
- 'env' (当 'type' 为 '"stdio"' 时,可选): 对象,用于设置 MCP 服务器运行时的环境变量。例如,某些服务器可能需要 API 密钥或访问令牌等环境变量。
- 'sse_url' (当 'type' 为 '"sse"' 时): 字符串,SSE MCP 服务器的 URL 地址。
重要提示: 您需要在 'mcp_servers.config.json' 文件中配置您想要连接的 MCP 服务器的启动命令 (command) 及其参数 (args) 或 SSE URL ('sse_url')。MCP Host CLI 自身并不提供工具或资源,它只是连接和代理您配置的 MCP 服务器。
基本使用方法
MCP Host CLI 启动后,默认运行在 'http://localhost:17925'。您可以通过以下 HTTP API 接口访问托管的 MCP 服务器的功能:
1. 获取所有工具列表:
GET http://localhost:17925/api/tools
2. 调用工具:
POST http://localhost:17925/api/tools/toolCall Content-Type: application/json 请求体 (JSON): { "server_name": "服务器名称", // 您在 mcp_servers.config.json 中配置的服务器名称 "tool_name": "工具名称", // 要调用的工具名称,从获取工具列表API中获取 "tool_args": { ... } // 工具参数,根据工具的 inputSchema 定义 }
3. 获取所有资源列表:
GET http://localhost:17925/api/resources
4. 读取特定资源:
POST http://localhost:17925/api/resources/read Content-Type: application/json 请求体 (JSON): { "server_name": "服务器名称", // 您在 mcp_servers.config.json 中配置的服务器名称 "resource_uri": "资源URI" // 要读取的资源 URI,从获取资源列表API中获取 }
5. 更新服务器连接 (动态加载配置):
POST http://localhost:17925/api/connections/update Content-Type: application/json
调用此 API 后,MCP Host CLI 会重新读取 'mcp_servers.config.json' 文件,并更新服务器连接,无需重启 MCP Host CLI 服务。
请根据您的实际 MCP 服务器配置和需求,配置 'mcp_servers.config.json' 文件,并通过上述 API 接口来使用 MCP Host CLI 提供的功能。
信息
分类
开发者工具