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.

Tools
1
Resources
0
Prompts
0

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