mcp-rustdoc-parser

The mcp-rustdoc-parser is a tool designed to parse Rust documentation and generate structured data. This tool facilitates the visualization and management of documentation within Rust projects. By converting Rust documentation into JSON format, it enables seamless integration with other tools.

GitHub Stars

2

User Rating

Not Rated

Favorites

0

Views

16

Forks

1

Issues

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