Grok Chat MCP
Servidor MCP para a API xAI Grok — chat, visão, busca e embeddings (Rust, stdio)
Documentação
mcp-server-grok-chat
Um servidor MCP (Model Context Protocol) para a API Grok da xAI. Construído em Rust, expõe conclusões de chat, visão, busca na web/X, embeddings e listagem de modelos como ferramentas MCP.
Comunica via stdio usando JSON-RPC 2.0, como todos os servidores MCP.
Ferramentas
| Ferramenta | Descrição |
|---|---|
chat | Envia uma solicitação de conclusão de chat para Grok com histórico multi-turno opcional, prompt de sistema, saída estruturada (esquema JSON), seleção de modelo e pesquisa multiagente |
chat_with_vision | Analisa uma imagem com os recursos de visão do Grok, dado um URL de imagem e um prompt de texto |
chat_with_search | Conversa com Grok usando busca na web ao vivo e/ou busca no X (Twitter) para fundamentar as respostas |
embedding | Gera embeddings de texto usando o modelo de embedding do Grok |
list_models | Lista todos os modelos Grok disponíveis e seus IDs (armazenados em cache por 5 minutos) |
chat
Envia uma solicitação de conclusão de chat. Suporta conversas multi-turno via uma matriz JSON de histórico de mensagens, prompts de sistema, saída estruturada via esquema JSON, controle de temperatura, seleção de modelo e pesquisa multiagente.
Ao usar um modelo multiagente (qualquer ID de modelo contendo multi-agent), a solicitação é automaticamente roteada pela API de Respostas. O modelo multiagente despacha sua consulta para vários agentes que pesquisam em paralelo e depois sintetizam suas descobertas. Use reasoning_effort para controlar o número de agentes. Chame a ferramenta list_models para ver quais modelos multiagente estão disponíveis atualmente.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prompt | string | sim | A mensagem do usuário a ser enviada |
model | string | não | ID do modelo (padrão: grok-4.3). Chame list_models para o conjunto atual. |
system_prompt | string | não | Prompt de sistema para definir contexto |
messages | string | não | Histórico completo da conversa como matriz JSON de objetos {role, content} |
temperature | float | não | Temperatura de amostragem (0.0 - 2.0) |
max_tokens | inteiro | não | Máximo de tokens a gerar |
response_schema | string | não | String de esquema JSON para impor saída estruturada |
reasoning_effort | string | não | Em grok-4.3: low/medium/high controla a profundidade de raciocínio nativa. Em modelos multiagente: low/medium = 4 agentes, high/xhigh = 16 agentes (xhigh é exclusivo para multiagente). |
chat_with_vision
Analisa uma imagem usando os recursos de visão do Grok.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prompt | string | sim | Prompt de texto descrevendo o que analisar |
image_url | string | sim | URL da imagem (deve ser http:// ou https://) |
model | string | não | ID do modelo (padrão: grok-4.3). Deve ser um modelo com capacidade de visão. Chame list_models para o conjunto atual. |
detail | string | não | Nível de detalhe da imagem: low ou high (padrão: high) |
temperature | float | não | Temperatura de amostragem (0.0 - 2.0) |
max_tokens | inteiro | não | Máximo de tokens a gerar |
chat_with_search
Conversa com Grok usando busca na web ao vivo e/ou busca no X (Twitter). O modelo pesquisa automaticamente na internet para fundamentar sua resposta.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prompt | string | sim | A mensagem do usuário a ser enviada |
search_type | string | não | Tipo de busca: web, x ou both (padrão: both) |
model | string | não | ID do modelo (padrão: grok-4.3). Chame list_models para o conjunto atual. |
system_prompt | string | não | Prompt de sistema para definir contexto |
temperature | float | não | Temperatura de amostragem (0.0 - 2.0) |
max_tokens | inteiro | não | Máximo de tokens a gerar |
reasoning_effort | string | não | Em grok-4.3: low/medium/high controla a profundidade de raciocínio nativa. Em modelos multiagente: low/medium = 4 agentes, high/xhigh = 16 agentes (xhigh é exclusivo para multiagente). |
embedding
Gera embeddings de texto.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
input | string | sim | Texto para incorporar como JSON: uma única string ou matriz de strings |
model | string | não | Modelo de embedding a usar (padrão: grok-2-text-embedding) |
list_models
Lista todos os modelos Grok disponíveis. Sem parâmetros. Os resultados são armazenados em cache por 5 minutos.
Pré-requisitos
- Rust (edição 2024)
- Uma chave de API xAI de console.x.ai
Configuração
Crie o arquivo de configuração:
mkdir -p ~/.config/mcp-server-grok-chat
Crie ~/.config/mcp-server-grok-chat/config.toml:
api_key = "xai-..."
Compilação
cargo build --release
Isso produz target/release/grok-chat.
Para desenvolvimento:
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run # run with debug logging
Configuração MCP
Adicione à configuração do seu Claude Desktop (~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"grok-chat": {
"command": "/path/to/grok-chat"
}
}
}
Estrutura do Projeto
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
Licença
MIT