mcpField
G
gotify

gotify

github.com/wmy2981生産性155 回インストール5 週間前に更新
リポジトリ

gotify について

gotifyは、REST API経由でセルフホスト型Gotifyサーバーを管理するコマンドラインクライアントです。プッシュ通知の送信やメッセージ送信元・受信クライアントの管理に使え、メッセージ取得、プラグイン操作、WebSocketでのリアルタイム受信にも対応します。

主な機能

  1. 01タイトルと優先度付き通知の送信
  2. 02アプリと受信クライアントの管理
  3. 03メッセージ一覧とページ指定取得
  4. 04プラグインの一覧・有効化・無効化
  5. 05サーバーの稼働状況とバージョン確認
  6. 06WebSocketでリアルタイムメッセージを受信

活用シーン

  1. 01デプロイやバックアップの通知送信
  2. 02Gotifyアプリと端末クライアントの管理
  3. 03最新または指定範囲のメッセージ確認
  4. 04リアルタイム通知の受信と処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wmy2981/skills --skill gotify

インストール後、Claude Code で/gotifyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.claude-plugin/
plugin.json
references/
api_doc_spec.json
scripts/
.env.example
gotify_client.py

詳細

Gotify CLI クライアント

セルフホスト型の Gotify サーバーで、REST API v2.0.2 を介してプッシュ通知を送信・管理します。

実行ルール

依存関係、環境変数、設定を事前に確認せず、ユーザーが要求したコマンドを直接実行してください。問題がある場合は、スクリプトが明確なエラーを出して失敗します。その場合にのみ確認して修正してください。

環境変数

変数必須用途
GOTIFY_URL✅サーバーのベース URL(例:https://gotify.example.com)
GOTIFY_CLIENT_TOKEN✅クライアントトークン — アプリとクライアントの管理、メッセージの読み取り
GOTIFY_APP_TOKEN✅アプリケーショントークン — メッセージの送信

スクリプトはこれらの変数を ~/.wmyskills/.env(スキル間で共有)から自動的に読み込みます。スクリプトのディレクトリに scripts/.env がある場合は、そちらが優先されます。テンプレートには scripts/.env.example を使用してください。既存のファイルを上書きせず、変数を ~/.wmyskills/.env に追加してください。トークンがない場合は明確なエラーが表示されます。--token を使って、呼び出しごとにトークンを指定することもできます。

要件

# Core — stdlib only (no install needed)
# WebSocket (optional, for ws-subscribe only):
pip install websocket-client

使い方

スクリプト:scripts/gotify_client.py

python scripts/gotify_client.py <command> [options]
🔔 通知の送信
python scripts/gotify_client.py send \
  --message "Deployment succeeded" \
  --title "CI/CD Alert" \
  --priority 5
フラグ必須説明
--message / -m✅メッセージ本文(Markdown に対応)
--title / -t通知のタイトル
--priority / -p0~10(0=サイレント、10=緊急。省略時は送信されず、API では 0 が使用されます)
--extrasプラグイン固有データ用の JSON 文字列
--tokenアプリトークンを上書き

Extras の例(Firebase プッシュ設定):

python scripts/gotify_client.py send -m "Hello" --extras '{"firebase":{"priority":"high"}}'
📱 アプリケーション(メッセージの送信元)
# List all applications
python scripts/gotify_client.py list-apps

# Create a new application
python scripts/gotify_client.py create-app \
  --name "Backup Bot" \
  --description "Backup notifications" \
  --default-priority 3

# Delete an application
python scripts/gotify_client.py delete-app --id 5
create-app フラグ必須説明
--name✅アプリケーション名
--description / -d説明
--default-priorityデフォルトのメッセージ優先度(0~10)
--imageアプリケーション画像の URL
--internal内部用として指定(フラグのみ。値は不要)

create-app が返す token は、メッセージ送信用のアプリトークンです。安全に保管してください。

📲 クライアント(通知を受信するデバイス)
# List all clients
python scripts/gotify_client.py list-clients

# Create a new client
python scripts/gotify_client.py create-client --name "iPhone"

# Delete a client
python scripts/gotify_client.py delete-client --id 3
📬 メッセージ
# List recent messages (default: 30)
python scripts/gotify_client.py list-messages --limit 50

# Pagination — get messages after ID 100
python scripts/gotify_client.py list-messages --since 100

# Use a specific token to list messages (app or client token)
python scripts/gotify_client.py list-messages --token <token>

# Delete a single message
python scripts/gotify_client.py delete-message --id 42

# Bulk delete: all messages with ID < 500
python scripts/gotify_client.py delete-messages --before 500

# Bulk delete from a specific app
python scripts/gotify_client.py delete-messages --app-id 3 --before 500
list-messages フラグ説明
--limit返すメッセージの最大数(1~200。デフォルトは 30)
--sinceメッセージ ID のオフセット。この値より大きい ID のメッセージを返します
--tokenトークンを上書き(デフォルトでは環境変数のクライアントトークンを使用)
🔌 プラグイン
# List installed plugins
python scripts/gotify_client.py list-plugins

# Enable a plugin
python scripts/gotify_client.py toggle-plugin --id 1

# Disable a plugin
python scripts/gotify_client.py toggle-plugin --id 1 --disable
❤️ サーバーのヘルス状態とバージョン
# Health check
python scripts/gotify_client.py health

# Version info
python scripts/gotify_client.py version
📡 リアルタイム WebSocket ストリーム

ライブメッセージを購読します(websocket-client が必要です)。

pip install websocket-client
python scripts/gotify_client.py ws-subscribe
# Override token:
python scripts/gotify_client.py ws-subscribe --token <client-or-app-token>

出力は、受信したメッセージごとに 1 つの JSON オブジェクトです。

API キーの基本事項

  • アプリトークン(GOTIFY_APP_TOKEN):/message を介したメッセージの送信に使用します
  • クライアントトークン(GOTIFY_CLIENT_TOKEN):それ以外の場所で、アプリ/クライアント/メッセージを管理するために使用します
  • トークンは X-Gotify-Key ヘッダーを介して渡されます(この処理はスクリプトが自動で行います)

トラブルシューティング

エラー原因対処方法
GOTIFY_URL not set環境変数がありませんGOTIFY_URL=https://your-server を設定します
401 Unauthorizedトークンが正しくないか、設定されていません必要なトークンの種類を確認し、環境変数を検証します
403 Forbidden送信時にクライアントトークンを使用しています/message にはアプリトークンを使用します
Connection refusedサーバーが停止していますhealth を実行して確認します
No app tokenトークンが設定されていませんGOTIFY_APP_TOKEN を設定するか、--token を使用します

コメント