Human Handoff relay

Hands CAPTCHAs, 2FA codes and approvals from your agent to your human with one tap.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
64%
Naming quality
88%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsin request_human

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~688Tokens (tool definitions)
~825 BTypical response size
Moderate attention impact (0.54% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "relay": {
      "url": "https://relay.cloudforbots.com/mcp"
    }
  }
}

Remote endpoints

https://relay.cloudforbots.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡request_human(kind, step, url, agent, notify_webhook, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "captcha",
        "2fa_code",
        "approve",
        "login"
      ],
      "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\"."
    },
    "url": {
      "type": "string",
      "description": "The page the person should open, if any (https)."
    },
    "agent": {
      "type": "string",
      "description": "Your agent's name, shown to the person."
    },
    "notify_webhook": {
      "type": "string",
      "description": "Pro: public https URL we POST {text, human_url} to (Slack/Discord incoming webhooks work)."
    },
    "notify_email": {
      "type": "string",
      "description": "Pro: email address to send the one-tap link to."
    },
    "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)."
    },
    "timeout_minutes": {
      "type": "integer",
      "description": "How long the person has, 1-1440. Default 30."
    }
  },
  "required": [
    "kind",
    "step"
  ]
}
🟢check_request(request_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string"
    }
  },
  "required": [
    "request_id"
  ]
}
🔴cancel_request(request_id)

Cancel a pending request (for example your agent got past the step another way). The link stops working and any unread code is wiped.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string"
    }
  },
  "required": [
    "request_id"
  ]
}
🟢weekly_report

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.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢usage_and_upgrade

Show today's usage for your key or IP and the $9/month upgrade link. Free tier: 500 calls/day. Not metered.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools