使用说明
演示MCP服务器(Koa+JSON-RPC 2.0)
最低限度 Koa 服务器说 模型上下文协议 (MCP)通过纯 JSON-RPC 2.0.
它公开了两种方法:
server.manifest–能力握手context.provide-返回演示“上下文块”基于topic帕拉姆
将其用作学习支架或种子,以获得更丰富的MCP工具。
需求
| 工具 | 版本(已测试) | 注释 |
|---|---|---|
| Node.js | ≥14 LTS | 通过ES模块支持 "type": "module" |
| npm | ≥8 | 附带Node 16+ |
| 套餐 | koa, koa-bodyparser, json-rpc-2.0 |
安装
git clone git@github.com:jsamos/koa-mcp-demo.git
cd koa-mcp-demo
npm install
运行服务器
npm start # or: node server.js
服务器正在监听 http://localhost:4000 (用覆盖 PORT env)。
JSON-RPC端点
1. server.manifest
宣传服务器功能的握手。
curl -X POST http://localhost:4000/ -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"server.manifest"}'
响应
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"name": "example-mcp-server-koa",
"version": "0.0.1",
"methods": ["context.provide"]
}
}
2. context.provide
返回单个演示块。
curl -X POST http://localhost:4000/ -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":2,"method":"context.provide","params":{"topic":"nextjs-routing"}}'
响应
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"chunks": [
{
"text": "You asked for context on: nextjs-routing",
"source": "demo"
}
],
"done": true
}
}
项目结构
demo-mcp-koa/
├─ package.json
├─ server.js # main Koa + JSON-RPC logic
└─ README.md
因为回购 package.json 套 "type": "module",每 .js 文件被解析为 ES模块.
如果你需要CommonJS兼容性,替换所有 import … from 随着 require() 并删除 "type" 现场。
扩展服务器
-
添加新方法
rpc.addMethod("context.search", async ({ query }) => { /* ... */ }); -
流式传输大量输出 通过返回部分块
done: false,然后是最后一块done: true. -
双向工作流程:实现以下方法
elicitation/create一旦您的客户支持MCP的交互式扩展。
