README
🚀 MCP 工具箱
MCP 工具箱(MCP,即 Model Configuration Protocol)致力于简化与模型配置协议相关的工作流程。用户可借助配置文件或命令行参数,轻松启动和管理 MCP 服务器,并通过统一接口与之交互。
🚀 快速开始
MCP 工具箱能让你轻松地启动和管理 MCP 服务器。启动前,你需要先完成安装,然后可根据需求配置本地或远程 MCP 服务。
✨ 主要特性
- 多方式安装:支持通过 npm 或 yarn 进行安装。
- 灵活配置:可通过配置文件或命令行参数启动本地 MCP 服务,也能连接远程 MCP 服务。
- 丰富功能:支持认证、错误输出重定向等功能,还具备实验性的远程服务支持。
📦 安装指南
你可以通过 npm 或 yarn 安装 MCP 工具箱:
npm install mcp-toolbox
# 或者
yarn add mcp-toolbox
安装完成后,可以在任意 JavaScript 文件中引入并使用它:
const mcpToolbox = require('mcp-toolbox');
// 或者
import { default as mcpToolbox } from 'mcp-toolbox';
💻 使用示例
基础用法
配置本地 MCP 服务器
const config = {
"local-server": {
command: 'node my-mcp-server.js',
args: ['--port', '3000']
}
};
// 启动服务器
mcpToolbox.start(config);
连接远程 MCP 服务
const config = {
"remote-server": {
url: 'http://example.com/mcp'
}
};
// 连接远程服务器
mcpToolbox.connect(config);
高级用法
启动本地服务器并捕获日志
const mcpToolbox = require('mcp-toolbox');
const fs = require('fs');
// 创建日志文件描述符
const logFd = fs.openSync('mcp-server.log', 'w');
const config = {
"local-mcp": {
command: './server.js',
args: ['--mode', 'production'],
cwd: '/path/to/working/dir',
stderr: logFd
}
};
// 启动服务器
mcpToolBox.start(config);
连接到需要 OAuth 认证的远程服务
const mcpToolbox = require('mcp-toolbox');
const { MyOAuthProvider } = require('./auth');
const config = {
"remote-mcp": {
url: 'https://example.com/mcp',
sseOptions: {
authProvider: new MyOAuthProvider()
}
}
};
// 连接远程服务器
mcpToolbox.connect(config);
📚 详细文档
基本配置
| 属性 | 详情 | |------|------| | command | 启动本地 MCP 服务的命令 | | args | 传递给命令的参数数组 | | url | 远程 MCP 服务的 URL |
高级配置
| 属性 | 详情 | |------|------| | cwd | 执行命令时的工作目录 | | stderr | 捕获错误输出的文件描述符 | | authProvider | 对于需要身份验证的服务,提供自定义的身份验证提供程序 |
实验性功能
远程 MCP 服务支持
对于通过 SSE(Server-Sent Events)或 WebSocket 提供的远程 MCP 服务,配置如下:
const config = {
"sse-server": {
url: `http://${sse_server_host}:${sse_server_port}`
},
"websocket-server": {
url: `ws://${websocket_server_host}:${websocket_server_port}`
}
};
认证支持
如果你的 MCP 服务需要身份验证,可以通过自定义的身份验证提供程序来实现:
class MyOAuthProvider {
authenticate() {
// 实现你的认证逻辑
}
}
const config = {
"remote-server": {
url: 'http://protected.example.com/mcp',
sseOptions: {
authProvider: new MyOAuthProvider()
}
}
};
错误输出重定向
通过指定 stderr 属性,你可以将错误输出重定向到自定义的文件或流:
const fs = require('fs');
const config = {
"local-server": {
command: 'node my-server.js',
stderr: fs.openSync('error.log', 'w')
}
};
限制
⚠️ 重要提示
- 目前仅支持通过 Node.js 启动的本地 MCP 服务。
- 对于远程服务,目前只支持 SSE 和 WebSocket 协议。
变更日志
| 版本号 | 发布时间 | 变更内容 | | ---- | ---- | ---- | | v1.0.0 | 2023-10-01 | 初始版本发布,包含基本功能和文档 | | v1.1.0 | 2023-11-01 | 新增对 WebSocket 的支持;优化了错误处理机制 |
更多文档
更多详细信息请参考 MCP 工具箱文档。
微信扫一扫