MCP quickstart
The MCP endpoint speaks JSON-RPC 2.0 over HTTP POST. Point any MCP client at it, or call it directly:
curl -sS "https://www.pairrail.com/mcp?sellerId=northstar-compute" \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"catalog_browse","arguments":{"region":"US"}}}'Atlas speaks MCP 2026-07-28 and answers older clients through initialize. server/discover and tools/list are free handshakes, and so are initialize and ping on 2025-11-25 and earlier (2026-07-28 drops both). A tool that runs and fails (unknown offer, out of policy, bad input) returns a result with isError: true and the error code, and is not counted; a missing key, plan limit or rate limit is a JSON-RPC error. The tools:
| Tool | Key | What it does |
|---|---|---|
catalog_browse | No | Public offers, meters, tiers and indicative prices. Optional category, region. |
catalog_discover | No | Match offers to a need: need (plain words; query also works), region, companySize. |
pricing_calculate | No | Indicative price for offerId with seats, units, creditUnits, commitmentMonths, region, currency. With the seller’s key, customer-tier prices apply. |
readiness_inspect | No | The seller’s readiness and governance profile. |
request_catalog_access | No | Ask the seller for a key: agentName, optional contactEmail and note (what you want to buy). Free. |
quote_request | Yes | Non-binding quote for offerId plus quantities and optional requestedDiscountBps. To retry safely, send an Idempotency-Key header or idempotencyKey argument. |
quote_submit | Yes | Sends an approval-required quote to the seller’s deal desk. Call it only when the buyer wants the quote at its price: the seller sees nothing until then. Takes quoteId; calling it again returns the same quote. |
Offers can set minimums, such as a 12-month commitment. When an input is out of range you get a coded error that says what to revise (see Errors).