Servidor MCP - Agentes de IA avisam ou ligam para você
Conecte Claude Code, Codex, Cursor, ChatGPT e outros agentes de IA ao servidor MCP oficial do Echobell para receber uma notificação push ou uma chamada.
O Echobell tem um servidor oficial de Model Context Protocol (MCP). Conecte-o ao seu agente de IA — Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude, ChatGPT ou qualquer outro cliente MCP — e o agente ganha uma ferramenta, notify, que envia uma notificação por um dos seus canais do Echobell.
Comece uma refatoração longa, uma rodada de testes ou um deploy, vá fazer outra coisa e peça ao agente para avisar quando terminar. Seu celular vibra quando o trabalho acaba, mostra um alerta urgente quando o agente precisa de você ou toca como uma chamada quando algo dá muito errado.
Como funciona
- É um servidor MCP remoto em
https://mcp.echobell.one/mcp, com o transporte Streamable HTTP. Não há nada para instalar: nenhum pacote npm, nenhumnpx, nenhum processo local. - Cada URL de MCP pertence a um canal. Quando o agente chama
notify, todos os inscritos nesse canal recebem a notificação, cada um com o tipo de notificação que escolheu. - A credencial é o token de gatilho do canal — o mesmo token que fica no final da URL do webhook do canal. O servidor MCP funciona como o webhook do canal, só que com uma ferramenta que o agente sabe chamar.
Crie um canal dedicado aos seus agentes, por exemplo "AI Agents", e inscreva-se nele com o tipo Chamada. Assim seus agentes podem escolher qualquer nível até uma chamada, e você pode compartilhar o canal com colegas que queiram os mesmos alertas.
Obtenha sua URL de MCP
Pelo app
- Abra o app Echobell e toque no canal que você quer que o agente use.
- Nos detalhes do canal, encontre a seção Conectar agente de IA.
- Copie a URL do servidor MCP ou o trecho de configuração pronto para o seu agente.
Pela URL do webhook
A URL de MCP usa o mesmo token da URL do webhook do canal. Pegue o token do final da URL do webhook e coloque-o depois de https://mcp.echobell.one/mcp/:
Webhook URL: https://hook.echobell.one/t/<channel-token>
MCP URL: https://mcp.echobell.one/mcp/<channel-token>
A URL de MCP contém o token de gatilho do seu canal. Qualquer pessoa que a tenha pode enviar notificações aos inscritos do canal, então guarde-a com o mesmo cuidado que uma senha. Veja Segurança.
Configure seu agente
Todos os trechos abaixo usam o formato com URL. Substitua <channel-token> pelo token de gatilho do seu canal ou cole o trecho que o app fornece, que já vem preenchido.
Claude Code
claude mcp add --transport http echobell https://mcp.echobell.one/mcp/<channel-token>
Adicione --scope user para deixar o servidor disponível em todos os projetos, e não só no atual.
Codex
Adicione isto a ~/.codex/config.toml:
[mcp_servers.echobell]
url = "https://mcp.echobell.one/mcp/<channel-token>"
Cursor
Adicione isto a ~/.cursor/mcp.json, ou a .cursor/mcp.json dentro de um projeto:
{
"mcpServers": {
"echobell": {
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
VS Code (GitHub Copilot)
Adicione isto a .vscode/mcp.json no seu workspace e use a ferramenta no Copilot Chat em modo agente:
{
"servers": {
"echobell": {
"type": "http",
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Se o .vscode/mcp.json for versionado no seu repositório, use o formato com cabeçalho e um prompt de entrada, para que o token fique fora do arquivo.
Windsurf
Adicione isto a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"echobell": {
"serverUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Gemini CLI
Adicione isto a ~/.gemini/settings.json:
{
"mcpServers": {
"echobell": {
"httpUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Claude Desktop e claude.ai
- Abra Settings → Connectors.
- Escolha Add custom connector.
- Informe o nome
Echobelle a URLhttps://mcp.echobell.one/mcp/<channel-token>e adicione o conector.
O conector fica disponível no Claude na web e no app para desktop.
ChatGPT
- Ative o modo desenvolvedor nas configurações do ChatGPT.
- Abra Settings → Connectors e escolha Create.
- Informe a URL
https://mcp.echobell.one/mcp/<channel-token>e defina a autenticação como No authentication — o token na URL é a credencial.
Outros clientes MCP
Qualquer cliente compatível com o transporte Streamable HTTP funciona. Informe a URL https://mcp.echobell.one/mcp/<channel-token> ou use o formato com cabeçalho abaixo.
Formato com cabeçalho
Em vez de colocar o token na URL, você pode enviá-lo em um cabeçalho Authorization. Os dois formatos são equivalentes.
URL: https://mcp.echobell.one/mcp
Authorization: Bearer <channel-token>
Com o Claude Code:
claude mcp add --transport http echobell https://mcp.echobell.one/mcp \
--header "Authorization: Bearer <channel-token>"
No VS Code, um prompt de entrada (input) mantém o token fora do .vscode/mcp.json, então o arquivo pode ser versionado com segurança. O VS Code pede o token na primeira vez que o servidor inicia e o guarda de forma segura:
{
"inputs": [
{
"type": "promptString",
"id": "echobell-token",
"description": "Echobell channel trigger token",
"password": true
}
],
"servers": {
"echobell": {
"type": "http",
"url": "https://mcp.echobell.one/mcp",
"headers": {
"Authorization": "Bearer ${input:echobell-token}"
}
}
}
}
A ferramenta notify
O servidor expõe uma única ferramenta, notify. O agente decide como preenchê-la a partir do seu prompt.
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | Sim | Título da notificação. |
body | string | Não | Corpo da notificação. |
link | string (URL) | Não | Um link aberto quando você toca na notificação, como um pull request, o log de um build ou um dashboard. |
urgency | string | Não | normal, time-sensitive ou calling. Omita para usar o nível de cada inscrito. Veja Urgência. |
Urgência
Quem se inscreve em um canal escolhe um tipo de notificação para ele no app: Normal, Urgente ou Chamada. Essa escolha é o nível mais alto com que o canal pode alcançar essa pessoa.
- Quando o agente omite
urgency, cada inscrito recebe o nível que escolheu. - Quando o agente envia
urgency, ele só pode baixar o nível de um inscrito, nunca aumentar. Se você se inscreveu com Chamada,"urgency": "normal"chega como uma notificação normal. Se você se inscreveu com Normal,"urgency": "calling"continua chegando como uma notificação normal.
Assim, um único canal dá conta de tudo. Inscreva-se com Chamada e peça ao agente para enviar atualizações de rotina como normal e usar calling só quando algo estiver quebrado.
Ao contrário de notificationType nas requisições de webhook, urgency também funciona em canais com template personalizado.
Chamadas exigem o Echobell Premium
Notificações de chamada são um recurso do Echobell Premium. Quando o agente pede calling, um inscrito sem Premium recebe uma notificação urgente (time-sensitive) no lugar — o mesmo que acontece com o app e com os webhooks.
Uma chamada por minuto em cada canal
Um canal liga para cada inscrito no máximo uma vez por minuto. Se o agente pedir outra chamada dentro desse minuto — por exemplo, porque ficou preso tentando de novo —, o inscrito recebe uma notificação urgente no lugar, que ainda atravessa os modos de foco. Webhooks e gatilhos por e-mail seguem a mesma regra.
O agente fica sabendo nos dois casos. O resultado da ferramenta lista cada rebaixamento de nível, então o agente sabe que o celular não tocou e pode dizer isso em vez de supor que ligou para você.
O que o agente recebe de volta
Cada chamada a notify retorna um breve resumo em texto para o agente e dados estruturados:
{
"notificationTriggered": true,
"reason": null,
"requestedUrgency": "calling",
"recipients": 1,
"deliveredUrgency": { "normal": 0, "time-sensitive": 1, "calling": 0 },
"fallbacks": [
{
"from": "calling",
"to": "time-sensitive",
"reason": "premium-required",
"recipients": 1
}
]
}
| Campo | Significado |
|---|---|
notificationTriggered | true quando uma notificação foi enviada. |
reason | Por que nada foi enviado: conditions-not-met (as condições do canal não foram atendidas) ou no-subscribers (ninguém está inscrito no canal). null quando uma notificação foi enviada. |
requestedUrgency | A urgency que o agente pediu, ou null quando ele a omitiu. |
recipients | Quantos inscritos foram notificados. |
deliveredUrgency | Quantos inscritos receberam cada nível. |
fallbacks | Inscritos que receberam um nível mais baixo que o pedido, e por quê: premium-required (chamadas exigem Premium), subscriber-setting (o nível que o próprio inscrito escolheu para o canal é mais baixo) ou call-cooldown (o canal já ligou para esse inscrito no último minuto). |
Canais de repasse direto e canais com modelo
O servidor MCP funciona com os dois tipos de canal:
- Canais de repasse direto (o padrão) mostram o
titlee obodyexatamente como o agente envia. - Canais com modelo (com Modelo personalizado ativado em Configurações avançadas) montam a notificação a partir dos seus modelos.
title,body,link,externalLinkeurgencyficam disponíveis como variáveis de modelo, e as condições do canal continuam valendo. Quando as condições não são atendidas, nada é enviado e o agente recebereason: "conditions-not-met".
Exemplos de prompts
Com o servidor conectado, peça notificações em linguagem natural:
- "Rode toda a suíte de testes e me avise pelo Echobell quando terminar."
- "Refatore o módulo de pagamentos. Me mande um alerta urgente do Echobell se precisar de uma decisão minha."
- "Faça o deploy em staging. Me ligue se o deploy falhar; senão, mande uma notificação normal com a URL."
- "Quando a migração terminar, me avise com um resumo e um link para o pull request."
Para virar hábito, adicione uma linha como esta ao arquivo de instruções do seu agente (CLAUDE.md, AGENTS.md, .cursorrules etc.):
When a task takes longer than a few minutes, call the Echobell notify tool when it finishes.
Use urgency "calling" only when something is broken and needs me right away.
Segurança
- O token é a credencial. Quem tiver a URL de MCP (ou o token) pode enviar notificações aos inscritos do canal. Não dá para ler nada nem alterar sua conta — a única coisa possível é notificar.
- Mantenha-o fora de arquivos compartilhados. Não versione um arquivo de configuração que contenha o formato com URL. Para configuração no nível do projeto, use o formato com cabeçalho com um prompt de entrada ou uma variável de ambiente.
- Revogue o acesso redefinindo o token de gatilho. Abra o canal no app e redefina o token de gatilho. A URL de MCP antiga para de funcionar na hora (as requisições recebem
401 Unauthorized), assim como a URL do webhook antiga. Atualize seus agentes e quem chama o webhook com o novo token.
Limites e erros
- Limite de taxa: cada token aceita até 120 requisições MCP por minuto. As requisições MCP têm uma cota própria, separada das requisições ao webhook do canal.
- 401 Unauthorized: o token está ausente, incorreto ou foi redefinido.
Relacionados
- Webhooks — dispare o mesmo canal a partir de scripts, CI e outros serviços
- Tipos de notificação — a diferença entre Normal, Urgente e Chamada
- Modelos e Condições — formate e filtre as notificações