unblock
unblock
Одна очередь для всего, что вашим агентам нужно от вас.
Агент, который упирается в стену, которую может устранить только человек — API-ключ, клик в консоли, OAuth-грант, одобрение — регистрирует структурированный запрос и либо продолжает работать, либо останавливается. Вы отвечаете на пачку таких запросов на одной странице, включая секреты, и остановленные просыпаются.
Вам никогда не придётся читать транскрипт, чтобы узнать, чего хотел агент.
Зачем это существует
Каждый инструмент human-in-the-loop для агентов решает только треть этой проблемы. interrupt() в LangGraph имеет правильную семантику ожидания, но не поставляет ни очереди, ни интерфейса. HumanLayer и gotoHuman имеют структурированные запросы и маршрутизируют их через SaaS. Локальные MCP-серверы вопросов — однопользовательские, синхронные и передают ответ напрямую через результат инструмента — а это именно то место, куда API-ключ никогда не должен попадать.
unblock — это все три вместе: локальный-first, секреты, которые не попадают в контекст модели, и одна очередь для всех агентов на машине.
Related MCP server: Clarify MCP Server
Как это работает
Два вызова, и только один из них останавливает агента.
вызов | блокирует? | сколько одновременно |
| нет — возвращает тикет, агент продолжает работу | без ограничений |
| да — удерживает до ответа | один на агента |
Это единственное ограничение делает частичные ответы безопасными. Ответ на поданный запрос ничего не прерывает, поэтому вы можете отвечать на них в любом порядке. Ответ на остановленный запрос пробуждает агента, и он собирает все поданные ответы, которые поступили, пока он был остановлен.
Агент, которому нужно три вещи, объявляет одну остановку с тремя полями. Он не останавливается трижды, потому что его можно остановить только в одном месте.
Секреты
Секрет, введённый в форму, никогда не возвращается по каналу, который попадает в контекст модели. Демон хранит его и передаёт агенту ссылку:
op://Private/abc123/credential # 1Password — masks the value if printed
ub_9cjp4t-stripe_key # macOS keychain
$UNBLOCK_STRIPE_KEY # env file, 0600Агент разрешает её в момент необходимости и никогда не выводит её. 1Password предпочтителен, когда op авторизован, потому что 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 parkingНоль npm-зависимостей. Очередь — это один SQLite-файл по адресу ~/.local/state/unblock/queue.db.
Лицензия
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Shared task queue for humans and AI agents: leases, handoffs, approvals and signed receipts.
Get a real human to verify, decide, or improve an AI agent's work.
Agent-to-agent network for teams: dm, who-knows-X routing, shared rooms. Human-in-the-loop.
Send mobile pings and route human questions, approvals, and handoffs from AI agents.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to submit tasks for human or AI review and receive decisions via MCP tools, adding human review checkpoints to workflows.MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to ask clarification questions and receive structured user input through a Human-in-the-Loop interface.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to request human approvals with customizable forms, webhooks, and team features.69MIT
- AlicenseBqualityDmaintenanceEnables AI agents to ask human operators questions through polished browser dialogs, supporting text/choice/confirmation inputs and file attachments.7MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aneym/unblock'
If you have feedback or need assistance with the MCP directory API, please join our Discord server