La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Desarrollo · 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

Documentación 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 guardadas