automataIA/mcp-rustdoc-parser
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
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
andrustdoc-md
tools
Setup
- Clone the repository:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs
- 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 projectlibrary
: Name of the library to parseitem
: 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 protocoltokio
: Asynchronous runtimetracing
: Logging and diagnosticsserde
andserde_json
: JSON serialization/deserializationregex
: Pattern matching for documentation parsinganyhow
andthiserror
: Error handling
๐งช Testing
Manual Testing
- Start the server:
cargo run --bin doc_parser_server
- Use MCP Inspector to send requests and view responses:
npx @modelcontextprotocol/inspector cargo run --bin doc_parser_server
- 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Model Context Protocol for the protocol specification
- Rust MCP SDK for the Rust implementation of the MCP protocol