APOLOGY-AS-A-SERVICE
Um servidor MCP ao vivo que fornece comunicação de crise sensível ao contexto para agentes de IA.
Documentação
Apology-as-a-Service (AaaS)
"Porque, às vezes, 'foi mal' simplesmente não é suficiente."
🟢 Endpoints ativos:
- Streamable HTTP (MCP atual):
https://apology-as-a-service-production.up.railway.app/mcp - SSE (legado, mantido para clientes antigos):
https://apology-as-a-service-production.up.railway.app/sse - Demonstração HTTP rápida:
https://apology-as-a-service-production.up.railway.app/demo
Um servidor Model Context Protocol (MCP) que fornece pedidos de desculpas altamente sofisticados e sensíveis ao contexto para agentes de IA. Seja porque você quebrou o build, esqueceu um aniversário ou acidentalmente apagou o banco de dados de produção, o AaaS tem a solução.
Recursos
Ferramentas
generate_apology(severity, style, context, recipient="Client")
O original. Gera o pedido de desculpas perfeito para qualquer situação.
Níveis de Gravidade
TRIVIAL— pequenos inconvenientes ("erro de digitação em comentário")MINOR— erros perceptíveis ("quebrou o build de desenvolvimento")MAJOR— problemas significativos ("perdeu um prazo")CRITICAL— ações que limitam a carreira ("derrubou a tabela de produção")NUCLEAR— ameaças existenciais ("vazou todos os dados de usuários")
Estilos
PROFESSIONAL— linguagem corporativa para a empresa modernaCASUAL— energia de "foi mal, mano" para threads do SlackPOETIC— arrependimento shakespeariano para a alma dramáticaGROVELING— implorando por perdão quando você realmente estragou tudoHAIKU— 5-7-5 sílabas de puro remorsoLEGAL_DISCLAIMER— "sem admitir culpa ou responsabilidade..."CORPORATE_DOUBLESPEAK— "erros foram cometidos, aprendizados foram capturados"SHAKESPEAREAN— "Até tu, banco de produção? Então cai, minha carreira."PIRATE— "Argh, o banco de dados está no fundo do baú de Davy Jones."PASSIVE_AGGRESSIVE— "Desculpe pela interrupção. Eu sinalizei esse risco há três semanas, mas claro, vamos todos agir como se estivéssemos surpresos."GEN_Z— "o banco de produção está destruído e a culpa é minha. focado, não me percebam."VIKING— "Ragnarök chegou cedo para o banco de dados, e fui eu quem soltou o lobo."ROBOT— "ERRO: backups não encontrados. ERRO: dignidade não encontrada. Pedido de desculpas: encontrado e oferecido na amplitude máxima."EXISTENTIAL— "Nietzsche me avisou sobre o abismo. Ele nunca mencionou que tinha uma instrução DROP TABLE."SOAP_OPERA— "Não foi um hacker. Não foi azar. Fui eu, o de confiança, o tempo todo."
escalation_ladder(context, style="PROFESSIONAL", recipient="Client")
Retorna um pedido de desculpas em todos os níveis de gravidade no estilo fornecido. Útil quando você não tem certeza de quão seriamente deve se desculpar — calibre lendo-os lado a lado.
rate_my_apology(text)
Avalia qualquer pedido de desculpas em três eixos: sinceridade, vergonha alheia e evasão (cada um de 0 a 10), além de um veredito de uma linha. Apenas heurístico — para entretenimento.
Prompts
save_my_ass(incident_description)
Gera um plano completo de comunicação de crise com três opções (Seguro, Honesto, Desesperado), incluindo avaliação de risco para cada uma.
Endpoints HTTP
| Caminho | Finalidade |
|---|---|
/ | Página inicial com lista de endpoints |
/health | Verificação de atividade em JSON ({"status": "ok"}) |
/demo | Wrapper HTTP simples em torno de generate_apology (parâmetros de consulta) |
/mcp | Transporte MCP Streamable HTTP (especificação atual) |
/sse | Transporte MCP SSE (legado, mantido para clientes antigos) |
CORS está aberto em todas as rotas para que o endpoint /demo possa ser chamado a partir de um navegador.
Uso
Desenvolvimento local
pip install -r requirements.txt
python -m src.server
Configuração do cliente
Claude Desktop / Claude Code (MCP remoto via Streamable HTTP):
{
"mcpServers": {
"apology-service": {
"url": "https://apology-as-a-service-production.up.railway.app/mcp"
}
}
}
Clientes antigos que só falam SSE podem apontar para /sse.
Implantação (Railway / Docker)
Um Dockerfile e um .dockerignore estão incluídos. Envie para um repositório conectado ao Railway; o servidor escuta em $PORT (padrão 8000).
Exemplos de prompts
-
"Acabei de apagar acidentalmente o banco de dados de produção. Gere um pedido de desculpas em haiku." →
generate_apology(severity=CRITICAL, style=HAIKU, context="the production database") -
"Me dê a escada completa de escalada para ter perdido a demonstração, em pirata." →
escalation_ladder(context="missing the demo", style=PIRATE) -
"Avalie este pedido de desculpas que rascunhei: 'Desculpa, acho. Coisas acontecem.'" →
rate_my_apology(text="Sorry I guess. Things happen.") -
"Esqueci meu aniversário de casamento. Me ajude a salvar meu casamento!" →
save_my_ass(incident_description="forgot anniversary")
Exemplo de saída
Entrada: severity="CRITICAL", style="SHAKESPEAREAN", context="the main database"
Saída:
Caro Cliente,
Pelos céus, o banco de dados principal está destruído! Que ato trágico minhas próprias mãos cometeram!
Atenciosamente, [Seu Nome]
Criado por Gustav Christensen — Dezembro de 2025