API & MCP

MCP-Server

Der MCP-Server von Diaform verbindet deinen KI-Agenten mit deinem Feedback. Sobald er verbunden ist, kannst du dem Agenten Fragen stellen wie „Worüber haben sich Kunden diesen Monat beschwert?“, und er ruft die Gespräche, Zusammenfassungen und Berichte ab.

MCP (Model Context Protocol) ist der Standard, über den sich KI-Agenten mit externen Tools verbinden. Der Server liefert dieselben Daten wie die REST-API, ist schreibgeschützt und nutzt denselben API-Schlüssel.

Bevor du loslegst#

Du brauchst einen Pro-, Business- oder Enterprise-Tarif und einen API-Schlüssel. Inhaber und Admins erstellen Schlüssel unter Einstellungen → Allgemein → API-Schlüssel. Siehe API-Überblick.

EinstellungWert
Server-URLhttps://diaform.io/api/mcp
TransportStreamable HTTP
AuthentifizierungHeader Authorization: Bearer dia_org_live_...

Ein Schlüssel gibt dem Agenten Lesezugriff auf jedes Projekt deiner Organisation. Erstelle für jeden Agenten einen eigenen Schlüssel. So kannst du einen widerrufen, ohne dass die anderen betroffen sind.

Agenten verbinden#

Wähle deinen Agenten:

Führ das in deinem Terminal aus:

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

Führ dann in Claude Code /mcp aus, um zu prüfen, ob diaform verbunden ist.

Tools#

Der Agent sieht sechs Tools, alle schreibgeschützt:

ToolWas es machtArgumente
list_projectsListet jedes Projekt mit ID, Namen und Status aufKeine
get_projectGibt ein Projekt mit seinen Fragen und Gesprächszahlen zurückproject_id
list_conversationsListet die Gespräche eines Projekts mit Teilnehmer, Stimmung und KI-Zusammenfassung aufproject_id und optional status, sentiment, created_after, created_before, search, limit, cursor
get_conversationGibt ein Gespräch mit seiner Zusammenfassung und dem vollständigen Transkript zurückconversation_id
list_reportsListet die KI-Berichte eines Projekts aufproject_id und optional status, limit, cursor
get_reportGibt einen KI-Bericht mit seinen Themen, Problemen, Ausreißern und Zitaten zurückreport_id

Jedes Tool gibt dasselbe JSON zurück wie sein REST-Endpunkt. Die Felder sind unter Projekte, Gespräche und Berichte beschrieben. status und sentiment sind Arrays, etwa ["completed"].

Listen geben bis zu 100 Einträge auf einmal zurück. Hat ein Ergebnis has_more: true, übergibt der Agent next_cursor als cursor, um die nächste Seite abzurufen.

Was du fragen kannst#

  • „Liste meine Diaform-Projekte auf und sag mir, welches die meisten Antworten bekommen hat.“
  • „Lies die abgeschlossenen Gespräche der letzten 30 Tage im Onboarding-Projekt und ordne die Beschwerden nach Themen.“
  • „Finde Gespräche, in denen es um die Preise geht, und zitiere, was die Leute gesagt haben.“
  • „Fass den neuesten KI-Bericht zusammen und entwirf ein Slack-Update für das Produktteam.“
  • „Hol mir das vollständige Transkript des negativsten Gesprächs dieser Woche.“

Fehler und Limits#

Fehlt der Schlüssel, wurde er widerrufen oder hat dein Tarif keinen API-Zugriff, schlägt die Verbindung mit HTTP 401 oder 403 fehl. Dein Client zeigt das meist als fehlgeschlagenen oder nicht autorisierten Server an.

Schlägt ein Tool-Aufruf fehl, zum Beispiel wegen einer falschen ID, bekommt der Agent denselben error und code wie bei der REST-API und kann sich selbst korrigieren. Siehe Fehler.

MCP-Anfragen zählen zum selben Limit wie die REST-API: 120 Anfragen pro Minute für jeden Schlüssel.

Technische Details#

Wenn du einen eigenen Client baust:

  • Sende JSON-RPC-2.0-Nachrichten mit POST https://diaform.io/api/mcp. Der Server beantwortet jede Anfrage mit einer einzelnen JSON-Antwort, nicht mit einem Event-Stream.
  • Der Server ist zustandslos. Er vergibt keine Session-ID, und GET und DELETE liefern 405.
  • Unterstützte Protokollversionen sind 2025-06-18, 2025-03-26 und 2024-11-05.
  • Er implementiert initialize, ping, tools/list und tools/call. Resources oder Prompts hat er nicht.
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
      }
    }
  }'