{"serverId":"mcp-registry/app.pixever/mcp","tools":[{"name":"pixever_info","fixed":{"name":"pixever_info","description":"Identidad y estado público de un Pixever: nombre (si está disclosed), privacidad, estado de ciclo de vida, y la vida free — `state` ('open'|'closed'), `open_until` (hasta cuándo sigue abierto a contenido nuevo) y `risk_counter_active` (true solo en los 7 días previos a un corte de extensión, fin de mes 3/4/5). Si está cerrado, lo dice junto con desde cuándo (`closed_since`) — sin ofrecer subida. Solo lectura.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Slug del Pixever, p.ej. 'boda-maria'."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"pixever_media_list","fixed":{"name":"pixever_media_list","description":"Lista paginada (cursor-based) de media visible del feed de un Pixever. Pixevers públicos no requieren `token`; cerrados/semi-privados sí (el x-guest-token de un invitado ya registrado). Usa `pageInfo.endCursor` de la respuesta como `after` para pedir la siguiente página. Solo lectura.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"after":{"type":"string","description":"Cursor opaco de `pageInfo.endCursor` de una llamada previa."},"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Default 20, máximo 50."},"token":{"type":"string","description":"Token de invitado (x-guest-token) ya emitido — nunca se guarda ni se loguea."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":205,"tokensAfter":205},{"name":"pixever_upload_link","fixed":{"name":"pixever_upload_link","description":"Construye la URL pública de la puerta de subida (/p/:slug) de un Pixever, agregando el acceso del invitado como ?access= si se provee `token`. Si el espacio está cerrado (vida free agotada), no ofrece el enlace: devuelve `ok:false` con `code: FREE_LIFE_CLOSED` y un mensaje en positivo (sigue visible para siempre, ya no entra contenido nuevo, Obtén Pro). No emite ni valida el token — solo lo adjunta cuando el espacio está abierto; la validación ocurre al abrir el enlace. Solo lectura.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"token":{"type":"string","description":"Acceso (puerta×alcance) ya emitido por el host — nunca se guarda ni se loguea."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":208,"tokensAfter":208},{"name":"pixever_upload_media","fixed":{"name":"pixever_upload_media","description":"ÚNICA tool de escritura: descarga una imagen pública desde `source_url` y la sube a `POST /api/v1/pixevers/:slug/media` a nombre del invitado dueño de `token` (x-guest-token, requerido — sin token no hay escritura). Solo imágenes (jpeg/png/webp/heic/heif, máx 20 MB); no video, no creación de Pixevers, no moderación. `source_url` debe ser https pública y no resolver a una red interna — se rechaza si no cumple, sin tocar la red. Si el espacio ya cerró su vida free, rechaza con `ok:false` y `code: ","inputSchema":{"type":"object","required":["slug","token","source_url"],"properties":{"slug":{"type":"string"},"token":{"type":"string","description":"Token de invitado (x-guest-token) ya emitido — requerido. Nunca se guarda ni se loguea."},"source_url":{"type":"string","description":"URL https pública de la imagen a guardar. Nunca se loguea."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":250,"tokensAfter":250}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"pixever_interactions","params":["slug","media_id"]},{"tool":"pixever_media_list","params":["slug"]},{"tool":"pixever_react","params":["slug","media_id"]},{"tool":"pixever_star","params":["slug","media_id"]},{"tool":"pixever_upload_link","params":["slug"]},{"tool":"pixever_upload_media","params":["slug"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}