Własny kanał zdarzeń (serwer MCP)
Własny kanał MCP pozwala przesyłać zdarzenia z zewnętrznego źródła do aktywnej sesji Claude Code. Aby Claude Code zarejestrował serwer jako kanał, ustaw jego capability claude/channel na pusty obiekt. Pole instructions przekazuje Claude kontekst o zdarzeniach, atrybutach tagu i oczekiwanym sposobie odpowiedzi. Kanał jednokierunkowy nie potrzebuje narzędzi MCP: pomija capabilities.tools, a Claude odczytuje zdarzenia i działa bez odsyłania odpowiedzi przez kanał.
Serwer konfiguruje się, łączy z Claude Code przez stdio, a następnie uruchamia nasłuch HTTP. Po odebraniu żądania serwer wysyła powiadomienie notifications/claude/channel, przekazując treść zdarzenia w content. Wartości z meta stają się atrybutami tagu <channel>, dzięki czemu zdarzenie może przenosić dodatkowe dane, takie jak ścieżka lub metoda HTTP. Nasłuch HTTP działa w tym samym procesie co serwer MCP, ponieważ musi mieć dostęp do jego instancji mcp.
Dodaj serwer do konfiguracji MCP, aby Claude Code wiedział, jak go uruchomić; dla konfiguracji projektowej można użyć ścieżki względnej. Claude Code odczytuje konfigurację przy starcie i uruchamia każdy skonfigurowany serwer jako podproces. W okresie research preview własne kanały nie są na allowliście, dlatego do testu trzeba uruchomić Claude Code z flagą rozwojową wskazującą serwer. Przy pierwszym użyciu serwera z .mcp.json sesja poprosi o zgodę na jego uruchomienie.
Wzorzec nadaje się do wprowadzania alertów CI, powiadomień monitoringu lub innych komunikatów wysyłanych żądaniem HTTP POST. Jeżeli organizacyjna polityka blokuje kanały, administrator organizacji musi je najpierw włączyć. Jeśli zdarzenie nie dociera, sprawdź status serwera przez /mcp; status failed zwykle oznacza problem z zależnością lub importem w pliku serwera.
await mcp.notification({
method: 'notifications/claude/channel',
params: {
content: body,
meta: { path: new URL(req.url).pathname, method: req.method },
},
})curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"
{
"mcpServers": {
"webhook": { "command": "bun", "args": ["./webhook.ts"] }
}
}Zastosowanie w praktyce
Pipeline CI może wysłać przez HTTP POST alert o błędzie buildu, który pojawi się w kontekście sesji Claude Code jako zdarzenie kanału. Ten sam mechanizm może przekazywać do sesji alerty monitoringu, aby Claude mógł zareagować na ich treść. Dla zdarzeń przychodzących z webhooka jednokierunkowy kanał pozwala Claude działać w sesji, ale nie odsyłać odpowiedzi przez webhook.