联系人服务器示例
一个最小的MCP服务器演示 mcp合同 --GitHub模式差异行动和 @mcp-contracts/test 合同测试库。
此repo演示了什么
此仓库有一个简单的MCP服务器(server.js)其中包含基线合同快照 contracts/baseline.mcpc.json两个CI工作流在拉取请求上运行:
架构差异 (GitHub操作)--自动:
- 从服务器捕获当前MCP工具模式
- 将它们与基线快照进行比较
- 在差异报告中发布公关评论
- 如果检测到破坏性变化,则检查失败
合同测试 (@mcp-contracts/test)--自动:
- 验证服务器架构是否符合约定
- 测试边界输入(空字符串、零值、超大有效载荷)
- 对工具输出运行行为断言
动手试一试
- 分叉此回购
- 创建分支并修改
server.js(例如,向工具添加所需参数,或删除工具) - 打开拉取请求
- 观察MCP合同检查工作流的运行并报告更改
在本地运行
标准(默认)
npm install
npm start服务器使用MCP协议通过stdio进行通信。
HTTP传输
npm run start:http
# or with a custom port:
node server.js --http 8080服务器正在监听 http://localhost:3000/mcp (默认端口3000)使用MCP流式HTTP传输。
然后,您可以使用CLI对其进行比较:
npx mcpdiff diff --live contracts/baseline.mcpc.json --url http://localhost:3000/mcp合约测试
使用以下工具运行合同一致性测试:
npm test这运行 contract.test.js 它使用 @mcp-contracts/test 致:
- 验证所有工具模式是否与合同匹配
- 发送边界输入(空字符串、零值等)并验证是否处理得当
- 对工具输出运行行为断言
您还可以直接运行CLI:
npx mcp-test run contracts/baseline.mcpc.json --command "node server.js"