Grok Chat MCP
Servidor MCP para la API de xAI Grok — chat, visión, búsqueda y embeddings (Rust, stdio)
Documentación
mcp-server-grok-chat
Un servidor MCP (Protocolo de Contexto de Modelo) para la API de xAI Grok. Construido en Rust, expone completaciones de chat, visión, búsqueda web/X, incrustaciones y listado de modelos como herramientas MCP.
Se comunica mediante stdio usando JSON-RPC 2.0, como todos los servidores MCP.
Herramientas
| Herramienta | Descripción |
|---|---|
chat | Envía una solicitud de completación de chat a Grok con historial multi-turno opcional, prompt de sistema, salida estructurada (esquema JSON), selección de modelo e investigación multi-agente |
chat_with_vision | Analiza una imagen con las capacidades de visión de Grok dada una URL de imagen y un prompt de texto |
chat_with_search | Chatea con Grok usando búsqueda web en vivo y/o búsqueda en X (Twitter) para fundamentar las respuestas |
embedding | Genera incrustaciones de texto usando el modelo de incrustación de Grok |
list_models | Lista todos los modelos de Grok disponibles y sus IDs (almacenados en caché durante 5 minutos) |
chat
Envía una solicitud de completación de chat. Admite conversaciones multi-turno mediante un arreglo JSON de historial de mensajes, prompts de sistema, salida estructurada mediante esquema JSON, control de temperatura, selección de modelo e investigación multi-agente.
Al usar un modelo multi-agente (cualquier ID de modelo que contenga multi-agent), la solicitud se enruta automáticamente a través de la API de Respuestas. El modelo multi-agente envía tu consulta a múltiples agentes que investigan en paralelo y luego sintetiza sus hallazgos. Usa reasoning_effort para controlar el número de agentes. Llama a la herramienta list_models para ver qué modelos multi-agente están disponibles actualmente.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
prompt | string | sí | El mensaje del usuario a enviar |
model | string | no | ID del modelo (predeterminado: grok-4.3). Llama a list_models para el conjunto actual. |
system_prompt | string | no | Prompt de sistema para establecer contexto |
messages | string | no | Historial completo de conversación como arreglo JSON de objetos {role, content} |
temperature | float | no | Temperatura de muestreo (0.0 - 2.0) |
max_tokens | integer | no | Máximo de tokens a generar |
response_schema | string | no | Cadena de esquema JSON para imponer salida estructurada |
reasoning_effort | string | no | En grok-4.3: low/medium/high controla la profundidad de razonamiento nativa. En modelos multi-agente: low/medium = 4 agentes, high/xhigh = 16 agentes (xhigh es solo multi-agente). |
chat_with_vision
Analiza una imagen usando las capacidades de visión de Grok.
Parámetros:
| Nombre | Tipo | Requerido | 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 del modelo (predeterminado: grok-4.3). Debe ser un modelo con capacidad de visión. Llama a list_models para el conjunto actual. |
detail | string | no | Nivel de detalle de la imagen: low o high (predeterminado: high) |
temperature | float | no | Temperatura de muestreo (0.0 - 2.0) |
max_tokens | integer | no | Máximo de tokens a generar |
chat_with_search
Chatea con Grok usando búsqueda web en vivo y/o búsqueda en X (Twitter). El modelo busca automáticamente en internet para fundamentar su respuesta.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
prompt | string | sí | El mensaje del usuario a enviar |
search_type | string | no | Tipo de búsqueda: web, x o both (predeterminado: both) |
model | string | no | ID del modelo (predeterminado: grok-4.3). Llama a list_models para el conjunto actual. |
system_prompt | string | no | Prompt de sistema para establecer contexto |
temperature | float | no | Temperatura de muestreo (0.0 - 2.0) |
max_tokens | integer | no | Máximo de tokens a generar |
reasoning_effort | string | no | En grok-4.3: low/medium/high controla la profundidad de razonamiento nativa. En modelos multi-agente: low/medium = 4 agentes, high/xhigh = 16 agentes (xhigh es solo multi-agente). |
embedding
Genera incrustaciones de texto.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
input | string | sí | Texto a incrustar como JSON: una sola cadena o un arreglo de cadenas |
model | string | no | Modelo de incrustación a usar (predeterminado: grok-2-text-embedding) |
list_models
Lista todos los modelos de Grok disponibles. Sin parámetros. Los resultados se almacenan en caché durante 5 minutos.
Requisitos previos
- Rust (edición 2024)
- Una clave de API de xAI de console.x.ai
Configuración
Crea el archivo de configuración:
mkdir -p ~/.config/mcp-server-grok-chat
Crea ~/.config/mcp-server-grok-chat/config.toml:
api_key = "xai-..."
Compilación
cargo build --release
Esto produce target/release/grok-chat.
Para desarrollo:
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run # run with debug logging
Configuración de MCP
Agrega a tu configuración de Claude Desktop (~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"grok-chat": {
"command": "/path/to/grok-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, embedding, list_models)
api.rs - xAI HTTP client, request/response types, response formatters
params.rs - tool parameter types with serde and JSON Schema derives
config.rs - TOML config loading
Licencia
MIT