Claude Chat MCP
Servidor MCP para la API de Mensajes de Anthropic Claude: chat, visión, búsqueda web, pensamiento extendido (Rust)
Documentación
mcp-server-claude-chat
Un servidor MCP (Model Context Protocol) para la API de mensajes de Anthropic Claude. Construido en Rust, expone chat, visión, búsqueda web en vivo y listado de modelos como herramientas MCP — de modo que cualquier cliente MCP (Claude Desktop, Claude Code, etc.) pueda consultar a Claude como herramienta.
Se comunica mediante stdio usando JSON-RPC 2.0, como todos los demás servidores MCP de esta colección. Estructuralmente refleja mcp-server-grok-chat / mcp-server-gpt-chat, adaptado a la forma de la API de Anthropic.
Suscripción vs. créditos de API
Este servidor utiliza la API de Anthropic con una clave de API (créditos de API). Es la única forma compatible con los términos de uso de impulsar Claude desde una herramienta de terceros.
Una suscripción Pro/Max de Claude (el tipo que impulsa Claude Code y las aplicaciones de Claude) no es utilizable aquí: esa autenticación está licenciada para los clientes propios de Anthropic, y enrutarla a través de un servidor personalizado violaría los Términos de Consumo de Anthropic — la preocupación de "$200 de uso de Claude desde otro servicio" que planteaste. Así que: clave de API. (Si ejecutas una puerta de enlace compatible con Anthropic, apunta base_url a ella — ver Configuración.)
Herramientas
| Herramienta | Descripción |
|---|---|
chat | Envía un mensaje a Claude. Admite historial de múltiples turnos, un prompt de sistema, selección de modelo y pensamiento extendido mediante thinking_budget. |
chat_with_vision | Analiza una imagen dada una URL de imagen y un prompt de texto. |
chat_with_search | Chatea con búsqueda web en vivo — Claude busca en el servidor y responde con fuentes citadas. |
list_models | Lista los modelos de Claude disponibles y sus IDs (almacenados en caché durante 5 minutos). |
Nota: Anthropic no tiene un endpoint de embeddings (recomiendan Voyage AI), así que a diferencia de los servidores grok/gpt no hay una herramienta
embedding.
chat
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
prompt | string | sí | El mensaje del usuario a enviar |
system_prompt | string | no | Prompt de sistema para establecer contexto/comportamiento |
messages | string | no | Historial de conversación como un array JSON de objetos {role, content} (roles: solo user/assistant — usa system_prompt para instrucciones de sistema) |
model | string | no | ID del modelo (predeterminado: predeterminado del servidor, claude-opus-4-8). Llama a list_models. |
temperature | float | no | Temperatura de muestreo (0.0–1.0). Se ignora cuando thinking_budget está establecido. |
max_tokens | integer | no | Máximo de tokens a generar (por defecto el predeterminado del servidor) |
thinking_budget | integer | no | Habilita el pensamiento extendido con este presupuesto de tokens (mínimo 1024). El razonamiento se devuelve en un bloque [thinking]; max_tokens se eleva automáticamente por encima del presupuesto. |
chat_with_vision
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
prompt | string | sí | Prompt de texto que describe qué analizar |
image_url | string | sí | URL de la imagen (debe ser http:// o https://) |
model | string | no | ID de modelo con capacidad de visión (predeterminado: predeterminado del servidor) |
temperature | float | no | Temperatura de muestreo (0.0–1.0) |
max_tokens | integer | no | Máximo de tokens a generar |
chat_with_search
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
prompt | string | sí | El mensaje del usuario |
system_prompt | string | no | Prompt de sistema |
model | string | no | ID del modelo (predeterminado: predeterminado del servidor) |
temperature | float | no | Temperatura de muestreo (0.0–1.0) |
max_tokens | integer | no | Máximo de tokens a generar |
max_uses | integer | no | Máximo de búsquedas web que Claude puede ejecutar para esta solicitud (predeterminado: 5) |
La búsqueda web se factura por Anthropic a $10 por 1.000 búsquedas además de los costos de tokens, y un administrador de la organización debe habilitar la búsqueda web en la Consola de Claude.
list_models
Sin parámetros. Resultados almacenados en caché durante 5 minutos.
Requisitos previos
- Rust (edición 2024)
- Una clave de API de Anthropic de console.anthropic.com
Configuración
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
Configuración (~/.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
El servidor falla rápidamente al inicio si la configuración falta o api_key está vacío.
Compilación
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)
Configuración de MCP
Claude Desktop (~/.config/Claude/claude_desktop_config.json) o cualquier cliente MCP:
{
"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
Estructura del proyecto
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
Licencia
MIT