| name | apprise |
| description | Send push notifications through apprise-rmcp — 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.
|
Apprise — Universal Push Notifications
Send notifications through 100+ services (Slack, Discord, email, Telegram, PagerDuty, Pushover,
and more) via apprise-rmcp. Choose the tier that matches what's available.
Tier 1 (Preferred): MCP Tool
Tool name: apprise
Dispatch: set action to one of the actions below.
notify — send to a tag group or all services
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")
notify_url — stateless one-off (no server config needed)
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")
health — server liveness check
apprise(action="health")
Returns {"status": "OK"} when the Apprise API server is reachable.
help — built-in documentation
apprise(action="help")
Tier 2 (Fallback): CLI Binary
Binary: /home/jmagar/workspace/apprise-rmcp/target/release/rapprise
rapprise notify "Disk at 95%" --tag servers --title "Disk Warning" --type warning
rapprise notify "Deploy complete" --title "CI/CD" --type success
rapprise notify "Backup done"
rapprise notify-url "slack://tokenA/tokenB/tokenC" "Build failed" --title "CI" --type failure
rapprise notify-url "discord://webhook_id/token" "Deploy done" --type success
rapprise health
Type aliases accepted: warn → warning, fail/error → failure
Tier 3 (Last Resort): Direct REST API
Uses ${APPRISE_URL:-http://localhost:8000}. Add -H "Authorization: Bearer $APPRISE_TOKEN" and
-H "X-Apprise-API-Key: $APPRISE_TOKEN" if auth is required.
curl -X POST "${APPRISE_URL:-http://localhost:8000}/notify/servers" \
-H "Content-Type: application/json" \
-d '{"title":"Disk Warning","body":"Disk at 95%","type":"warning"}'
curl -X POST "${APPRISE_URL:-http://localhost:8000}/notify" \
-H "Content-Type: application/json" \
-d '{"title":"CI/CD","body":"Deploy complete","type":"success"}'
curl -X POST "${APPRISE_URL:-http://localhost:8000}/notify/" \
-H "Content-Type: application/json" \
-d '{"urls":"slack://tokenA/tokenB/tokenC","title":"CI","body":"Build failed","type":"failure"}'
curl "${APPRISE_URL:-http://localhost:8000}/health"
Notification types
| Type | When to use |
|---|
info | Default — routine information |
success | Completed successfully |
warning | Non-critical issue needing attention |
failure | Critical failure or error |
Environment variables
| Variable | Purpose |
|---|
APPRISE_URL | Apprise API server base URL (optional; default http://localhost:8000) |
APPRISE_TOKEN | Bearer token for Apprise API auth (optional) |
APPRISE_MCP_HOST | MCP HTTP bind host |
APPRISE_MCP_PORT | MCP HTTP bind port (default 40050) |
APPRISE_MCP_TOKEN | Static token for MCP HTTP auth |
Key notes
- Tag routing:
tag targets a pre-configured group of services on the Apprise server. Use when your Apprise config defines named keys like servers, alerts, ops.
- Stateless
notify_url: bypasses all server config — ideal for one-off or dynamic routing where the destination isn't pre-configured.
- Response representation: upstream JSON remains structured JSON; non-JSON success is returned as text. Do not assume a synthetic wrapper.
- Auth dual-header: if
APPRISE_TOKEN is set, both Authorization: Bearer and X-Apprise-API-Key are sent for compatibility with older Apprise versions.