API och MCP

MCP-server

Diaforms MCP-server ansluter din AI-agent till din feedback. När du har anslutit den kan du ställa frågor till agenten, till exempel ”Vad klagade kunderna på den här månaden?”, så hämtar den konversationerna, sammanfattningarna och rapporterna.

MCP (Model Context Protocol) är standardsättet för AI-agenter att ansluta till externa verktyg. Servern visar samma data som REST-API:t, ger bara läsåtkomst och använder samma API-nyckel.

Innan du börjar#

Du behöver planen Pro, Business eller Enterprise och en API-nyckel. Ägare och admins skapar nycklar under Inställningar → Allmänt → API-nycklar. Läs mer under API-översikt.

InställningVärde
Serverns URLhttps://diaform.io/api/mcp
TransportStreamable HTTP
AutentiseringHeadern Authorization: Bearer dia_org_live_...

En nyckel ger agenten läsåtkomst till alla projekt i din organisation. Skapa en separat nyckel för varje agent, så att du kan återkalla en utan att påverka de andra.

Anslut din agent#

Välj din agent:

Kör det här i terminalen:

Shell
claude mcp add --transport http diaform https://diaform.io/api/mcp \
  --header "Authorization: Bearer $DIAFORM_API_KEY"

Kör sedan /mcp i Claude Code för att kontrollera att diaform är ansluten.

Verktyg#

Agenten ser sex verktyg, som alla bara läser data:

VerktygVad det görArgument
list_projectsListar alla projekt med ID, namn och statusInga
get_projectReturnerar ett projekt med dess frågor och antal konversationerproject_id
list_conversationsListar ett projekts konversationer med respondent, sentiment och AI-sammanfattningproject_id, och valfritt status, sentiment, created_after, created_before, search, limit, cursor
get_conversationReturnerar en konversation med dess sammanfattning och fullständiga transkriptionconversation_id
list_reportsListar ett projekts AI-rapporterproject_id, och valfritt status, limit, cursor
get_reportReturnerar en AI-rapport med dess teman, problem, avvikande synpunkter och citatreport_id

Varje verktyg returnerar samma JSON som sin REST-endpoint. Fälten beskrivs under Projekt, Konversationer och Rapporter. status och sentiment är arrayer, till exempel ["completed"].

Listor returnerar upp till 100 poster åt gången. När ett resultat har has_more: true skickar agenten next_cursor som cursor för att hämta nästa sida.

Saker du kan fråga#

  • ”Lista mina Diaform-projekt och berätta vilket som fick flest svar.”
  • ”Läs de slutförda konversationerna från de senaste 30 dagarna i onboardingprojektet och gruppera klagomålen efter tema.”
  • ”Hitta konversationer som nämner priser och citera vad folk sa.”
  • ”Sammanfatta den senaste AI-rapporten och skriv ett utkast till en Slack-uppdatering för produktteamet.”
  • ”Hämta hela transkriptionen av veckans mest negativa konversation.”

Fel och gränser#

Om nyckeln saknas eller har återkallats, eller om planen saknar API-åtkomst, misslyckas anslutningen med HTTP 401 eller 403. Din klient visar det oftast som en misslyckad eller obehörig server.

När ett verktygsanrop misslyckas, till exempel på grund av ett felaktigt ID, får agenten samma error och code som i REST-API:t och kan rätta sig själv. Läs mer under Fel.

MCP-förfrågningar räknas mot samma gräns som REST-API:t: 120 förfrågningar per minut för varje nyckel.

Tekniska detaljer#

För dig som bygger en egen klient:

  • Skicka JSON-RPC 2.0-meddelanden med POST https://diaform.io/api/mcp. Servern besvarar varje förfrågan med ett enda JSON-svar, inte en händelseström.
  • Servern är tillståndslös. Den utfärdar inget sessions-ID, och GET och DELETE returnerar 405.
  • Protokollversionerna 2025-06-18, 2025-03-26 och 2024-11-05 stöds.
  • Den implementerar initialize, ping, tools/list och tools/call. Den har inga resurser eller prompter.
Shell
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
      }
    }
  }'