Not finding it?Live research 0Compare

Doorprice for agents

One integration for price comparison, review intelligence and checkout across stores, plus appointments. Every call takes an intent: one sentence about why you are calling. It is required, it helps us rank results, and it tells us what to build next.

1. Remote MCP server

Streamable HTTP, stateless, no auth needed for the prototype. Works with Claude (Settings → Connectors → Add custom connector), ChatGPT developer mode, Cursor, VS Code and any MCP client.

https://doorprice.co/mcp

Clients that only speak stdio can bridge with mcp-remote:

{
  "mcpServers": {
    "doorprice": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://doorprice.co/mcp"
      ]
    }
  }
}

2. CLI

JSON output for agents (--json), tables for people. Needs Node 20+.

npx -y https://doorprice.co/cli.tgz search "robot vacuum for pet hair" --intent "compare robot vacuums for a home with a dog"
doorprice search <query> [--max 300] [--zip 94103] [--live] [--json]
doorprice product <id>      doorprice compare <id> <id> [<id>...]
doorprice buy <offer_id>    doorprice status <checkout_id>
doorprice services <query> [--type haircut]   doorprice book <provider> --slot ISO
Every command needs --intent "why" (or DOORPRICE_INTENT).

3. REST API

OpenAPI 3.1 at /openapi.json. Send the intent as intent or the X-Doorprice-Intent header.

curl "https://doorprice.co/api/v1/search?q=quiet+headphones&max_price=300" \
  -H "X-Doorprice-Intent: find ANC headphones for flights under 300" \
  -H "X-Doorprice-Agent: my-agent"

MCP tools

search_productsFind products and the lowest delivered price. Demo catalog (full scores) or live Shopify catalog (real merchants).
get_productEvery offer with delivered totals, the Doorprice Score with its evidence, specs, pros and cons, videos.
compare_productsAligned comparison table for 2 to 4 products, best value per row marked. Markdown included.
create_checkoutQuote and create a checkout for an offer. Returns totals and a payment_url for the person to approve.
get_checkout_statusPayment and order status for a checkout id.
search_servicesAppointments (haircuts, massage, dental, primary care): all-in price, next opening, distance, provider score.
get_providerA provider’s services, open slots, policies, insurance and score breakdown.
book_appointmentHold a slot and get a confirm_url. Health bookings require patient_consent: true and no health details.
research_productsResearch a category Doorprice does not cover yet: live candidates, collected evidence and Doorprice Scores in seconds.
send_feedbackAsk a question, report an issue or request a feature. A person reviews every report.

All tools return structuredContent (with an output schema) plus a short Markdown summary. Use response_format: "concise" to save tokens.

The intent field

{
  "name": "search_products",
  "arguments": {
    "query": "quiet headphones for flights",
    "max_price": 300,
    "ship_to_zip": "94103",
    "intent": "User wants the quietest headphones for long flights under $300",
    "intent_stage": "discover"
  }
}
  • intent (required): the person’s goal in plain words. No names, emails or health details; we scrub them anyway.
  • intent_stage: discover, compare, decide, purchase or post_purchase.
  • agent_name: your product name, if your client doesn’t send one.

Agent-readable everything

  • /llms.txt: how to use Doorprice, in one file
  • Any product page as .md or .json, or send Accept: text/markdown
  • schema.org Product JSON-LD on every product page
  • /.well-known/mcp.json: MCP server card
  • /ucp/agent-profile.json: our UCP agent profile (used to query Shopify’s catalog)

Rules for buying

  • Checkouts return a payment_url. Show it to the person; never pay without their approval.
  • Health appointments need patient_consent: true, given by the patient.
  • Prices on the demo catalog are synthetic. Use source: "shopify_live" for real products.
0 to compareCompare

Choose your location

Delivery options, tax estimates and delivery speeds can vary by location.

Demo video card. In production this plays the YouTube embed via the YouTube Data API, with the creator credited.