unblock
unblock
エージェントがあなたから必要とするすべてを扱う単一のキュー。
人間にしか越えられない壁 — APIキー、コンソールでのクリック、OAuthの許可、承認 — にぶつかったエージェントは、構造化された依頼を登録し、作業を続けるかパークします。1つのページで、シークレットも含めてそれらをまとめて回答できます。すると、パークされていたエージェントが目を覚まします。
エージェントが何を望んでいたのかを知るために、トランスクリプトを読む必要はもうありません。
なぜ存在するのか
エージェント向けのヒューマン・イン・ザ・ループ・ツールは、どれもこの問題の3分の1しか解決していません。LangGraphのinterrupt()は正しい待機セマンティクスを持っていますが、キューもUIも付属していません。HumanLayerとgotoHumanは構造化されたリクエストを持ち、SaaS経由でルーティングします。ローカルのMCP質問サーバーはシングルエージェントで同期型であり、回答をツール結果としてそのまま返します — これはまさにAPIキーが決して渡ってはいけない場所です。
unblockはこの3つを兼ね備えています:ローカルファースト、モデルのコンテキストに入らないシークレット、そしてマシン上のすべてのエージェントにわたる単一のキュー。
Related MCP server: human-loop-mcp
仕組み
2つの呼び出しがありますが、エージェントを停止させるのはそのうちの1つだけです。
呼び出し | ブロックする? | 同時実行数 |
| いいえ — チケットを返し、エージェントは作業を続ける | 無制限 |
| はい — 回答されるまで待機する | エージェントごとに1つ |
このたった一つの制約が、部分的な回答を安全にしているのです。登録済みの依頼に回答しても何も中断されないため、どの順序でも回答できます。パークされた依頼に回答するとエージェントが目を覚まし、その間に届いた登録済みの回答をすべて収集します。
3つのものを必要とするエージェントは、3つのフィールドを持つ1つのパークを宣言します。停止できるのは1か所だけなので、3回パークすることはありません。
シークレット
フォームに入力されたシークレットは、モデルのコンテキストに入るチャネルを通って戻ることは決してありません。デーモンはそれを保存し、エージェントに参照を渡します:
op://Private/abc123/credential # 1Password — masks the value if printed
ub_9cjp4t-stripe_key # macOS keychain
$UNBLOCK_STRIPE_KEY # env file, 0600エージェントは必要な時点でそれを解決し、決して出力しません。opにサインインしている場合は1Passwordが推奨されます。op runは、サブプロセスが値をエコーしても値をマスクするためです — その保護機能を持つ唯一のバックエンドです。
インストール
npm install -g unblockd # daemon, MCP server, CLI (binary: unblock)
unblock daemon start次に、エージェントにそれを向けます。Claude Codeの場合:
claude mcp add unblock -- npx unblockd mcpそして、エージェントがいつパークすべきかを知るためにスキルをインストールします:
npx skills add aneym/unblock --skill unblock -gherdr
herdr plugin install aneym/unblock --yesalt+p uでunblockモードが開きます:アクティブなプロファイルにスコープされた、キュー全体を表示する拡大ペインで、その場で回答できます。回答すると、ペイン内のエージェントが目を覚まします。
このプラグインは、herdrがブロックされていると検出したものの、依頼を宣言しなかったエージェントも一覧表示します — 宣言済みのエージェントの下に表示されるため、黙って停止している場合も確認できます。
スマートフォンからの回答
unblock linkは一時的なURLを発行します。送信すると失効し、タイマーでも期限切れになるため、ポケットの中の古いタブが翌日もまだ生きているということはありません。自分のtailnet経由で配信するか、tailnetがない場合はクイックトンネルを使います:
tailscale serve --https=8799 127.0.0.1:4488 # tailnet only
cloudflared tunnel --url http://127.0.0.1:4488 # no account構成
src/schema.js ask + field validation, the profile rule
src/store.js SQLite queue, one-park-per-agent, drafts, links
src/secrets.js 1Password -> keychain -> env file
src/daemon.js HTTP API, the answer page, SSE
src/mcp.js MCP server: file / park / check / cancel
web/ the answer page
plugin/ herdr plugin
skills/unblock/ the discipline agents follow before parkingnpm依存関係はゼロです。キューは~/.local/state/unblock/queue.dbにある単一のSQLiteファイルです。
ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Give any AI agent a way to ask a person — for approval, a decision, an answer or a review.
Shared task queue for humans and AI agents: leases, handoffs, approvals and signed receipts.
Contact point for AI agents: describe a missing capability or need; a human operator helps.
Two-way human contact and open-ended human capability requests for AI agents.
381
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to ask clarification questions and receive structured user input through a Human-in-the-Loop interface.1MIT
- AlicenseBqualityDmaintenanceEnables AI agents to ask human operators questions through polished browser dialogs, supporting text/choice/confirmation inputs and file attachments.7MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to request human decisions for subjective or high-stakes choices through MCP tools like ask_human and provision_api_key.-
- AlicenseNot gradedqualityCmaintenanceProvides durable queues, human-in-the-loop approval gates, and an audit trail for AI agent fleets, enabling blocking approval requests and reliable work handoffs.6 npmMIT