mcp-rustdoc-parser
mcp-rustdoc-parserは、Rustのドキュメントを解析し、構造化されたデータを生成するツールです。このツールは、Rustのプロジェクトにおけるドキュメントの可視化や管理を容易にします。特に、RustのドキュメントをJSON形式に変換することで、他のツールとの連携が可能になります。
GitHubスター
2
ユーザー評価
未評価
お気に入り
0
閲覧数
11
フォーク
1
イシュー
0
📚 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