# rust_mcp
a minimal rust implementation of the model completion protocol (MCP) server for building ai assistant tools.
## overview
rust_mcp is a lightweight library that lets you build custom tools for ai assistants like claude using the model completion protocol. it handles the json-rpc communication layer and provides a simple api for registering tool handlers.
## features
- simple async api for registering tool handlers
- json schema validation for tool parameters
- bidirectional communication over stdin/stdout
- minimal dependencies
## usage
add to your project:
```bash
cargo add rust_mcp
```
import and use the library:
```rust
use rust_mcp::McpServer;
use serde_json::json;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// create a new mcp server
let mut server = McpServer::new("my-tool-server", "0.1.0");
// register your tools
server.add_tool(
"my_tool",
"Tool description",
your_schema,
your_handler
);
// start the server
server.run_stdio().await?
Ok(())
}
```
see the examples directory for complete working examples.
## mcp integration
this library allows your tools to be used directly by ai assistants that support the model completion protocol, providing seamless integration with systems like claude code.
## implementation details
the server communicates over stdin/stdout using json-rpc messages defined by the mcp spec. tool handlers are async functions that take json parameters and return json results.