Serwer MCP - agenci AI wyślą Ci powiadomienie lub zadzwonią
Połącz Claude Code, Codex, Cursor, ChatGPT i innych agentów AI z oficjalnym serwerem MCP Echobell, by dostawać powiadomienia push lub połączenia.
Echobell udostępnia oficjalny serwer Model Context Protocol (MCP). Podłącz go do swojego agenta AI — Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude, ChatGPT albo dowolnego innego klienta MCP — a agent dostanie jedno narzędzie, notify, które wysyła powiadomienie przez jeden z Twoich kanałów Echobell.
Uruchom długi refaktoring, testy albo wdrożenie, odejdź od komputera i poproś agenta, żeby dał znać, gdy skończy. Telefon zawibruje, gdy praca dobiegnie końca, pokaże alert czasowo krytyczny, gdy agent będzie Cię potrzebował, albo zadzwoni jak przy połączeniu, gdy coś pójdzie naprawdę źle.
Jak to działa
- To zdalny serwer MCP pod adresem
https://mcp.echobell.one/mcp, korzystający z transportu Streamable HTTP. Nie trzeba niczego instalować: żadnego pakietu npm, żadnegonpx, żadnego lokalnego procesu. - Każdy adres URL MCP należy do jednego kanału. Gdy agent wywoła
notify, powiadomienie dostaje każdy subskrybent tego kanału, każdy z typem powiadomień, który sam wybrał. - Poświadczeniem jest token wyzwalacza kanału — ten sam token, którym kończy się adres URL webhooka kanału. Serwer MCP działa jak webhook kanału, tyle że w postaci narzędzia, które agent potrafi wywołać.
Utwórz osobny kanał dla swoich agentów, na przykład „AI Agents”, i zasubskrybuj go z typem Połączenie. Agenci będą wtedy mogli wybrać dowolny poziom aż do połączenia, a kanał możesz udostępnić współpracownikom, którzy chcą dostawać te same alerty.
Zdobądź adres URL MCP
Z aplikacji
- Otwórz aplikację Echobell i stuknij kanał, którego ma używać agent.
- W szczegółach kanału znajdź sekcję Połącz agenta AI.
- Skopiuj adres URL serwera MCP albo gotowy fragment konfiguracji dla swojego agenta.
Z adresu URL webhooka
Adres URL MCP używa tego samego tokenu co adres URL webhooka kanału. Weź token z końca adresu URL webhooka i wstaw go po https://mcp.echobell.one/mcp/:
Webhook URL: https://hook.echobell.one/t/<channel-token>
MCP URL: https://mcp.echobell.one/mcp/<channel-token>
Adres URL MCP zawiera token wyzwalacza Twojego kanału. Każdy, kto go ma, może wysyłać powiadomienia do subskrybentów kanału, więc chroń go jak hasło. Zobacz Bezpieczeństwo.
Skonfiguruj agenta
Wszystkie poniższe fragmenty używają wariantu z adresem URL. Zastąp <channel-token> tokenem wyzwalacza swojego kanału albo wklej fragment z aplikacji, w którym token jest już uzupełniony.
Claude Code
claude mcp add --transport http echobell https://mcp.echobell.one/mcp/<channel-token>
Dodaj --scope user, aby serwer był dostępny we wszystkich projektach, a nie tylko w bieżącym.
Codex
Dodaj to do ~/.codex/config.toml:
[mcp_servers.echobell]
url = "https://mcp.echobell.one/mcp/<channel-token>"
Cursor
Dodaj to do ~/.cursor/mcp.json albo do .cursor/mcp.json w projekcie:
{
"mcpServers": {
"echobell": {
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
VS Code (GitHub Copilot)
Dodaj to do .vscode/mcp.json w swoim workspace, a potem korzystaj z narzędzia w Copilot Chat w trybie agenta:
{
"servers": {
"echobell": {
"type": "http",
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Jeśli .vscode/mcp.json trafia do repozytorium, użyj zamiast tego wariantu z nagłówkiem i monitem o dane, żeby token nie znalazł się w pliku.
Windsurf
Dodaj to do ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"echobell": {
"serverUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Gemini CLI
Dodaj to do ~/.gemini/settings.json:
{
"mcpServers": {
"echobell": {
"httpUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Claude Desktop i claude.ai
- Otwórz Settings → Connectors.
- Wybierz Add custom connector.
- Wpisz nazwę
Echobelli adres URLhttps://mcp.echobell.one/mcp/<channel-token>, a następnie dodaj konektor.
Konektor jest dostępny w Claude w przeglądarce i w aplikacji desktopowej.
ChatGPT
- Włącz tryb deweloperski w ustawieniach ChatGPT.
- Otwórz Settings → Connectors i wybierz Create.
- Wpisz adres URL
https://mcp.echobell.one/mcp/<channel-token>i ustaw uwierzytelnianie na No authentication — poświadczeniem jest token w adresie URL.
Inne klienty MCP
Działa każdy klient obsługujący transport Streamable HTTP. Podaj mu adres URL https://mcp.echobell.one/mcp/<channel-token> albo użyj opisanego niżej wariantu z nagłówkiem.
Wariant z nagłówkiem
Zamiast umieszczać token w adresie URL, możesz wysłać go w nagłówku Authorization. Oba warianty działają tak samo.
URL: https://mcp.echobell.one/mcp
Authorization: Bearer <channel-token>
W Claude Code:
claude mcp add --transport http echobell https://mcp.echobell.one/mcp \
--header "Authorization: Bearer <channel-token>"
W VS Code monit o dane (input) trzyma token poza .vscode/mcp.json, więc plik można bezpiecznie commitować. VS Code poprosi o token przy pierwszym uruchomieniu serwera i zapisze go w bezpiecznym miejscu:
{
"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}"
}
}
}
}
Narzędzie notify
Serwer udostępnia jedno narzędzie, notify. To agent decyduje, jak je wypełnić na podstawie Twojego promptu.
| Argument | Typ | Wymagany | Opis |
|---|---|---|---|
title | string | Tak | Tytuł powiadomienia. |
body | string | Nie | Treść powiadomienia. |
link | string (URL) | Nie | Link otwierany po stuknięciu powiadomienia, na przykład pull request, log builda albo dashboard. |
urgency | string | Nie | normal, time-sensitive lub calling. Pomiń, aby użyć poziomu wybranego przez każdego subskrybenta. Zobacz Pilność. |
Pilność
Każdy, kto subskrybuje kanał, wybiera dla niego w aplikacji typ powiadomień: Standardowe, Czasowo krytyczne lub Połączenie. Ten wybór to najwyższy poziom, na jakim kanał może do niego dotrzeć.
- Gdy agent pomija
urgency, każdy subskrybent dostaje poziom, który wybrał. - Gdy agent wysyła
urgency, może tylko obniżyć poziom subskrybenta, nigdy go nie podnosi. Jeśli subskrybujesz z typem Połączenie,"urgency": "normal"dotrze jako zwykłe powiadomienie. Jeśli subskrybujesz z typem Standardowe,"urgency": "calling"i tak dotrze jako zwykłe powiadomienie.
Dzięki temu jeden kanał wystarcza do wszystkiego. Zasubskrybuj go z typem Połączenie i poproś agenta, by rutynowe informacje wysyłał jako normal, a calling używał tylko wtedy, gdy coś jest zepsute.
W przeciwieństwie do notificationType w żądaniach webhooka, urgency działa także w kanałach z własnym szablonem.
Połączenia wymagają Echobell Premium
Powiadomienia w formie połączenia to funkcja Echobell Premium. Gdy agent poprosi o calling, subskrybent bez Premium dostanie zamiast tego powiadomienie czasowo krytyczne (time-sensitive) — tak samo jak w przypadku aplikacji i webhooków.
Jedno połączenie na minutę w każdym kanale
Kanał dzwoni do każdego subskrybenta najwyżej raz na minutę. Jeśli agent poprosi o kolejne połączenie w ciągu tej minuty — na przykład dlatego, że utknął na ponawianiu prób — subskrybent dostanie zamiast tego powiadomienie czasowo krytyczne, które nadal przebija się przez tryby Skupienia. Webhooki i wyzwalacze e-mail działają według tej samej zasady.
Agent dowie się o obu przypadkach. Wynik narzędzia wymienia każde obniżenie poziomu, więc agent wie, że telefon nie zadzwonił, i może Ci to przekazać, zamiast zakładać, że do Ciebie dzwonił.
Co dostaje agent
Każde wywołanie notify zwraca krótkie podsumowanie tekstowe dla agenta oraz dane strukturalne:
{
"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
}
]
}
| Pole | Znaczenie |
|---|---|
notificationTriggered | true, gdy powiadomienie zostało wysłane. |
reason | Dlaczego nic nie wysłano: conditions-not-met (warunki kanału nie zostały spełnione) albo no-subscribers (nikt nie subskrybuje kanału). null, gdy powiadomienie zostało wysłane. |
requestedUrgency | urgency, o którą poprosił agent, albo null, jeśli ją pominął. |
recipients | Ilu subskrybentów otrzymało powiadomienie. |
deliveredUrgency | Ilu subskrybentów otrzymało każdy z poziomów. |
fallbacks | Subskrybenci, którzy dostali niższy poziom niż żądany, wraz z powodem: premium-required (połączenia wymagają Premium), subscriber-setting (poziom, który subskrybent sam wybrał dla kanału, jest niższy) albo call-cooldown (kanał dzwonił już do tego subskrybenta w ciągu ostatniej minuty). |
Kanały przekazujące i kanały z szablonem
Serwer MCP działa z oboma rodzajami kanałów:
- Kanały przekazujące (domyślne) wyświetlają
titleibodydokładnie tak, jak wysłał je agent. - Kanały z szablonem (z włączoną opcją Własny szablon w sekcji Ustawienia zaawansowane) budują powiadomienie z Twoich szablonów.
title,body,link,externalLinkiurgencysą dostępne jako zmienne szablonu, a warunki kanału nadal obowiązują. Gdy warunki nie są spełnione, nic nie zostaje wysłane, a agent dostajereason: "conditions-not-met".
Przykładowe prompty
Po podłączeniu serwera proś o powiadomienia zwykłym językiem:
- „Uruchom cały zestaw testów i powiadom mnie przez Echobell, gdy skończysz.”
- „Zrefaktoryzuj moduł płatności. Wyślij mi czasowo krytyczny alert Echobell, jeśli będziesz potrzebować mojej decyzji.”
- „Wdróż na staging. Zadzwoń, jeśli wdrożenie się nie powiedzie, a jeśli się uda, wyślij zwykłe powiadomienie z adresem URL.”
- „Gdy migracja się zakończy, powiadom mnie z podsumowaniem i linkiem do pull requesta.”
Żeby weszło to w nawyk, dodaj taką linijkę do pliku z instrukcjami agenta (CLAUDE.md, AGENTS.md, .cursorrules itp.):
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.
Bezpieczeństwo
- Token jest poświadczeniem. Kto ma adres URL MCP (albo sam token), może wysyłać powiadomienia do subskrybentów kanału. Nie może niczego odczytać ani zmienić w Twoim koncie — jedyne, co może zrobić, to wysłać powiadomienie.
- Nie umieszczaj go we współdzielonych plikach. Nie commituj pliku konfiguracyjnego, który zawiera wariant z adresem URL. W konfiguracji na poziomie projektu używaj wariantu z nagłówkiem z monitem o dane albo zmienną środowiskową.
- Odbierz dostęp, resetując token wyzwalacza. Otwórz kanał w aplikacji i zresetuj jego token wyzwalacza. Stary adres URL MCP natychmiast przestaje działać (żądania dostają
401 Unauthorized), podobnie jak stary adres URL webhooka. Zaktualizuj agentów i usługi wywołujące webhook nowym tokenem.
Limity i błędy
- Limit żądań: każdy token przyjmuje do 120 żądań MCP na minutę. Żądania MCP mają własną pulę, niezależną od żądań do webhooka kanału.
- 401 Unauthorized: brak tokenu, token jest nieprawidłowy albo został zresetowany.
Powiązane
- Webhooki — wyzwalaj ten sam kanał ze skryptów, CI i innych usług
- Typy powiadomień — czym różnią się Standardowe, Czasowo krytyczne i Połączenie
- Szablony i Warunki — kształtuj i filtruj powiadomienia