| Filename | Latest commit message | Latest commit date |
|---|---|---|
The License section named MIT. LICENSE is a transition file: new code contributions are Apache-2.0, documentation excluding specifications is CC-BY-4.0, and only earlier contributions without relicensing consent stay MIT. "Rust (stable)" understates the floor. rmcp, darling and time declare rust-version 1.88, and cargo metadata resolves both crates to 1.88. The Ruby aside said 3.3 also satisfies the gems. anthropic requires >= 3.2.0 and mcp >= 2.7.0, so the gem floor was 3.2, and 3.2 reached EOL on 2026-03-31. CI runs 3.4, which is what the READMEs now state. The Go and Rust clients take a command plus arguments, not a path to a server script. Removed the commit-message convention, which is attributed to the MCP contributing guidelines but does not appear in them. Added the AI_POLICY.md link that CONTRIBUTING.md points to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GdvHa5MzDw33PEz3DbTaJD |
||
| .. | ||
| src | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
An LLM-Powered Chatbot MCP Client written in Rust
An interactive chatbot MCP client: it launches an MCP server over stdio, lists its tools, and hands them to Claude, which can call them while answering your questions.
This example accompanies the Build an MCP client tutorial.
Prerequisites
- Rust 1.88+ and Cargo
- An Anthropic API key (optional — see below)
Setup
Export your API key, or put it in a .env file in this directory (the .env file is optional):
export ANTHROPIC_API_KEY=your-api-key-here
Run the client
Pass the command that starts the server — a binary or a script — after --:
cargo run -- ../weather-server-rust/target/release/weather
(Build the server first with cargo build --release in its directory.)
Type a question (for example, "What's the weather in Sacramento?") and Claude answers using the server's tools. Type quit to exit.
Without an ANTHROPIC_API_KEY, the client still connects, prints the server's tools, and exits — useful for verifying the MCP wiring without credentials.
Structured content
rmcp does not validate tool output, so this client compiles each declared outputSchema at connect time and checks results against it — the spec's client-side SHOULD. It uses the jsonschema crate, which rmcp's own documentation recommends.
The two channels go to different readers: content is forwarded to the model, while structured_content is used as data — the client counts the items it returns. See Structured Content.