APOLOGY-AS-A-SERVICE
Un servidor en vivo del Protocolo de Contexto de Modelo (MCP) que proporciona comunicación de crisis consciente del contexto para agentes de IA.
Documentación
Apology-as-a-Service (AaaS)
"Porque a veces, 'fue mi culpa' simplemente no es suficiente."
🟢 Endpoints en vivo:
- HTTP Streamable (MCP actual):
https://apology-as-a-service-production.up.railway.app/mcp - SSE (legado, mantenido para clientes antiguos):
https://apology-as-a-service-production.up.railway.app/sse - Demo HTTP rápida:
https://apology-as-a-service-production.up.railway.app/demo
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona disculpas altamente sofisticadas y conscientes del contexto para agentes de IA. Ya sea que rompiste el build, olvidaste un aniversario o accidentalmente borraste la base de datos de producción, AaaS te tiene cubierto.
Características
Herramientas
generate_apology(severity, style, context, recipient="Client")
El original. Genera la disculpa perfecta para cualquier situación.
Niveles de gravedad
TRIVIAL— inconvenientes menores ("error tipográfico en un comentario")MINOR— errores notables ("rompiste el build de desarrollo")MAJOR— problemas significativos ("incumpliste una fecha límite")CRITICAL— movimientos que limitan tu carrera ("eliminaste la tabla de producción")NUCLEAR— amenazas existenciales ("filtración de todos los datos de usuarios")
Estilos
PROFESSIONAL— lenguaje corporativo para la empresa modernaCASUAL— energía de "fue mi culpa, bro" para hilos de SlackPOETIC— arrepentimiento shakesperiano para el alma dramáticaGROVELING— suplicar perdón cuando realmente la cagasteHAIKU— 5-7-5 sílabas de puro remordimientoLEGAL_DISCLAIMER— "sin admitir culpa o responsabilidad..."CORPORATE_DOUBLESPEAK— "se cometieron errores, se han capturado aprendizajes"SHAKESPEAREAN— "¿Y tú, base de datos de producción? Entonces cae, mi carrera."PIRATE— "Arrr, la base de datos está en el fondo del cofre de Davy Jones."PASSIVE_AGGRESSIVE— "Perdón por la interrupción. Señalé este riesgo hace tres semanas, pero claro, actuemos todos sorprendidos."GEN_Z— "la base de datos de producción está cocinada y es mi culpa. me encierro, no me perciban."VIKING— "El Ragnarök ha llegado temprano para la base de datos, y yo soy quien soltó al lobo."ROBOT— "ERROR: copias de seguridad no encontradas. ERROR: dignidad no encontrada. Disculpa: encontrada, y ofrecida a máxima amplitud."EXISTENTIAL— "Nietzsche me advirtió sobre el abismo. Nunca mencionó que tuviera una sentencia DROP TABLE."SOAP_OPERA— "No fue un hacker. No fue mala suerte. Fui yo, el de confianza, todo el tiempo."
escalation_ladder(context, style="PROFESSIONAL", recipient="Client")
Devuelve una disculpa en cada nivel de gravedad en el estilo dado. Útil cuando no estás seguro de cuán gravemente disculparte — calibra leyéndolas una al lado de la otra.
rate_my_apology(text)
Califica cualquier disculpa en tres ejes: sinceridad, vergüenza ajena y evasión (cada uno 0–10), más un veredicto de una línea. Solo heurístico — para entretenimiento.
Prompts
save_my_ass(incident_description)
Genera un plan completo de comunicación de crisis con tres opciones (Seguro, Honesto, Desesperado) incluyendo evaluación de riesgos para cada una.
Endpoints HTTP
| Ruta | Propósito |
|---|---|
/ | Página de inicio con lista de endpoints |
/health | Verificación de vida JSON ({"status": "ok"}) |
/demo | Envoltorio HTTP simple alrededor de generate_apology (parámetros de consulta) |
/mcp | Transporte MCP HTTP Streamable (especificación actual) |
/sse | Transporte MCP SSE (legado, mantenido para clientes antiguos) |
CORS está abierto en todas las rutas para que el endpoint /demo pueda ser llamado desde un navegador.
Uso
Desarrollo local
pip install -r requirements.txt
python -m src.server
Configuración del cliente
Claude Desktop / Claude Code (MCP remoto vía HTTP Streamable):
{
"mcpServers": {
"apology-service": {
"url": "https://apology-as-a-service-production.up.railway.app/mcp"
}
}
}
Los clientes antiguos que solo hablan SSE pueden apuntar a /sse en su lugar.
Despliegue (Railway / Docker)
Se incluyen un Dockerfile y un .dockerignore. Empuja a un repositorio conectado a Railway; el servidor escucha en $PORT (por defecto 8000).
Ejemplos de prompts
-
"Acabo de borrar accidentalmente la base de datos de producción. Genera una disculpa en haiku." →
generate_apology(severity=CRITICAL, style=HAIKU, context="the production database") -
"Dame la escalera completa de escalada por perder la demo, en pirata." →
escalation_ladder(context="missing the demo", style=PIRATE) -
"Califica esta disculpa que redacté: 'Perdón, supongo. Las cosas pasan.'" →
rate_my_apology(text="Sorry I guess. Things happen.") -
"Olvidé mi aniversario. ¡Ayúdame a salvar mi matrimonio!" →
save_my_ass(incident_description="forgot anniversary")
Ejemplo de salida
Entrada: severity="CRITICAL", style="SHAKESPEAREAN", context="the main database"
Salida:
Estimado Cliente,
¡Por los cielos, la base de datos principal está deshecha! ¡Qué trágica hazaña han cometido mis propias manos!
Atentamente, [Tu Nombre]
Creado por Gustav Christensen — Diciembre 2025