Skip to content

Let your agent book a diesel mechanic.

AI assistants, fleet systems and browser agents can check coverage, explain pricing and send a repair request. No sign-in, no CAPTCHA, no payment. A human dispatcher confirms every request with the driver.

Covers the Phoenix, AZ metro7 AM to 7 PM Arizona time, every dayChicago, IL and Detroit, MI are launching next

MCP server, streamable HTTP

https://mobiledieselusa.com/api/mcp/mcp

Rules your agent must follow

Check coverage firstBook only when coverage says covered=true. Dispatch covers the Phoenix, AZ metro today; never promise a mechanic anywhere else.
Get the driver's go-aheadA reachable driver phone number and the driver's permission to be called or texted are required.
No estimates, no paymentDon't quote prices. The mechanic diagnoses on site and the customer approves the price. Nothing is paid through these tools.
A request is not an assignmentSay a dispatcher will confirm. Don't promise an arrival time before a mechanic accepts.
SafetyIf anyone is in danger, tell the user to call 911 first.

Connect over MCP

Works in any MCP client. Eight tools, annotated read, write or destructive:

check_coverageIs a city or highway spot inside the area dispatch covers?read
list_servicesThe 12 repair types and their ids.read
how_pricing_worksThe diagnose-first pricing policy. Never a number.read
prepare_repair_requestOpens the request form inside ChatGPT.read
book_repairSends the request to dispatch. Idempotent with idempotency_key.write
get_booking_statusStatus of a request by booking_id.read
cancel_bookingCancels before a mechanic is assigned.destructive
dispatch_deskThe ChatGPT sidebar view.read
# Claude Code
claude mcp add --transport http mobile-diesel-usa https://mobiledieselusa.com/api/mcp/mcp

# Claude Desktop, Cursor, Codex and other clients (mcp config)
{
  "mcpServers": {
    "mobile-diesel-usa": { "url": "https://mobiledieselusa.com/api/mcp/mcp" }
  }
}

Or call the REST API

GET/api/v1/coverage/?lat=&lng=Covered? Also ?city=&state=. Require covered=true before booking.
GET/api/v1/services/Service catalog.
POST/api/v1/quote/Pricing policy for a service (no estimate).
POST/api/v1/bookings/Create a request. Send an Idempotency-Key header.
GET/api/v1/bookings/{id}/Status, plus the track_url to give the driver.
POST/api/v1/bookings/{id}/cancel/Cancel before dispatch.
# 1. Coverage (require "covered": true)
curl -s "https://mobiledieselusa.com/api/v1/coverage/?city=Buckeye&state=AZ"

# 2. Send the request
curl -s -X POST https://mobiledieselusa.com/api/v1/bookings/ \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: fleet-4412-2026-10-04" \
  -d '{"service_id":"electrical-batteries",
       "symptom":"Clicks, no crank. Batteries test OK.",
       "urgency":"emergency",
       "location":{"address":"I-10 WB near Exit 114, Buckeye, AZ"},
       "truck":{"year":2019,"make":"Freightliner","model":"Cascadia"},
       "driver_name":"R. Morales","driver_phone":"+1XXXXXXXXXX",
       "fleet_company":"Acme Logistics","po_number":"PO-88231"}'

# 3. Status (give the driver the track_url)
curl -s https://mobiledieselusa.com/api/v1/bookings/BOOKING_ID/

# CLI: mdusa coverage --city Phoenix --agent   (source: github.com/Btheriot83/mobile-diesel-usa/tree/main/cli)

Every error includes a next_step written for agents. Retries with the same Idempotency-Key never double-book.

Browser agents

ChatGPT agent, Claude in Chrome, Gemini and similar can use the form on Get help (“Or ask dispatch to call you”): every field is labelled with a stable name and autocomplete, controls are native, and there is no CAPTCHA. Success shows #request-result[data-status="received"] with the request ID.

WebMCP tools on /request/check_coverage, how_pricing_works and request_callback, registered with document.modelContext.registerTool. request_callback fills the form and leaves Send to the person.
Declarative form toolThe form carries toolname="request_diesel_mechanic_callback" with a tool description and per-field descriptions, and no auto-submit.

WebMCP is in a Chrome origin trial (Chrome 149 to 156). Other browsers simply don't see these tools.