Paigy について
PaigyはAIエージェント向けの音声インボックス型MCPサーバーです。タスクの停止中や判断が必要なとき、長時間タスクの完了時に電話・テキスト・プッシュで通知し、返信をエージェントに戻します。
主な機能
- 01電話・テキスト・プッシュ通知
- 02音声またはテキスト返信の返却
- 03確認・選択肢・自由回答の質問
- 04通知の緊急度設定
- 05停滞したPaigy Goalsの確認
活用シーン
- 01エージェント停止中の承認取得
- 02長時間タスク完了の通知
- 03音声でエージェントの質問に回答
MCP 対応
標準MCPプロトコルを通じて、通知・質問・返信処理をクライアントに提供します。Claude CodeやCodex CLIを含む複数のMCPクライアントで利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Paigy — MCP サーバー
AI エージェントのための音声受信箱です。エージェントがあなたの入力を必要とするとき(作業中に行き詰まったときや、時間のかかる処理が完了したときなど)、実際に電話をかけて質問を読み上げたり、テキスト、プッシュ通知、バナー付きの着信音でスマートフォンに知らせたりできます。ターミナルを見守る代わりに、音声で返信できます。
Paigy がない場合、エージェントとの長時間のセッションでは、エージェントがあなたを必要とするタイミングを逃さないようにターミナルを見続けるか、席を外して、気づかなかった質問への返答を待つ間に1時間前から停止していたタスクに戻るか、という二つの望ましくない選択肢があります。Paigy はこの隔たりを埋めます。エージェントが判断を必要としたその瞬間に、状況に応じた緊急度(通知なしの受信箱カード、控えめなプッシュ通知、バナー、実際に鳴る電話)でスマートフォンがやり取りに加わるため、次に確認するまで待たずにすぐ気づけます。音声またはテキストで返信すると、ほかのツールの応答と同じように返事がエージェントに戻るので、エージェントはそのまま作業を続けます。コピー&ペーストしたり、ターミナルを開き直したりする必要はありません。また、Paigy のネイティブ iOS アプリと連携するため、スマートフォンがロックされていても、通常の電話と同じように着信します(CallKit)。ロック画面から内容を確認したり、返信したりできます。
対応クライアント
標準的な MCP サーバー(stdio、TypeScript)です。クライアント固有のコードは一切なく、Claude 以外のクライアント ID で生のプロトコルを使って動作確認済みです。
- Claude Code(このリポジトリには、Claude Code 用のプラグインとマーケットプレイスも含まれています)
- Codex CLI
- Gemini CLI
- 標準設定を使ったその他の MCP クライアント:Cline、Continue.dev、Zed、Cursor、Goose、mcphost。Ollama、LM Studio、llama.cpp を介したローカルモデル環境にも対応しています
(アプリとバックエンドは別のリポジトリにあります。)
インストール
どのターミナルでも、1 行で実行できます — エージェント(Claude Code、Codex、
Antigravity)を検出し、それぞれに Paigy を設定して、スマートフォンを一度だけペアリングします。実行前にすべてのコマンドを表示します。--dry-run を指定すると、実行計画を確認できます:
curl -fsSL https://paigy.ai/install | sh
手動で設定しますか?以下からクライアントを選んでください。
Homebrew(macOS および Linux):
brew tap paigy-ai/mcp https://github.com/paigy-ai/mcp
brew trust paigy-ai/mcp
brew install paigy
(brew trust を実行すると、現在の Homebrew で homebrew-core 以外の tap を使用するように設定できます。)
サーバーとコマンド(paigy-mcp、paigy-listen、paigy-mcp-onboard など)をインストールします。MCP クライアントで
paigy-mcp を指定し、paigy-mcp-onboard を一度実行してスマートフォンをペアリングします。
Claude Code(プラグイン — Claude で最も簡単な方法):
/plugin marketplace add paigy-ai/mcp
/plugin install paigy
自動的に接続されます。エージェントがペアリングされていない状態で初めて使用すると、ペアリングを促すメッセージが表示されます — /paigy-onboard を実行すると(ブラウザーが開き、承認できます)。
Claude Desktop(MCPB バンドル — ターミナルは不要です):
paigy.mcpb をダウンロードし、
Claude Desktop で Settings → Extensions を開いてファイルをドラッグするか、
ダブルクリックします。Claude に 「Paigy とペアリングして」 と頼むと、Claude がペアリングを実行し、
スマートフォンで承認するためのコードを表示します。
Smithery からも利用できます。
Codex CLI:
codex plugin marketplace add paigy-ai/mcp --ref main
codex plugin add paigy@paigy-ai
npx -y -p @paigy/mcp@latest paigy-mcp-onboard
プラグインは Paigy MCP サーバーを設定し、呼び出し、返信、コールバックに関するガイダンスを含みます。インストール後、新しい Codex セッションを開始してください。
Codex CLI — MCP の直接設定による代替方法:
codex mcp add paigy -- npx -y @paigy/mcp@latest
次に、Codex のスレッド ID をサーバーに渡して、Codex の各会話に固有の Paigy ID を割り当てます — Codex は固定の許可リストから MCP サーバーの環境を構築するため、渡すよう指定されていない変数はサーバーに届きません。~/.codex/config.toml の [mcp_servers.paigy] の下に次の行を追加してください(paigy-harness setup を実行すれば自動で追加されます):
env_vars = ["CODEX_THREAD_ID", "CODEX_SESSION_ID"]
(mcp add の -c オーバーライドとして渡さないでください。ブロックが書き込まれる前に設定されるため、Codex は「invalid transport」というエラーを出して不完全なテーブルを拒否し、何も書き込みません。)
Gemini CLI:
gemini mcp add -s user paigy npx -y @paigy/mcp@latest
その他の MCP クライアント(Cline、Continue.dev、Zed、Cursor、または標準の MCP JSON 設定を直接受け取る CLI) — 多くの GUI クライアントでは、MCP 設定画面で指定します(Cline:cline_mcp_settings.json、Continue:
~/.continue/config.json):
{
"mcpServers": {
"paigy": {
"command": "npx",
"args": ["-y", "@paigy/mcp@latest"]
}
}
}
次に、スマートフォンをペアリングします:
npx -y -p @paigy/mcp@latest paigy-mcp-onboard
Paigy に初めて接続すると、各セッションに固有の ID が自動的に割り当てられます —
エージェント名を設定したり、一致させたりする必要はありません。(クライアントが常に同じ名前付き ID で応答するようにしたい場合に限り、PAIGY_AGENT=<name> を設定してください。その場合は、同じ名前を指定してオンボーディングを実行します。)
スマートフォンで承認し、paigy.ai にサインインすると、
メッセージを受信できるようになります。
小型モデルやローカルモデルをご利用の場合の注意:ツールの説明では、 コンテキストに応じて、回答形式(確認、選択肢、自由記述)からエージェントが 選ぶよう求めています — Claude はこの指示に確実に従いますが、小型のローカルモデルでは 一貫性が低い場合があります。代替手段として、自由記述はいつでも使えます。
ユーザーの回答方法を選ぶ
notify_user では、最もすばやく答えられる形式で質問してください。判断を自由記述のままにしないでください。select(および options)を使って選択します。
| 必要なもの | 使用するもの | 返される回答 |
|---|---|---|
| はい/いいえ、または承認/拒否 | select:"confirm"(承認/拒否の場合は confirmStyle:"approve") | {kind:"confirm", approved} |
| 複数の候補から1つ選ぶ | options + select:"one" | {kind:"option", optionId} |
| 複数選ぶ | options + select:"many" | {kind:"multi", optionIds} |
| 一部を順位付け/並べ替える | options + select:"rank" | {kind:"ranked", optionIds} |
| 視覚的な選択 | html または image のプレビュー付き options | 上記のいずれか |
| 自由回答 | options なし | {kind:"text", text} |
confirm はバナーから直接回答できます(はい/いいえ、または承認/拒否のボタン)。その他の通知には、バナーのアクションとして選択肢を見る・音声で聞く・後で通知するが表示されます。
urgency は保証ではなく、リクエストです。ユーザーのアカウント設定によって、より低いレベルに制限される場合があります。低い順に4段階あります。"inbox"(通知音なしで受信箱に入る)、"push"(音のない控えめな通知)、"banner"(音付きの時間制限付きロック画面バナー)、"call"(電話を鳴らすため、ユーザーにその場ですぐ対応してもらう必要がある場合に限って使用してください)。
時間のかかる処理や、ユーザーを待たせる処理を始める場合は、完了時または行き詰まったときにテキストメッセージか電話で知らせられることを、さりげなく一度だけ伝えてください。すぐ終わる作業では提案せず、ユーザーが回答した後に繰り返し提案しないでください。
停滞した作業(自動、設定不要)
セッションが停止し、そのエージェントが所有する Paigy Goals が3日間進展しない場合、Stop フックが1日1回、停止を一度保留して該当項目を一覧表示します。これにより、エージェントは停止する前に各項目を更新、完了、またはキャンセルできます。このフックは @paigy/mcp(0.40.15 以降)の paigy-stalled を実行し、それ以外の場合は何も表示しません。停滞した項目がない場合、フックによって停止がすでに継続されている場合、その日にすでにリマインダーが送られている場合、またはエラーが発生した場合が該当します。スクリプトは1つで、各ハーネスのプラグインに同じフックが含まれています。
- Claude Code — プラグインによって接続される
hooks/hooks.json。設定は不要です。 - Codex CLI — Codex プラグインによって接続される
plugins/paigy/hooks/hooks.json。Codex がプラグインのフックを実行するのは、信頼した後のみです。Codex から求められたら、Paigy フックを確認して信頼してください。 - Claude 形式の Stop フックを備えたその他のハーネス —
npx -y -p @paigy/mcp@latest paigy-stalledを Stop コマンドとして登録します。フックの JSON(session_id、stop_hook_active)を標準入力から読み取り、{"decision":"block","reason":…}を出力します。
フックのないホストでも一覧を取得できます。check_replies(サーバーの指示により、すべてのエージェントが起動時と復帰後に呼び出します)は、stalled の下に一覧を返します。また、paigy-listen は、起こしたセッションに引き渡す作業にこの一覧を含めます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。