- Build project:
cargo build - Run STDIN/STDOUT server:
cargo run --bin stdio-server - Run HTTP/SSE server:
cargo run --bin axum-docs - Run tests:
cargo test - Run specific test:
cargo test test_name - Format code:
cargo fmt - Check code:
cargo clippy
- Naming: Use snake_case for functions/variables, CamelCase for types/structs
- Error Handling: Use
Result<T, ToolError>for functions that can fail - Imports: Organize imports by external crates first, then internal modules
- Async: Use async/await with proper error propagation using
?operator - Documentation: Include doc comments for public functions and structs
- Error Messages: Be specific and descriptive in error messages
- Caching: Implement caching for repeated operations when appropriate
- Responses: Return structured responses via
Content::text()
- Implements MCP protocol for Rust documentation tools
DocRouteris the core component for handling tool requests- Uses reqwest for API requests, tokio for async runtime
- Async handlers for all tool implementations