Zer da Lagun ezkutuaren MCP-a?

Lagun ezkutuaren MCP zerbitzariak (Model Context Protocol) edozein AA laguntzailek —ChatGPT, Claude edo Gemini bezalakoek— oparien trukeko zozketak programatikoki sortzea ahalbidetzen du, hizkuntza naturala erabiliz. Web-formularioak bete beharrean, erabiltzaileek AAri esaten diote nortzuk parte hartzen duten, eta AAk gure zerbitzariarekin komunikatzen da zozketa automatikoki sortzeko.

Zerbitzariak JSON-RPC 2.0 inplementatzen du HTTPS gainean, MCP espezifikazioari jarraituz (2025-06-18 bertsioa). Hiru tresna publiko erakusten ditu: create_draw, send_invitations_email eta get_group_share_message.

Endpointa eta Protokoloa

Eskaerak JSON-RPC 2.0 bidez bidaltzen dira HTTPS gainean. Protokoloaren bertsioa: 2025-06-18.

POST https://mcp.secretsantaraffle.net/mcp

POST https://mcp.secretsantaraffle.net/openai/mcp

Content-Type: application/json

MCP protokoloaren bertsioa: 2025-06-18

Zerbitzari honek bi kanal erakusten ditu domeinu berean: POST /mcp — kanal lehenetsia, tresna multzo osoarekin, Claude bezalako laguntzaileentzat; eta POST /openai/mcp — OpenAIrekin bateragarria den kanala, ChatGPTren appak erabiltzen duena, eta behean dokumentatutako hiru tresna publikoak bakarrik erakusten dituena. Biek JSON-RPC 2.0 protokolo bera hitz egiten dute.

Handshakea (Hasieratzea)

MCP bezero orok hasierako handshakea osatu behar du tresnak deitu aurretik. Erantzuna jaso ondoren, bezeroak notifications/initialized jakinarazpena bidali behar du (id eremurik gabe).

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {},
    "clientInfo": {
      "name": "mi-cliente",
      "version": "1.0.0"
    }
  }
}

initialize-ren erantzunaren ondoren, bidali: { "jsonrpc": "2.0", "method": "notifications/initialized" } — zerbitzariak 202 Accepted erantzuten du gorputz hutsarekin.

create_draw — JSON eskema

Tresna nagusia create_draw da. Oparien trukeko zozketa bat sortzen du N parte-hartzailerekin (gutxienez 3), ausaz binakatuz eta baztertzeak errespetatuz, eta drawId eta shareCode bat itzultzen ditu ondorengo eragiketetarako.

{
  "type": "object",
  "required": ["date", "participants"],
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "Fecha del sorteo, YYYY-MM-DD. Hoy o futuro."
    },
    "participants": {
      "type": "array",
      "minItems": 3,
      "description": "Mínimo 3 participantes. El primero se trata como organizador.",
      "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 de participantes con los que NO debe emparejarse."
          }
        }
      }
    },
    "drawName": {
      "type": "string",
      "maxLength": 255,
      "description": "Opcional. Si se omite, se genera un default como \"Amigo Invisible 2026\"."
    },
    "price": {
      "type": "string",
      "description": "Presupuesto del regalo, texto libre. Ejemplos: \"20€\", \"$25\"."
    },
    "message": {
      "type": "string",
      "description": "Cuerpo del email de invitación. Si se omite, se usa un default localizado."
    },
    "locale": {
      "type": "string",
      "description": "Tag BCP 47 del idioma. Ej: \"es-ES\", \"es-MX\", \"en-GB\". Determina la marca y las plantillas."
    }
  }
}

Eremuen erreferentzia

Eremua Mota Beharrezkoa Deskribapena
date string (date) Bai Zozketaren data YYYY-MM-DD formatuan. Gaurkoa edo etorkizuneko data izan behar du.
participants array (min 3) Bai Parte-hartzaileen zerrenda. Bakoitzak name, email eta aukerako baztertzeak ditu.
drawName string Ez Zozketaren izen aukerakoa. Lehenetsia "Lagun ezkutua 2026".
price string Ez Opariaren aurrekontua testu libre gisa (adib. "20€", "$25").
message string Ez Gonbidapen-postaren gorputz pertsonalizatua. Localizatutako lehenetsi bat erabiltzen du ez bada zehazten.
locale string (BCP 47) Ez Marka (AI/AS/MX/SS) eta txantiloi localizatuak zehazten ditu. Accept-Language erabiltzen du ez bada zehazten.

Tresna erabilgarriak

create_draw — Zozketa bat sortu

Oparien trukeko zozketa bat sortzen du N parte-hartzailerekin (gutxienez 3). Parte-hartzaileak ausaz binakatzen ditu, baztertzeak errespetatuz. drawId eta shareCode itzultzen ditu ondorengo eragiketetarako.

send_invitations_email — Gonbidapenak posta elektronikoz bidali

Parte-hartzaile bakoitzari posta elektroniko pertsonalizatu bat bidaltzen dio, zozketara batzeko esteka pertsonal batekin. Zozketa bakoitzeko behin bakarrik dei daiteke.

create_draw-tik lortutako drawId eta shareCode behar ditu.

get_group_share_message — WhatsApp/Telegram-erako mezua sortu

Talde batean kopiatzeko eta itsasteko prest dagoen testu-mezu bat sortzen du. Ez du side effects-ik: ez du daturik sortzen ez postarik bidaltzen.

Integrazio-fluxu tipikoa

1 Initialize → Hasierako handshakea bidaltzen du eta zerbitzariaren gaitasunak jasotzen ditu.
2 notifications/initialized → Handshakea osatzen du (zerbitzariak 202 Accepted erantzuten du).
3 tools/list → Erabilgarri dauden hiru tresnak aurkitzen ditu.
4 tools/call create_draw → Zozketa sortzen du eta drawId + shareCode lortzen ditu structuredContent-etik.
5 A aukera: tools/call send_invitations_email → Posta elektronikoak bidaltzen dizkie parte-hartzaile guztiei.
6 B aukera: tools/call get_group_share_message → WhatsApp/Telegram-erako prest dagoen mezu bat lortzen du.

Hizkuntzaren eta markaren araberako bideratzea

Tresna bakoitzaren argumentuetako locale parametroak marka eta erabilitako txantiloiak zehazten ditu. Sartu beti emaitzarik onenak lortzeko.

locale Marka Jokoa
es-ES, es-AR, es-UY AI (Lagun ezkutua) Lagun ezkutua
es-MX MX (Oparien Trukea) Oparien Trukea
es-CO, es-CL, es-PE, es-VE, es AS (Lagun sekretua) Lagun sekretua
en-* (o omitido) SS (Secret Santa) Secret Santa Raffle

Segurtasuna eta Pribatutasuna AArekiko integrazioan

Prozesamendu Iragankorra

Txat-interfazearen bidez bidalitako izenak eta posta elektronikoak zozketa sortzeko soilik erabiltzen dira. Ez dira hizkuntza-eredu batean gordetzen, ez eta etorkizuneko AAak entrenatzeko erabiltzen ere.

Muturretik Muturrerako Zifratzea

AA laguntzailearen eta gure zerbitzarien arteko komunikazio guztia HTTPS protokolo seguruen bidez egiten da.

Datuen Zaintza

Zozketa sortu ondoren, datu pertsonalen kudeaketa (postak eta esleipenak) gure azpiegitura seguruari lekualdatzen zaio, RGPD (GDPR) betez zorrotz.

Erabiltzailearen Kontrola

AAk antolatzaileak elkarrizketan zehar borondatez ematen dituen datuetara bakarrik du sarbidea.

Errore-kudeaketa

Zerbitzariak tresna-mailako erroreak itzultzen ditu emaitzan isError: true adieraziz, "tresnak huts egin du" eta "tresna ez da existitzen" bereiziz.

Errorea Kausa
lottery_impossible Baztertzeek zozketa baliozko bat eragozten dute. Baztertzeak murrizteko edo parte-hartzaileak gehitzeko iradokitzen du.
validation Backendak datuak baztertu ditu (422 erroreekin). Huts egin duten eremuak zerrendatzen ditu.
not_found drawId-a ez da existitzen. Zozketa egiaztatzea edo berriz sortzea iradokitzen du.
forbidden shareCode okerra. Ez litzateke gertatu behar create_draw beretik badator.
already_sent Zozketa honetarako gonbidapenak jadanik bidali dira. Zozketa bakoitza posta elektronikoz behin bakarrik bidal daiteke.
server Backendaren aldi baterako errorea (5xx). Minutu batzuk barru berriz saiatzea iradokitzen du.

Nola funtzionatzen du erabiltzaileentzat?

Urratsez urratseko gida bat nahiago baduzu, hizkera teknikorik gabe, kontsultatu gure blog-artikulua, non azaltzen dugun edonork nola sor dezakeen Lagun ezkutua bat ChatGPTrekin hitz eginez.

Irakurri erabiltzaileentzako gida

Prest zaude zure zozketa sortzeko?

Saltatu AA eta sortu zure Lagun ezkutua zuzenean webgunean. Doan, azkar, izena eman gabe.

Sortu Zozketa Doan