HXZ SDK with MCP proxy
npm install @knno/hxz-sdk这是一个包含 MCP (Model Context Protocol) 代理的 SDK,可以将本地的 stdio MCP 请求转发到远程 HTTP MCP 服务。
- 🔄 MCP 代理: 将本地 stdio MCP 请求转发到远程 HTTP MCP 服务
- 🌐 远程服务支持: 基于配置的远程 MCP 服务
- ⚡ 高性能: 异步处理,支持并发请求
- 🛡️ 错误处理: 完善的错误处理和超时机制
- 📦 易于使用: 通过 npx 直接调用
``bash克隆项目
git clone
cd hxz/sdk
$3
`bash
npm install -g hxz-sdk
`使用方法
$3
`bash
npx hxz-mcp
`$3
在您的 MCP 客户端配置中,添加以下配置:
`json
{
"mcpServers": {
"hxz-mcp": {
"command": "npx",
"args": ["hxz-mcp"]
}
}
}
`$3
`javascript
import { MCPProxy } from 'hxz-sdk';const proxy = new MCPProxy({
type: "streamable-http",
url: "https://ai.m.cnooc/api/mcp",
disabled: false,
alwaysAllow: [],
timeout: 300
});
// 发送 MCP 请求
const request = {
jsonrpc: '2.0',
id: 1,
method: 'initialize',
params: {
protocolVersion: '2024-11-05',
capabilities: {},
clientInfo: {
name: 'my-client',
version: '1.0.0'
}
}
};
const response = await proxy.forwardRequest(request);
console.log(response);
`配置
MCP 代理的配置如下:
`typescript
const config = {
"mcpServers": {
"hxz-mcp": {
"type": "streamable-http",
"url": "https://ai.m.cnooc/api/mcp",
"disabled": false,
"alwaysAllow": [],
"timeout": 300
}
}
};
`$3
-
type: 服务类型,固定为 "streamable-http"
- url: 远程 MCP 服务的 URL
- disabled: 是否禁用服务
- alwaysAllow: 总是允许的方法列表
- timeout: 超时时间(秒)开发
$3
`
sdk/
├── src/
│ └── mcp.ts # MCP 代理实现
├── dist/ # 构建输出
├── types/
│ └── rpa.d.ts # 类型定义
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── test-mcp.js # 测试脚本
`$3
`bash
npm run build
`$3
`bash
node test-mcp.js
`工作原理
1. 启动代理: 运行
hxz-mcp 命令启动 MCP 代理
2. 接收请求: 代理通过 stdin 接收 MCP JSON-RPC 请求
3. 转发请求: 代理将请求转发到配置的远程 MCP 服务
4. 返回响应: 代理接收远程服务的响应并通过 stdout 返回$3
请求格式:
`json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "client-name",
"version": "1.0.0"
}
}
}
`响应格式:
`json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"serverInfo": {
"name": "server-name",
"version": "1.0.0"
}
}
}
``代理会处理以下错误情况:
- 网络错误: 远程服务不可用
- 超时错误: 请求超时
- 解析错误: 无效的 JSON 格式
- HTTP 错误: 远程服务返回错误状态码
所有错误都会以 MCP JSON-RPC 错误格式返回。
ISC
欢迎提交 Issue 和 Pull Request!