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

1 Initialize → Stuur de initialize-handshake en ontvang de servercapaciteiten.
2 notifications/initialized → Rond de handshake af (server antwoordt met 202 Accepted).
3 tools/list → Ontdek de drie beschikbare tools.
4 tools/call create_draw → Maak de trekking en ontvang drawId + shareCode uit structuredContent.
5 Optie A: tools/call send_invitations_email → Stuur e-mails naar alle deelnemers.
6 Optie B: tools/call get_group_share_message → Ontvang een kant-en-klaar WhatsApp/Telegram-bericht.

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 Gebruikersgids

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