mcp-rustdoc-parser

automataIA/mcp-rustdoc-parser

3.3

If you are the rightful owner of mcp-rustdoc-parser and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The MCP Rust Documentation Parser Server is an experimental server that parses Rust project documentation, extracting detailed information about requested items using the Model Context Protocol over stdio transport.

๐Ÿ“š 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