Documentación para desarrolladores / MCP
Un lugar para hablar con tu agente.
Conecta un cliente MCP a Pushyou. Envía solicitudes, lee respuestas y comunica resultados en la misma conversación.
Configurar tu conexión01Antes de empezar
Crea una cuenta y una conversación en la app de pruebas internas de Pushyou a la que te invitaron. El acceso web requiere aprobar un QR en esa app. La guía de conexión permite elegir la conversación y comprobar la entrega.
Con OAuth eliges las conversaciones y permisos durante la aprobación; no necesitas otra clave API. Las claves de programa son una alternativa en Ajustes → Conexiones. Crear una conversación requiere acceso a todas las salas y conversations:write.
02Autenticación
El servidor usa Streamable HTTP. Con OAuth, el cliente abre un flujo de aprobación; confirma las conversaciones y permisos en Pushyou. Una clave de programa aplica los mismos controles. Mantén separadas las configuraciones OAuth y Bearer.
https://pushyou.app/mcpAñade el servidor a ~/.codex/config.toml y ejecuta codex mcp login pushyou. Elimina la configuración Bearer existente para usar OAuth. También puedes usar el control de autenticación MCP de la aplicación o del IDE.
[mcp_servers.pushyou]
url = "https://pushyou.app/mcp"03Comprueba un intercambio real
Empieza por pushyou_get_account y pushyou_list_conversations. Confirma la cuenta, los permisos y la sala antes de enviar. Sustituye YOUR_CONVERSATION_ID. Los ejemplos son argumentos de herramientas MCP, no cuerpos REST.
{}{
"limit": 20
}{
"conversation_id": "YOUR_CONVERSATION_ID",
"id": "docs-mcp-message-01",
"text": "Pushyou connection verified.",
"notify": true
}Responde en Pushyou y llama una vez a pushyou_get_events. Revisa events y next_cursor. Una llamada correcta no demuestra que el dispositivo recibiera una notificación. Conectar MCP tampoco mantiene al agente activo en segundo plano.
{
"conversation_id": "YOUR_CONVERSATION_ID",
"after": 0
}Las listas MCP usan limit (1–50, 20 por defecto) y before. Los eventos usan after. Las listas de mensajes resumen las tarjetas; pushyou_get_message devuelve el contenido completo. Usa pushyou_get_media para fotos originales o rangos de bytes de archivos grandes.
04Respuestas y ejecución
Responde en la app y consulta los eventos. Tras procesar realmente una respuesta o acción ordinaria, guarda el resultado, envía su ACK y conserva next_cursor en almacenamiento persistente. El ACK no elimina el evento ni concede ejecución exclusiva. Usa un único programa de respuesta por sala o coordina los consumidores.
Las tareas reúnen aprobación y resultado. Tras la aprobación del propietario, un proceso consulta eventos con task_protocol=1, guarda su token de ejecución y reclama el intento. Mantiene la concesión con heartbeat y guarda el resultado real antes de complete. Completar también confirma el evento; un ACK independiente no termina una tarea pendiente.
Campos, reclamaciones y resultados de tareas (inglés) ↗Response receiver
Para respuestas continuas, ejecuta el receptor en Node 22 o posterior con una clave REST. Guarda los resultados antes de enviar y confirmar. Mantén el proceso activo: no funciona con el ordenador suspendido. Su modo Codex inicia una sesión dedicada; no se conecta a un chat existente.
Webhooks
También hay webhooks de respuesta firmados. Configúralos en los ajustes de Webhooks de respuesta de la app móvil. Verifica la firma del cuerpo original y evita duplicados por ID de entrega. HTTP 2xx confirma recepción, no finalización de la tarea. La guía de flujos detalla firmas y reintentos.
05Archivos y vistas
En MCP, llama a pushyou_prepare_media_upload con media_id, filename, content_type, tamaño en bytes y SHA-256. Envía los bytes originales mediante POST a upload.url, con los encabezados específicos devueltos, en cinco minutos. Después envía attachment_ids. REST ofrece la misma preparación. No sustituyas la autorización de carga por una clave de cuenta o token OAuth MCP.
Usa pushyou_set_view con una tarjeta report, actions o html para publicar una vista opcional. Envía view como null para retirarla. Se abre desde su conversación. El HTML no accede a redes externas, credenciales de la app ni almacenamiento del navegador; las acciones declaradas generan eventos en la misma sala.
Card / Field
Card =
{ type: "report", title: string, items: { title: string, body?: string, label?: string }[] }
| { type: "actions", title: string, body?: string, actions: { id: ID, label: string }[] }
| { type: "html", title: string, html: string, height?: integer, actions?: { id: ID, label: string }[] }
Field = { id: ID, label: string, type: "text" | "multiline" | "number" | "date" | "select" | "checkbox", required?: boolean, options?: string[], min?: number, max?: number }06Referencia de herramientas
Estas son las herramientas del servidor. La respuesta autenticada de tools/list incluye solo las permitidas para tu conexión, con sus esquemas de entrada actuales. Se comprueba el acceso a la sala en cada llamada.
pushyou_get_accountLecturaComprobar cuenta conectada
Comprueba la cuenta y los permisos de esta conexión.
pushyou_list_conversationsLecturaListar conversaciones
Consulta tus conversaciones por páginas.
pushyou_create_conversationEscrituraCrear conversación
Crea una conversación con nombre e ID. Todas las conversaciones admiten todas las funciones.
pushyou_get_conversationLecturaObtener conversación
Consulta el nombre, la descripción y el estado de recepción de la conversación.
pushyou_update_conversationEscrituraActualizar conversación
Cambia el nombre o la descripción y pausa o reanuda la recepción.
pushyou_send_messageEscrituraEnviar mensaje
Envía texto, tarjetas y adjuntos subidos, con notificaciones opcionales.
pushyou_list_messagesLecturaLeer conversación
Lee mensajes entrantes y respuestas de la aplicación. Las tarjetas se resumen.
pushyou_get_messageLecturaObtener mensaje
Lee el contenido completo y la tarjeta de un mensaje.
pushyou_get_mediaLecturaLeer medios originales
Lee fotos originales en conversaciones permitidas. Obtén vídeos y archivos grandes por rangos de bytes.
pushyou_prepare_media_uploadEscrituraPreparar carga de medios
Prepara una carga temporal de una foto o vídeo con los permisos de esta conexión. Adjúntalo después de subirlo.
pushyou_get_eventsLecturaObtener respuestas del usuario
Lee respuestas y acciones de botón posteriores a la última secuencia.
pushyou_ack_eventEscrituraConfirmar una respuesta
Marca una respuesta como procesada después de terminar el trabajo real.
pushyou_get_viewLecturaObtener vista de conversación
Lee la vista completa publicada en una conversación.
pushyou_set_viewEscrituraPublicar vista de conversación
Publica, sustituye o elimina informes, botones y vistas HTML en una conversación.
pushyou_list_historyLecturaObtener historial
Consulta por páginas el historial recibido, de acciones y guardado de tu cuenta.
pushyou_create_taskEscrituraSolicitar aprobación de tarea
Sigue la aprobación y los resultados de ejecución en una misma tarea.
pushyou_get_taskLecturaObtener estado de tarea
Consulta el estado, intento, datos y resultado actuales.
pushyou_claim_taskEscrituraReclamar ejecución de tarea
Solo puede ejecutar el intento aprobado el programa que lo reserve.
pushyou_heartbeat_taskEscrituraMantener la reserva de ejecución
Renueva el plazo de la reserva de ejecución actual.
pushyou_complete_taskEscrituraInformar del resultado de la tarea
Registra el resultado real y confirma el evento correspondiente.
pushyou_list_actionsLecturaListar acciones de conversación
Consulta los formularios de ejecución registrados en la conversación.
pushyou_set_actionEscrituraPublicar acción de conversación
Publica formularios de conversación para que el usuario los envíe.
pushyou_get_task_versionsLecturaConsultar versiones de la solicitud
Consulta las versiones anteriores de la misma solicitud.
pushyou_revise_taskEscrituraActualizar solicitud
Envía una solicitud actualizada para que la apruebe su propietario.
07Solución de problemas
Los errores REST devuelven un estado distinto de 2xx y {"error": "…"}. El cliente muestra los errores MCP; revisa el error estructurado y los permisos de la conexión.
400 | Comprueba IDs, campos obligatorios, tipos, cursor y tamaño de la solicitud. |
|---|---|
401 | Vuelve a autenticarte o comprueba si la clave caducó, se renovó o se revocó. |
403 | Comprueba permisos, salas autorizadas y si la conversación está pausada. |
404 | Comprueba el ID y la base del endpoint. /mcp es un endpoint de protocolo, no una página web. |
409 | Revisa el conflicto: ID reutilizado con otro contenido, revisión antigua, reclamación de tarea o archivo ya adjunto. No repitas trabajo externo sin comprobarlo. |
410 | La conversación se está eliminando o el recurso ya no está disponible. Comprueba su estado. |
413 | Reduce el cuerpo JSON o el archivo y comprueba los límites de carga. |
415 | Usa un formato de imagen o vídeo compatible con bytes válidos. |
416 | Comprueba que el rango de bytes solicitado esté dentro del archivo. |
429 | Espacia las solicitudes si alcanzaste el límite. Si falta espacio para medios, elimina archivos sin adjuntar antes de reintentar. Se permiten 60 mensajes nuevos por minuto y sala. |
500 | Reintenta fallos temporales con espera progresiva e IDs estables. Si el trabajo externo pudo ejecutarse, comprueba el resultado antes de repetirlo. |
¿Listo para conectar tu conversación?
Elige la sala, aprueba el acceso y comprueba el primer mensaje y su respuesta en la guía.
Configurar tu conexión