mcp-rustdoc-parser

mcp-rustdoc-parserは、Rustのドキュメントを解析し、構造化されたデータを生成するツールです。このツールは、Rustのプロジェクトにおけるドキュメントの可視化や管理を容易にします。特に、RustのドキュメントをJSON形式に変換することで、他のツールとの連携が可能になります。

GitHubスター

2

ユーザー評価

未評価

お気に入り

0

閲覧数

11

フォーク

1

イシュー

0

README
📚 MCP Rust Documentation Parser Server

MCP
Rust
License
Status

A Model Context Protocol (MCP) server that parses Rust project documentation and extracts detailed information about requested items, communicating over stdio transport.

✨ Features
  • 🔍 Parse Rust Documentation: Generate markdown documentation from Rust libraries
  • 🧩 Extract Item Details: Find and extract specific items (functions, structs, enums) from the documentation
  • 🔄 Stdio Transport: Simple and efficient communication using standard input/output
  • 🛠️ MCP Compatible: Fully compliant with the Model Context Protocol specification
  • 📊 Async Processing: Built with Tokio for efficient asynchronous operations
🚀 Installation
Prerequisites
  • Rust and Cargo (latest stable version)
  • For documentation generation: rustdoc-json and rustdoc-md tools
Setup
  1. Clone the repository:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs
  1. Build the project:
cargo build
🔧 Usage
Running the Server
cargo run --bin doc_parser_server
Testing with MCP Inspector

The server can be tested using the MCP Inspector tool:

# 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

Then open the Inspector at http://localhost:6274 and connect to your server using:

  • Transport Type: STDIO
  • Command: cargo
  • Arguments: run --bin doc_parser_server
API

The server exposes the following MCP tool:

parse_docs

Parses Rust project documentation and extracts information about a specific item.

Parameters:

  • project_path: Path to the Rust project
  • library: Name of the library to parse
  • item: Name of the item to find (function, struct, enum, etc.)

Returns:

  • Detailed information about the requested item, including documentation, signature, and other metadata
🏗️ Architecture

The server is built with the following components:

  • doc_parser_server.rs: Main server implementation with MCP protocol handling
  • doc_generator.rs: Generates markdown documentation from Rust projects
  • doc_item_finder.rs: Extracts specific items from the generated documentation
📦 Dependencies
  • rmcp: Rust implementation of the MCP protocol
  • tokio: Asynchronous runtime
  • tracing: Logging and diagnostics
  • serde and serde_json: JSON serialization/deserialization
  • regex: Pattern matching for documentation parsing
  • anyhow and thiserror: Error handling
🧪 Testing
Manual Testing
  1. Start the server:
cargo run --bin doc_parser_server
  1. Use MCP Inspector to send requests and view responses:
npx @modelcontextprotocol/inspector cargo run --bin doc_parser_server
  1. Open http://localhost:6274 and use the Tools tab to test the parse_docs tool
Automated Testing

Run the test suite:

cargo test
🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments