Rust文档解析服务

一个基于Model Context Protocol (MCP)的服务器,用于解析Rust项目文档并提取请求项的详细信息,通过标准输入/输出进行通信。

  • by automataIA
  • Rust
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 automataIA/mcp-rustdoc-parser

使用说明

📚 MCP Rust文档解析器服务器

一个模型上下文协议(MCP)服务器,它解析Rust项目文档并提取有关请求项的详细信息,通过stdio传输进行通信。

✨ 特性

  • 🔍 解析Rust文档:从Rust库生成markdown文档
  • 🧩 提取项目详细信息:从文档中查找和提取特定项(函数、结构、枚举)
  • 🔄 标准运输:使用标准输入/输出进行简单高效的通信
  • 🛠️ MCP兼容:完全符合模型上下文协议规范
  • 📊 异步处理:与Tokio一起构建,实现高效的异步操作

🚀 安装

先决条件

  • Rust and Cargo(最新稳定版本)
  • 对于文档生成: rustdoc-json 和 rustdoc-md 工具

设置

  1. 克隆存储库:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs
  1. 构建项目:
cargo build

🔧 用法

运行服务器

cargo run --bin doc_parser_server

MCP检验员测试

可以使用以下工具测试服务器 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:错误处理

🧪 测试

手动测试

  1. 启动服务器:
cargo run --bin doc_parser_server
  1. 使用MCP检查器发送请求并查看响应:
npx @modelcontextprotocol/inspector cargo run --bin doc_parser_server
  1. 打开http://localhost:6274并使用“工具”选项卡测试 parse_docs 工具

自动化测试

运行测试套件:

cargo test

🤝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

🙏 致谢