使用说明
mcp服务器游乐场
一个基于Rust的MCP(模型上下文协议)服务器,为AI代理提供了两个工具: 日历 和 联系人,模拟数据由本地JSON文件支持。
概述
此项目通过以下方式实现MCP服务器 可流式传输的HTTP 运输,跟随 MCP规范(2025-03-26)。它是Rust中MCP服务器开发的学习/游乐场项目。
服务器公开了一个 /mcp 支持三种HTTP方法的端点:
POST /mcp--客户端发送JSON-RPC请求(单次或批量);服务器以JSON进行响应。会话ID通过Mcp-Session-Id头球GET /mcp--为服务器启动的消息打开被动SSE流(需要Mcp-Session-Id头球DELETE /mcp--终止会话(需要Mcp-Session-Id头球
工具
calendar--查询和搜索日历事件(列表、按ID获取、搜索、按类别/日期/优先级过滤)contacts--查询和搜索联系人(列表、按ID获取、搜索、按标签过滤、收藏夹)
数据
所有数据均通过本地JSON文件进行模拟:
calendar.json--12个活动,包括参与者、地点、重复、提醒contacts.json--17个联系人,包括电话号码、电子邮件、地址、社交资料
建筑
cargo build
跑步
服务器在上启动HTTP服务器 127.0.0.1:3000 默认情况下。
cargo run
要启用调试日志记录,请执行以下操作:
RUST_LOG=debug cargo run
快速开始使用curl
发送一个 initialize 请求(要求服务器正在运行):
curl -X POST http://127.0.0.1:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
预期输出——具有服务器功能的JSON-RPC响应和 Mcp-Session-Id 响应标头:
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":false}},"serverInfo":{"name":"mcp-server-playground","version":"0.1.0"}}}
例子
跑吧 initialize 示例以查看完整的MCP生命周期握手(POST /mcp → 初始化→ 已初始化):
cargo run --example initialize
测试
cargo test
总共119个测试:14个在线单元测试(pub(crate) 内部构件)+105次集成测试 tests/.
项目结构
看 建筑.md 用于完整的模块结构和设计决策。
方法论
该项目遵循 设计来源 在人工智能的帮助下进行结构化Rust开发的方法。
许可证
麻省理工学院