Better Notify
better-notify/better-notify
End-to-end typed notification infrastructure for Node.js — typed catalog of email, SMS, push, web push, WhatsApp, Slack, Discord, Telegram, and GitHub notifications with provider-agnostic transports.
A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agentfront/frontmcp frontmcp-channels --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .claude/skills/frontmcp-channels && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .claude/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channelsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agentfront/frontmcp frontmcp-channels --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .agents/skills/frontmcp-channels && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .agents/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agentfront/frontmcp frontmcp-channels --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .cursor/skills/frontmcp-channels && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .cursor/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/agentfront/frontmcp.git --path libs/skills/catalog/frontmcp-channels--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agentfront/frontmcp frontmcp-channels --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .gemini/skills/frontmcp-channels && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .gemini/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install agentfront/frontmcp frontmcp-channelsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .github/skills/frontmcp-channels && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .github/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agentfront/frontmcp --skill frontmcp-channels -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agentfront/frontmcp frontmcp-channels --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentfront/frontmcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/libs/skills/catalog/frontmcp-channels .opencode/skills/frontmcp-channels && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "frontmcp-channels" agent skill from https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-channels into .opencode/skills/frontmcp-channels/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontmcp-channels", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
frontmcp-channelsA skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.
Frontmcp Channels is an agent skill from agentfront/frontmcp. 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 /…
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including reference files (for example `examples/channel-sources/agent-notify.md`, `examples/channel-sources/app-errors.md` and `examples/channel-sources/file-watcher.md`).
It sits in Backend & APIs, covering Webhooks and MCP servers. It works with Telegram, WhatsApp, Discord and Slack. The repository describes itself as: TypeScript-first framework for the Model Context Protocol (MCP). You write clean, typed code; FrontMCP handles the protocol, transport, DI, session/auth, and execution flow. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8f59ba8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
code.claude.commodelcontextprotocol.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Frontmcp Channels loads about 3.7k tokens when it runs, and up to ~7.7k if it reads all its reference files. Until then it costs about 175 tokens; SKILL.md has 980 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from agentfront/frontmcp at commit 8f59ba8, republished under its Apache-2.0 licence (© agentfront). 980 words, ~3,703 tokens.
.claude/skills/frontmcp-channels/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.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.
@Resource with resources/subscribe)experimental['claude/channel']@Tool instead)Decision: Use channels when you need server-initiated push notifications into Claude Code. Use resources when the client pulls data on demand.
@frontmcp/sdk >= 1.0.0@FrontMcp, @App, and @Tool decorators@FrontMcp config--dangerously-load-development-channels| Scenario | Reference | Description |
|---|---|---|
| Webhook alerts (CI, monitoring) | references/channel-sources.md | Forward HTTP webhooks into Claude |
| Application error forwarding | references/channel-sources.md | Push app errors via event bus |
| Agent completion notifications | references/channel-sources.md | Notify when agents finish |
| Job/workflow completion | references/channel-sources.md | Notify when jobs complete |
| Service connector (WhatsApp, etc.) | references/channel-sources.md | Persistent connection with bidirectional tools |
| File/log watcher | references/channel-sources.md | File system change monitoring |
| Event replay for offline sessions | references/channel-sources.md | Buffer events for later delivery |
| WhatsApp/Telegram chat bridge | references/channel-two-way.md | Two-way messaging with Claude |
| Slack/Discord integration | references/channel-two-way.md | Chat platform bridges |
| Permission relay | references/channel-two-way.md | Remote tool approval via chat |
| Pattern | Correct | Incorrect | Why |
|---|---|---|---|
| Meta keys | meta: { env: 'prod' } | meta: { 'my-env': 'prod' } | Meta keys must be valid identifiers (letters, digits, underscores) |
| Source naming | name: 'deploy-alerts' | name: 'Deploy Alerts!' | Channel names should be kebab-case identifiers |
| Two-way gating | Check sender identity before emitting | Trust room/group membership | Prevent prompt injection from untrusted group members |
| Error channels | Use app-event source with event bus | Poll for errors in a loop | Event bus is push-based and efficient |
| Manual push | await scope.channelNotifications?.send() | sendToSubscribedSessions() for a regular push | send() runs the hookable channels:send-notification flow (defaultMeta, channel meta, hooks); the sendTo* methods deliver directly |
@FrontMcp({ channels: { enabled: true } }) is setChannelContext with @Channel() decorator@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 startuponEvent() returns { content: string, meta?: Record<string, string> }experimental: { 'claude/channel': {} } in capabilitiessubscriptions/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 doesinstructions field mentions <channel> tags when channels are activetwoWay: true is set on channels that need replieschannel-reply tool appears in tool listonReply() is implemented and forwards to external system (if it throws, channel-reply answers an error result)onDisconnect() on shutdown and on dispose()| Problem | Cause | Solution |
|---|---|---|
| No notifications arrive | Client doesn't support channels | Check client capabilities include experimental['claude/channel'] |
channel-reply tool missing | No two-way channels registered | Set twoWay: true on at least one channel |
| Webhook returns 500 | onEvent() throws | Check channel handler error logs |
| A notification never arrives | A ChannelSendHook stopped it, or ChannelListHook left the channel out of the session's subscriptions | Check plugins hooking channels:send-notification / channels:list |
| Duplicate notifications | Multiple sessions subscribed | This is correct behavior -- each session gets its own copy |
| Events lost on reconnect | Channels are in-memory | Channel state resets on server restart; use persistent sources |
Each reference has matching examples under examples/<reference>/:
channel-sources| Example | Level | Description |
|---|---|---|
webhook-github | Basic | Forward GitHub webhook events (PRs, pushes, CI) into Claude Code |
app-errors | Basic | Forward application errors to Claude Code via the in-process event bus |
agent-notify | Intermediate | Notify Claude Code when AI agents complete their tasks |
job-completion | Intermediate | Notify Claude Code when background jobs and workflows complete |
service-connector | Advanced | Build a persistent service connector that lets Claude send and receive messages through WhatsApp, Telegram, or any messaging API |
file-watcher | Intermediate | Watch files for changes and notify Claude Code in real-time |
replay-buffer | Advanced | Buffer channel events so Claude Code receives them when it connects, even if events occurred while offline |
channel-two-way| Example | Level | Description |
|---|---|---|
whatsapp-bridge | Advanced | Full WhatsApp Business API bridge allowing users to chat with Claude Code via WhatsApp |
Skills are distributed as plain SKILL.md files plus a sibling references/
and examples/ tree, so consumers can pick whichever access mode fits:
| Mode | How it works |
|---|---|
| Filesystem | Read 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 CLI | frontmcp 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.
frontmcp-development, frontmcp-testing, frontmcp-deployment© agentfront, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (references) in libs/skills/catalog/frontmcp-channels of agentfront/frontmcp.
Open the folder on GitHubat commit 8f59ba8
Frontmcp Channels next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Frontmcp Channels this skillagentfront/frontmcp | 146 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Better Notifybetter-notify/better-notify | 313 | — | ~783 | Automated safety check: Pass | MIT | |
| Channel Debug Corevercel-labs/vercel-openclaw-archived | 117 | — | ~2k | Automated safety check: Notes | MIT | |
| Chat SDKdatabuddy-analytics/Databuddy | 1.2k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Hitl ProtocolLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.3k | Automated safety check: Pass | Apache-2.0 | |
| Add Channel Connect Buttonnovuhq/novu | 40k | — | ~1.6k | Automated safety check: Pass | Custom licence |
better-notify/better-notify
End-to-end typed notification infrastructure for Node.js — typed catalog of email, SMS, push, web push, WhatsApp, Slack, Discord, Telegram, and GitHub notifications with provider-agnostic transports.
vercel-labs/vercel-openclaw-archived
Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.
databuddy-analytics/Databuddy
Build multi-platform chat bots with Chat SDK (chat npm package).
LeoYeAI/openclaw-master-skills
HITL Protocol — the open standard for human decisions in autonomous agent workflows.
novuhq/novu
Build a new channel Connect button (e.g. An agent skill from novuhq/novu.
lobehub/lobehub
Builds chat bots once for Slack, Teams, Google Chat, Discord, GitHub and Linear with the Chat SDK, covering event handlers, cards, modals, streaming and state adapters.
agentfront/frontmcp
A skill your agent uses when customizing, branding, or replacing the built-in FrontMCP OAuth pages (the login, consent, federated-select, incremental-authorization, and error pages) with your own…
agentfront/frontmcp
A skill your agent uses when extending FrontMCP beyond the core SDK by integrating external npm packages, libraries, or third-party services into providers and tools.
agentfront/frontmcp
A skill your agent uses when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server.
agentfront/frontmcp
A skill your agent uses when implementing authorization and access control for FrontMCP tools, resources, prompts, or skills, deciding who may invoke what.
agentfront/frontmcp
A skill your agent uses when configuring a FrontMCP server through frontmcp.config or the @FrontMcp options.
agentfront/frontmcp
A skill your agent uses when deploying, building for production, packaging, or shipping a FrontMCP server.
Categories
A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges. Frontmcp Channels is an agent skill from agentfront/frontmcp. Use when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.
Frontmcp Channels fits situations like: pushing real-time notifications; events into Claude Code (or another MCP client) sessions; building two-way chat bridges.
Run `npx skills add agentfront/frontmcp --skill frontmcp-channels -a claude-code`. Or copy the skill folder (libs/skills/catalog/frontmcp-channels in agentfront/frontmcp) into .claude/skills/frontmcp-channels in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agentfront/frontmcp --skill frontmcp-channels -a codex`. Or copy the skill folder (libs/skills/catalog/frontmcp-channels in agentfront/frontmcp) into .agents/skills/frontmcp-channels in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agentfront/frontmcp --skill frontmcp-channels -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frontmcp-channels, .gemini/skills/frontmcp-channels, .github/skills/frontmcp-channels and .opencode/skills/frontmcp-channels in your project.
SKILL.md names no scripts, command-line tools or credentials: Frontmcp Channels is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: code.claude.com and modelcontextprotocol.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Frontmcp Channels is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Frontmcp Channels: Better Notify (better-notify/better-notify, 313 stars), Channel Debug Core (vercel-labs/vercel-openclaw-archived, 117 stars), Chat SDK (databuddy-analytics/Databuddy, 1.2k stars) and Hitl Protocol (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agentfront (a GitHub organization) maintains it in agentfront/frontmcp, which has 146 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.
Source: agentfront/frontmcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.