Developer Documentatie: MCP-Integratie
Wat is de Secret Santa Raffle MCP?
De Secret Santa Raffle MCP-server (Model Context Protocol) stelt elke AI-assistent — zoals ChatGPT, Claude of Gemini — in staat om programmatisch cadeau-uitwisselingstrekkingen te maken met natuurlijke taal. In plaats van webformulieren in te vullen, vertelt de gebruiker de AI gewoon wie er meedoen, en de AI communiceert met onze server om de trekking automatisch te genereren.
De server implementeert JSON-RPC 2.0 over HTTPS, volgens de MCP-specificatie (versie 2025-06-18). Hij biedt drie publieke tools: create_draw, send_invitations_email en get_group_share_message.
Endpoint & Protocol
Verzoeken worden verstuurd via JSON-RPC 2.0 over HTTPS. De protocolversie is 2025-06-18.
POST https://mcp.secretsantaraffle.net/mcp
POST https://mcp.secretsantaraffle.net/openai/mcp
Content-Type: application/json
MCP Protocolversie: 2025-06-18
Deze server biedt twee kanalen op hetzelfde domein: POST /mcp — het standaardkanaal met de volledige toolset, voor assistenten zoals Claude; en POST /openai/mcp — het OpenAI-conforme kanaal dat de ChatGPT-app gebruikt, dat alleen de drie hieronder gedocumenteerde publieke tools biedt. Beide spreken hetzelfde JSON-RPC 2.0-protocol.
Handshake (Initialize)
Elke MCP-client moet een initialize-handshake afronden voordat tools worden aangeroepen. Na ontvangst van de reactie moet de client een notifications/initialized-bericht sturen (zonder id-veld).
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
}
}
}
Stuur na de initialize-reactie: { "jsonrpc": "2.0", "method": "notifications/initialized" } — de server antwoordt met 202 Accepted en een lege body.
create_draw — JSON Schema
De belangrijkste tool is create_draw. Deze maakt een cadeau-uitwisselingstrekking met N deelnemers (minimaal 3), koppelt ze willekeurig met inachtneming van uitsluitingsregels, en geeft een drawId en shareCode terug voor vervolgacties.
{
"type": "object",
"required": ["date", "participants"],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Draw date, YYYY-MM-DD. Today or future."
},
"participants": {
"type": "array",
"minItems": 3,
"description": "Minimum 3 participants. The first is treated as the organiser.",
"items": {
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string", "maxLength": 255 },
"email": { "type": "string", "format": "email" },
"exclusions": {
"type": "array",
"items": { "type": "string", "format": "email" },
"description": "Emails of participants this person must NOT be matched with."
}
}
}
},
"drawName": {
"type": "string",
"maxLength": 255,
"description": "Optional. Defaults to e.g. \"Secret Santa 2026\"."
},
"price": {
"type": "string",
"description": "Gift budget, free text. Examples: \"£25\", \"$30\"."
},
"message": {
"type": "string",
"description": "Invitation email body. If omitted, a localised default is used. Placeholder \"ParticipantX\" replaced with the recipient's name."
},
"locale": {
"type": "string",
"description": "BCP 47 language tag. E.g. \"en-GB\", \"es-ES\", \"es-MX\". Determines brand and templates."
}
}
}
Veldoverzicht
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
| date | string (date) | Ja | Datum van de trekking in formaat YYYY-MM-DD. Moet vandaag of in de toekomst zijn. |
| participants | array (min 3) | Ja | Lijst met deelnemers. Elk heeft naam, e-mail en optionele uitsluitingen. |
| drawName | string | Nee | Optionele naam voor de trekking. Standaard "Secret Santa 2026". |
| price | string | Nee | Cadeaubudget als vrije tekst (bijv. "£25", "$30"). |
| message | string | Nee | Aangepaste tekst voor de uitnodigings-e-mail. Zonder opgave wordt een gelokaliseerde standaardtekst gebruikt. |
| locale | string (BCP 47) | Nee | Bepaalt merk (SS/AS/MX/AI) en gelokaliseerde sjablonen. Valt terug op de Accept-Language-header. |
Beschikbare Tools
create_draw
— Trekking Maken
Maakt een cadeau-uitwisselingstrekking met N deelnemers (minimaal 3). Koppelt deelnemers willekeurig met inachtneming van uitsluitingsregels. Geeft drawId en shareCode terug voor vervolgacties.
send_invitations_email
— Uitnodigingen per E-mail Versturen
Stuurt elke deelnemer een persoonlijke e-mail met een unieke link om deel te nemen aan de trekking. Kan maar één keer per trekking worden aangeroepen.
Vereist drawId en shareCode van create_draw.
get_group_share_message
— WhatsApp/Telegram-bericht Genereren
Genereert een kant-en-klaar bericht om te plakken in een groepschat. Geen neveneffecten — er worden geen gegevens aangemaakt of e-mails verstuurd.
Typische Integratiestroom
Taal- en Merkroutering
De parameter locale in de argumenten van elke tool bepaalt welk merk en welke sjablonen worden gebruikt. Geef altijd locale op voor het beste resultaat.
| locale | Merk | Spel |
|---|---|---|
| es-ES, es-AR, es-UY | AI (Amigo Invisible) | Amigo Invisible |
| es-MX | MX (Intercambio de Regalos) | Intercambio de Regalos |
| es-CO, es-CL, es-PE, es-VE, es | AS (Amigo Secreto) | Amigo Secreto |
| en-* (or omitted) | SS (Secret Santa) | Secret Santa Raffle |
Veiligheid & Privacy bij AI-integratie
Tijdelijke Verwerking
Namen en e-mailadressen die via de chatinterface worden opgegeven, worden uitsluitend gebruikt om de trekking te genereren. Ze worden niet opgeslagen in het taalmodel en niet gebruikt voor toekomstige AI-training.
End-to-End-Versleuteling
Alle communicatie tussen de AI-assistent en onze servers verloopt via beveiligde HTTPS-protocollen.
Gegevensbeheer
Zodra de trekking is aangemaakt, gaat het beheer van persoonsgegevens (e-mails en toewijzingen) over naar onze beveiligde infrastructuur, volledig in overeenstemming met de AVG.
Controle door de Gebruiker
De AI heeft alleen toegang tot de gegevens die de organisator expliciet heeft opgegeven tijdens het gesprek in natuurlijke taal.
Foutafhandeling
De server geeft fouten op tool-niveau terug met isError: true in het resultaat, en onderscheidt zo "tool is mislukt" van "tool bestaat niet".
| Fout | Oorzaak |
|---|---|
| lottery_impossible | De uitsluitingen maken een geldige trekking onmogelijk. Advies: verwijder wat uitsluitingen of voeg meer deelnemers toe. |
| validation | De backend heeft de gegevens afgewezen (422 met fouten). Toont de velden die niet klopten. |
| not_found | De drawId bestaat niet. Advies: controleren of de trekking opnieuw aanmaken. |
| forbidden | Onjuiste shareCode. Zou niet moeten gebeuren als deze uit dezelfde create_draw-reactie komt. |
| already_sent | Er zijn al uitnodigingen verstuurd voor deze trekking. Elke trekking kan maar één keer bulk-e-mails versturen. |
| server | Tijdelijke backend-fout (5xx). Advies: over een paar minuten opnieuw proberen. |
Hoe Werkt Het Voor Gebruikers?
Heb je liever een stap-voor-stap gids zonder technisch jargon, bekijk dan onze blogpost over hoe iedereen simpelweg door met ChatGPT te praten een Secret Santa-trekking kan maken.
Lees de GebruikersgidsDit vind je misschien ook interessant
Klaar Om Je Trekking Te Maken?
Sla de AI over en maak je Secret Santa-trekking direct op onze website. Gratis, snel, geen registratie nodig.
Gratis Trekking Maken