Apprise RMCP について
Apprise RMCPは、通知送信やサービス状態の確認を行うエージェントや運用担当者向けに、AppriseをMCPサーバーとCLIとして提供します。stdioとStreamable HTTPに対応し、設定済みのAppriseサーバーや単発のApprise URL送信を利用できます。
主な機能
- 01設定済みタグへの通知送信
- 02Apprise URLへの単発通知
- 03Apprise APIのヘルス確認
- 04stdioとHTTPのMCPトランスポート
- 05`rapprise` CLIの提供
活用シーン
- 01エージェントのワークフローからタグ付き通知
- 02指定したApprise URLへの単発アラート
- 03Apprise APIの稼働状況の確認
MCP 対応
ヘルス確認、状態取得、通知送信を行う`apprise`ツールと、`send_alert`プロンプトを公開します。stdioとStreamable HTTP MCPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dinglebear/rappriseAPPRISE_URLApprise API server base URL.APPRISE_TOKENシークレットOptional bearer token for protected Apprise API servers.APPRISE_RMCP_VERSIONOptional GitHub release tag override for the downloaded Apprise RMCP binary.APPRISE_RMCP_REPOOptional GitHub owner/repo override for release asset downloads.APPRISE_RMCP_RELEASE_BASE_URLOptional release download base URL override.RUST_LOGTracing filter for Apprise RMCP logs.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
apprise-rmcp
認証付きの stdio および HTTP トランスポートを通じて、MCP と CLI から Apprise 通知を送信します。
1 つの MCP ツール apprise と、rapprise CLI を提供します。エージェントは、事前設定済みの Apprise サーバーを通じてタグ付き通知を送信したり、単発の Apprise URL 送信を実行したり、stdio MCP、Streamable HTTP MCP、またはシェルコマンドから上流の稼働状況を確認したりできます。
30 秒で試す方法: npx -y @dinglebear/rapprise health --json を実行 -> APPRISE_MCP_HOST=127.0.0.1 npx -y @dinglebear/rapprise serve でループバック HTTP を起動 -> {"action":"health"} を指定して tools/call を呼び出します。
ステータス: 稼働中の RMCP 上流クライアントサーバーです。書き込み機能があり、通知の送信は意図的な副作用を伴います。HTTP MCP は、ループバック開発モード、静的ベアラートークン、lab-auth による Google OAuth に対応しています。
対象外: Apprise API の置き換え、このリポジトリでの通知先の保存、リマインダーのスケジュール設定、汎用 Webhook リレーの構築、マルチテナント分離、MCP ツールの引数を介した上流 Apprise ベアラートークンの受け渡し。
目次
- 名称
- 機能と境界
- インストール
- クイックスタート
- クライアント設定
- ランタイムのインターフェース
- MCP ツールリファレンス
- CLI リファレンス
- 設定
- 認証
- 安全性と信頼モデル
- アーキテクチャ
- 配布契約
- 開発
- 検証
- デプロイ
- トラブルシューティング
- 関連サーバー
- ドキュメント
- ライセンス
名称
| インターフェース | このリポジトリ |
|---|---|
| リポジトリ | apprise-rmcp |
| Rust クレート | apprise-mcp |
| バイナリ/CLI | rapprise |
| npm パッケージ | @dinglebear/rapprise |
| npm バイナリエイリアス | apprise-rmcp、rapprise |
| MCP ツール | apprise |
| 設定ホーム | ホストでは ~/.apprise、コンテナでは /data |
| 環境変数のプレフィックス | npm ランチャー制御用の APPRISE_*、APPRISE_MCP_*、APPRISE_RMCP_* |
リポジトリと npm パッケージでは RMCP ファミリー名を使用しますが、配布するバイナリでは Rust CLI の短い名前 rapprise を使用します。
機能と境界
- 上流 Apprise API サーバーで設定されたタグを通じて通知を送信します。
notify_urlを使って、Apprise URL スキーマへ単発の通知を送信します。- 上流 Apprise API の稼働状況を確認します。
- 重要なアラートのワークフロー向けに
send_alertプロンプトを提供します。 - ローカルのプラグイン/ランタイム確認用に、セットアップおよび診断コマンドを提供します。
| このリポジトリの責務 | Apprise の責務 | 明示的な対象外 |
|---|---|---|
| MCP/CLI への投影、リクエストの検証、認証ポリシー、レスポンスの整形、セットアップ確認、トランスポートの接続。 | 通知の配信、設定済みの通知先、タグ、配信バックエンドの認証情報、上流 API のセマンティクス。 | 通知先の保存、スケジュール設定、上流の挙動を超える再試行ポリシー、マルチテナントのサンドボックス化、任意の Webhook リレー動作。 |
インストール
| パス | コマンド | 最適な用途 | 備考 |
|---|---|---|---|
| npm / npx | npx -y @dinglebear/rapprise --help | Linux/Windows x86_64 クライアント。 | アトミックインストールの前に、リリースアーカイブの SHA-256 を検証します。 |
| リリースインストーラー | 検証済みインストーラーの手順 | Node を使わない Linux x86_64。 | インストーラーのコードを実行する前に、チェックサムとオフラインの来歴を検証します。 |
| Docker / Compose | docker compose up -d | HTTP MCP の共有デプロイ。 | .env を読み込み、コンテナのポート 40050 を公開します。最初に外部ネットワークが必要です。デプロイを参照してください。 |
| ソースからビルド | cargo build --release | 開発と監査。 | target/release/rapprise を生成します。 |
| プラグイン | just build-plugin && claude plugin install ./plugins/apprise | このチェックアウトから Claude Code を使用する場合。 | バンドルされた rapprise stdio プラグインです。フックは含まれていません。 |
リリースでは、SHA-256 ファイルとオフラインの GitHub ビルド来歴バンドルを公開しています。 インストーラーは GitHub CLI 2.68+ で、チェックサムと来歴の識別情報の両方を検証します。 npm ランチャーは、x86_64 Linux および Windows のリリースアセットに対応しています。
npm / npx
バイナリを手動でインストールせずに、stdio MCP サーバーまたは CLI を実行します。
npx -y @dinglebear/rapprise --help
npx -y @dinglebear/rapprise mcp
npx -y @dinglebear/rapprise health --json
npm パッケージは postinstall 中に rapprise をダウンロードします。ダウンロード動作を変更するのは、パッケージングのテスト時に限ってください。
| 変数 | 目的 |
|---|---|
APPRISE_RMCP_SKIP_DOWNLOAD=1 | postinstall によるバイナリのダウンロードをスキップします。 |
APPRISE_RMCP_VERSION or APPRISE_RMCP_BINARY_VERSION | GitHub Release のタグを選択します。 |
APPRISE_RMCP_REPO | リリースのダウンロードに使用する GitHub リポジトリを選択します。 |
APPRISE_RMCP_RELEASE_BASE_URL | カスタムのリリースベース URL を選択します。 |
検証済みバイナリのインストールでは、失敗時に処理を中止し、リポジトリ、リリースワークフロー、ソースタグを固定します。npm またはリリースインストーラーを使用する前に、gh 2.68 以降をインストールしてください。
検証済みリリースインストーラー
インストーラーと検証用のファイルを、実行せずにダウンロードします。その後、実行する前に完全性と来歴の両方を検証します。
version を使用するリリースタグに置き換えてください。現在のバージョンは v0.2.0 です。
version=v0.2.0
base="https://github.com/dinglebear-ai/rapprise/releases/download/${version}/rapprise-installer.sh"
curl -fsSLO "$base"
curl -fsSLO "$base.sha256"
curl -fsSLO "$base.sigstore.json"
sha256sum --check rapprise-installer.sh.sha256
gh attestation verify rapprise-installer.sh \
--repo dinglebear-ai/rapprise \
--bundle rapprise-installer.sh.sigstore.json \
--signer-workflow dinglebear-ai/rapprise/.github/workflows/release.yml \
--source-ref "refs/tags/${version}" \
--deny-self-hosted-runners
APPRISE_RMCP_VERSION="$version" bash rapprise-installer.sh
--repo と --signer-workflow の値は、ビルド時にアテステーションに記録された識別情報と一致している必要があります。リポジトリが dinglebear-ai 組織に移行する前に作成されたリリースは、jmagar/rapprise としてアテステーションされています。それ以降に作成されたリリースでは dinglebear-ai/rapprise を使用してください。
npm ランチャーが Windows x86_64 に対応するのは、GitHub CLI 2.68+ がインストールされ、gh.exe が PATH で利用できる場合に限られます。来歴の検証はスキップされません。
ソースからビルド
git clone https://github.com/dinglebear-ai/rapprise
cd rapprise
cargo build --release
./target/release/rapprise --help
サポート対象の最小 Rust バージョン:1.90。Rust エディションは 2021 です。Cargo ワークスペースには、ルートの apprise-mcp パッケージと xtask の 2 つのメンバーがあります。
クイックスタート
1. Apprise API を起動するか、接続先を指定する
デフォルトのアップストリームは http://localhost:8000 です。
docker run --rm -p 8000:8000 caronc/apprise:latest
API サーバーが別の場所にある場合は、APPRISE_URL を使用します。
export APPRISE_URL=http://198.51.100.2:8766
Apprise API サーバーでベアラー認証が必要な場合に限り、APPRISE_TOKEN を設定します。
export APPRISE_TOKEN=...
2. 安全な CLI 呼び出しを実行する
npx -y @dinglebear/rapprise health --json
3. ループバック HTTP MCP を起動する
APPRISE_MCP_HOST=127.0.0.1 npx -y @dinglebear/rapprise serve
別のシェルで:
curl -sf http://127.0.0.1:40050/health
4. 最初の MCP 呼び出しを行う
curl -s -X POST http://127.0.0.1:40050/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apprise","arguments":{"action":"health"}}}'
クライアントの設定
Claude Code Stdio
{
"mcpServers": {
"apprise": {
"command": "npx",
"args": ["-y", "apprise-rmcp", "mcp"],
"env": {
"APPRISE_URL": "http://localhost:8000"
}
}
}
}
Claude Code HTTP
{
"mcpServers": {
"apprise": {
"type": "http",
"url": "http://127.0.0.1:40050/mcp",
"headers": {
"Authorization": "Bearer ${APPRISE_MCP_TOKEN}"
}
}
}
}
Codex / Labby Gateway
1 台の長時間稼働サーバーを共有する場合は、Labby を通じて Apprise を HTTP アップストリームとして登録します。ローカルのみで使用する場合は、stdio として直接実行します。
[mcp_servers.apprise]
command = "npx"
args = ["-y", "apprise-rmcp", "mcp"]
汎用 MCP JSON
{
"command": "rapprise",
"args": ["mcp"],
"env": {
"APPRISE_URL": "http://localhost:8000"
}
}
APPRISE_TOKEN、OAuth シークレット、SSH キー、パスワード、アップストリームのベアラートークンを MCP ツールの引数に含めないでください。環境変数、設定ファイル、または MCP クライアントのシークレットストレージを使用してください。
ランタイムの利用形態
| 利用形態 | 状態 | エントリーポイント | 用途 |
|---|---|---|---|
| MCP stdio | 対応 | rapprise mcp, npx -y @dinglebear/rapprise mcp | ローカルの子プロセス型 MCP クライアント。 |
| MCP HTTP | 対応 | rapprise serve, POST /mcp | ローカルまたは共有サーバー環境向けのストリーム可能な HTTP MCP。 |
| ライブネス | 対応 | GET /health | 常に認証なしで利用できます。 |
| レディネス/ステータス | 対応 | GET /ready, GET /status | /mcp と同じ認証レイヤーで保護されます。 |
| OAuth ディスカバリー | 条件付き | /mcp/.well-known/* と lab-auth ルート | auth_mode = oauth の場合にのみマウントされます。 |
| CLI | 対応 | rapprise <command> | スクリプトからの操作とデバッグに対応します。 |
| プロンプト | 対応 | send_alert | 再利用可能な重大アラートのワークフロー。 |
| REST API | 提供なし | N/A | REST API は Apprise API がすでに提供しています。 |
| Web UI | 提供なし | N/A | Web UI は Apprise API がすでに提供しています。 |
MCP ツールリファレンス
公開されている MCP ツールは 1 つです。必須の action 引数を渡して
操作を選択します。
読み取りアクション
| アクション | 説明 | 必須パラメーター | 任意パラメーター |
|---|---|---|---|
health | Apprise API サーバーのヘルス状態を確認します。 | なし | なし |
status | 認証されたデプロイとランタイムのステータスを返します。 | なし | なし |
help | 組み込みの Markdown ツールヘルプを返します。 | なし | なし |
書き込みアクション
| アクション | 説明 | 必須パラメーター | 任意パラメーター |
|---|---|---|---|
notify | 設定済みの Apprise タグに通知を送信します。tag を省略すると、設定済みのすべてのサービスに送信します。 | body | tag, title, type |
notify_url | 1 つ以上の Apprise URL スキーマに、ステートレスな単発通知を送信します。 | urls, body | title, type |
通知タイプ
| タイプ | 意味 |
|---|---|
info | 情報通知。 |
success | 操作の成功。 |
warning | 重大ではない警告。 |
failure | 重大な失敗またはエラー。 |
MCP 呼び出し例
curl -s -X POST http://127.0.0.1:40050/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apprise","arguments":{"action":"health"}}}'
{
"name": "apprise",
"arguments": {
"action": "notify",
"body": "Deployment succeeded",
"tag": "ops",
"title": "Deploy complete",
"type": "success"
}
}
厳選したアクションの概要はこちらにあります。生成済みの docs/MCP_SCHEMA.md が
追加されるまでは、完全なパラメーターの最新の信頼できる情報源は
docs/INVENTORY.md です。
CLI リファレンス
CLI は MCP ツールと同じサービスメソッドを呼び出します。
rapprise health [--json]
rapprise notify <body> [--tag TAG] [--title T] [--type info|success|warning|failure] [--json]
rapprise notify-url <urls> <body> [--title T] [--type info|success|warning|failure] [--json]
rapprise serve # Streamable HTTP MCP on :40050
rapprise serve mcp # same as `serve`
rapprise mcp # stdio MCP
rapprise doctor [--json] # pre-flight environment validation
rapprise setup check # read-only audit of appdata/env
rapprise setup repair # idempotent: create missing setup files
rapprise setup install # copy this binary into ~/.local/bin
rapprise setup plugin-hook [--no-repair]
rapprise help # or --help / -h
rapprise --version # or -V
--json は、整形済みのフィールドではなく生の JSON を出力します。--help は、
環境変数のリファレンス全体を表示します。
設定
設定は config.toml が存在する場合にそこから読み込まれ、その後、環境変数で値が
上書きされます。起動時に、ホストでは
${APPRISE_HOME:-~/.apprise}/.env、コンテナでは /data/.env を読み込みます。
完全な一覧を参照してください。
上流の変数
| 変数 | 必須 | 説明 |
|---|---|---|
APPRISE_URL | いいえ | Apprise API サーバーのベース URL。デフォルトは http://localhost:8000 です。 |
APPRISE_TOKEN | 保護された上流の場合のみ | 上流の Apprise API に送信するベアラートークン。受信側の APPRISE_MCP_TOKEN とは別です。 |
APPRISE_MAX_CONCURRENT_REQUESTS | いいえ | 上流リクエストの同時実行数。デフォルトは 32、範囲は 1..=1024 です。 |
APPRISE_MAX_RESPONSE_BYTES | いいえ | 上流レスポンスの上限サイズ。デフォルトは 65536、範囲は 1..=4194304 です。 |
APPRISE_HOME | いいえ | データディレクトリ。ホストでは ~/.apprise、コンテナでは /data がデフォルトです。 |
ランタイム変数
| 変数 | デフォルト | 説明 |
|---|---|---|
APPRISE_MCP_HOST | 0.0.0.0 | HTTP MCP のバインド先ホストです。 |
APPRISE_MCP_PORT | 40050 | HTTP MCP のバインド先ポートです。 |
APPRISE_MCP_TOKEN | empty | ループバック開発モード以外で使用する、HTTP MCP 用の静的ベアラートークンです。 |
APPRISE_MCP_NO_AUTH | false | HTTP MCP 認証を無効にします。ループバック上、または信頼できるゲートウェイの背後でのみ使用してください。 |
APPRISE_MCP_AUTH_MODE | bearer | lab-auth 経由で Google OAuth を使用する場合は oauth に設定します。 |
APPRISE_MCP_PUBLIC_URL | empty | OAuth メタデータと保護されたリソースの検出に使用する公開 URL です。 |
APPRISE_MCP_GOOGLE_CLIENT_ID | empty | Google OAuth クライアント ID です。 |
APPRISE_MCP_GOOGLE_CLIENT_SECRET | empty | Google OAuth クライアントシークレットです。 |
APPRISE_MCP_AUTH_ADMIN_EMAIL | empty | 初期管理者/管理者用 OAuth メールアドレスです。 |
APPRISE_MCP_ALLOWED_HOSTS | empty | 追加で許可する HTTP Host 値です。 |
APPRISE_MCP_ALLOWED_ORIGINS | empty | HTTP MCP 用に追加で許可する CORS オリジンです。 |
APPRISE_MCP_AUTH_ALLOWED_REDIRECT_URIS | empty | OAuth クライアントのリダイレクト URI です。 |
APPRISE_MCP_AUTH_ALLOWED_EMAILS | empty | OAuth メールアドレスの許可リストです。 |
APPRISE_MCP_AUTH_SQLITE_PATH | data-dir auth.db | OAuth 状態ストアのパスです。 |
APPRISE_MCP_AUTH_KEY_PATH | data-dir auth-jwt.pem | JWT 署名キーのパスです。 |
APPRISE_MCP_DISABLE_STATIC_TOKEN_WITH_OAUTH | true | 静的ベアラートークンによる OAuth の迂回を禁止します。 |
RUST_LOG | info | Rust のログフィルターです。Stdio のログを stdout に出力しないでください。 |
トークンの有効期間とレート制限の変数(APPRISE_MCP_AUTH_*_TTL_SECS、
APPRISE_MCP_AUTH_*_REQUESTS_PER_MINUTE、
APPRISE_MCP_AUTH_MAX_PENDING_OAUTH_STATES)の一覧は
docs/INVENTORY.md に記載されています。
認証
| ポリシー | 条件 | 効果 |
|---|---|---|
| Stdio | rapprise mcp | ローカルプロセスを信頼します。HTTP 認証は適用されません。 |
| ループバック開発 | ループバックかつ認証なし | 認証なしのローカル HTTP を許可します。 |
| 非ループバックで認証なし | 非ループバックかつ認証なし | 無効です。起動時に拒否されます。 |
| 静的ベアラー | bearer かつ APPRISE_MCP_TOKEN | 完全一致するベアラートークンを必須とします。 |
| OAuth | 発行者/クライアント/管理者の設定 | OAuth/JWT を必須とします。 |
| OAuth の静的トークン制御 | 静的トークン無効化が true | 静的トークンで OAuth を迂回できないようにします。 |
MCP スコープは apprise:notify と apprise:admin です。MCP 呼び出しを
ディスパッチする前に OAuth トークンが検証されます。
安全性と信頼モデル
- MCP 呼び出し元が、ツールの引数として
APPRISE_TOKEN、OAuth シークレット、静的ベアラートークン、 パスワード、SSH キー、API キーを渡すことはありません。 - Apprise のアップストリーム認証情報は、環境変数/設定からのみ読み込まれます。
- 宛先がアップストリームでタグ別に設定されるため、
notifyが推奨される方法です。 notify_urlは、単発送信用に Apprise URL スキーマを MCP 引数として意図的に受け付けます。 これらの URL は機密性の高いペイロードとして扱い、タグ付けされたアップストリーム宛先が利用できる場合は使用を避けてください。- Apprise API は宛先設定の永続的な情報源です。このサーバーはその API を薄く投影するものです。
- HTTP モードをループバック外に公開する場合は、アップストリームのリバースプロキシによる TLS と、 ベアラー認証または OAuth 認証を必ず使用してください。
アーキテクチャ
MCP client / CLI
|
v
rapprise
|
+-- MCP shim: JSON args -> AppriseService -> structured result
+-- CLI shim: argv -> AppriseService -> stdout
|
v
AppriseService
|
v
AppriseClient
|
v
Apprise API server
|
v
Notification backends
| パス | 役割 |
|---|---|
src/app.rs | ビジネスサービス層、レスポンスの整形、カウンター、通知呼び出しです。 |
src/apprise.rs | Apprise API の REST クライアントです。 |
src/mcp/ | RMCP のツール、プロンプト、スキーマ、ルート、認証チェックです。 |
src/cli.rs | CLI パーサー、doctor/セットアップヘルパー、出力フォーマットです。 |
src/config.rs | 環境変数/設定の読み込みとデフォルト値です。 |
packages/apprise-rmcp/ | npm ランチャーとリリースバイナリのダウンローダーです。 |
通知コマンドと MCP は、どちらも AppriseService に集約されます。現在、CLI は
セットアップ、doctor、セルフインストール、ファイルシステム、出力のオーケストレーションも担っており、
単なる引数の受け渡し役ではありません。
配布契約
| 成果物 | ファイル | 整合させる対象 |
|---|---|---|
| Rust クレート/バイナリ | Cargo.toml、Cargo.lock | Git タグ、リリースアセット、CLI ドキュメント、インストールスクリプト。 |
| npm ランチャー | packages/apprise-rmcp/package.json、bin/rapprise.js、lib/platform.js、scripts/install.js | GitHub Release タグ、および rapprise-x86_64.tar.gz と rapprise-windows-x86_64.tar.gz という名前のアセット。 |
| GitHub Releases | .github/workflows/*、scripts/install.sh、install.sh | パッケージのバージョン、バイナリ名、チェックサム、サポート対象プラットフォーム。 |
| Docker / Compose | config/Dockerfile、docker-compose.yml、docker-compose.prod.yml | 公開ポート 40050、ヘルスチェック /health、環境変数ファイルの契約。 |
| MCP レジストリ | server.json | ID ai.dinglebear/rapprise、stdio パッケージ、バージョン。 |
| プラグイン | plugins/apprise | バンドルされる rapprise の stdio のみ。マニフェストにフック、version、userConfig は含めません。 |
| ドキュメント | README.md、docs/INVENTORY.md、docs/QUICKSTART.md | 現在のバイナリ名、デフォルトポート、アクション一覧、環境変数名。 |
リリースの不変条件:npm、クレート、レジストリ/サーバーのメタデータ、マニフェスト、GitHub タグ、ネイティブアセットを一緒に更新します。これらの更新は Release Please が管理します。
開発
cargo fmt -- --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release
npm --prefix packages/apprise-rmcp run check
npm --prefix packages/apprise-rmcp test
# Contract checks
bash tests/docs-contract.sh # docs, versions, and plugin invariants
bash scripts/validate-plugin-layout.sh # or: just validate-plugin
just は一般的なループをラップします:just check、just lint、just fmt、
just test、just release、just build-plugin、just docker-up、
just health。プラグインのレシピは build-plugin です。plugin-build はありません。
Cargo.toml では rmcp = "1.6.0" を宣言していますが、キャレット範囲により
より新しいバージョンが解決され、Cargo.lock では rmcp 1.7.0 に固定されています。ロックファイルを信頼してください。
検証
# Binary and CLI
cargo build --release
./target/release/rapprise --version
./target/release/rapprise health --json
# HTTP health
APPRISE_MCP_HOST=127.0.0.1 ./target/release/rapprise serve
curl -sf http://127.0.0.1:40050/health
# MCP tool call
curl -s -X POST http://127.0.0.1:40050/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apprise","arguments":{"action":"health"}}}'
実際の通知テストでは、Apprise API サーバーに少なくとも 1 つの送信先を設定し、そのタグを指定して notify を呼び出してください。
デプロイ
Docker / Compose
docker-compose.prod.yml では apprise-mcp ネットワークが external: true として宣言されているため、初回起動の前に一度作成してください:
cp .env.example .env
$EDITOR .env
docker network create apprise-mcp
docker compose up -d
curl -sf http://127.0.0.1:40050/health
docker-compose.yml は config/Dockerfile から apprise-mcp:dev をビルドし、本番用サービスを拡張します。docker-compose.prod.yml 単体では、pull_policy: never を指定して公開済みイメージを実行するため、先にイメージをプルまたは読み込んでください。コンテナは UID 1000 として読み取り専用で実行され、アプリデータは /data 以下に保存されます。通常は ${APPRISE_DATA_DIR:-${HOME}/.apprise} からマウントされます。公開ホストポートを変更するには APPRISE_MCP_HOST_PORT を上書きしてください。
リバースプロキシ
公開するのは /mcp と /health のみとし、OAuth の実行時には lab-auth および /mcp/.well-known/* のルートも公開してください。/ready と /status は内部用にしてください。Streamable HTTP ヘッダーを保持し、TLS を必須にし、ループバックの外部にサーバーを公開する前に bearer または OAuth 認証を設定してください。
プラグイン
このプラグインは stdio としてバンドルされ、Claude Code のフックは含まれません。セッション開始時に自動実行されるものはないため、セットアップは自分で一度実行してください:
just build-plugin
claude plugin install ./plugins/apprise
rapprise setup check
トラブルシューティング
| 症状 | 考えられる原因 | 解決方法 |
|---|---|---|
/mcp からの 401 | bearer/OAuth トークンがないか、誤っています。 | APPRISE_MCP_TOKEN とクライアントのヘッダーを確認するか、ローカルでループバック開発モードを使用してください。 |
| CLI のヘルスチェックが失敗する | Apprise API に到達できません。 | APPRISE_URL と上流の Apprise API サーバーを確認してください。 |
notify の送信先がない | タグに一致する上流の送信先がありません。 | Apprise API で設定済みのタグを確認するか、設定済みのすべてのサービスに送信するには tag を省略してください。 |
notify_url が失敗する | Apprise URL のスキーマが無効か、送信先のバックエンドがブロックされています。 | Apprise API で URL を直接テストし、繰り返し使用する場合は設定済みのタグを優先してください。 |
| stdio MCP の JSON 解析エラー | ログが stdout に出力されました。 | プロトコルのログを stdout に出さないようにし、必要に応じて RUST_LOG のログレベルを下げてください。 |
| npm ランチャーがバイナリを見つけられない | リリースアセットのダウンロードに失敗したか、ダウンロードがスキップされました。 | 再インストールし、APPRISE_RMCP_VERSION を確認するか、ソースから rapprise をビルドしてください。 |
関連サーバー
- soma - プロバイダー連携型 MCP サーバー向けの RMCP ランタイムおよびスキャフォールドです。
- unifi-rmcp - UniFi コントローラー REST API ブリッジです。
- tailscale-rmcp - デバイス、ユーザー、tailnet 操作用の Tailscale API ブリッジです。
- unraid - Unraid のモノレポです。
unraid-rs/は GraphQL MCP ブリッジです(バイナリはrunraid)。 - gotify-rmcp - 送信、メッセージ、アプリ、クライアントに対応する Gotify プッシュ通知ブリッジです。
- arcane-rmcp - コンテナーおよび関連リソースを管理する Arcane Docker 管理ブリッジです。
- yarr - Sonarr、Radarr、Prowlarr、Plex、および関連サービス向けのメディアスタックブリッジです。
- ytdl-rmcp - メディアのダウンロードおよびメタデータ処理ワークフローサーバーです。
- synapse-rmcp - scout アクションと flux アクション向けのローカル Synapse ワークフローサーバーです。
- cortex - Syslog およびホームラボのログ集約用 MCP サーバーです。
- axon - RAG、クロール、スクレイピング、抽出、セマンティック検索のプロジェクトです。
- labby - ホームラボのコントロールプレーンおよび MCP ゲートウェイのプロジェクトです。
ドキュメント
まずはこちらをご覧ください。
docs/QUICKSTART.md- 要点を絞ったセットアップ手順です。docs/INVENTORY.md- アクション、CLI コマンド、環境変数、エンドポイントのコンポーネント一覧です。docs/README.md- ドキュメントのインデックスです。server.json- MCP レジストリのメタデータです。packages/apprise-rmcp/README.md- npm パッケージのランチャーに関する説明です。
この README は厳選した内容です。生成されたカタログや網羅的なカタログは、それぞれのファイルで更新し、現在のブランチの詳細を確認する際の信頼できる情報源として扱ってください。
ライセンス
このプロジェクトのうち、Dinglebear が作成したオリジナル部分は AGPL-3.0-only の下でライセンスされています。AGPL の範囲外の条件を必要とする組織向けに、別途商用ライセンスも提供しています。サードパーティの素材は、引き続きそれぞれの元のライセンスが適用されます。LICENSING.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。