A Model Context Protocol (MCP) server that parses Rust project documentation and extracts detailed information about requested items, communicating over stdio transport.
- 🔍 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
- Rust and Cargo (latest stable version)
- For documentation generation:
rustdoc-json
andrustdoc-md
tools
- Clone the repository:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs
- Build the project:
cargo build
cargo run --bin doc_parser_server
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
The server exposes the following MCP tool:
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
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
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
- 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
Run the test suite:
cargo test
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
This project is licensed under the MIT License - see the LICENSE file for details.
- Model Context Protocol for the protocol specification
- Rust MCP SDK for the Rust implementation of the MCP protocol