このページの内容

開発者ドキュメント / MCP

エージェントと話す場所をつなぐ。

MCPクライアントをPushyouに接続し、依頼、返信、実行結果を同じ会話で確認できます。

自分の接続を設定

01はじめる前に

招待されたPushyou内部テストアプリでアカウントと会話を作成してください。WebログインにはアプリでのQR承認が必要です。接続設定で会話を選び、実際の配信を確認できます。

OAuthでは承認時に会話と権限を選択し、別のAPIキーは必要ありません。プログラムキーは設定 → 接続管理で作る別の認証方法です。新しい会話の作成には全会話へのアクセスとconversations:writeが必要です。

02認証

Streamable HTTPサーバーです。OAuthではクライアントが承認画面を開きます。Pushyouで会話と権限を確認して承認してください。プログラムキーにも同じ範囲確認が適用されます。OAuthとBearerキーの設定は混在させないでください。

リモートMCPサーバー
https://pushyou.app/mcp
クライアントを選択
認証

~/.codex/config.tomlにサーバーを追加し、codex mcp login pushyouを実行します。OAuthを使うには既存のPushyouのBearerキー設定を削除してください。アプリやIDEのMCP認証ボタンも使えます。

MCP設定
[mcp_servers.pushyou]
url = "https://pushyou.app/mcp"

03実際のメッセージと返信で確認

最初にpushyou_get_accountとpushyou_list_conversationsを呼び出します。アカウント、権限、会話を確認してから送信します。YOUR_CONVERSATION_IDを実際の値に置き換えてください。例はREST本文ではなくMCPツールの引数です。

pushyou_get_account
{}
pushyou_list_conversations
{
  "limit": 20
}
pushyou_send_message
{
  "conversation_id": "YOUR_CONVERSATION_ID",
  "id": "docs-mcp-message-01",
  "text": "Pushyou connection verified.",
  "notify": true
}

Pushyouで返信した後、pushyou_get_eventsを一度呼び出し、eventsとnext_cursorを確認します。ツールの成功だけでは端末への通知配信は確認できません。MCPの接続だけでエージェントが常時動作するわけでもありません。

pushyou_get_events
{
  "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のツールエラーはクライアントに表示されます。構造化されたエラーと接続権限を確認してください。

400ID、必須フィールド、型、カーソル、リクエストサイズを確認してください。
401再認証するか、キーの期限切れ、再発行、失効を確認してください。
403操作権限、許可された会話、会話の一時停止状態を確認してください。
404リソースIDとベースURLを確認してください。/mcpはWebページではなくプロトコルのエンドポイントです。
409異なる内容で再利用したID、古いリビジョン、タスクの実行権、添付済みのファイルなど、競合の原因を確認します。外部処理を無条件に繰り返さないでください。
410会話を削除中、またはリソースが利用できません。現在の状態を確認してください。
413JSON本文やファイルを小さくし、アップロード上限を確認してください。
415対応している画像・動画形式と正しいファイルを使ってください。
416要求したバイト範囲がファイル内か確認してください。
429リクエスト制限では間隔を空けます。メディア容量不足では未使用ファイルを整理して再試行します。新規メッセージは会話ごとに毎分60件までです。
500一時的なエラーは同じIDで間隔を空けて再試行します。外部処理が実行済みの可能性があれば、再実行前に結果を確認してください。

自分の会話に接続しますか?

接続設定で会話と権限を選び、最初のメッセージと返信を確認できます。

自分の接続を設定