crimson-crab-mcp-template

Un servidor MCP en Rust listo para clonar que llama a la API de Claude de Anthropic a través del SDK crimson-crab.

Documentación

Servidor MCP impulsado por Claude en Rust (plantilla inicial)

crimson-crab-mcp-template MCP server crates.io license

Un servidor Model Context Protocol (MCP) mínimo y listo para producción, escrito en Rust, respaldado por la API de Claude de Anthropic a través del SDK crimson-crab. Expone cinco herramientas: ask_claude (envía un prompt y obtén la respuesta de Claude), chat (conversación de múltiples turnos), count_tokens (calcula el costo de un prompt sin ejecutarlo), list_models (enumera los modelos que tu clave API puede usar) y get_model (límites y metadatos para un modelo).

Úsalo como punto de partida de referencia para construir tus propias herramientas MCP impulsadas por Claude en Rust.

Usar esta plantilla

Haz clic en Usar esta plantilla en GitHub, o genera un nuevo proyecto con cargo generate:

cargo generate --git https://github.com/singhpratech/crimson-crab-mcp-template

También puedes simplemente clonarlo:

git clone https://github.com/singhpratech/crimson-crab-mcp-template

Inicio rápido

export ANTHROPIC_API_KEY=sk-ant-...
cargo run

El servidor se comunica a través de stdio, por lo que ejecutarlo directamente solo espera a que un cliente MCP se conecte. Todos los registros van a stderr — stdout está reservado para el protocolo MCP. Establece RUST_LOG=debug para registros más detallados.

Para compilar un binario optimizado al que puedas apuntar con un cliente:

cargo build --release
# -> target/release/crimson-crab-mcp-template

Conectarlo a Claude Desktop

Añade una entrada en tu configuración MCP de Claude Desktop (claude_desktop_config.json), apuntando al binario compilado y pasando tu clave API a través del entorno:

{
  "mcpServers": {
    "claude-via-crimson-crab": {
      "command": "/absolute/path/to/target/release/crimson-crab-mcp-template",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

Reinicia Claude Desktop; las herramientas ask_claude, chat, count_tokens, list_models y get_model estarán entonces disponibles.

Las herramientas

ask_claude

ParámetroTipoObligatorioDescripción
promptstringsíEl prompt a enviar a Claude.
systemstringnoPrompt de sistema opcional.

Construye una solicitud de Messages de Claude (usando por defecto el modelo claude-opus-5), llama a la API y devuelve el texto concatenado de la respuesta de Claude.

chat

ParámetroTipoObligatorioDescripción
messagesarraysíLa conversación hasta ahora, de más antigua a más reciente: {role, content} donde role es un enum restringido a "user" o "assistant". Debe terminar con un turno de usuario.
systemstringnoPrompt de sistema opcional.
modelstringnoID del modelo (por defecto, el modelo ask_claude).
max_tokensintegernoMáximo de tokens a generar (por defecto 1024).

Envía todo el historial de la conversación a Claude y devuelve la siguiente respuesta — úsalo en lugar de ask_claude cuando el llamador necesite mantener el contexto entre turnos.

count_tokens

ParámetroTipoObligatorioDescripción
promptstringsíEl prompt cuyo recuento de tokens deseas.
systemstringnoPrompt de sistema opcional para incluir en el recuento.
modelstringnoID del modelo para el recuento (los recuentos dependen del modelo).

Devuelve el número de tokens de entrada que consumiría el prompt, sin ejecutarlo — útil para estimar el costo antes de una llamada costosa.

list_models

ParámetroTipoObligatorioDescripción
limitintegernoNúmero máximo de modelos a devolver.

Devuelve el ID, nombre mostrado y fecha de lanzamiento de cada modelo de Claude disponible para la clave API configurada.

get_model

ParámetroTipoObligatorioDescripción
modelstringsíEl ID del modelo a consultar, p. ej. claude-opus-5.

Devuelve el nombre mostrado del modelo, fecha de lanzamiento, ventana de contexto (max_input_tokens) y el máximo de tokens de salida.

Los errores de todas las herramientas se devuelven como errores de herramienta MCP en lugar de provocar pánicos. El cliente de Claude se construye una sola vez al inicio y se reutiliza en todas las llamadas.

Construido con crimson-crab

Esta plantilla está construida con crimson-crab — un SDK de Rust de grado de producción para la API de Claude de Anthropic. Fuente: https://github.com/singhpratech/crimson-crab.

Licencia

Licenciado bajo cualquiera de

a tu elección.


crimson-crab es un proyecto de código abierto independiente y no está afiliado con Anthropic.