Servidor MCP
O servidor MCP do Diaform conecta seu agente de IA ao seu feedback. Depois de conectar, você pode fazer perguntas a ele, como “Do que os clientes reclamaram este mês?”, e o agente busca as conversas, os resumos e os relatórios.
MCP (Model Context Protocol) é a forma padrão de os agentes de IA se conectarem a ferramentas externas. O servidor expõe os mesmos dados da API REST, é somente leitura e usa a mesma chave de API.
Antes de começar#
Você precisa de um plano Pro, Business ou Enterprise e de uma chave de API. Proprietários e admins criam chaves em Configurações → Geral → Chaves de API. Veja Visão geral da API.
| Configuração | Valor |
|---|---|
| URL do servidor | https://diaform.io/api/mcp |
| Transporte | Streamable HTTP |
| Autenticação | Cabeçalho Authorization: Bearer dia_org_live_... |
Uma chave dá ao agente acesso de leitura a todos os projetos da sua organização. Crie uma chave separada para cada agente, assim você pode revogar uma sem afetar as outras.
Conectar seu agente#
Escolha seu agente:
Execute isto no seu terminal:
claude mcp add --transport http diaform https://diaform.io/api/mcp \
--header "Authorization: Bearer $DIAFORM_API_KEY"Depois, execute /mcp dentro do Claude Code para conferir se diaform está conectado.
Ferramentas#
O agente vê seis ferramentas somente leitura:
| Ferramenta | O que faz | Argumentos |
|---|---|---|
list_projects | Lista todos os projetos com ID, nome e status | Nenhum |
get_project | Retorna um projeto com as perguntas e as contagens de conversas | project_id |
list_conversations | Lista as conversas de um projeto com respondente, sentimento e resumo da IA | project_id e, opcionalmente, status, sentiment, created_after, created_before, search, limit, cursor |
get_conversation | Retorna uma conversa com o resumo e a transcrição completa | conversation_id |
list_reports | Lista os relatórios de IA de um projeto | project_id e, opcionalmente, status, limit, cursor |
get_report | Retorna um relatório de IA com temas, problemas, casos isolados e citações | report_id |
Cada ferramenta retorna o mesmo JSON do endpoint REST correspondente. Os campos estão descritos em Projetos, Conversas e Relatórios. status e sentiment são arrays, como ["completed"].
As listas retornam até 100 itens por vez. Quando um resultado tem has_more: true, o agente passa next_cursor como cursor para buscar a próxima página.
O que perguntar#
- “Liste meus projetos do Diaform e me diga qual recebeu mais respostas.”
- “Leia as conversas concluídas dos últimos 30 dias no projeto de onboarding e agrupe as reclamações por tema.”
- “Encontre as conversas que falam de preço e cite o que as pessoas disseram.”
- “Resuma o último relatório de IA e rascunhe uma mensagem de Slack com as novidades para o time de produto.”
- “Traga a transcrição completa da conversa mais negativa desta semana.”
Erros e limites#
Uma chave ausente ou revogada, ou um plano sem acesso à API, faz a conexão falhar com HTTP 401 ou 403. Seu cliente normalmente mostra isso como um servidor com falha ou não autorizado.
Quando uma chamada de ferramenta falha, por exemplo por causa de um ID errado, o agente recebe os mesmos error e code da API REST e pode se corrigir. Veja Erros.
As requisições MCP contam para o mesmo limite da API REST: 120 requisições por minuto para cada chave.
Detalhes técnicos#
Para criar seu próprio cliente:
- Envie mensagens JSON-RPC 2.0 com
POST https://diaform.io/api/mcp. O servidor responde a cada requisição com uma única resposta JSON, não com um fluxo de eventos. - O servidor não guarda estado. Ele não emite ID de sessão, e
GETeDELETEretornam405. - As versões de protocolo compatíveis são
2025-06-18,2025-03-26e2024-11-05. - Ele implementa
initialize,ping,tools/listetools/call. Não tem recursos nem prompts.
curl -X POST "https://diaform.io/api/mcp" \
-H "Authorization: Bearer $DIAFORM_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_conversations",
"arguments": {
"project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
"status": ["completed"],
"limit": 10
}
}
}'