Server MCP - Fatti avvisare o chiamare dai tuoi agenti IA

Collega Claude Code, Codex, Cursor, ChatGPT e altri agenti IA al server MCP ufficiale di Echobell per ricevere una notifica push o una chiamata.


Echobell gestisce un server ufficiale per il Model Context Protocol (MCP). Collegalo al tuo agente IA — Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude, ChatGPT o qualsiasi altro client MCP — e l'agente avrà a disposizione uno strumento, notify, che invia una notifica tramite uno dei tuoi canali Echobell.

Avvia un grosso refactoring, una suite di test o un deploy, allontanati e chiedi all'agente di avvisarti quando ha finito. Il telefono vibra quando il lavoro è concluso, mostra un avviso urgente quando l'agente ha bisogno di te, oppure squilla come una telefonata quando qualcosa va storto sul serio.

Come funziona

  • È un server MCP remoto, all'indirizzo https://mcp.echobell.one/mcp, che usa il trasporto Streamable HTTP. Non c'è niente da installare: nessun pacchetto npm, nessun npx, nessun processo locale.
  • Ogni URL MCP appartiene a un canale. Quando l'agente chiama notify, tutti gli iscritti a quel canale ricevono la notifica, ciascuno con il tipo di notifica che ha scelto.
  • La credenziale è il token del trigger del canale, lo stesso token con cui termina l'URL webhook del canale. Il server MCP funziona come il webhook del canale, con in più uno strumento che l'agente sa come chiamare.

Crea un canale dedicato ai tuoi agenti, ad esempio "Agenti IA", e iscriviti con il tipo Chiamata. I tuoi agenti potranno così scegliere qualsiasi livello fino alla chiamata, e potrai condividere il canale con i colleghi che vogliono ricevere gli stessi avvisi.

Ottieni il tuo URL MCP

Dall'app

  1. Apri l'app Echobell e tocca il canale che il tuo agente deve usare.
  2. Nei dettagli del canale, trova la sezione Collega un agente IA.
  3. Copia l'URL del server MCP, oppure lo snippet di configurazione già pronto per il tuo agente.

Dall'URL del webhook

L'URL MCP usa lo stesso token dell'URL webhook del canale. Prendi il token dalla fine dell'URL webhook e mettilo dopo https://mcp.echobell.one/mcp/:

Webhook URL: https://hook.echobell.one/t/<channel-token>
MCP URL:     https://mcp.echobell.one/mcp/<channel-token>

L'URL MCP contiene il token del trigger del tuo canale. Chiunque lo possieda può inviare notifiche agli iscritti del canale, quindi custodiscilo come una password. Vedi Sicurezza.

Configura il tuo agente

Tutti gli snippet qui sotto usano la forma con URL. Sostituisci <channel-token> con il token del trigger del tuo canale, oppure incolla lo snippet che ti dà l'app, dove è già inserito.

Claude Code

claude mcp add --transport http echobell https://mcp.echobell.one/mcp/<channel-token>

Aggiungi --scope user per rendere il server disponibile in tutti i progetti, non solo in quello corrente.

Codex

Aggiungi questo a ~/.codex/config.toml:

[mcp_servers.echobell]
url = "https://mcp.echobell.one/mcp/<channel-token>"

Cursor

Aggiungi questo a ~/.cursor/mcp.json, oppure a .cursor/mcp.json all'interno di un progetto:

{
  "mcpServers": {
    "echobell": {
      "url": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

VS Code (GitHub Copilot)

Aggiungi questo a .vscode/mcp.json nel tuo workspace, poi usa lo strumento da Copilot Chat in modalità agente:

{
  "servers": {
    "echobell": {
      "type": "http",
      "url": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Se .vscode/mcp.json è incluso nel tuo repository, usa invece la forma con header e richiesta di input, così il token resta fuori dal file.

Windsurf

Aggiungi questo a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "echobell": {
      "serverUrl": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Gemini CLI

Aggiungi questo a ~/.gemini/settings.json:

{
  "mcpServers": {
    "echobell": {
      "httpUrl": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Claude Desktop e claude.ai

  1. Apri Impostazioni → Connettori.
  2. Scegli Aggiungi connettore personalizzato.
  3. Inserisci il nome Echobell e l'URL https://mcp.echobell.one/mcp/<channel-token>, poi aggiungilo.

Il connettore è disponibile in Claude sul web e nell'app desktop.

ChatGPT

  1. Attiva la modalità sviluppatore nelle impostazioni di ChatGPT.
  2. Apri Impostazioni → Connettori e scegli Crea.
  3. Inserisci l'URL https://mcp.echobell.one/mcp/<channel-token> e imposta l'autenticazione su Nessuna autenticazione: la credenziale è il token nell'URL.

Altri client MCP

Funziona qualsiasi client che supporti il trasporto Streamable HTTP. Indica l'URL https://mcp.echobell.one/mcp/<channel-token>, oppure usa la forma con header descritta qui sotto.

Forma con header

Invece di mettere il token nell'URL, puoi inviarlo in un header Authorization. Le due forme sono equivalenti.

URL:            https://mcp.echobell.one/mcp
Authorization:  Bearer <channel-token>

Con Claude Code:

claude mcp add --transport http echobell https://mcp.echobell.one/mcp \
  --header "Authorization: Bearer <channel-token>"

In VS Code, una richiesta di input tiene il token fuori da .vscode/mcp.json, così puoi includere il file nel repository senza rischi. VS Code chiede il token al primo avvio del server e lo conserva in modo sicuro:

{
  "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}"
      }
    }
  }
}

Lo strumento notify

Il server espone un solo strumento, notify. È il tuo agente a decidere come compilarlo in base al prompt.

ArgomentoTipoObbligatorioDescrizione
titlestringSìTitolo della notifica.
bodystringNoTesto della notifica.
linkstring (URL)NoUn link che si apre quando tocchi la notifica, ad esempio una pull request, un log di build o una dashboard.
urgencystringNonormal, time-sensitive o calling. Omettilo per usare il livello scelto da ciascun iscritto. Vedi Urgenza.

Urgenza

Chi si iscrive a un canale sceglie nell'app un tipo di notifica: Normale, Urgente o Chiamata. Quella scelta è il livello più alto con cui il canale può raggiungerlo.

  • Quando l'agente omette urgency, ogni iscritto riceve il livello che ha scelto.
  • Quando l'agente invia urgency, può solo abbassare il livello di un iscritto, mai alzarlo. Se sei iscritto con Chiamata, "urgency": "normal" arriva come notifica normale. Se sei iscritto con Normale, anche "urgency": "calling" arriva come notifica normale.

Così un solo canale copre tutto. Iscriviti con Chiamata e chiedi all'agente di inviare gli aggiornamenti di routine come normal e di usare calling solo quando qualcosa si è rotto.

A differenza di notificationType nelle richieste webhook, urgency funziona anche sui canali con un modello personalizzato.

La chiamata richiede Echobell Premium

Le notifiche con chiamata sono una funzione di Echobell Premium. Quando l'agente chiede calling, un iscritto senza Premium riceve invece una notifica urgente, esattamente come succede con l'app e con i webhook.

Una chiamata al minuto per canale

Un canale chiama ogni iscritto al massimo una volta al minuto. Se l'agente chiede un'altra chiamata entro quel minuto, ad esempio perché è bloccato in un ciclo di tentativi, l'iscritto riceve invece una notifica urgente, che supera comunque le modalità Full Immersion. I webhook e i trigger via email seguono la stessa regola.

L'agente viene informato in entrambi i casi. Il risultato dello strumento elenca ogni ripiego, così l'agente sa che il telefono non ha squillato e può dirtelo invece di dare per scontato che tu sia stato chiamato.

Cosa riceve l'agente

Ogni chiamata a notify restituisce all'agente un breve riepilogo testuale e dei dati strutturati:

{
  "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
    }
  ]
}
CampoSignificato
notificationTriggeredtrue quando è stata inviata una notifica.
reasonPerché non è stato inviato nulla: conditions-not-met (le condizioni del canale non erano soddisfatte) o no-subscribers (nessuno è iscritto al canale). null quando è stata inviata una notifica.
requestedUrgencyL'urgency richiesta dall'agente, oppure null se l'ha omessa.
recipientsQuanti iscritti sono stati avvisati.
deliveredUrgencyQuanti iscritti hanno ricevuto ciascun livello.
fallbacksGli iscritti che hanno ricevuto un livello più basso di quello richiesto, e il motivo: premium-required (la chiamata richiede Premium), subscriber-setting (il livello scelto dall'iscritto per il canale è più basso) o call-cooldown (il canale ha già chiamato quell'iscritto nell'ultimo minuto).

Canali senza modello e canali con modello

Il server MCP funziona con entrambi i tipi di canale:

  • I canali senza modello (l'impostazione predefinita) mostrano title e body esattamente come li invia l'agente.
  • I canali con modello (con Modello personalizzato attivo nelle Impostazioni avanzate) costruiscono la notifica a partire dai tuoi modelli. title, body, link, externalLink e urgency sono disponibili come variabili del modello, e le condizioni del canale continuano a valere. Se le condizioni non sono soddisfatte, non viene inviato nulla e l'agente riceve reason: "conditions-not-met".

Esempi di prompt

Una volta collegato il server, chiedi le notifiche con parole tue:

  • "Esegui tutta la suite di test e avvisami con Echobell quando hai finito."
  • "Fai il refactoring del modulo dei pagamenti. Mandami un avviso Echobell urgente se ti serve una mia decisione."
  • "Fai il deploy in staging. Chiamami se il deploy fallisce, altrimenti mandami una notifica normale con l'URL."
  • "Quando la migrazione è finita, avvisami con un riepilogo e un link alla pull request."

Per renderlo un'abitudine, aggiungi una riga come questa al file di istruzioni del tuo agente (CLAUDE.md, AGENTS.md, .cursorrules e così via):

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.

Sicurezza

  • Il token è la credenziale. Chiunque abbia l'URL MCP (o il token) può inviare notifiche agli iscritti del canale. Non permette di leggere nulla né di modificare il tuo account: l'unica cosa che consente è inviare notifiche.
  • Tienilo fuori dai file condivisi. Non includere nel repository un file di configurazione che contiene la forma con URL. Per la configurazione di progetto, usa la forma con header con una richiesta di input o una variabile d'ambiente.
  • Revoca l'accesso reimpostando il token del trigger. Apri il canale nell'app e reimposta il suo token del trigger. Il vecchio URL MCP smette subito di funzionare (le richieste ricevono 401 Unauthorized), e lo stesso vale per il vecchio URL webhook. Aggiorna i tuoi agenti e chi chiama il webhook con il nuovo token.

Limiti ed errori

  • Limite di frequenza: ogni token accetta fino a 120 richieste MCP al minuto. Le richieste MCP hanno un budget proprio, separato da quello delle richieste webhook del canale.
  • 401 Unauthorized: il token manca, è sbagliato o è stato reimpostato.

Approfondimenti