MCP-server

FluoTest heeft een remote MCP-server (Model Context Protocol), waarmee AI-assistenten zoals Claude en ChatGPT quizzen in je account kunnen beheren: ze opvragen, aanmaken en bewerken — inclusief scoring, uitkomsten en instellingen — publiceren, resultaten lezen en op verzoek verwijderen — altijd op naam, nooit door naar een UUID te zoeken. Verbindingen worden geautoriseerd met OAuth — je keurt toegang goed op een toestemmingsscherm — of met een persoonlijke API-sleutel uit Instellingen.

Laatst bijgewerkt

Hoe verbind ik een AI-assistent met FluoTest?

Voeg https://fluotest.com/api/mcp toe als remote MCP-server in je AI-assistent. Met OAuth (Claude's "Add custom connector") log je in bij FluoTest en keur je toegang goed op een toestemmingsscherm; je kunt ook een API-sleutel genereren in Instellingen → Beveiliging → API-sleutels en die als Bearer-token meesturen.

Server-URL#

De MCP-server draait op één URL:

https://fluotest.com/api/mcp

Hij gebruikt het Streamable HTTP-transport. Elk verzoek moet geauthenticeerd zijn — niet-geauthenticeerde verzoeken krijgen een 401-antwoord dat MCP-clients vertelt waar de OAuth-flow begint.

Authenticatie#

Er zijn twee manieren om te authenticeren. Beide handelen als jouw gebruikersaccount: de assistent kan alleen zien en aanmaken wat jij kunt.

  • OAuth 2.1 (aanbevolen): Ondersteund door Claude's custom connectors en andere MCP-clients met OAuth-ondersteuning. Je logt in bij FluoTest in de browser en keurt toegang goed op een toestemmingsscherm — geen sleutels kopiëren, en je houdt controle over wat er verbonden is.
  • API-sleutel: Voor MCP-clients met eigen headers (zoals Claude Code) of je eigen scripts. Genereer een sleutel in Instellingen → Beveiliging → API-sleutels en stuur die mee als "Authorization: Bearer fluo_…" — behandel hem als een wachtwoord.

Volledige API-referentie: sleutels, headers & curl-voorbeelden →

Claude verbinden (OAuth)#

Ga in Claude naar Settings → Connectors → Add custom connector en vul in:

  1. Name: FluoTest
  2. Remote MCP server URL: https://fluotest.com/api/mcp
  3. Klik op Add en daarna Connect — je wordt naar fluotest.com gestuurd om in te loggen en toegang goed te keuren.

Er hoeft niets gekopieerd te worden — de connector registreert zichzelf automatisch als publieke OAuth-client (PKCE, geen client secret nodig) zodra je verbinding maakt.

Verbinden met een API-sleutel#

Voor clients waar de OAuth-flow niet beschikbaar is:

  1. Open in FluoTest Instellingen → Beveiliging → API-sleutels.
  2. Voer een naam in (bijv. "Claude Code") en klik op Sleutel genereren.
  3. Kopieer de fluo_…-sleutel direct — deze wordt maar één keer getoond.
  4. Voeg hem toe aan je MCP-client als Authorization-header.

Generieke MCP-configuratie (voor clients met mcp.json):

{
  "mcpServers": {
    "fluotest": {
      "type": "http",
      "url": "https://fluotest.com/api/mcp",
      "headers": {
        "Authorization": "Bearer fluo_YOUR_API_KEY"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add --transport http fluotest https://fluotest.com/api/mcp \
  --header "Authorization: Bearer fluo_YOUR_API_KEY"

Volledige API-referentie: sleutels, headers & curl-voorbeelden →

Beschikbare tools#

De server biedt acht tools die de hele levenscyclus van een quiz dekken. Elke tool neemt een quiz op titel, slug of ID — een assistent hoeft je nooit om een UUID te vragen.

  • list_quizzes: Geeft je quizzen weer: titel, ID, slug, concept-/gepubliceerdstatus, aantal inzendingen en aanmaakdatum. Een assistent roept dit als eerste aan om een quiz die je bij naam noemt, zoals "mijn wellnessquiz", te herkennen.
  • create_quiz: Maakt een conceptquiz aan in jouw account: een titel, een optionele beschrijving en vragen — yes_no (met punten voor "yes"), multiple_choice / multi_select (met een score per optie) of open voor niet-gescoorde tekst — als platte lijst voor een quiz met één sectie, of gegroepeerd in benoemde secties voor een quiz met meerdere secties. Optioneel ook scoreniveaus of het systeem voor aangepaste uitkomsten. Geeft het quiz-ID en een dashboardlink terug; de quiz blijft ongepubliceerd tot jij hem publiceert.
  • get_quiz_questions: Neemt een quiz op titel of ID en geeft de vragen gegroepeerd per sectie terug, in volgorde — de titel van elke sectie en daarbinnen tekst, type, opties met scores (of punten voor yes_no) en welke vragen een respondent diskwalificeren. Handig om te controleren wat een quiz precies vraagt, of als check vóór update_quiz.
  • get_quiz_settings: Neemt een quiz op titel of ID en geeft de tekst van de welkoms- en bedankpagina, de configuratie van de resultaten-e-mail, UX-schakelaars (tijdslimiet, limiet op inzendingen, feestanimatie, score verbergen, intro tonen, benchmark tonen) en welke integraties verbonden zijn terug — webhook, Brevo, Meta Pixel, GTM — als true/false, nooit de onderliggende URL of ID's.
  • update_quiz: Bewerkt een bestaande quiz: titel, beschrijving, vragen, scoreniveaus, aangepaste uitkomsten, tekst van de welkoms-/bedankpagina, resultaten-e-mail en UX-instellingen zoals tijdslimiet of score verbergen — elk veld is optioneel, alleen wat je meestuurt verandert. Vragen kunnen op drie manieren bewerkt worden (maximaal één per aanroep): de hele platte lijst vervangen, de volledige sectiestructuur vervangen door een nieuwe set benoemde secties, of gerichte toevoeg-/bewerk-/verplaats-bewerkingen toepassen op losse vragen in een quiz met meerdere secties zonder de rest aan te raken. Het bewerken van een al gepubliceerde quiz vereist extra confirm_edit_published: true — de eerste poging wordt geweigerd en toont in plaats daarvan het aantal inzendingen, zodat een assistent geen live quiz kan veranderen zonder dat jij dat eerst ziet.
  • publish_quiz: Publiceert een conceptquiz, op titel of ID, en maakt hem live op zijn publieke URL. Dit gebeurt nooit automatisch — publiceren is altijd een aparte, bewuste stap los van create_quiz, die alleen gebeurt als jij daar expliciet om vraagt.
  • get_results: Neemt een quiz op titel of ID en geeft het aantal inzendingen, het aantal gediskwalificeerden, het gemiddelde / laagste / hoogste scorepercentage terug en — als de quiz scoreniveaus heeft — hoeveel respondenten in elk niveau vielen.
  • delete_quiz: Verwijdert een quiz en zijn inzendingen definitief, op titel of ID. De eerste aanroep verwijdert nog niets — die geeft de titel en het aantal inzendingen terug zodat je kunt controleren voordat je bevestigt; pas een tweede aanroep met confirm: true voert de verwijdering echt uit.

Voorbeeld create_quiz-argumenten

{
  "title": "Marketing readiness check",
  "description": "Score how ready a business is to run paid ads.",
  "questions": [
    { "text": "Do you have a documented strategy?", "type": "yes_no", "points": 2 },
    {
      "text": "How often do you review results?",
      "type": "multiple_choice",
      "options": [
        { "label": "Monthly", "score": 3 },
        { "label": "Yearly", "score": 1 },
        { "label": "Never", "score": 0 }
      ]
    },
    { "text": "Anything else we should know?", "type": "open" }
  ]
}

OAuth-endpoint-overzicht#

MCP-clients ontdekken deze automatisch via het 401-antwoord van de server en het discovery-document — je hebt ze alleen nodig als een client expliciet om endpoints vraagt. Probeer eerst de OIDC discovery-URL; die lost de rest op.

EndpointURL
OIDC discoveryhttps://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/.well-known/openid-configuration
Autorisatiehttps://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/oauth/authorize
Tokenhttps://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/oauth/token
JWKShttps://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/.well-known/jwks.json

FAQ#

Welke quizzen kan een verbonden assistent zien?

Alleen die van jou. Elke tool-aanroep draait als jouw gebruikersaccount met dezelfde rechten als de app, dus een assistent kan geen quizzen of resultaten van andere gebruikers lezen.

Hoe trek ik toegang in?

API-sleutels: trek ze in via Instellingen → Beveiliging → API-sleutels — de sleutel stopt direct met werken. OAuth: verwijder de connector in je AI-assistent; de opgeslagen tokens worden weggegooid en zonder nieuwe goedkeuring worden er geen nieuwe uitgegeven.

Kan hij quizzen publiceren?

Alleen als daar expliciet om wordt gevraagd. create_quiz maakt altijd een ongepubliceerd concept aan, en publish_quiz — een aparte tool — is de bewuste stap die hem live zet. Niets wordt automatisch gepubliceerd.

Kan hij een quiz bewerken of verwijderen die al live staat?

Allebei, maar nooit bij de eerste aanroep. De eerste poging van update_quiz om een gepubliceerde quiz te bewerken wordt geweigerd en toont in plaats daarvan het aantal inzendingen — pas een tweede aanroep met confirm_edit_published: true voert de bewerking echt uit, en het vervangen van vragen bij een live quiz komt bovendien met een waarschuwing dat oudere inzendingen mogelijk verwijzen naar vragen die niet meer bestaan. delete_quiz werkt hetzelfde: die toont eerst de titel en het aantal inzendingen, en verwijdert pas na jouw bevestiging.

Is de MCP-server gratis?

Ja — hij is beschikbaar op elk plan, inclusief gratis accounts.