開発者ドキュメント / MCP
エージェントと話す場所をつなぐ。
MCPクライアントをPushyouに接続し、依頼、返信、実行結果を同じ会話で確認できます。
自分の接続を設定01はじめる前に
招待されたPushyou内部テストアプリでアカウントと会話を作成してください。WebログインにはアプリでのQR承認が必要です。接続設定で会話を選び、実際の配信を確認できます。
OAuthでは承認時に会話と権限を選択し、別のAPIキーは必要ありません。プログラムキーは設定 → 接続管理で作る別の認証方法です。新しい会話の作成には全会話へのアクセスとconversations:writeが必要です。
02認証
Streamable HTTPサーバーです。OAuthではクライアントが承認画面を開きます。Pushyouで会話と権限を確認して承認してください。プログラムキーにも同じ範囲確認が適用されます。OAuthとBearerキーの設定は混在させないでください。
https://pushyou.app/mcp~/.codex/config.tomlにサーバーを追加し、codex mcp login pushyouを実行します。OAuthを使うには既存のPushyouのBearerキー設定を削除してください。アプリやIDEのMCP認証ボタンも使えます。
[mcp_servers.pushyou]
url = "https://pushyou.app/mcp"03実際のメッセージと返信で確認
最初にpushyou_get_accountとpushyou_list_conversationsを呼び出します。アカウント、権限、会話を確認してから送信します。YOUR_CONVERSATION_IDを実際の値に置き換えてください。例はREST本文ではなくMCPツールの引数です。
{}{
"limit": 20
}{
"conversation_id": "YOUR_CONVERSATION_ID",
"id": "docs-mcp-message-01",
"text": "Pushyou connection verified.",
"notify": true
}Pushyouで返信した後、pushyou_get_eventsを一度呼び出し、eventsとnext_cursorを確認します。ツールの成功だけでは端末への通知配信は確認できません。MCPの接続だけでエージェントが常時動作するわけでもありません。
{
"conversation_id": "YOUR_CONVERSATION_ID",
"after": 0
}MCPの一覧ツールはlimit(1〜50、初期値20)とbeforeを、イベントはafterを使います。メッセージ一覧はカードの要約を返し、pushyou_get_messageで全文を取得できます。写真の原本や大きいファイルのバイト範囲にはpushyou_get_mediaを使います。
04返信と業務の実行
アプリで返信してからイベントを取得します。通常の返信や操作を実際に処理した後、結果の保存、ACK、next_cursorの永続保存の順に進めます。ACKはイベント削除や排他的な実行権ではありません。通常の自動応答は会話ごとに1つのプログラムにするか、独自に調整してください。
タスクは承認と実行結果をまとめて追跡します。所有者の承認後、ワーカーはtask_protocol=1でイベントを取得し、実行トークンを永続保存してから試行を取得します。heartbeatで権利を維持し、実際の結果を保存してcompleteを送ります。完了時にイベントもACKされます。単独のACKでは未完了タスクを終了できません。
タスクのフィールド・実行権・結果仕様(英語) ↗Response receiver
継続的な返信にはRESTプログラムキーでNode 22以降のレシーバーを実行します。送信とACKの前に結果を保存します。プロセスの継続実行が必要で、PCのスリープ中は動きません。Codexモードは専用セッションを開始し、既存のチャットには接続しません。
Webhooks
署名付きの応答Webhookも利用できます。モバイルアプリの応答Webhook設定で接続してください。元の本文の署名を検証し、配信IDで重複を除きます。HTTP 2xxは受信確認であり、タスク完了ではありません。署名と再試行の仕様は業務ガイドにあります。
05ファイルと会話の画面
MCPではpushyou_prepare_media_uploadにmedia_id、filename、content_type、バイト数、SHA-256を渡します。返されたupload.urlと専用ヘッダーをそのまま使い、5分以内に元のバイト列をPOSTしてからattachment_idsを送信します。RESTにも同じ準備APIがあります。アップロード権限をアカウントキーやMCP OAuthトークンに置き換えないでください。
pushyou_set_viewにreport、actions、htmlカードを渡して会話の画面を公開します。viewをnullにすると削除できます。画面は所有する会話から開きます。HTMLは外部ネットワーク、アプリの認証情報、ブラウザーの保存領域にアクセスできません。宣言した操作は同じ会話のイベントになります。
Card / Field
Card =
{ type: "report", title: string, items: { title: string, body?: string, label?: string }[] }
| { type: "actions", title: string, body?: string, actions: { id: ID, label: string }[] }
| { type: "html", title: string, html: string, height?: integer, actions?: { id: ID, label: string }[] }
Field = { id: ID, label: string, type: "text" | "multiline" | "number" | "date" | "select" | "checkbox", required?: boolean, options?: string[], min?: number, max?: number }06ツール一覧
サーバーが対応するツールの一覧です。認証済みのtools/listは接続で許可されたツールと最新の入力スキーマのみを返します。会話へのアクセス範囲は呼び出すたびに確認されます。
pushyou_get_account読み取り接続アカウントを確認
この接続のアカウントと権限を確認します。
pushyou_list_conversations読み取り会話の一覧
自分の会話をページごとに取得します。
pushyou_create_conversation書き込み会話を作成
名前とIDで会話を作成します。すべての会話で全機能を使えます。
pushyou_get_conversation読み取り会話を取得
会話の名前・説明・受信状態を確認します。
pushyou_update_conversation書き込み会話を更新
名前・説明を変更し、受信を一時停止・再開します。
pushyou_send_message書き込みメッセージを送信
テキスト・カード・アップロード済みの添付を送り、通知を指定できます。
pushyou_list_messages読み取り会話を読む
受信メッセージとアプリの返信を取得します。カードは要約して返します。
pushyou_get_message読み取りメッセージを取得
メッセージ1件の全内容とカードを取得します。
pushyou_get_media読み取りメディア原本を取得
許可された会話の写真原本を読みます。動画や大きなファイルは範囲ごとに取得します。
pushyou_prepare_media_upload書き込みメディアのアップロードを準備
この接続の権限で写真・動画1件の一時アップロードを準備します。送信後にメッセージへ添付してください。
pushyou_get_events読み取りユーザーの応答を取得
最後の番号以降の返信と送信済みボタン操作を取得します。
pushyou_ack_event書き込み応答の処理を確認
実際の処理を終えた応答を処理済みにします。
pushyou_get_view読み取り会話ビューを取得
会話に公開されたビュー全体を取得します。
pushyou_set_view書き込み会話ビューを公開
レポート・ボタン・HTMLビューを会話に公開・置換・削除します。
pushyou_list_history読み取り履歴を取得
アカウントの受信・操作・保存の履歴をページごとに取得します。
pushyou_create_task書き込みタスクの承認を依頼
承認と実行結果をひとつのタスクで追跡します。
pushyou_get_task読み取りタスクの状態を取得
現在の状態・試行・入力・結果を確認します。
pushyou_claim_task書き込みタスクの実行権を取得
承認済みの試行の実行権を取得したプログラムだけが実行します。
pushyou_heartbeat_task書き込み実行権を維持
現在の実行権の期限を更新します。
pushyou_complete_task書き込みタスクの結果を報告
実際の結果を記録し、対応するイベントを処理済みにします。
pushyou_list_actions読み取り会話のアクション一覧
会話に登録された実行フォームを取得します。
pushyou_set_action書き込み会話のアクションを公開
ユーザーが送信する会話のフォームを公開します。
pushyou_get_task_versions読み取り依頼のバージョンを読む
同じ依頼の以前のバージョンを確認します。
pushyou_revise_task書き込み依頼の修正版を送る
所有者が承認できるよう修正した依頼を送ります。
07トラブルシューティング
RESTエラーは2xx以外のステータスと{"error": "…"}を返します。MCPのツールエラーはクライアントに表示されます。構造化されたエラーと接続権限を確認してください。
400 | ID、必須フィールド、型、カーソル、リクエストサイズを確認してください。 |
|---|---|
401 | 再認証するか、キーの期限切れ、再発行、失効を確認してください。 |
403 | 操作権限、許可された会話、会話の一時停止状態を確認してください。 |
404 | リソースIDとベースURLを確認してください。/mcpはWebページではなくプロトコルのエンドポイントです。 |
409 | 異なる内容で再利用したID、古いリビジョン、タスクの実行権、添付済みのファイルなど、競合の原因を確認します。外部処理を無条件に繰り返さないでください。 |
410 | 会話を削除中、またはリソースが利用できません。現在の状態を確認してください。 |
413 | JSON本文やファイルを小さくし、アップロード上限を確認してください。 |
415 | 対応している画像・動画形式と正しいファイルを使ってください。 |
416 | 要求したバイト範囲がファイル内か確認してください。 |
429 | リクエスト制限では間隔を空けます。メディア容量不足では未使用ファイルを整理して再試行します。新規メッセージは会話ごとに毎分60件までです。 |
500 | 一時的なエラーは同じIDで間隔を空けて再試行します。外部処理が実行済みの可能性があれば、再実行前に結果を確認してください。 |