Invoke Human

Human-in-the-loop MCP

One remote server. Sign in with OAuth. Approvals, questions, and forms from every agent land in one inbox.

Updated October 17, 2026

  1. Add Claude. In Claude, add a custom connector for https://invokehumantool.com/mcp and choose Register automatically. Or run claude mcp add --transport http invoke-human https://invokehumantool.com/mcp for Claude Code.
  2. Add ChatGPT. In ChatGPT on the web, open Plugins, add a custom MCP server, paste https://invokehumantool.com/mcp, and choose OAuth. Leave the client id empty.
  3. Add Cursor. Put a url field of https://invokehumantool.com/mcp under invoke-human in mcp.json. Do not add an API key or a static OAuth client id.
  4. Add Codex. Point Codex at the same URL as a streamable HTTP server, then run codex mcp login invoke-human. Raise tool_timeout_sec above the 60 second default if a person needs longer than a minute.

The server is streamable HTTP at https://invokehumantool.com/mcp. The product is in beta. Pricing says there is no published price. Each section below is the short install. The linked guide is the one to follow when a step fails.

Claude

Claude on the web, Claude Desktop, Cowork, and the mobile apps use a custom connector. Claude Code is a separate command. Same URL either way. The Claude guide has the Team and Enterprise path, where an Owner adds the connector first.

Custom connector: Customize, then Connectors, then Add custom connector. Name it Invoke Human. Paste the URL. On the authentication step, sign in, and under OAuth client choose Register automatically. Do not choose “No sign in.”

Claude Code:

claude mcp add --transport http invoke-human https://invokehumantool.com/mcp

Add --scope user for every project on that machine, or --scope project to write .mcp.json. A hand-written file needs "type": "http" next to the URL. Claude Code treats a url without type as a broken stdio server.

ChatGPT

ChatGPT on the web does not read a local Codex config. The ChatGPT guide is the full path, including what to do when the plus button is missing.

  1. Open ChatGPT plugins.
  2. Choose the plus button, then Add custom MCP server.
  3. Name it Invoke Human. Paste https://invokehumantool.com/mcp. Do not pick Tunnel.
  4. Set authentication to OAuth. Leave client id and client secret empty so registration can happen.
  5. Create the plugin, install it, then mention it with @ in a conversation.

The confirmation ChatGPT shows before a write is ChatGPT asking if the tool may run. The handoff is the question that then shows up in the inbox.

Cursor

Cursor’s streamable HTTP config is one field. The Cursor guide covers the file locations and what to delete if a snippet put a bearer token in headers.

{
  "mcpServers": {
    "invoke-human": {
      "url": "https://invokehumantool.com/mcp"
    }
  }
}

Use .cursor/mcp.json for one project or ~/.cursor/mcp.json for every project. Do not add an auth object. Cursor uses that block for servers that will not register a client dynamically. This server publishes a registration endpoint.

You can also use Add to Cursor. Reload the window if the server does not appear, then finish the OAuth prompt.

Codex

Codex, the ChatGPT desktop app, and the Codex IDE extension share ~/.codex/config.toml. The Codex guide is the full version, including the IDE and desktop clicks.

[mcp_servers.invoke-human]
url = "https://invokehumantool.com/mcp"
tool_timeout_sec = 600

600 is an example of raising the timeout, not a limit of Invoke Human. Codex documents a default tool_timeout_sec of 60. A person filling a form often takes longer than a minute, and the tool call is what is waiting.

The short command, also shown on the home page:

codex mcp add invoke-human --url https://invokehumantool.com/mcp

Then sign in:

codex mcp login invoke-human

Do not paste a bearer token into the file. If login tries the wrong registration method, the guide shows --oauth-client-registration dcr.

Any other MCP client

If the client can call a remote MCP server with OAuth 2.1, the URL is the same. A call with no token returns 401 and the protected-resource metadata, which is how the client discovers sign-in. The remote MCP guide quotes that metadata. Discovery:

What the agent calls

Parameter names come from the tool list after OAuth. This page does not invent a schema. You answer on iPhone, iPad, or Mac. TestFlight is on the home page.

Use cases

The comparison is how this server differs from HumanLayer and from gotoHuman, limited to what those projects publish.

Questions

Do I put an API key in the config?

No. A call without a bearer token gets 401 and the protected-resource metadata. The client then runs OAuth. The authorization server publishes dynamic client registration, PKCE S256, and the scope handoffs.

Which tools can the agent call?

send_handoff, send_ui_handoff, send_html_handoff, validate_ui, share_handoff, delegate_handoff, get_handoff_status, get_handoff_result, and wait_for_handoff. send_handoff sends a handoff to the signed-in person, or to other people. send_ui_handoff sends a structured form the person answers on a device or a signed link. send_html_handoff sends an HTML handoff the person answers by tapping or typing. validate_ui checks a UI document before it is sent. share_handoff invites more people to a handoff, or forwards it. delegate_handoff forwards a handoff to new recipients. get_handoff_status reads the type, title, and status of one handoff. get_handoff_result fetches the answer, or the current status if it is not finished. wait_for_handoff waits until the person finishes that handoff.

Where do I answer?

In the iPhone, iPad, or Mac app. iPhone and iPad need iOS 17 or later, and the iOS app is on TestFlight. A signed web page can answer the one handoff it was opened for. It is not a second inbox.