Rust MCP server and CLI for Apprise notification fan-out across dozens of delivery backends.
$git clone https://github.com/dinglebear-ai/rappriseInstalls into the current project.
Install rapprise by running `git clone https://github.com/dinglebear-ai/rapprise`, then use it for the current task and follow its documentation at https://github.com/dinglebear-ai/rapprise.
| 1 | # apprise-rmcp |
| 2 | |
| 3 | `apprise-rmcp` is a Rust MCP server and CLI for sending notifications through |
| 4 | an [Apprise API](https://github.com/caronc/apprise-api) server. |
| 5 | |
| 6 | It exposes one MCP tool, `apprise`, plus the `rapprise` CLI. Agents can send |
| 7 | tagged notifications through a preconfigured Apprise server, run one-off |
| 8 | Apprise URL sends, and check upstream health through stdio MCP, Streamable HTTP |
| 9 | MCP, or direct shell commands. |
| 10 | |
| 11 | **30-second path:** run `npx -y apprise-rmcp health --json` -> start loopback |
| 12 | HTTP with `APPRISE_MCP_HOST=127.0.0.1 npx -y apprise-rmcp serve` -> call |
| 13 | `tools/call` with `{"action":"health"}`. |
| 14 | |
| 15 | **Status:** operational RMCP upstream-client server. Write-capable; notification |
| 16 | sends are intentional side effects. HTTP MCP supports loopback dev mode, static |
| 17 | bearer tokens, and Google OAuth through `lab-auth`. |
| 18 | |
| 19 | **Not for:** replacing Apprise API, storing notification destinations in this |
| 20 | repo, scheduling reminders, building a generic webhook relay, multi-tenant |
| 21 | isolation, or passing upstream Apprise bearer tokens through MCP tool arguments. |
| 22 | |
| 23 | ## Contents |
| 24 | |
| 25 | - [Naming](#naming) |
| 26 | - [Capabilities And Boundaries](#capabilities-and-boundaries) |
| 27 | - [Install](#install) |
| 28 | - [Quickstart](#quickstart) |
| 29 | - [Client Configuration](#client-configuration) |
| 30 | - [Runtime Surfaces](#runtime-surfaces) |
| 31 | - [MCP Tool Reference](#mcp-tool-reference) |
| 32 | - [CLI Reference](#cli-reference) |
| 33 | - [Configuration](#configuration) |
| 34 | - [Authentication](#authentication) |
| 35 | - [Safety And Trust Model](#safety-and-trust-model) |
| 36 | - [Architecture](#architecture) |
| 37 | - [Distribution Contract](#distribution-contract) |
| 38 | - [Development](#development) |
| 39 | - [Verification](#verification) |
| 40 | - [Deployment](#deployment) |
| 41 | - [Troubleshooting](#troubleshooting) |
| 42 | - [Related Servers](#related-servers) |
| 43 | - [Documentation](#documentation) |
| 44 | - [License](#license) |
| 45 | |
| 46 | ## Naming |
| 47 | |
| 48 | | Surface | This repo | |
| 49 | |---|---| |
| 50 | | Repository | `apprise-rmcp` | |
| 51 | | Rust crate | `apprise-mcp` | |
| 52 | | Binary / CLI | `rapprise` | |
| 53 | | npm package | `apprise-rmcp` | |
| 54 | | npm binary aliases | `apprise-rmcp`, `rapprise` | |
| 55 | | MCP tool | `apprise` | |
| 56 | | Config home | `~/.apprise` on hosts, `/data` in containers | |
| 57 | | Env prefixes | `APPRISE_*`, `APPRISE_MCP_*`, `APPRISE_RMCP_*` for npm launcher controls | |
| 58 | |
| 59 | The repo and npm package use the RMCP family name, while the shipped binary uses |
| 60 | the short Rust CLI name `rapprise`. |
| 61 | |
| 62 | ## Capabilities And Boundaries |
| 63 | |
| 64 | - Send notifications through tags configured in the upstream Apprise API server. |
| 65 | - Send one-off notifications to Apprise URL schemas with `notify_url`. |
| 66 | - Check upstream Apprise API health. |
| 67 | - Expose the `send_alert` prompt for critical alert workflows. |
| 68 | - Provide setup and doctor commands for local plugin/runtime checks. |
| 69 | |
| 70 | | This repo owns | Apprise owns | Explicitly out of scope | |
| 71 | |---|---|---| |
| 72 | | MCP/CLI projection, request validation, auth policy, response shaping, setup checks, and transport wiring. | Notification delivery, configured destinations, tags, delivery backend credentials, upstream API semantics. | Destination storage, scheduling, retry policy beyond upstream behavior, multi-tenant sandboxing, arbitrary webhook relay behavior. | |
| 73 | |
| 74 | ## Install |
| 75 | |
| 76 | | Path | Command | Best for | Notes | |
| 77 | |---|---|---|---| |
| 78 | | npm / npx | `npx -y apprise-rmcp --help` | Linux/Windows x86_64 clients. | Verifies the release archive SHA-256 before atomic install. | |
| 79 | | Release installer | [Verified installer procedure](#verified-release-installer) | Linux x86_64 without Node. | Verifies checksum and offline provenance before executing installer code. | |
| 80 | | Docker / Compose | `docker compose up -d` | Shared HTTP MCP deployments. | Reads `.env` and exposes container port `40050`. | |
| 81 | | Build from source | `cargo build --release` | Development and audits. | Produces `target/release/rapprise`. | |
| 82 | | Plugin | `just build-plugin && claude plugin install ./plugins/apprise` | Claude Code from this checkout. | Bundled `rapprise` stdio plugin. | |
| 83 | |
| 84 | Releases publish SHA-256 files and offline GitHub build-provenance bundles. The |
| 85 | installers verify both the checksum and provenance identity with GitHub CLI 2.68+. |
| 86 | macOS and ARM64 are not currently mapped by the npm launcher. |
| 87 | |
| 88 | ### npm / npx |
| 89 | |
| 90 | Run the stdio MCP server or CLI without a manual binary install: |
| 91 | |
| 92 | ```bash |
| 93 | npx -y apprise-rmcp --help |
| 94 | npx -y apprise-rmcp mcp |
| 95 | npx -y apprise-rmcp health --json |
| 96 | ``` |
| 97 | |
| 98 | The npm package downloads `rapprise` during `postinstall`. Override download |
| 99 | behavior only when testing packaging: |
| 100 | |
| 101 | | Variable | Purpose | |
| 102 | |---|---| |
| 103 | | `APPRISE_RMCP_SKIP_DOWNLOAD=1` | Skip postinstall binary download. | |
| 104 | | `APPRISE_RMCP_VERSION` or `APPRISE_RMCP_BINARY_VERSION` | Select the GitHub Release tag. | |
| 105 | | `APPRISE_RMCP_REPO` | Select the GitHub repo used for release downloads. | |
| 106 | | `APPRISE_RMCP_RELEASE_BASE_URL` | Select a custom release base URL. | |
| 107 | |
| 108 | Verified binary installation is fail-closed and pins the repository, release |
| 109 | workflow, and source tag. Install `gh` 2.68 or newer before using npm or the |
| 110 | release installer. |
| 111 | |
| 112 | ### Verified Release Installer |
| 113 | |
| 114 | Download the installer and its verific |