Pushary
Notificaciones push y aprobaciones con intervención humana para agentes de IA: haz una pregunta a mitad de ejecución y recibe la respuesta desde la pantalla de bloqueo del teléfono.
Documentación
Pushary Agent Skill
Notificaciones push e intervención humana para agentes de IA. Aprueba desde tu teléfono.
Comenzar
·
Directorio de habilidades
·
Reportar un error
Tu agente de IA termina una refactorización de 20 minutos mientras preparas café. Sin Pushary, nunca te enterarías hasta que volvieras a revisar. Con Pushary, recibes una notificación push en tu teléfono en el momento en que termina, o una pregunta en tu pantalla de bloqueo cuando el agente necesita una decisión. Es la herramienta detrás de "sigue adelante, avísame en mi teléfono si necesitas algo".
Pushary es un servicio alojado: $9.99/mes después de una prueba de 3 días con tarjeta. Funciona con Claude Code, Claude Cowork, Codex, Cursor, Windsurf, Hermes, Lovable, o cualquier cliente MCP, y no requiere una suscripción a Claude Max. Si usas Claude Code con Claude Max, Anthropic Remote Control cubre esa configuración de forma gratuita. Pushary cubre lo que no cubre: Codex, Cursor, Claude Code sin Max, un conjunto de agentes multiplataforma, control de políticas obligatorio, botones de respuesta en pantalla de bloqueo y un registro de auditoría de cada pregunta y respuesta.
Cómo Funciona
AI Agent -> MCP Protocol -> Pushary API -> Push Notification -> Your Phone
Pushary es un servidor MCP que conecta tu agente de codificación de IA con notificaciones push. El agente llama a las herramientas de Pushary a través del Protocolo de Contexto de Modelo, y tú recibes notificaciones al instante en cualquier dispositivo.
Tres tipos de preguntas - confirmaciones de sí/no, opción múltiple y entrada de texto libre. Tu agente elige la adecuada para cada situación.
Notificaciones con contexto enriquecido - los agentes pueden incluir cambios de archivos, detalles de errores y próximos pasos sugeridos en una página de detalles que ves al tocar la notificación.
Identificación del agente - cuando ejecutas múltiples agentes, cada notificación muestra qué agente está preguntando para que siempre sepas a qué estás respondiendo.
Hooks de permisos - enruta las solicitudes de aprobación de herramientas de Claude Code a través de notificaciones push para que puedas aprobar o denegar desde tu teléfono.
Configuración: Claude Code
Opción 0: Plugin de Claude Code (un comando)
Este repositorio es un plugin de Claude Code. Instálalo y obtienes las herramientas MCP, los hooks de permisos y la habilidad en un solo paso:
/plugin marketplace add Pushary/pushary-skill
/plugin install pushary
Establece PUSHARY_API_KEY en tu entorno (obtén una clave en pushary.com, $9.99/mes después de una prueba de 3 días). Claude Code expande ${PUSHARY_API_KEY} en la configuración MCP del plugin.
Elige una ruta de instalación. Si ya ejecutaste npx @pushary/agent-hooks setup, los mismos hooks viven en tu ~/.claude/settings.json; instalar el plugin encima ejecuta cada hook dos veces. O desinstala el plugin o ejecuta npx @pushary/agent-hooks clean antes de cambiar.
Opción A: Servidor MCP (notificaciones + preguntas)
El agente llama a las herramientas de Pushary cuando quiere notificarte o hacerte una pregunta.
1. Regístrate en pushary.com/sign-up y obtén tu clave de API.
2. Instala la habilidad:
npx skills add Pushary/pushary-skill
3. Añade el servidor MCP a tu configuración de Claude Code (~/.claude/settings.json o proyecto .claude/settings.json):
{
"mcpServers": {
"pushary": {
"url": "https://pushary.com/api/mcp/mcp",
"headers": {
"Authorization": "Bearer pk_xxx.sk_xxx"
}
}
}
}
Reemplaza pk_xxx.sk_xxx con tu clave de API.
4. Habilita las notificaciones en tu teléfono visitando tu panel de Pushary y permitiendo notificaciones del navegador.
Eso es todo. El agente te enviará notificaciones de forma proactiva cuando las tareas se completen, ocurran errores o se necesiten decisiones.
Opción B: Hooks de Permisos (aprobar/denegar herramientas vía push)
Enruta las solicitudes de permisos integradas de Claude Code a través de notificaciones push. Cuando el agente quiera ejecutar un comando o editar un archivo, recibes una notificación push para aprobar o denegar desde tu teléfono.
1. Instala el paquete de hooks:
npm install -g @pushary/agent-hooks
2. Establece tu clave de API en tu perfil de shell (~/.zshrc o ~/.bashrc):
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
3. Añade el hook a tu configuración de Claude Code (~/.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Write|Edit",
"hooks": [
{
"type": "command",
"command": "pushary-hook",
"timeout": 120
}
]
}
]
}
}
4. Configura las políticas de tiempo de espera en tu panel de Pushary:
| Herramienta | Tiempo de espera | Si no hay respuesta |
|---|---|---|
| Bash | 60s | Auto-denegar |
| Write | 60s | Preguntar en terminal |
| Edit | 45s | Preguntar en terminal |
| Read | 0s | Auto-aprobar |
Cuando no respondes a una notificación push a tiempo, se activa el respaldo configurado: auto-aprobar, auto-denegar o volver a la solicitud de permiso normal en terminal.
Opción C: Ambas (recomendado)
Usa la Opción A y la Opción B juntas. El servidor MCP maneja notificaciones y preguntas voluntarias. El hook de permisos maneja aprobaciones de herramientas. Usan la misma clave de API y panel.
Configuración: Hermes Agent
Opción A: Plugin Nativo (recomendado)
Integración completa con herramientas nativas de Hermes y notificaciones automáticas de errores.
1. Instala el plugin:
pip install hermes-plugin-pushary
2. Actívalo:
hermes plugins enable pushary
3. Establece tu clave de API:
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
4. (Opcional) Establece el nombre de tu agente:
export PUSHARY_AGENT_NAME="Hermes - my-project"
El plugin registra 4 herramientas nativas (pushary_notify, pushary_ask, pushary_wait, pushary_cancel) y envía automáticamente notificaciones push cuando las herramientas devuelven errores.
Establece PUSHARY_AUTO_NOTIFY_SESSION_END=1 para también recibir notificaciones cuando una sesión de Hermes termine.
Opción B: Servidor MCP + Habilidad
Si prefieres MCP sobre el plugin nativo:
1. Añade a ~/.hermes/config.yaml:
mcp:
servers:
pushary:
url: https://pushary.com/api/mcp/sse
headers:
Authorization: "Bearer ${PUSHARY_API_KEY}"
2. Instala la habilidad:
hermes skills tap add Pushary/pushary-skill
hermes skills install pushary-hermes
Configuración: OpenAI Codex
Codex tiene soporte MCP nativo. Un comando:
1. Establece tu clave de API en tu perfil de shell (~/.zshrc o ~/.bashrc):
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
2. Añade el servidor MCP:
codex mcp add pushary --url https://pushary.com/api/mcp/mcp --bearer-token-env-var PUSHARY_API_KEY
Eso es todo. Codex ahora tiene acceso a todas las herramientas de Pushary: notificaciones, preguntas y contexto enriquecido.
O usa el asistente de configuración (configura todo, incluida la clave de API):
npx @pushary/agent-hooks setup
Configuración: Cursor / Windsurf / Otros Agentes MCP
1. Añade el servidor MCP a la configuración MCP de tu agente (generalmente .cursor/mcp.json o similar):
{
"mcpServers": {
"pushary": {
"url": "https://pushary.com/api/mcp/mcp",
"headers": {
"Authorization": "Bearer pk_xxx.sk_xxx"
}
}
}
}
2. Instala la habilidad (si tu agente soporta skills.sh):
npx skills add Pushary/pushary-skill
Configuración: Lovable
Lovable es un constructor de aplicaciones alojado, por lo que no hay paso de instalación local (npx skills add no aplica). Conectas el servidor MCP en la interfaz de Lovable, luego pegas la habilidad en el Conocimiento de Lovable para que el agente la use por sí solo.
1. Conecta el servidor MCP. En Lovable, ve a Configuración -> Conectores -> Conectores personales (planes de Lovable de pago), haz clic en Nuevo servidor MCP, establece la URL a https://pushary.com/api/mcp/mcp, elige Token Bearer y pega tu clave de API (pk_xxx.sk_xxx).
2. Añade la habilidad al Conocimiento. Lovable no puede instalar habilidades vía npx, así que pega la guía de la habilidad en Configuración -> Conocimiento. Usa el SKILL-LITE.md condensado como fuente. Esto hace que el agente de Lovable te notifique cuando un build termina y pregunte antes de cambios arriesgados, sin que tengas que solicitarlo cada vez.
Lovable recibe solo notificaciones y preguntas (sin control obligatorio, ya que no tiene hook de permisos). Guía completa: Guía de Lovable.
Configuración: Claude Cowork
Claude Cowork es el espacio de trabajo agéntico de Anthropic dentro de las aplicaciones de Claude. Es una superficie alojada (npx skills add no aplica), así que conectas Pushary como un conector personalizado y añades la habilidad a través de la carga de habilidades de Cowork.
1. Conecta el servidor MCP. Obtén tu enlace de conector desde el panel de Pushary (Configuración -> Conexiones, sección de Claude). En Claude, abre Configuración -> Conectores -> Añadir conector personalizado, deja los campos OAuth vacíos y pega el enlace. Los conectores son a nivel de cuenta, por lo que el mismo conector está disponible dentro de Cowork; actívalo en una sesión bajo Personalizar -> Conectores.
2. Añade la habilidad. Comprime la carpeta skills/pushary-cowork y súbela en Cowork bajo Personalizar -> Habilidades (las habilidades necesitan ejecución de código habilitada). Alternativamente, pega el bloque de instrucciones permanentes de tu panel de Pushary en Claude Configuración -> Cowork, para que cada sesión te avise al completar y pregunte antes de pasos arriesgados sin que tengas que solicitarlo cada vez.
Cowork recibe solo notificaciones y preguntas (sin control obligatorio; Cowork no expone hooks). Guía completa: Guía de Claude Cowork. Repositorio de plugin dedicado: Pushary/cowork-plugin.
Herramientas
La habilidad expone 5 herramientas MCP:
| Herramienta | Descripción |
|---|---|
send_notification | Envía una notificación push con contexto enriquecido opcional (cambios de archivos, errores, próximos pasos) |
ask_user | Pregunta al usuario vía push - sí/no, opción múltiple o texto libre |
wait_for_answer | Sondeo largo para la respuesta del usuario a una pregunta |
cancel_question | Cancela una pregunta pendiente que ya no es relevante |
list_sessions | Vista de solo lectura de tus sesiones de agente en vivo y preguntas pendientes |
La documentación completa de herramientas con parámetros, ejemplos y pautas de uso está en skills/pushary/SKILL.md.
Intervención Humana
El agente puede hacerte preguntas de decisión vía push y esperar tu respuesta:
Agent: "Which auth strategy should I use?"
Options: JWT tokens / Session cookies / OAuth2 + PKCE
-> push to your phone
You: tap "JWT tokens"
Agent: proceeds with JWT implementation
Soporta tres tipos de preguntas:
- Confirmar - decisiones binarias de sí/no
- Seleccionar - elige entre 2-6 opciones
- Entrada - respuesta de texto libre
El flujo usa ask_user -> wait_for_answer con reintentos automáticos. Las respuestas persisten durante 10 minutos, así que no hay prisa.
Paquetes
| Paquete | Registro | Descripción |
|---|---|---|
@pushary/agent-hooks | npm | Hooks de permisos de Claude Code |
hermes-plugin-pushary | PyPI | Plugin nativo de Hermes Agent |
Agentes Compatibles
Funciona con cualquier agente que soporte skills.sh o el Protocolo de Contexto de Modelo:
- Claude Code (MCP + hooks de permisos)
- Claude Cowork (conector personalizado + carga de habilidad)
- Hermes Agent (plugin nativo o MCP)
- Cursor (MCP)
- Windsurf (MCP)
- Lovable (conector MCP + habilidad vía Conocimiento)
- OpenAI Codex (MCP)
- Y 39+ agentes más
Publicación de la entrada del registro MCP
server.json no se publica fusionándolo. El registro MCP sirve un registro por versión, así que una edición aquí no llega a nadie hasta que la nueva versión se empuje al registro, y el texto antiguo sigue siendo lo que cada agente lee.
Ruta cotidiana: incrementa version en server.json y fusiona a main. El flujo de trabajo Release MCP registry entry lo recoge.
Ese flujo de trabajo necesita una credencial que aún no tiene. El registro otorga derechos de publicación como io.github.<repository_owner>/*, tomados de la reclamación repository_owner del token OIDC de GitHub. Nuestro servidor es io.github.Pushary/pushary y el monorepo es propiedad de aadilghani1, por lo que OIDC sin token desde el monorepo no puede alcanzar el espacio de nombres. Hasta que se aplique una de las dos correcciones en el encabezado de ese flujo de trabajo, la ejecución se detiene con un error explícito en lugar de pasar silenciosamente.
Respaldo manual, desde este directorio:
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
./mcp-publisher login github
./mcp-publisher publish
Comprueba lo que el registro realmente sirve, que es el único número que importa:
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pushary"
Ese endpoint devuelve todas las versiones, de la más antigua a la más reciente. Lee la entrada cuyo _meta."io.modelcontextprotocol.registry/official".isLatest es true; la primera fila de la lista es el registro más antiguo, no el activo.
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, lee la guía de contribución antes de enviar una solicitud de extracción.
Seguridad
Si descubres una vulnerabilidad de seguridad, por favor repórtala de manera responsable. Consulta SECURITY.md para más detalles.
Financiación
Este proyecto está totalmente financiado por RalphNex OU, una agencia de desarrollo de software estonia.
Licencia
MIT - Derechos de autor (c) 2025 RalphNex OU