MCP Hello World 服务器
一个概念验证的模型上下文协议(MCP)服务器,提供基本的数学运算和“hello-world”问候功能。该服务器展示了如何构建一个与MCP兼容的工具服务器,以便与MCP客户端进行集成。
特点/功能
- 双接口支持MCP stdio协议和HTTP REST API
- 数学工具加、减、乘、除运算
- “Hello World Tool”翻译成中文是“你好,世界工具”。不过,这个翻译可能根据具体上下文有所调整,因为“Hello World”通常是一个编程示例或问候语,而“Tool”指的是工具,所以“你好,世界工具”可能是一个比较直译且略显生硬的表达。在实际应用中,可能会根据具体语境采用更自然的表述方式简单的问候功能
- 类型安全的实现适当的输入验证和错误处理
- 全面测试包含TypeScript测试套件
可用工具
| 工具 | 描述 | 参数 |
|---|---|---|
hello-world | 返回一个简单的问候语 | 无 |
add | 加两个数 | a (数字), b (数字) |
subtract | 用第一个数减去第二个数 | a (数字), b (数字) |
multiply | 乘以两个数 | a (数字), b (数字) |
divide 将第一个数除以第二个数 a (数字), b (数字) |
入门指南
先决条件
- Node.js(v18或更高版本)
- npm 或 yarn
安装
- 克隆或下载此项目
- 安装依赖项:
npm install运行服务器
MCP协议(标准输入输出)
npm run start:mcp
# or
node server.js --stdioHTTP服务器
npm start
# or
node server.jsHTTP服务器将在 http://localhost:3000
用法
HTTP API
列出可用工具
GET http://localhost:3000/tools执行一个工具
POST http://localhost:3000/tools/add
Content-Type: application/json
{
"a": 5,
"b": 3
}示例回答
// GET /tools
{
"tools": ["hello-world", "add", "subtract", "multiply", "divide"]
}
// POST /tools/add with {"a": 5, "b": 3}
{
"result": "5 + 3 = 8"
}
// POST /tools/hello-world
{
"result": "Hello, world!"
}MCP协议
该服务器还支持通过标准输入输出(stdio)使用标准MCP协议,以便与MCP客户端集成:
列出工具请求
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}呼叫工具请求
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "add",
"arguments": {
"a": 10,
"b": 5
}
}
}测试
运行综合测试套件:
npm test这将运行TypeScript测试客户端,该客户端:
- ✅ 测试工具列表功能
- ✅ 测试工具执行
- ✅ 测试对未知工具的错误处理
- ✅ 提供详细的日志记录和清理功能
测试输出示例
🧪 TypeScript MCP Hello-World Test Client
✅ Server started successfully!
=== 📋 Test 1: List Available Tools ===
📤 Sending tools/list request: {...}
📥 Server: {...}
=== 👋 Test 2: Call Hello-World Tool ===
📤 Sending tools/call request: {...}
📥 Server: {...}
=== ❌ Test 3: Call Unknown Tool (Error Test) ===
📤 Sending tools/call request: {...}
📥 Server: {...}
🎉 All tests completed successfully!错误处理
该服务器具备强大的错误处理功能:
- 类型验证确保数值参数确实是数字
- 除以零防止除以零的操作
- 未知工具为不存在的工具返回适当的错误信息
- JSON-RPC 合规性遵循JSON-RPC 2.0规范进行错误响应
项目结构
├── server.js # Main server implementation
├── test-hello-world.ts # Comprehensive test suite
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file发展
脚本
npm start- 启动HTTP服务器npm run start:mcp- 启动MCP stdio服务器npm test- 运行测试套件npm run test:build- 构建并运行测试
添加新工具
- 添加工具定义到
availableMCPTools数组 - 在(相应位置)实现工具逻辑
executeMCPTool函数 - 更新测试中的(内容/项目)
test-hello-world.ts - 更新这个README文件
贡献;做出贡献
- 为项目创建分支
- 创建一个特性分支
- 为新功能添加测试
- 确保所有测试都通过
- 提交一个拉取请求
许可证
ISC许可证
