How do I connect an AI agent to Cartroute with MCP?

Add https://cart-route.com/mcp as a remote MCP server. It works without a key for 10 data calls a day per IP; add the header Authorization: Bearer cr_live_... for more (one credit per call). The server speaks Streamable HTTP, exposes 7 tools, and works with Claude Code, Claude Desktop, Cursor, VS Code, ChatGPT and any client that supports remote servers. One-click install links: integrate.

POST https://cart-route.com/mcp

How do I add it to Claude Code?

claude mcp add --transport http cartroute https://cart-route.com/mcp \
  --header "Authorization: Bearer $CARTROUTE_API_KEY"

How do I add it to Cursor or another JSON-configured client?

{
  "mcpServers": {
    "cartroute": {
      "url": "https://cart-route.com/mcp",
      "headers": {
        "Authorization": "Bearer cr_live_..."
      }
    }
  }
}

What if my client only supports local (stdio) servers?

Bridge it with mcp-remote, which runs locally and forwards to the remote server:

{
  "mcpServers": {
    "cartroute": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://cart-route.com/mcp",
        "--header",
        "Authorization:${CARTROUTE_AUTH}"
      ],
      "env": {
        "CARTROUTE_AUTH": "Bearer cr_live_..."
      }
    }
  }
}

Which tools does the server expose?

ToolWhat it does
search_productsSearch Amazon, Best Buy and eBay in one call. Returns matched products, each with every retailer offer, landed price (price + shipping), the best applicable coupon, effective price after that coupon, and a 90-day price verdict. Natural-language price bounds in the query ("under $400") are understood. Costs 1 credit.
get_productFull product record: specs, every retailer offer, applicable coupons and price verdict. Accepts a product id (prd_...), slug, GTIN or MPN. Costs 1 credit.
get_price_historyDaily lowest price and per-retailer series for one product. Use it to judge whether today's price is a real deal. Costs 1 credit.
find_couponsRetailer coupon codes. Not yet connected for the live retailers, so this returns an empty list; use discount_from_list_pct on offers instead. Costs 0 credit.
list_retailersRetailer ids, membership requirements, free-shipping thresholds, return windows and refresh intervals. Free.
list_categoriesCategory names with product counts, for use as the `category` filter. Free.
get_accountRemaining credits and whether the email-verification bonus is still available. Free; needs an API key.

Every tool is read-only and annotated readOnlyHint: true, so clients that confirm side-effecting tools can run these without prompting. Full input schemas are returned by tools/list and published in the server card.

Which resources and prompts are there?

What does a raw call look like?

curl https://cart-route.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $CARTROUTE_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_products","arguments":{"query":"robot vacuum under $600","in_stock":true,"limit":3}}}'

The result's structuredContent is the same envelope the REST search returns, and content[0].text carries it as JSON text for clients that only read text.

What happens when a tool fails?

It returns a normal result with isError: true and a JSON body using the REST error code values (insufficient_credits, validation_error, not_found). A missing key produces an isError result that says how to get one, so the model can explain the next step to its user. See errors.

Which protocol details should client authors know?