Parcel

MCP for agents

The Parcel MCP server lets any MCP client search, quote and buy with your USDG balance. It uses Streamable HTTP and authenticates with an API key.

1. Create an API key

Open Manage account → API keys, create a key and copy it. Under Spending limits, set per-order and daily limits for what agents may spend without asking you.

2. Connect your client

Claude Code:

claude mcp add --transport http parcel https://www.parcel.wtf/api/mcp \
  --header "Authorization: Bearer pk_live_…"

Cursor, Claude Desktop and other clients that read an MCP config file:

mcp.json

{
  "mcpServers": {
    "parcel": {
      "url": "https://www.parcel.wtf/api/mcp",
      "headers": { "Authorization": "Bearer pk_live_…" }
    }
  }
}

3. Buy something

A typical flow the agent follows. Prices come from the signed offerToken of a search result, which stays valid for 30 minutes.

search_products { "query": "usb-c charger 65W", "maxPriceUsd": 40 }
list_shipping_addresses {}
quote_order { "offerToken": "<from search_products>", "quantity": 1, "shippingAddressId": 1 }
place_order { "orderId": "…" }
get_order { "orderId": "…" }

Tools

search_productsSearch every supported US store at once. Optional minPriceUsd, maxPriceUsd and sortBy (relevance, price_low_to_high, price_high_to_low, top_rated). Returns title, price, rating, store, an offerToken and the appliedFilters. Read-only.
get_balanceThe shopper's wallet, its USDG balance and the budget agents may spend from it. Read-only.
list_shipping_addressesSaved US addresses with ids. Read-only.
add_shipping_addressSave a US address the shopper provided.
quote_orderPrice a search result by its offerToken in USDG for a saved address. Valid for 10 minutes. Does not pay.
place_orderPay for a quote. Returns placed, needs_approval (with approvalUrl) or denied.
get_orderLatest status and tracking numbers. Read-only.
list_ordersRecent orders. Read-only.
cancel_orderCancel an order that hasn’t shipped.

Approvals

When place_order returns needs_approval, show the shopper the approvalUrl. Nothing is charged until they approve while signed in. Agents should never retry with a new quote to get around a limit.