演示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的交互式扩展。
______________________________________________________________________
参考文献
-
