Best human-in-the-loop MCP servers (2026)
Two products document an MCP server whose job is to reach a person. A third used to. The protocol can also ask you inside the client.
Updated October 25, 2026
People searching for a human-in-the-loop MCP server usually want one of two things: a way for an agent to block on a person, or a way to stop an agent from doing something dangerous. Those are different products. This page is the first one, limited to what each project publishes. The primary comparison, refreshed from the same kinds of sources on 17 October 2026, is Invoke Human vs HumanLayer. It includes gotoHuman.
What I compared
For each option, as of 14 Oct 2026, the source is the public docs, not a demo and not a changelog rumor.
| How the agent connects | Where you answer | What you set up first | |
|---|---|---|---|
| Invoke Human | Remote streamable HTTP, OAuth 2.1 with dynamic client registration, scope handoffs | iPhone, iPad, and Mac app. A signed web page opens one handoff, not the list | The MCP URL in the client. No API key in the config |
| gotoHuman | Local stdio process, npx, GOTOHUMAN_API_KEY | Their Agent Inbox, plus the notifications they document | An API key and a review type in their app |
| HumanLayer today | Not an MCP setup on the current marketing site | Their coding-agent workspace, on web, desktop, or phone, as they describe it | Their install, if you want that product |
| MCP elicitation | Not a server. A message on the MCP connection you already have | Whatever UI that client built | A client that declares the elicitation capability |
Invoke Human
The server is https://invokehumantool.com/mcp. A call with no token returns 401 and protected-resource metadata. The authorization server publishes authorization-code flow, S256 PKCE, refresh, revocation, and dynamic client registration. The scope is handoffs. The remote MCP guide quotes the metadata fetched on October 14, 2026.
-
send_handoffsends a handoff to the signed-in person, or to other people. -
send_ui_handoffsends a structured form the person answers on a device or a signed link. -
send_html_handoffsends an HTML handoff the person answers by tapping or typing. -
validate_uichecks a UI document before it is sent. -
share_handoffinvites more people to a handoff, or forwards it. -
delegate_handoffforwards a handoff to new recipients. -
get_handoff_statusreads the type, title, and status of one handoff. -
get_handoff_resultfetches the answer, or the current status if it is not finished. -
wait_for_handoffwaits until the person finishes that handoff.
Questions, approvals, worksheets, HTML pages, and structured forms are all handoffs into one inbox on iPhone, iPad, and Mac, for Claude, ChatGPT, Cursor, Codex, and any custom client that can speak this OAuth. The account is an email or an Apple ID. share_handoff invites more people onto a handoff, and delegate_handoff forwards one you can reassign. This site does not publish seats or a review-template editor. Details are on the agent inbox page. Client setup is the guides.
gotoHuman
As of 14 Oct 2026, gotoHuman’s MCP docs and the README describe a local server:
{
"mcpServers": {
"gotoHuman": {
"command": "npx",
"args": ["-y", "@gotohuman/mcp-server"],
"env": {
"GOTOHUMAN_API_KEY": "your-api-key"
}
}
}
}
The README documents three tools. list-forms lists review types. get-form-schema takes a formId and returns the schema. request-human-review-with-form takes that formId, fieldData, and optional config, title, webhookUrl, metadata, assignToUsers, and a workflow object whose documented field is runId. It returns reviewId and reviewLink. The review shows up in their inbox. You create the review type and the API key at their app before the first call.
Their homepage also lists an n8n node, a Make integration, TypeScript and Python SDKs, a LangGraph example, and an HTTP API. It describes the product as human reviews for AI agents, with an Agent Inbox. It says they are GDPR-compliant, that data is stored on European servers, that data is encrypted in transit and at rest, and that the core services they use are certified under SOC 3 and ISO 27001. Those are their claims. This page has not audited them.
The practical difference: gotoHuman wants a review type designed ahead of time, a local process, and an API key. Invoke Human wants a URL and an OAuth login, and the agent can send a question or a generated form without a template you built earlier. If you live in n8n, their node is a reason to pick them that has nothing to do with MCP. The comparison is the current table.
HumanLayer
As of 14 Oct 2026, humanlayer.com describes “the multiplayer control plane for your software factory”: a coding-agent workspace with tasks, sessions, artifacts, a local daemon, and cloud workers. The page talks about web, desktop, and phone for that workspace. It does not, on that page, document an MCP server you add so an agent can ask a human.
The GitHub README, fetched on 17 October 2026, said the code there is pretty much all deprecated and pointed at humanlayer.com. The same fetch found hlyr/README.md in that tree, documenting npx humanlayer contact_human, humanlayer mcp serve, and humanlayer mcp claude_approvals, with HUMANLAYER_API_KEY, Slack or email channels, and a note that the default is their web UI if no channel is set. It also showed Claude Code’s --permission-prompt-tool pointed at mcp__approvals__request_permission. On 24 October 2026 the root README describes the current coding workspace and no longer contains that sentence, and hlyr/README.md returns 404. This page does not link the missing file.
So: if you followed an old blog post about HumanLayer’s MCP server, you are reading a tree that has moved on. If you want their current product, it is a coding workspace, and the HumanLayer comparison says so.
Elicitation, which is not a server
The elicitation spec lets a server ask the client for structured input in the middle of another MCP operation. The client renders it. The user can decline. Servers must not use it for sensitive information. Cursor documents it as supported.
Use it when you are already in the client and the server needs one more field. Do not expect it to collect a queue from five agents onto your phone. That expectation is the inbox.
How to choose
Choose Invoke Human when the agents are already Claude, ChatGPT, Cursor, Codex, or a custom MCP client, and you want one account and one device inbox for whatever those agents cannot finish. Start with the guides.
Choose gotoHuman when the human step is a review you can template, you want webhooks or n8n, and you are fine running their MCP process with an API key.
Choose HumanLayer’s current product when you want their coding-agent workspace. Do not choose it from this page if what you wanted was the old contact_human MCP server. As fetched on 17 Oct 2026, that README said the repo is pretty much all deprecated. On 24 Oct 2026 it describes the current humanlayer CLI.
Choose elicitation when the question is small, non-sensitive, and the person is already looking at that client.
Questions
Why isn't this a ranked list of the best MCP servers?
There is no public benchmark of human-in-the-loop MCP servers, and this page does not invent one. The useful comparison is where the human answers, how the agent connects, and what you have to configure before the first request.
Is MCP elicitation a server?
No. Elicitation is a client feature in the MCP spec. A server sends elicitation/create, and the client collects the input. Cursor documents support. Coverage in other clients is up to those clients.
Did HumanLayer shut down the idea of contacting a human?
As fetched on 17 Oct 2026, the humanlayer/humanlayer README said the code in that repo is pretty much all deprecated and pointed at humanlayer.com. The same fetch found the hlyr README documenting a local MCP server. On 24 Oct 2026 the README describes the current humanlayer CLI, and hlyr/README.md returns 404.