Back to MCP directory
publicPublicdnsLocal runtime

MCP Host CLI

一个基于Node.js的MCP主机应用,用于连接和管理多个MCP服务器

article

README

🚀 mcp-host-use

mcp-host-use 是一个基于 Node.js 的 Model Context Protocol (MCP) 主机应用程序,用于连接和管理多个 MCP 服务器。Host 提供了统一的接口,允许客户端通过 HTTP API 与多个 MCP 服务器进行交互,访问及调用工具(或资源)。

🚀 快速开始

mcp-host-use 是一个强大的基于 Node.js 的应用程序,可帮助你轻松连接和管理多个 MCP 服务器。下面为你介绍使用方法:

一、使用 npm 包方式:

npm install -g mcp-host-use
mcp-host-use --start

二、本地构建运行:

git clone [仓库地址]
cd mcp-hostuse
npm install
node index.js

✨ 主要特性

  1. 支持多 MCP 服务器连接:可以同时连接和管理多个 MCP 服务器,并通过配置文件进行动态扩展。
  2. 多种数据传输方式
    • STDIO 通信:支持通过标准输入输出与外部进程交互。
    • Server-Sent Events (SSE):实现了对实时事件推送的支持。
  3. 统一的 HTTP API 接口:提供以下功能:
    • 获取所有工具列表
    • 调用特定工具
    • 获取所有资源信息
    • 读取特定资源内容
    • 更新服务器连接配置

📦 安装指南

环境要求

  • Node.js:需要安装 Node.js (推荐使用 v14 或更高版本)
  • npx:建议全局安装 npx 工具
  • uvx:如果需要使用 UVX 协议,需预先安装 Python 环境

💻 使用示例

基础用法

配置文件

配置文件路径config/servers.json

示例 JSON 格式

[
    {
        "name": "server1",
        "type": "stdio",  # 或 'sse'
        "command": "node server.js"
    },
    {
        "name": "server2",
        "type": "sse",
        "url": "http://localhost:3000"
    }
]

高级用法

注意事项

⚠️ 重要提示

  1. 服务默认运行在 17925 端口,可通过配置文件修改。
  2. 配置文件位于项目根目录下的 config/servers.json 文件中。
  3. 如果使用 stdio 类型,请确保目标进程支持标准输入输出通信;如果使用 SSE 类型,需保证目标服务器正确实现了 Server-Sent Events 协议。

📚 详细文档

项目架构

graph TD
    A[客户端] --> B[HTTP API]
    B --> C[MCP Host]
    C --> D[多个 MCP 服务器连接]

项目结构

mcp-host-use/
├── index.js          # 主程序入口
├── config.js        # 配置文件管理
├── connections.js   # MCP 服务器连接管理
├── tools.js         # 工具接口实现
└── resources.js     # 资源管理模块

📄 API 文档

一、获取所有工具列表

GET http://localhost:17925/api/tools

响应示例:

{
  "code": 0,
  "data": [
    {
      "server_name": "服务器1",
      "tools": [
        {
          "name": "工具名称",
          "description": "工具描述",
          "inputSchema": { ... }
        }
      ]
    }
  ]
}

二、调用特定工具

POST http://localhost:17925/api/tools/toolCall
Content-Type: application/json

{
  "server_name": "服务器名称",
  "tool_name": "工具名称", 
  "tool_args": { ... }
}

响应示例:

{
  "code": 0,
  "data": {
    "result": "工具执行结果"
  }
}

三、获取所有资源信息

GET http://localhost:17925/api/resources

响应示例:

{
  "code": 0,
  "data": [
    {
      "server_name": "服务器1",
      "resources": [
        {
          "uri": "资源URI",
          "mimeType": "资源类型",
          "name": "资源名称"
        }
      ]
    }
  ]
}

四、读取特定资源内容

POST http://localhost:17925/api/resources/read
Content-Type: application/json

{
  "server_name": "服务器名称",
  "resource_uri": "资源URI"
}

响应示例:

{
  "code": 0,
  "data":  [
    {
      "content": "...", 
      "mimeType": "text/plain"
    }
  ]
}

五、更新服务器连接配置

POST http://localhost:17925/api/connections/update
Content-Type: application/json

{
  "server_name": "目标服务器名称",
  "new_config": {
    # 新的服务器配置信息
  }
}

📄 许可证

[TODO: 添加许可证信息]

贡献者

[TODO: 添加贡献者列表]

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client