your first approval in five minutes.

redphonr pauses your agent and asks a person when a decision is needed. this guide takes you from an api key to a working approval, over plain http or mcp.

How redphonr works: an agent pauses before deleting 3,200 users, redphonr reaches a person on Slack, Telegram, email, text or a phone call, they approve or it escalates to the next person on call, and the answer goes back to the agent and is logged.

new here? the whole flow in 43 seconds. more on the home page.

1

get an api key

Open api keys in your dashboard, create a key and copy it. It acts on your behalf, so keep it secret.

Keys look like rp_live_… and are shown once. Keep yours in an environment variable, never in source code.

2

send an approval request

redphonr is a plain http api, so there is no sdk to install. Send a POST /api/redphonr/requests with your key in the header, then check the request until someone answers.

import httpx, os, time

API_KEY = os.environ["REDPHONR_API_KEY"]
BASE    = "https://cronecho-production.up.railway.app"
headers = {"Authorization": f"Bearer {API_KEY}"}

# 1. create an approval request
resp = httpx.post(f"{BASE}/api/redphonr/requests", headers=headers, json={
    "type":        "approval",
    "title":       "Transfer $4,200 to vendor ACME Corp",
    "description": "Invoice #INV-2024-0892. Due today. Approve to proceed.",
})
req_id = resp.json()["id"]

# 2. check back until a human answers
while True:
    status = httpx.get(f"{BASE}/api/redphonr/requests/{req_id}", headers=headers).json()["status"]
    if status == "approved":
        print("approved, sending the transfer")
        break
    if status == "denied":
        print("denied, stopping")
        break
    time.sleep(10)
3

choose how you're reached

By default redphonr emails the address on your account. Add phone calls, sms, slack, telegram or discord in reach me, and set the order they are tried in.

On a phone call, press 1 to approve, 2 to deny, 3 to hear the details again, or 9 to leave a voice note.

4

use it from an mcp agent

If your agent speaks mcp (claude, cursor and most frameworks do), add the redphonr server and your agent gets the tools directly. No polling code of your own.

claude code
claude mcp add --transport http redphonr https://mcp.redphonr.com/mcp \
  --header "Authorization: Bearer rp_live_..."

The agent calls a tool before the risky step, then checks back for your answer:

what your agent does
# your agent calls the tool before the risky step
request_approval(
    title="Delete 12,000 stale user records",
    description="Inactive for 2+ years. Restorable from last night's backup.",
)
# -> { "request_id": "req_..." }

# then checks back until you answer
check_request_status(request_id="req_...")
# -> { "status": "approved" }

Setup for cursor, windsurf, continue and other clients is on the mcp server page.

5

request types

Five ways an agent can ask a person for help. Each one is a request type over http and a tool over mcp.

  • approve or deny

    A yes or no before an action that is hard to undo.

    "approval"request_approval

  • pick an option

    You choose between the options the agent offers.

    "ambiguity"ask_human

  • check the output

    You review work before it is sent or published.

    "verification"verify_output

  • fill in details

    You supply values the agent can't know, like a password.

    "input"collect_input

  • take over

    The agent hands the task back to you with full context.

    "handoff"handoff

stuck?

Open the support chat from any dashboard page, or email hello@redphonr.com.

go to dashboard