Serveur MCP
Le serveur MCP de Diaform connecte votre agent IA au feedback que vous recueillez. Une fois l’agent connecté, vous pouvez lui poser des questions comme « De quoi les clients se sont-ils plaints ce mois-ci ? », et il récupère les conversations, les résumés et les rapports.
MCP (Model Context Protocol) est le standard qui permet aux agents IA de se connecter à des outils externes. Le serveur expose les mêmes données que l’API REST, est en lecture seule et utilise la même clé API.
Avant de commencer#
Il vous faut une offre Pro, Business ou Enterprise et une clé API. Les propriétaires et les admins créent des clés dans Paramètres → Général → Clés API. Consultez Vue d’ensemble de l’API.
| Paramètre | Valeur |
|---|---|
| URL du serveur | https://diaform.io/api/mcp |
| Transport | Streamable HTTP |
| Authentification | En-tête Authorization: Bearer dia_org_live_... |
Une clé donne à l’agent un accès en lecture à tous les projets de votre organisation. Créez une clé distincte pour chaque agent : vous pourrez ainsi en révoquer une sans toucher aux autres.
Connecter votre agent#
Choisissez votre agent :
Exécutez cette commande dans votre terminal :
claude mcp add --transport http diaform https://diaform.io/api/mcp \
--header "Authorization: Bearer $DIAFORM_API_KEY"Lancez ensuite /mcp dans Claude Code pour vérifier que diaform est connecté.
Outils#
L’agent voit six outils en lecture seule :
| Outil | Ce qu’il fait | Arguments |
|---|---|---|
list_projects | Liste tous les projets avec leur ID, leur nom et leur statut | Aucun |
get_project | Renvoie un projet avec ses questions et le nombre de ses conversations | project_id |
list_conversations | Liste les conversations d’un projet avec le répondant, le sentiment et le résumé IA | project_id, et en option status, sentiment, created_after, created_before, search, limit, cursor |
get_conversation | Renvoie une conversation avec son résumé et sa transcription complète | conversation_id |
list_reports | Liste les rapports IA d’un projet | project_id, et en option status, limit, cursor |
get_report | Renvoie un rapport IA avec ses thèmes, ses problèmes, ses cas isolés et ses citations | report_id |
Chaque outil renvoie le même JSON que son endpoint REST. Les champs sont décrits dans Projets, Conversations et Rapports. status et sentiment sont des tableaux, comme ["completed"].
Les listes renvoient jusqu’à 100 éléments à la fois. Quand un résultat contient has_more: true, l’agent transmet next_cursor dans cursor pour obtenir la page suivante.
Exemples de questions#
- « Liste mes projets Diaform et dis-moi lequel a reçu le plus de réponses. »
- « Lis les conversations terminées des 30 derniers jours dans le projet d’onboarding et regroupe les plaintes par thème. »
- « Trouve les conversations qui parlent des prix et cite ce que les gens ont dit. »
- « Résume le dernier rapport IA et rédige un message Slack pour l’équipe produit. »
- « Récupère la transcription complète de la conversation la plus négative de la semaine. »
Erreurs et limites#
Une clé absente ou révoquée, ou une offre sans accès à l’API, fait échouer la connexion avec un code HTTP 401 ou 403. Votre client l’affiche généralement comme un serveur en échec ou non autorisé.
Quand un appel d’outil échoue, par exemple à cause d’un ID erroné, l’agent reçoit les mêmes error et code que l’API REST et peut se corriger. Consultez Erreurs.
Les requêtes MCP comptent dans la même limite que l’API REST : 120 requêtes par minute pour chaque clé.
Détails techniques#
Pour créer votre propre client :
- Envoyez des messages JSON-RPC 2.0 avec
POST https://diaform.io/api/mcp. Le serveur répond à chaque requête par une seule réponse JSON, pas par un flux d’événements. - Le serveur est sans état. Il n’émet pas d’ID de session, et
GETetDELETErenvoient405. - Les versions du protocole prises en charge sont
2025-06-18,2025-03-26et2024-11-05. - Il implémente
initialize,ping,tools/listettools/call. Il n’a ni ressources ni 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
}
}
}'