📚 MCP Rust文档解析器服务器
一个模型上下文协议(MCP)服务器,它解析Rust项目文档并提取有关请求项的详细信息,通过stdio传输进行通信。
✨ 特性
- 🔍 解析Rust文档:从Rust库生成markdown文档
- 🧩 提取项目详细信息:从文档中查找和提取特定项(函数、结构、枚举)
- 🔄 标准运输:使用标准输入/输出进行简单高效的通信
- 🛠️ MCP兼容:完全符合模型上下文协议规范
- 📊 异步处理:与Tokio一起构建,实现高效的异步操作
🚀 安装
先决条件
- Rust and Cargo(最新稳定版本)
- 对于文档生成:
rustdoc-json和rustdoc-md工具
设置
- 克隆存储库:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs- 构建项目:
cargo build🔧 用法
运行服务器
cargo run --bin doc_parser_serverMCP检验员测试
可以使用以下工具测试服务器 MCP检查员 工具:
# Install and run the MCP Inspector
RUST_LOG=debug npx @modelcontextprotocol/inspector cargo run --bin doc_parser_server
# In another terminal, run the server
cargo run --bin doc_parser_server然后打开检查器http://localhost:6274并使用以下方式连接到您的服务器:
- 传输类型:STDIO
- 指令:货物
- 参数:run--bin doc_parser_server
API
服务器公开以下MCP工具:
parse_docs
解析Rust项目文档并提取有关特定项目的信息。
参数:
project_path:Rust项目之路library:要分析的库的名称item:要查找的项的名称(函数、结构、枚举等)
退货:
- 关于所请求项目的详细信息,包括文档、签名和其他元数据
🏗️ 建筑
服务器由以下组件构建:
- doc_parser_server.rs:使用MCP协议处理的主服务器实现
- doc_generator.rs:从Rust项目生成markdown文档
- doc_item_finder.rs:从生成的文档中提取特定项目
📦 依赖项
rmcp:MCP协议的Rust实现tokio:异步运行时tracing:日志记录和诊断serde和serde_json:JSON序列化/反序列化regex:文档解析的模式匹配anyhow和thiserror:错误处理
🧪 测试
手动测试
- 启动服务器:
cargo run --bin doc_parser_server- 使用MCP检查器发送请求并查看响应:
npx @modelcontextprotocol/inspector cargo run --bin doc_parser_server- 打开http://localhost:6274并使用“工具”选项卡测试
parse_docs工具
自动化测试
运行测试套件:
cargo test🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
- 模型上下文协议 对于协议规范
- Rust MCP SDK 用于MCP协议的Rust实现
