Hands CAPTCHAs, 2FA codes and approvals from your agent to your human with one tap.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a pending request (for example your agent got past the step another way). The link stops working and any unread code is wiped.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Cancel a pending request (for example your agent got past the step another way). The link stops working and any unread code is wiped.
| Argument | Type | Description |
|---|---|---|
| request_id* | string |
{
"type": "object",
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string"
}
}
}Poll a request: pending, done, approved, denied, code_ready, expired or cancelled. For 2fa_code, the code is returned exactly once (single read) and only within 10 minutes of the person sending it; then it is wiped.
| Argument | Type | Description |
|---|---|---|
| request_id* | string |
{
"type": "object",
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string"
}
}
}Hand one blocked step to your human: a CAPTCHA, a 2FA/OTP code, an approval, or a sign-in your agent should not do alone. Pro acts: sends your person a one-tap link (to notify_webhook, Slack/Discord-compatible, and/or notify_email), returns request_id, and later an HMAC-signed POST to callback_url when they answer. Free watch-only logs a would_request for the weekly stuck report and sends nothing. We never solve CAPTCHAs and never ask for passwords.
| Argument | Type | Description |
|---|---|---|
| url | string | The page the person should open, if any (https). |
| kind* | string | captcha (person solves it in their browser), 2fa_code (person pastes the code; you read it once), approve (yes/no), login (person signs in, then taps done). |
| step* | string | One plain sentence for the person, e.g. "Paste the 6-digit code GitHub just texted you". |
| agent | string | Your agent's name, shown to the person. |
| callback_url | string | Pro: public https URL we POST the answer to, signed with X-Relay-Signature = hex HMAC-SHA256(callback_secret, timestamp + "." + body). |
| notify_email | string | Pro: email address to send the one-tap link to. |
| notify_webhook | string | Pro: public https URL we POST {text, human_url} to (Slack/Discord incoming webhooks work). |
Show today's usage for your key or IP and the $9/month upgrade link. Free tier: 500 calls/day. Not metered.
No arguments.
{
"type": "object",
"properties": {}
}Plain-English summary of the last 7 days: where your agent got stuck (by kind and by site), requests sent or that would have been, how many your person answered and how fast. Read-only; sends nothing. Needs a free API key.
No arguments.
{
"type": "object",
"properties": {}
}| timeout_minutes | integer | How long the person has, 1-1440. Default 30. |
{
"type": "object",
"required": [
"kind",
"step"
],
"properties": {
"url": {
"type": "string",
"description": "The page the person should open, if any (https)."
},
"kind": {
"enum": [
"captcha",
"2fa_code",
"approve",
"login"
],
"type": "string",
"description": "captcha (person solves it in their browser), 2fa_code (person pastes the code; you read it once), approve (yes/no), login (person signs in, then taps done)."
},
"step": {
"type": "string",
"description": "One plain sentence for the person, e.g. \"Paste the 6-digit code GitHub just texted you\"."
},
"agent": {
"type": "string",
"description": "Your agent's name, shown to the person."
},
"callback_url": {
"type": "string",
"description": "Pro: public https URL we POST the answer to, signed with X-Relay-Signature = hex HMAC-SHA256(callback_secret, timestamp + \".\" + body)."
},
"notify_email": {
"type": "string",
"description": "Pro: email address to send the one-tap link to."
},
"notify_webhook": {
"type": "string",
"description": "Pro: public https URL we POST {text, human_url} to (Slack/Discord incoming webhooks work)."
},
"timeout_minutes": {
"type": "integer",
"description": "How long the person has, 1-1440. Default 30."
}
}
}