Dokumentazio Teknikoa: MCP Integrazioa AArekin
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
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 gidaInteresatu ahal zaizu
Prest zaude zure zozketa sortzeko?
Saltatu AA eta sortu zure Lagun ezkutua zuzenean webgunean. Doan, azkar, izena eman gabe.
Sortu Zozketa Doan