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
✨ 主要特性
- 支持多 MCP 服务器连接:可以同时连接和管理多个 MCP 服务器,并通过配置文件进行动态扩展。
- 多种数据传输方式:
- STDIO 通信:支持通过标准输入输出与外部进程交互。
- Server-Sent Events (SSE):实现了对实时事件推送的支持。
- 统一的 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"
}
]
高级用法
注意事项
⚠️ 重要提示
- 服务默认运行在
17925端口,可通过配置文件修改。- 配置文件位于项目根目录下的
config/servers.json文件中。- 如果使用
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: 添加贡献者列表]
微信扫一扫