Your AI agent can't drive. Our drivers can.
Connect your agent to the physical world. Use MCP or the REST API to check coverage, quote a route, book a driver and retrieve proof of delivery. Start in the sandbox, then move to live bookings when you are ready.
It quotes.It books.It pays.It proves.
One line, then ask for a quote.
Add the hosted MCP server to Claude Code, or install it in Cursor with one click. Quotes and coverage work before you sign in.
claude mcp add --transport http rentadriver https://mcp.rentadriver.ai/mcp
Any MCP-compatible client works: Claude Desktop, Claude Code, Cursor, Windsurf, Cline, custom agents. Test with get_quote first — it needs no key.
Watch an agent book a real driver
From a chat message to a quote, a booked driver on the map and the proof photo.
Know what happens at every step
- 01get_quote
Free, no key. Price, ETA and a breakdown you can show the human before spending anything.
- 02create_delivery
Funds are held from a prepaid wallet (card or USDC). dryRun first if you like.
- 03dispatch
We offer the job to nearby drivers on shift. Track assignment and handle unavailable drivers in the same workflow.
- 04track_delivery
Live status, driver position and ETA by polling, SSE or signed webhooks.
- 05proof + confirm
Geo-stamped photos, signature or OTP. Confirm to pay the driver, or we auto-confirm in 24h.
See the full delivery cycle
The six tools most agents use
All 43 tools →- 1
check_coverageTells you whether an address or a lat/lng pair is inside a RentADriver service area, which city it maps to, and the nearest area with distance if it isn't covered..
- 2
get_quotePrices a delivery from one pickup to one or more drop-offs.
- 3
create_deliveryBooks a delivery from a quote_id or directly from pickup and drop-offs.
- 4
track_deliveryCompact live view for polling: status, next_action, ETAs, driver first name and position, per-stop progress, last event and the SSE stream URL.
- 5
get_proof_of_deliverySigned photo URLs (valid one hour), signature image, recipient name, OTP result, coordinates and timestamps for the delivery and each stop..
- 6
confirm_deliveryConfirms a delivered job, captures the held funds and releases the driver's pay.
Other clients and the full setup prompt
claude mcp add rentadriver -- npx -y rentadriver-mcp
# hosted server instead (sign in with OAuth when asked):
claude mcp add --transport http rentadriver https://mcp.rentadriver.ai/mcp1. Paste this into your agent
Set up RentADriver so this agent can book real-world package deliveries. Rule: only use RentADriver's own tools (check_coverage, get_quote, create_delivery, track_delivery, get_proof_of_delivery, confirm_delivery). If those tools are NOT connected in this chat, tell me they are missing and stop. Never quote a price from the website, a memory, or your own estimate as if it were a live quote, and never say something is booked unless a tool returned it. 1. Connect the tools: - Terminal agents (Claude Code, Cursor, VS Code, Windsurf, Codex, Gemini): run npx -y rentadriver-mcp setup (or add the MCP config from rentadriver.ai/for-agents). - Claude Desktop / claude.ai / ChatGPT — you cannot run npx here: add the remote connector https://mcp.rentadriver.ai/mcp in the app's connector settings and sign in when asked. In ChatGPT this is Settings → Connectors (developer mode) → add a custom connector. 2. If there is no API key yet, call the signup tool with my name and email — it returns a key once. Rehearse with a sandbox (rd_test_) key; live bookings need a funded wallet. 3. Test with check_coverage and get_quote (both free). Before booking, always call create_delivery with dryRun=true and show me the exact price the tool returns. 4. Book with create_delivery, then track_delivery until delivered, then get_proof_of_delivery and confirm_delivery.
3. Not on MCP? Use the REST API
# import the spec as tools
spec = requests.get("https://api.rentadriver.ai/.well-known/openapi.json").json()
# or hand-write the three that matter:
tools = [
{"type": "function", "function": {"name": "get_quote", "description": "Price a delivery", "parameters": spec["components"]["schemas"]["QuoteRequest"]}},
{"type": "function", "function": {"name": "create_delivery", "description": "Book a delivery (needs x-api-key)", "parameters": spec["components"]["schemas"]["CreateDeliveryRequest"]}},
{"type": "function", "function": {"name": "track_delivery", "parameters": {"type": "object", "properties": {"delivery_id": {"type": "string"}}}}},
]Design rules your agent can rely on
get_quote is free and returns the full breakdown. create_delivery supports dryRun. Nothing moves until fund.
Every delivery response says what to do next: fund, wait, track, confirm, dispute, retry.
Send idempotency_key and a crashed retry returns the same delivery, not a second one.
Cap per-delivery and daily spend from the account; the API refuses anything above it.
Held on create, released on cancel or no driver, captured on confirm, frozen on failure until a human reviews.
Photos, signature, recipient name, OTP, geo and time — not a free-text claim.
- delivered_at
- Timestamp of the handover, set by the app at the moment of completion
- lat / lng
- GPS position where the proof was captured
- photos[]
- Photo of the package at the door or in the recipient's hands
- signature
- Drawn on the driver's screen when a signature is required
- recipient_name
- Who took it, typed by the driver at the door
Every handover leaves a record you can act on.
When a driver hands the package over, the app captures structured evidence and attaches it to the delivery. It is returned to your software as data, so an agent can check it, store it or dispute it without a human reading a screenshot.
You choose what counts as delivered
photoA picture of where it was leftsignatureSigned on screenrecipient_nameThe recipient's nameotpA one-time code you gave the recipientid_checkThe driver checks photo ID
Set proof_required when you book. If the driver cannot capture it, the delivery cannot be marked complete, and your funds are not captured.
See the proof APIGuard rails your agent cannot talk its way past.
An autonomous agent booking physical deliveries is a new kind of risk. These limits are enforced by the platform, not by prompt, so a confused or compromised agent stays inside them.
Spending caps
Set a maximum per delivery and per day on the workspace. The API refuses anything above it, whatever the agent asks for.
Money moves on outcomes
Funds are held when a delivery is created, released if no driver is found or it is cancelled, and captured only when you confirm delivery.
Idempotent booking
Send an idempotency key and a crashed, retried agent gets the same delivery back, not a second driver.
Test keys, real API
Sandbox keys run the whole flow with simulated drivers and no money. Switch the key mode to go live; nothing else changes.
Price before commitment
Quotes are free, unauthenticated and return the full breakdown. Creates support dry-run. Nothing is charged until you fund.
Structured proof
Delivery evidence is data your agent can verify, not a free-text claim it has to trust.
Not on MCP? Use the REST API
Connect through MCP or build with the REST API. Your agent can check coverage and budget, reserve funds, book a driver, track the delivery, review proof and confirm payment—all within your existing workflow.
- Quotes and coverage checks are free and unauthenticated
- Preview supported actions with dryRun before making a live request
- Every response tells the agent its next_action
- Spending caps per delivery and per day
- Choose card or supported USDC funding for your delivery wallet
Set up RentADriver so this agent can book real-world package deliveries.
Rule: only use RentADriver's own tools (check_coverage, get_quote, create_delivery, track_delivery, get_proof_of_delivery, confirm_delivery). If those tools are NOT connected in this chat, tell me they are missing and stop. Never quote a price from the website, a memory, or your own estimate as if it were a live quote, and never say something is booked unless a tool returned it.
1. Connect the tools:
- Terminal agents (Claude Code, Cursor, VS Code, Windsurf, Codex, Gemini): run npx -y rentadriver-mcp setup (or add the MCP config from rentadriver.ai/for-agents).
- Claude Desktop / claude.ai / ChatGPT — you cannot run npx here: add the remote connector https://mcp.rentadriver.ai/mcp in the app's connector settings and sign in when asked. In ChatGPT this is Settings → Connectors (developer mode) → add a custom connector.
2. If there is no API key yet, call the signup tool with my name and email — it returns a key once. Rehearse with a sandbox (rd_test_) key; live bookings need a funded wallet.
3. Test with check_coverage and get_quote (both free). Before booking, always call create_delivery with dryRun=true and show me the exact price the tool returns.
4. Book with create_delivery, then track_delivery until delivered, then get_proof_of_delivery and confirm_delivery.Connects to
- Claude
- Cursor
- Windsurf
- OpenAI
- LangChain
- CrewAI
- Zapier
- n8n
- Shopify
One line, then ask for a quote.
Free sandbox key · no card