L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

frontmcp-channels

frontmcp-channels

Use when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges. Covers channel source types: incoming webhooks (such as GitHub), app error events, agent-completion and job-completion alerts, service connectors, file watchers, and replay buffers; plus two-way conversational bridges conne…

Independent GitHub snapshot · Automated classification · Original documentation governs

Aagentfront / frontmcpApache-2.0

Documentation de la Skill

GitHub

name: frontmcp-channels description: 'Use when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges. Covers channel source types: incoming webhooks (such as GitHub), app error events, agent-completion and job-completion alerts, service connectors, file watchers, and replay buffers; plus two-way conversational bridges connecting WhatsApp, Telegram, Slack, and Discord to a Claude Code session. Triggers: push notifications, real-time alerts, webhook channel, chat bridge, WhatsApp / Telegram / Slack / Discord, agent completion alert, job status notification, error forwarding, server-to-client messaging. The skill for CHANNELS and NOTIFICATIONS.' when_to_use: | Trigger when creating or editing a .channel.ts file, or building a channel that pushes real-time notifications into a Claude Code session: webhook sources, app / agent / job event alerts, service connectors, file watchers, or a two-way chat bridge (WhatsApp, Telegram, Slack, Discord). paths: '**/.channel.ts' tags: [ channels, notifications, claude-code, webhooks, messaging, real-time, two-way, whatsapp, telegram, slack, chat-bridge, ] category: development targets: [all] bundle: [full] priority: 8 visibility: both license: Apache-2.0 metadata: docs: https://code.claude.com/docs/en/channels-reference

FrontMCP Channels

Build push-based notification channels that stream real-time events into Claude Code. Channels let your MCP server forward webhooks, application errors, agent completions, job results, and chat messages directly into Claude's context, with optional two-way reply support.

When to Use This Skill

Must Use

  • You need Claude Code to react to external events (CI failures, monitoring alerts, deploy status)
  • You are building a chat bridge (WhatsApp, Telegram, Slack, Discord) for Claude Code
  • You want agents or background jobs to notify Claude Code upon completion

Recommended

  • You want to forward application errors to Claude for debugging assistance
  • You need a messaging interface where remote users can interact with Claude via chat platforms

Skip When

  • You only need standard MCP resource subscriptions (use @Resource with resources/subscribe)
  • Your client is not Claude Code and does not support experimental['claude/channel']
  • You need request-response patterns (use @Tool instead)

Decision: Use channels when you need server-initiated push notifications into Claude Code. Use resources when the client pulls data on demand.

Prerequisites

  • @frontmcp/sdk >= 1.0.0
  • Basic understanding of @FrontMcp, @App, and @Tool decorators
  • For webhook sources: HTTP transport (not stdio-only)
  • For chat bridges: external API credentials (WhatsApp Business API, Telegram Bot Token, etc.)

Steps

  1. Choose your channel source type from the Scenario Routing Table
  2. Create a channel class or function
  3. Register it in your app
  4. Enable channels in @FrontMcp config
  5. Test with Claude Code using --dangerously-load-development-channels

Scenario Routing Table

ScenarioReferenceDescription
Webhook alerts (CI, monitoring)references/channel-sources.mdForward HTTP webhooks into Claude
Application error forwardingreferences/channel-sources.mdPush app errors via event bus
Agent completion notificationsreferences/channel-sources.mdNotify when agents finish
Job/workflow completionreferences/channel-sources.mdNotify when jobs complete
Service connector (WhatsApp, etc.)references/channel-sources.mdPersistent connection with bidirectional tools
File/log watcherreferences/channel-sources.mdFile system change monitoring
Event replay for offline sessionsreferences/channel-sources.mdBuffer events for later delivery
WhatsApp/Telegram chat bridgereferences/channel-two-way.mdTwo-way messaging with Claude
Slack/Discord integrationreferences/channel-two-way.mdChat platform bridges
Permission relayreferences/channel-two-way.mdRemote tool approval via chat

Common Patterns

PatternCorrectIncorrectWhy
Meta keysmeta: { env: 'prod' }meta: { 'my-env': 'prod' }Meta keys must be valid identifiers (letters, digits, underscores)
Source namingname: 'deploy-alerts'name: 'Deploy Alerts!'Channel names should be kebab-case identifiers
Two-way gatingCheck sender identity before emittingTrust room/group membershipPrevent prompt injection from untrusted group members
Error channelsUse app-event source with event busPoll for errors in a loopEvent bus is push-based and efficient
Manual pushawait scope.channelNotifications?.send()sendToSubscribedSessions() for a regular pushsend() runs the hookable channels:send-notification flow (defaultMeta, channel meta, hooks); the sendTo* methods deliver directly

Verification Checklist

Server Setup

  • @FrontMcp({ channels: { enabled: true } }) is set
  • Channel classes extend ChannelContext with @Channel() decorator
  • Channels are listed in @App({ channels: [...] }); a channel and the tools in its tools resolve its app's providers with this.get(), and one whose availableWhen the runtime doesn't meet is left out at startup
  • onEvent() returns { content: string, meta?: Record<string, string> }

Capability

  • Server advertises experimental: { 'claude/channel': {} } in capabilities
  • Only sessions with matching capability receive notifications
  • An MCP 2026-07-28 client (no session) gets them on a subscriptions/listen stream whose request's client capabilities include experimental['claude/channel']: the global notifications of the channels channels:list returns; its server/discover advertises experimental['claude/channel'] and the <channel> instructions, as initialize does
  • instructions field mentions <channel> tags when channels are active

Two-Way

  • twoWay: true is set on channels that need replies
  • channel-reply tool appears in tool list
  • onReply() is implemented and forwards to external system (if it throws, channel-reply answers an error result)
  • Sender authentication is enforced before emitting events

Sources

  • Webhook endpoints return 200 on success
  • Event bus subscriptions are cleaned up on scope teardown, and service channels get onDisconnect() on shutdown and on dispose()
  • Agent/job completion filters match expected IDs

Troubleshooting

ProblemCauseSolution
No notifications arriveClient doesn't support channelsCheck client capabilities include experimental['claude/channel']
channel-reply tool missingNo two-way channels registeredSet twoWay: true on at least one channel
Webhook returns 500onEvent() throwsCheck channel handler error logs
A notification never arrivesA ChannelSendHook stopped it, or ChannelListHook left the channel out of the session's subscriptionsCheck plugins hooking channels:send-notification / channels:list
Duplicate notificationsMultiple sessions subscribedThis is correct behavior -- each session gets its own copy
Events lost on reconnectChannels are in-memoryChannel state resets on server restart; use persistent sources

Examples

Each reference has matching examples under examples/<reference>/:

channel-sources

ExampleLevelDescription
webhook-githubBasicForward GitHub webhook events (PRs, pushes, CI) into Claude Code
app-errorsBasicForward application errors to Claude Code via the in-process event bus
agent-notifyIntermediateNotify Claude Code when AI agents complete their tasks
job-completionIntermediateNotify Claude Code when background jobs and workflows complete
service-connectorAdvancedBuild a persistent service connector that lets Claude send and receive messages through WhatsApp, Telegram, or any messaging API
file-watcherIntermediateWatch files for changes and notify Claude Code in real-time
replay-bufferAdvancedBuffer channel events so Claude Code receives them when it connects, even if events occurred while offline

channel-two-way

ExampleLevelDescription
whatsapp-bridgeAdvancedFull WhatsApp Business API bridge allowing users to chat with Claude Code via WhatsApp

Accessing This Skill

Skills are distributed as plain SKILL.md files plus a sibling references/ and examples/ tree, so consumers can pick whichever access mode fits:

ModeHow it works
FilesystemRead libs/skills/catalog/frontmcp-channels/ directly from a clone of the catalog repo, or from a published @frontmcp/skills install. SKILL.md is the entry point.
frontmcp CLIfrontmcp skills list, frontmcp skills read frontmcp-channels, frontmcp skills read frontmcp-channels:references/<file>.md, frontmcp skills install frontmcp-channels — no server required.
MCP skill://When a developer mounts this skill into their own FrontMCP server (@FrontMcp({ skills: [...] })), the SDK exposes it via SEP-2640 resources: skill://frontmcp-channels/SKILL.md, skill://frontmcp-channels/references/{file}.md, etc. The server’s skill://index.json returns the SEP-2640 discovery document for everything mounted on it.

The catalog itself is not an MCP server. The skill:// URIs only resolve when a server has been configured to host this skill.

Reference

Skills enregistrées