From apprise
Send push notifications through the apprise-mcp server — a standalone Rust MCP bridge to the Apprise universal notification library (Slack, Discord, email, Telegram, and 100+ more). Use this skill whenever the user wants to send a notification, push an alert, notify a service, fire off a push message, or use Apprise in any way — even if they just say "send me an alert" or "let me know when X is done". Covers three tiers: MCP tool (preferred), CLI binary, and direct REST API curl calls. Trigger phrases include: send notification, push alert, Apprise notify, send push notification, alert via Apprise, notify service, send alert, notify via apprise, ping me, fire an alert, send a Slack notification, Discord alert, Telegram message, send me an email, notify via Pushover, route to Slack/Discord/Telegram/email/PagerDuty.
How this skill is triggered — by the user, by Claude, or both
Slash command
/apprise:appriseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Send notifications through 100+ services (Slack, Discord, email, Telegram, PagerDuty, Pushover,
Send notifications through 100+ services (Slack, Discord, email, Telegram, PagerDuty, Pushover,
and more) via the standalone apprise-mcp server. Choose the tier that matches what's available.
Tool name: apprise
Dispatch: set action to one of the actions below.
apprise(action="notify", body="<message>")
apprise(action="notify", body="<message>", tag="<tag>", title="<title>", type="<type>")
| Parameter | Required | Notes |
|---|---|---|
body | yes | Notification message body |
tag | no | Named group (e.g. servers, ops). Omit to notify all configured services |
title | no | Notification title |
type | no | info (default) · success · warning · failure |
Examples:
# Alert the "servers" tag group
apprise(action="notify", body="Disk at 95%", tag="servers", title="Disk Warning", type="warning")
# Notify every configured service
apprise(action="notify", body="Deploy to production complete", title="CI/CD", type="success")
# Simple informational — type defaults to info
apprise(action="notify", body="Backup finished successfully")
apprise(action="notify_url", urls="<apprise-url-schema>", body="<message>")
apprise(action="notify_url", urls="<url>", body="<message>", title="<title>", type="<type>")
| Parameter | Required | Notes |
|---|---|---|
urls | yes | Apprise URL schema string |
body | yes | Notification message body |
title | no | Notification title |
type | no | info · success · warning · failure |
Common URL schemas:
slack://tokenA/tokenB/tokenC
discord://webhook_id/webhook_token
mailto://user:pass@gmail.com
telegram://bottoken/chatid
pushover://userkey/apptoken
Examples:
apprise(action="notify_url", urls="slack://T0/B0/C0", body="Build failed", title="CI", type="failure")
apprise(action="notify_url", urls="discord://webhook_id/token", body="All tests passed", type="success")
apprise(action="health")
Returns {"status": "OK"} when the Apprise API server is reachable.
apprise(action="help")
Binary: /home/jmagar/workspace/apprise-mcp/target/release/rapprise
# Notify a tag group
rapprise notify "Disk at 95%" --tag servers --title "Disk Warning" --type warning
# Notify all configured services
rapprise notify "Deploy complete" --title "CI/CD" --type success
# Simple notification (type defaults to info)
rapprise notify "Backup done"
# Stateless one-off via URL schema
rapprise notify-url "slack://tokenA/tokenB/tokenC" "Build failed" --title "CI" --type failure
rapprise notify-url "discord://webhook_id/token" "Deploy done" --type success
# Health check
rapprise health
Type aliases accepted: warn → warning, fail/error → failure
Uses $APPRISE_URL. Add -H "Authorization: Bearer $APPRISE_TOKEN" and
-H "X-Apprise-API-Key: $APPRISE_TOKEN" if auth is required.
# Notify a tag group
curl -X POST "$APPRISE_URL/notify/servers" \
-H "Content-Type: application/json" \
-d '{"title":"Disk Warning","body":"Disk at 95%","type":"warning"}'
# Notify all configured services
curl -X POST "$APPRISE_URL/notify" \
-H "Content-Type: application/json" \
-d '{"title":"CI/CD","body":"Deploy complete","type":"success"}'
# Stateless — include "urls" field, trailing slash required
curl -X POST "$APPRISE_URL/notify/" \
-H "Content-Type: application/json" \
-d '{"urls":"slack://tokenA/tokenB/tokenC","title":"CI","body":"Build failed","type":"failure"}'
# Health check
curl "$APPRISE_URL/health"
| Type | When to use |
|---|---|
info | Default — routine information |
success | Completed successfully |
warning | Non-critical issue needing attention |
failure | Critical failure or error |
| Variable | Purpose |
|---|---|
APPRISE_URL | Apprise API server base URL (required) |
APPRISE_TOKEN | Bearer token for Apprise API auth (optional) |
APPRISE_MCP_HOST | MCP HTTP bind host |
APPRISE_MCP_PORT | MCP HTTP bind port (default 8765) |
APPRISE_MCP_TOKEN | Static token for MCP HTTP auth |
tag targets a pre-configured group of services on the Apprise server. Use when your Apprise config defines named keys like servers, alerts, ops.notify_url: bypasses all server config — ideal for one-off or dynamic routing where the destination isn't pre-configured."OK" text or JSON; the MCP client normalizes both to {"ok": true, "response": "OK"}.APPRISE_TOKEN is set, both Authorization: Bearer and X-Apprise-API-Key are sent for compatibility with older Apprise versions.npx claudepluginhub jmagar/dendrite --plugin appriseCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.