mcp-server-claude-chat
An MCP (Model Context Protocol) server for the Anthropic Claude Messages API. Built in Rust, it exposes chat, vision, live web search, and model listing as MCP tools — so any MCP client (Claude Desktop, Claude Code, etc.) can consult Claude as a tool.
Communicates via stdio using JSON-RPC 2.0, like all the other MCP servers in this collection. Structurally it mirrors mcp-server-grok-chat / mcp-server-gpt-chat, adapted to Anthropic's API shape.
Subscription vs. API credits
This server uses the Anthropic API with an API key (API credits). That is the only supported, terms-compliant way to drive Claude from a third-party tool.
A Claude Pro/Max subscription (the kind that powers Claude Code and the Claude apps) is not usable here: that authentication is licensed for Anthropic's own first-party clients, and routing it through a custom server would violate Anthropic's Consumer Terms — the "$200 of Claude usage from another service" concern you raised. So: API key it is. (If you run an Anthropic-compatible gateway, point base_url at it — see Configuration.)
Tools
Note: Anthropic has no embeddings endpoint (they recommend Voyage AI), so unlike the grok/gpt servers there is no
embeddingtool.
chat
chat_with_vision
chat_with_search
Web search is billed by Anthropic at $10 per 1,000 searches on top of token costs, and an org admin must enable web search in the Claude Console.
list_models
No parameters. Results cached for 5 minutes.
Prerequisites
- Rust (edition 2024)
- An Anthropic API key from console.anthropic.com
Setup
mkdir -p ~/.config/mcp-server-claude-chat
cp config.toml.example ~/.config/mcp-server-claude-chat/config.toml
# then edit it and set api_key
Config (~/.config/mcp-server-claude-chat/config.toml):
api_key = "sk-ant-..."
# Optional:
# base_url = "https://api.anthropic.com/v1" # or a compatible gateway
# default_model = "claude-opus-4-8"
# default_max_tokens = 4096
The server fails fast at startup if the config is missing or api_key is empty.
Build
cargo build --release # produces target/release/claude-chat
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run
cargo test # unit tests (response formatting, validation, message building)
MCP Configuration
Claude Desktop (~/.config/Claude/claude_desktop_config.json) or any MCP client:
{
"mcpServers": {
"claude-chat": {
"command": "/media/codechap/4TB/develop/mcps/mcp-server-claude-chat/target/release/claude-chat"
}
}
}
Claude Code:
claude mcp add claude-chat -- /media/codechap/4TB/develop/mcps/mcp-server-claude-chat/target/release/claude-chat
Project Structure
src/
main.rs - entry point, config loading, stdio transport setup
server.rs - MCP tool definitions (chat, chat_with_vision, chat_with_search, list_models)
api.rs - Anthropic HTTP client, Messages/Models types, response formatter
params.rs - tool parameter types with serde + JSON Schema derives
config.rs - TOML config loading
License
MIT