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 moderna
  • CASUAL — energía de "fue mi culpa, bro" para hilos de Slack
  • POETIC — arrepentimiento shakesperiano para el alma dramática
  • GROVELING — suplicar perdón cuando realmente la cagaste
  • HAIKU — 5-7-5 sílabas de puro remordimiento
  • LEGAL_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

RutaPropósito
/Página de inicio con lista de endpoints
/healthVerificación de vida JSON ({"status": "ok"})
/demoEnvoltorio HTTP simple alrededor de generate_apology (parámetros de consulta)
/mcpTransporte MCP HTTP Streamable (especificación actual)
/sseTransporte 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