API ja MCP

MCP-palvelin

Diaformin MCP-palvelin yhdistää AI-agenttisi palautteeseesi. Kun olet yhdistänyt sen, voit kysyä agentilta esimerkiksi ”Mistä asiakkaat valittivat tässä kuussa?”, ja se hakee keskustelut, yhteenvedot ja raportit.

MCP (Model Context Protocol) on vakiotapa yhdistää AI-agentit ulkoisiin työkaluihin. Palvelin tarjoaa samat tiedot kuin REST-API, sallii vain lukemisen ja käyttää samaa API-avainta.

Ennen kuin aloitat#

Tarvitset Pro-, Business- tai Enterprise-paketin ja API-avaimen. Omistajat ja ylläpitäjät luovat avaimia kohdassa Asetukset → Yleiset → API-avaimet. Katso API:n yleiskatsaus.

AsetusArvo
Palvelimen URL-osoitehttps://diaform.io/api/mcp
SiirtotapaStreamable HTTP
TodennusOtsake Authorization: Bearer dia_org_live_...

Avain antaa agentille lukuoikeuden organisaatiosi jokaiseen projektiin. Luo jokaiselle agentille oma avain, niin voit mitätöidä yhden vaikuttamatta muihin.

Yhdistä agenttisi#

Valitse agenttisi:

Suorita tämä terminaalissa:

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

Suorita sitten Claude Codessa /mcp ja tarkista, että diaform on yhdistetty.

Työkalut#

Agentti näkee kuusi työkalua, joilla voi vain lukea tietoja:

TyökaluMitä se tekeeArgumentit
list_projectsListaa kaikki projektit sekä niiden ID:n, nimen ja tilanEi ole
get_projectPalauttaa yhden projektin sekä sen kysymykset ja keskustelumäärätproject_id
list_conversationsListaa projektin keskustelut sekä niiden vastaajan, sävyn ja AI-yhteenvedonproject_id ja valinnaisesti status, sentiment, created_after, created_before, search, limit, cursor
get_conversationPalauttaa yhden keskustelun sekä sen yhteenvedon ja koko litteroinninconversation_id
list_reportsListaa projektin AI-raportitproject_id ja valinnaisesti status, limit, cursor
get_reportPalauttaa yhden AI-raportin sekä sen teemat, ongelmat, poikkeavat havainnot ja lainauksetreport_id

Jokainen työkalu palauttaa saman JSON-vastauksen kuin vastaava REST-päätepiste. Kentät kuvataan sivuilla Projektit, Keskustelut ja Raportit. status ja sentiment ovat taulukoita, kuten ["completed"].

Listat palauttavat enintään 100 kohdetta kerrallaan. Kun tuloksessa on has_more: true, agentti hakee seuraavan sivun välittämällä next_cursor-arvon cursor-argumenttina.

Mitä voit kysyä#

  • ”Listaa Diaform-projektini ja kerro, mikä niistä sai eniten vastauksia.”
  • ”Lue onboarding-projektin valmiit keskustelut viimeisten 30 päivän ajalta ja ryhmittele valitukset teemoittain.”
  • ”Etsi keskustelut, joissa mainitaan hinnoittelu, ja lainaa, mitä ihmiset sanoivat.”
  • ”Tee yhteenveto uusimmasta AI-raportista ja luonnostele Slack-päivitys tuotetiimille.”
  • ”Hae tämän viikon negatiivisimman keskustelun koko litterointi.”

Virheet ja rajat#

Jos avain puuttuu tai on mitätöity tai jos paketissa ei ole API-käyttöoikeutta, yhteys epäonnistuu HTTP-tilakoodilla 401 tai 403. Asiakasohjelmasi näyttää tämän yleensä epäonnistuneena tai valtuuttamattomana palvelimena.

Kun työkalukutsu epäonnistuu esimerkiksi väärän ID:n vuoksi, agentti saa samat error- ja code-arvot kuin REST-API:ssa ja voi korjata virheensä itse. Katso Virheet.

MCP-pyynnöt lasketaan samaan rajaan kuin REST-API:n pyynnöt: 120 pyyntöä minuutissa avainta kohden.

Tekniset tiedot#

Jos rakennat oman asiakasohjelman:

  • Lähetä JSON-RPC 2.0 -viestit pyynnöllä POST https://diaform.io/api/mcp. Palvelin vastaa jokaiseen pyyntöön yhdellä JSON-vastauksella, ei tapahtumavirralla.
  • Palvelin on tilaton. Se ei anna istunto-ID:tä, ja GET ja DELETE palauttavat 405.
  • Tuetut protokollaversiot ovat 2025-06-18, 2025-03-26 ja 2024-11-05.
  • Se toteuttaa metodit initialize, ping, tools/list ja tools/call. Siinä ei ole resursseja eikä kehotteita.
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
      }
    }
  }'