mcpField
A
AgentLater

AgentLater

リモート
agentlater.io開発ツール01 日前に更新
リポジトリ公式サイト

AgentLater について

AgentLaterは、HTTPリクエストの予約や配信状況の追跡、後続セッションでの結果取得を行うホステッドMCPサーバーです。エージェント自体は実行せず、配信結果を記録します。

主な機能

  1. 01HTTPリクエストの予約・キュー登録
  2. 02リクエストの反復とジョブのポーリング
  3. 03Webhookの受信と受信箱への保存
  4. 04タスクの確認・キャンセル・再試行
  5. 05認証情報の保存とウェイクアップ

活用シーン

  1. 01Webhookを遅延実行する
  2. 02ジョブ完了までエンドポイントをポーリングする
  3. 03後続セッションで配信結果を確認する

MCP 対応

OAuth対応のStreamable HTTPを通じて、リモートMCPクライアントにHTTP予約、タスク管理、Webhook受信箱、認証情報、ウェイクアップのツールを提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.agentlater.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

AgentLater

AI エージェントが後で HTTP リクエストを実行し、その実行の有無を確認できます。

AgentLater は、HTTP リクエストのスケジュール設定、ジョブの完了待ち、後のセッションでの結果取得が必要なエージェント向けの、ホスト型 Model Context Protocol (MCP) サーバーです。リクエストを送信し、配信結果を記録します。エージェント自体を実行するものではありません。

エージェントでできること

必要なことツール
後で、またはバックグラウンドでリクエストを送信するschedule_http、queue_http(関連するリクエストを名前付きキューで順番に処理することもできます)
リクエストを繰り返す、またはジョブが完了するまでポーリングするcreate_cron、watch_http
Webhook を受信し、後のセッションで結果を読み取るcreate_hook、read_inbox、ack_inbox
作業を確認、停止、または再試行するget_task、list_tasks、cancel_task、redrive_task
認証情報を使用する、または結果の到着時にエージェントのワークフローを起動するset_secret、set_wake

引数、制限、配信のセマンティクスについては、ツールの完全なリファレンスをご覧ください。 wake URL はエージェントの実行を開始できるものに属している必要があります。受信トレイのイベントだけではチャットは再開されません。

MCP クライアントを接続する

リモート Streamable HTTP と MCP OAuth に対応したクライアントを使用してください。agentlater という名前でリモートサーバーまたはカスタムコネクターを追加し、次の URL を指定します。

https://gateway.agentlater.io/mcp

HTTP トランスポートを使用する mcpServers JSON 設定のクライアントでは、次の設定を使用します。

{
  "mcpServers": {
    "agentlater": {
      "type": "http",
      "url": "https://gateway.agentlater.io/mcp"
    }
  }
}

設定形式はクライアントによって異なります。この形式が受け付けられない場合は、クライアントのリモートサーバー設定を使用してください。 エンドポイントとトランスポートは server.json にも記載されています。

認証: クライアントで開いた OAuth フローを完了し、AgentLater の同意ページで Connect をクリックしてください。アカウントの作成や、設定への API キーの貼り付けは不要です。OAuth トークンはクライアントが管理します。承認された接続ごとに、個別のプロジェクトとトライアルが割り当てられます。接続後に create_project を一度呼び出してください(再度呼び出すと同じプロジェクトが返されます)。トライアルには、7 日間有効な 1,000 回分の配信試行が含まれています。残高の確認には get_project、さらに試行回数が必要な場合は get_payment_link を使用してください。

Claude Code では、ホスト型サーバーの設定とツールの使い方を説明するスキルが含まれたプラグインをインストールする方法もあります。

/plugin marketplace add thachp/agentlater
/plugin install agentlater@agentlater

インストールと移行については、プラグインの README をご覧ください。 自律型のインテグレーションでは、ゲートウェイで Agent Auth も使用できます。この ID とそのプロジェクトは、ホスト型 MCP 接続とは別です。

A2A

Agent2Agent プロトコル(バージョン 1.0、JSON-RPC)を使用するエージェントは、人間によるログインなしで Agent Auth を使って認証し、単発の配信をスケジュールしたり、その配信を読み取ったり、一覧表示したり、キャンセルしたりできます。Agent Card https://gateway.agentlater.io/.well-known/agent-card.json から始めてください。

# in a checkout, after npm ci
node apps/gateway/examples/a2a-client.mjs https://gateway-staging.agentlater.io

a2a-client.mjs は、Agent Card の読み取り、登録、プロジェクトの作成、配信のスケジュール設定、完了までのポーリングを行う、1 ファイルで完結したクライアントです。チェックアウト環境外で使用する場合は、このファイルをコピーして、npm install @a2a-js/[email protected] @auth/[email protected] を実行してください。キーは ~/.agentlater/(mode 0600)に保存されます。認証手順、ペイロードのスキーマ、タスクの状態、エラー、および A2A では提供されない機能(cron、watch、hook、secret、決済、ストリーミング、プッシュ通知、コールバック、レーン)については、A2A ドキュメントとPRODUCT.mdをご覧ください。

例:Webhook 経由でバックグラウンドジョブをトリガーする

よくある用途は、遅延後にアプリケーションのジョブエンドポイントを呼び出すことです。たとえば、エージェントのセッションを開いたままにせず、15 分後にエクスポートを生成できます。

接続したら、エージェントに次のように依頼します。

AgentLater プロジェクトを作成してから、15 分後にエクスポート用 Webhook に {"report": "daily-sales", "format": "csv"} を POST してください。保存済みの Webhook トークンを使用し、レスポンスを記録して、配信結果を受信箱に入れてください。

エージェントは {} を指定して create_project を呼び出します。エンドポイントでベアラートークンが必要な場合は、まず次の引数で set_secret を呼び出します。プレースホルダーをエンドポイントの実際のトークンに、ホストを独自のものに置き換えてください。

{
  "name": "WEBHOOK_TOKEN",
  "value": "<your-webhook-token>",
  "allowed_hosts": ["api.example.com"]
}

次に、以下の引数で schedule_http を呼び出します。例の URL を独自のパブリック HTTPS ジョブエンドポイントに置き換えてください。body は JSON エンコードされた文字列であり、オブジェクトではありません。

{
  "url": "https://api.example.com/jobs/export",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{secret:WEBHOOK_TOKEN}}"
  },
  "body": "{\"report\":\"daily-sales\",\"format\":\"csv\"}",
  "delay": "15m",
  "idempotency_key": "daily-sales-export-001",
  "capture": true,
  "callback_url": "inbox"
}

予定するジョブごとに新しい idempotency_key を使用してください。同じキーとリクエストを再利用すると、元のタスクが返されます。配信が複数回届く可能性があるため、エンドポイント側でも RunLater-Task-Id を使って配信を重複排除してください。認証を必要としないエンドポイントの場合は、シークレットの設定と Authorization ヘッダーを省略してください。

返された task_id を保存し、get_task({"task_id": "<returned task_id>"}) で確認してください。後のセッションで {} を指定して get_project を呼び出し、inbox_unread が 0 より大きい場合は {} を指定して read_inbox を呼び出してください。イベントを処理したら、ack_inbox({"up_to": 1}) を呼び出し、1 を処理した最後の seq に置き換えてください。これらは MCP のツール名と引数オブジェクトであり、シェルコマンドではありません。受信箱で配信レポートを受け取るために、パブリックなコールバック URL は必要ありません。エンドポイントが 202 Accepted を返した場合、ジョブを受け付けたことを示します。エクスポートの完了も待つ必要がある場合は、ステータス URL に対して watch_http を使用してください。

配信は少なくとも 1 回行われます。succeeded は、宛先が HTTP 2xx を返したことを意味します。宛先にはパブリック HTTPS URL を指定する必要があり、localhost やプライベート IP アドレスは指定できません。認証が必要なリクエストでは、認証情報を set_secret で保存し、リクエストに直接貼り付ける代わりに、ヘッダー内で {{secret:NAME}} を使用してください。

制限とトラブルシューティング

  • スケジュールは最大 7 日先まで設定できます。Cron 式は UTC を使用し、実行頻度は最大 1 時間に 1 回です。監視は 5 分から 24 時間ごとにポーリングします。キャプチャされたレスポンスでは、タスク完了後 7 日間、本文の先頭 16 KiB が保持されます。
  • project_not_found:スケジュールを設定する前に、現在の接続で create_project を呼び出してください。
  • budget_exhausted または trial_expired:get_project で状況を確認し、追加の試行には get_payment_link を使用してください。配信の試行、ポーリング、URL コールバックの試行ごとに予算を消費します。受信箱への配信は無料です。
  • 接続またはサインインに失敗する:URL の末尾が /mcp であり、クライアントが Streamable HTTP と OAuth の両方に対応していることを確認してください。ローカルの stdio サーバーのみに対応するクライアントには、サポート対象のブリッジが必要です。Agent Auth ブリッジの設定を参照してください。
  • まだ結果がない:返された task_id を使って get_task を確認し、ステータスと試行履歴を調べてください。タスクをスケジュールしたのと同じ接続で受信箱を読み取ってください。新しい接続には別のプロジェクトが割り当てられます。

ドキュメントと互換性

AgentLater は以前、RunLater という名称でした。既存の runlater プラグイン接続は、それぞれ独自のプロジェクトを保持します。agentlater プラグインをインストールすると、既存の作業が移行されるのではなく、別の接続が作成されます。互換性のため、一部の内部パッケージ名や配信ヘッダー(RunLater-Task-Id など)には旧名称が残っています。

仕様書は、PRODUCT.md(機能)、ARCHITECTURE.md (構築方法)、DESIGN.md(エージェントや人にとっての使用感)です。再構築前の実装は切り替え時に削除されました。この変更より前の Git 履歴に残っています。

構成

パス内容スタック
apps/api非公開タスク API:台帳、スケジューリング、配信Rust · workers-rs
apps/gatewayエージェント向けの公開エントリーポイント:Agent Auth、機能、MCP、A2ATypeScript Worker
apps/webagentlater.io のランディングページ、ドキュメント、決済ページNext.js · OpenNext
apps/receiverジャーニーと A2A の実行結果を配信する、ステージング専用のフィクスチャTypeScript Worker
crates/coreタスクドメイン。Cloudflare 依存なしRust
crates/egress宛先ポリシーとリクエスト署名Rust
packages/contracts機能定義と、gateway と API 間の OpenAPI コントラクトTypeScript · OpenAPI 3.1
packages/tsconfig共有 TypeScript 設定
plugins/agentlaterClaude Code プラグイン:ホスト型 MCP サーバーと agentlater スキルMarkdown · JSON
plugins/runlater旧プラグイン。既存のインストール環境で引き続き動作するよう、非推奨として凍結されていますMarkdown · JSON

すべて Cloudflare Workers にデプロイされ、各アプリの wrangler.jsonc に staging と production 環境があります(apps/receiver は staging のみ)。詳しくはdocs/DEPLOY.mdをご覧ください。

開発

Rust(rust-toolchain.toml で固定)、Node 22 以降、および cargo install worker-build --version 0.8.7 --locked が必要です。

npm install
cargo test && npm run typecheck && npm test

CI で実行するすべてのチェックを、1 つのコマンドで実行できます(-- --fast を指定すると e2e スイートをスキップします)。

npm run verify

コードで守るルールと、それを適用するリンターについては、CODING_STANDARDS.mdをご覧ください。

npm run dev -w @runlater/gateway
npm run dev -w @runlater/web

ライセンス

コードは MIT ライセンスです。agentlater.io のホスト型サービスの利用には、その利用規約およびプライバシーポリシーが適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。