pushnote について
pushnote は Gotify サーバーを操作するコマンドラインツール兼 stdio MCP サーバーです。単一のルーターツールで通知送信、メッセージ取得、稼働状況とバージョンの確認、アプリとクライアントの管理を行い、削除には確認を求めます。
主な機能
- 01プッシュ通知の送信
- 02メッセージとサーバー情報の取得
- 03Gotify アプリとクライアントの管理
- 04単一ツールによるアクションの振り分け
- 05削除時の確認必須
活用シーン
- 01Gotify 経由で通知を送信
- 02Gotify の状態確認やメッセージ取得
- 03アプリとクライアントの管理
- 04未確認の削除リクエストを防止
MCP 対応
通知、メッセージ取得、サーバー確認、管理操作を振り分ける単一の `gotify` MCP ツールを公開します。環境変数のトークンで設定済みの Gotify サーバーに接続し、削除操作には確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | integer | いいえ | delete_message 操作的消息 ID。 |
| name | string | いいえ | 作成および更新操作で使用するアプリケーション名またはクライアント名。 |
| limit | integer | いいえ | messages 操作で返すメッセージの最大数。 |
| since | integer | いいえ | messages 操作で、この値より大きい ID のメッセージのみを返します。 |
| title | string | いいえ | send 操作のメッセージタイトル。 |
| action | enum | はい | 実行する操作:health、version、me、messages、applications、clients、status、send、create_application、update_application、create_client、または delete_message。health | version | me | messages | applications | clients | status | send | create_application | update_application | create_client | delete_message | delete_all_messages | delete_application | delete_client | help |
| app_id | integer | いいえ | update_application 操作のアプリケーション ID。 |
| extras | object | いいえ | send 操作でメッセージに付加する extras オブジェクト。 |
| confirm | boolean | いいえ | delete_message などの破壊的な操作を確定するには true にする必要があります。 |
| message | string | いいえ | send 操作のメッセージ本文。 |
| priority | integer | いいえ | 送信操作で使用するメッセージの優先度を整数で指定します。 |
| client_id | integer | いいえ | クライアント ID。 |
| description | string | いいえ | create_application および update_application 操作で使用するアプリケーションの説明です。 |
| default_priority | integer | いいえ | アプリケーションのデフォルトのメッセージ優先度です。 |
詳細
pushnote
pushnote は Gotify サーバーと通信します。プッシュ通知の送信、メッセージ・サーバーのヘルス状態・バージョンの読み取り、通知の経路となる Gotify アプリケーションとクライアントの管理を行います。すべての機能は、コマンドラインインターフェイスと stdio MCP サーバーの両方で、単一のアクションルーターツール gotify として提供されます。どちらも同じバイナリで動作します。
設定には 3 つの環境変数を使用します。GOTIFY_URL は Gotify サーバーのベース URL で、必須です。設定されていない場合、ローカルの help を除くすべてのアクションは、リクエストを送信する前に失敗します。GOTIFY_CLIENT_TOKEN は、読み取りと管理(現在のユーザー、メッセージ、アプリケーション、クライアント)に使用する Gotify クライアントトークンです。GOTIFY_APP_TOKEN は、send アクションでのみ使用する Gotify アプリケーショントークンです。トークンは環境からのみ取得し、ツールの引数として渡すことはありません。
インストール
npx @reneturcios/pushnote health
または、コンテナーイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/pushnote
コンテナーはデフォルトで MCP サーバーを起動します(下記参照)。CLI として使用するには、CLI 引数を渡してください。
CLI
各コマンドは 1 つのルーターアクションに対応します。複数語のコマンドは、ここに示すハイフン区切り形式と、アンダースコアのアクション名の両方を使用できます(例:create-application または create_application)。
export GOTIFY_URL=https://gotify.example.com
export GOTIFY_CLIENT_TOKEN=<client token>
export GOTIFY_APP_TOKEN=<app token>
pushnote health
pushnote version
pushnote me
pushnote messages --limit 25 --since 40
pushnote messages --app-id 7
pushnote applications
pushnote clients
pushnote status
pushnote send "deploy finished" --title CI --priority 5
pushnote create-application alerts --description "Alert channel" --default-priority 4
pushnote update-application 3 --name renamed
pushnote create-client phone
pushnote delete-message 9 --confirm
pushnote delete-all-messages --confirm
pushnote delete-application 4 --confirm
pushnote delete-client 5 --confirm
pushnote help
pushnote --version
成功したコマンドは、上流の JSON ペイロードを出力します(status と help は代わりにローカルの出力を返します)。終了コード:成功時は 0、呼び出しが失敗した場合(上流 API エラーまたは拒否された破壊的操作を含む)は 1、使用法エラーの場合は 2 です。
破壊的コマンド(4 つの delete-* コマンド)は、--confirm が渡されない限り何も実行しません。指定しない場合は、Gotify サーバーにリクエストが届く前に失敗します。
MCP サーバー
mcp サブコマンドで stdio MCP サーバーを起動します。
npx -y @reneturcios/pushnote mcp
MCP クライアントの設定:
{
"mcpServers": {
"pushnote": {
"command": "npx",
"args": ["-y", "@reneturcios/pushnote", "mcp"],
"env": {
"GOTIFY_URL": "https://gotify.example.com",
"GOTIFY_CLIENT_TOKEN": "<client token>",
"GOTIFY_APP_TOKEN": "<app token>"
}
}
}
}
ツール
ツールは gotify の 1 つで、必須の action 引数と、そのアクションで必要となるパラメーターを任意のトップレベル引数として受け取ります。
| アクション | 必須 | 任意 | トークン |
|---|---|---|---|
health | — | — | なし |
version | — | — | なし |
me | — | — | クライアント |
messages | — | app_id、limit、since | クライアント |
applications | — | — | クライアント |
clients | — | — | クライアント |
status | — | — | なし(ローカル) |
send | message | title、priority、extras | アプリ |
create_application | name | description、default_priority | クライアント |
update_application | app_id | name、description、default_priority | クライアント |
create_client | name | — | クライアント |
delete_message | id、confirm | — | クライアント |
delete_all_messages | confirm | — | クライアント |
delete_application | app_id、confirm | — | クライアント |
delete_client | client_id、confirm | — | クライアント |
help | — | — | なし(ローカル) |
4 つすべての削除アクションは、confirm が true でない限り実行を拒否し、この確認はリクエストの送信前に行われます。status はローカルのスナップショット(Gotify URL、設定されているトークンの種類、アクション数)を返し、トークンの値は含めません。help はアクションのドキュメントをローカルで返します。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。