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-jsonandrustdoc-mdtools
- Clone the repository:
git clone https://github.com/yourusername/mcp-rs.git
cd mcp-rs- Build the project:
cargo buildcargo run --bin doc_parser_serverThe 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_serverThen 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 diagnosticsserdeandserde_json: JSON serialization/deserializationregex: Pattern matching for documentation parsinganyhowandthiserror: 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_docstool
Run the test suite:
cargo testContributions 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