---
title: "API and MCP server | Agent Ready Checkout"
description: "Query the matrix, the rules tracker and the discovery counts as data through an MCP server, a REST API with OpenAPI and an NLWeb ask endpoint, all read-only."
canonical: https://agentreadycheckout.com/developers
site: "Agent Ready Checkout"
last_updated: 2026-11-04
section: "Developers"
---

# API and MCP server | Agent Ready Checkout

> Query the matrix, the rules tracker and the discovery counts as data through an MCP server, a REST API with OpenAPI and an NLWeb ask endpoint, all read-only.

Source: https://agentreadycheckout.com/developers
Site: Agent Ready Checkout
Last reviewed: 2026-11-04

# API and MCP server

In short

The matrix, the rules tracker and the discovery counts are also data an agent can query: an MCP server at /mcp with five read-only tools, a REST API under /api/v1 described by openapi.json, and an NLWeb /ask endpoint. No credential is needed, the limit is 120 requests a minute, and every answer comes from edition 2026-11-04.

## Connect the MCP server

The server speaks the Streamable HTTP transport at https://agentreadycheckout.com/mcp. Send JSON-RPC 2.0 messages with POST and read the JSON answer. The server keeps no session, takes no credential and opens no stream of its own, so each request gets exactly one answer. An MCP client that takes a URL connects with that address alone. The [server card](https://agentreadycheckout.com/mcp/server-card) and the [manifest](https://agentreadycheckout.com/.well-known/mcp.json) state the same facts in the forms clients read.

```bash
curl -s https://agentreadycheckout.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}'
```

```bash
curl -s https://agentreadycheckout.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_matrix_cell","arguments":{"protocol_id":"acp","column_id":"stripe"}}}'
```

A tool answers with its result as `structuredContent` and the same JSON as text. A wrong argument answers `isError: true` with the parameter list, and an unknown tool answers JSON-RPC error -32602. `resources/list` names the resources (the page index, the methodology, this page and the dataset files) and `resources/read` returns them.

## The five tools

| Tool | What it returns | Parameters |
| --- | --- | --- |
| get_matrix_cell | Returns one cell of the protocol support matrix: the status (live, pilot, announced, not supported or no statement found), what that status means, the note, the source URL, the date the source was read and the page to cite. Call it to answer whether one protocol works with one processor, platform, retailer or agent surface. | protocol_id: The protocol id, case-insensitive; the short name also works, for example acp, ucp, x402 or Visa TAP.; column_id: The processor, platform, retailer or agent surface id; the short name also works, for example stripe, shopify or chatgpt-shopping. |
| list_protocol_support | Lists one protocol across the 27 processors, platforms, retailers and agent surfaces: each column's status, note, source URL, read date and cell page, with the count of cells per status. Filter by status or by column group. Call it to answer where a protocol is live, in pilot or only announced. | protocol_id: The protocol id, case-insensitive; the short name also works, for example ucp, ap2 or Mastercard Agent Pay.; status (optional): Keep only cells with this status.; group (optional): Keep only one column group: processor, platform, retailer or surface. |
| list_column_support | Lists one processor, platform, retailer or agent surface across the 12 protocols: each protocol's status, note, source URL, read date and cell page, with the count of cells per status. Filter by status. Call it to answer which agent payment protocols a given product supports. | column_id: The processor, platform, retailer or agent surface id, case-insensitive; the short name also works, for example stripe, shopify, walmart or ChatGPT.; status (optional): Keep only cells with this status. |
| search_rules | Searches the liability and rules tracker: dated changes in card-network rulebooks and agent payment frameworks, each with the document, the page or section, who carries the dispute, the source and the read date. Filter by network, by words and by a start date. Newest first. | network (optional): visa, mastercard, amex, ap2 (FIDO Alliance) or other (other rule and policy changes).; q (optional): Words that must all appear in the change, the document title, the page or the dispute reading, for example "agentic token" or "chargeback".; since (optional): Only rows dated on or after this day, YYYY-MM-DD, for example 2026-09-01. |
| get_discovery_prevalence | Returns how many probed domains serve a valid commerce discovery file (a UCP profile, ACP and x402 paths, an agent registry file, OpenAPI, agents.json, web bot auth keys) in each crawl group: domains probed, answers of 403 or 429, valid files and the share, with the caveats and the page to cite. Call it for how common these files are. | group (optional): Keep one crawl group by id: commerce-categories, top-10000 or payments-fintech.; path (optional): Keep the probe paths that contain this text, for example ucp, x402 or openapi. |

## The REST API

Each tool is also one GET endpoint under `/api/v1/`, with the parameters in the query string and the same JSON in the answer. [/api](https://agentreadycheckout.com/api) is the index. [/openapi.json](https://agentreadycheckout.com/openapi.json) describes every operation with its parameters, response schema and the Error schema, and [/.well-known/api-catalog](https://agentreadycheckout.com/.well-known/api-catalog) links that description as RFC 9727 specifies. Paginated endpoints take `limit` (1 to 100) and the `next_cursor` of the previous page as `cursor`.

-   [/api/v1/get\_matrix\_cell?protocol\_id=acp&column\_id=stripe](https://agentreadycheckout.com/api/v1/get_matrix_cell?protocol_id=acp&column_id=stripe)  
    One matrix cell.
-   [/api/v1/list\_protocol\_support?protocol\_id=ucp&status=live](https://agentreadycheckout.com/api/v1/list_protocol_support?protocol_id=ucp&status=live)  
    One protocol across the columns. Paginated.
-   [/api/v1/list\_column\_support?column\_id=shopify](https://agentreadycheckout.com/api/v1/list_column_support?column_id=shopify)  
    One column across the protocols. Paginated.
-   [/api/v1/search\_rules?network=visa](https://agentreadycheckout.com/api/v1/search_rules?network=visa)  
    Liability and rules tracker. Paginated.
-   [/api/v1/get\_discovery\_prevalence](https://agentreadycheckout.com/api/v1/get_discovery_prevalence)  
    Commerce discovery file prevalence.
-   [/api](https://agentreadycheckout.com/api)  
    The index: endpoints, datasets, limits and the versioning policy.

```bash
curl -s 'https://agentreadycheckout.com/api/v1/get_matrix_cell?protocol_id=acp&column_id=stripe' | jq .status
```

## Ask in plain words

The `/ask` endpoint follows NLWeb 0.55. It searches the matrix cells, the protocol and column profiles, the rules tracker, the discovery counts and every page, and returns schema.org objects that each carry a `grounding.source` URL to cite. GET takes `query` and POST takes the NLWeb request object. Add `streaming=true`, or `prefer.streaming`, for server-sent events named start, result and complete. `mode=summarize` adds a one-sentence SearchSummary item composed from the results by a template.

```bash
curl -s 'https://agentreadycheckout.com/ask?query=x402+Coinbase'
```

```bash
curl -s https://agentreadycheckout.com/ask -H 'Content-Type: application/json' -d '{"query":{"text":"Mastercard Agent Pay live"},"prefer":{"mode":"list"},"meta":{"version":"0.55"}}'
```

A query that matches nothing answers `_meta.response_type: failure` with code NO\_RESULTS, and a missing query answers 400 with INVALID\_QUERY. A context object is accepted and ignored, since each answer is a lookup in the data and not a conversation.

## Discovery files

-   [/openapi.json](https://agentreadycheckout.com/openapi.json)  
    OpenAPI 3.1 for the REST API and /ask, linked from the home page as rel=service-desc and from the Link header.
-   [/.well-known/api-catalog](https://agentreadycheckout.com/.well-known/api-catalog)  
    RFC 9727 linkset: the API, the MCP server and the ask endpoint with their descriptions.
-   [/mcp/server-card](https://agentreadycheckout.com/mcp/server-card)  
    The MCP server card with name, version, remote URL and protocol versions, copied to /.well-known/mcp/server-card.json.
-   [/.well-known/mcp.json](https://agentreadycheckout.com/.well-known/mcp.json)  
    The manifest: endpoint, transport and the tools with their input schemas.
-   [/.well-known/ai-catalog.json](https://agentreadycheckout.com/.well-known/ai-catalog.json)  
    AI Catalog 1.0 with entries for the MCP card, the OpenAPI document, the ask endpoint and every document; the same file sits at /.well-known/ard.json.
-   [/.well-known/agent-skills/index.json](https://agentreadycheckout.com/.well-known/agent-skills/index.json)  
    Two skills in SKILL.md form, one for agent payment support and one for the rules tracker, each listed with its sha256 digest.
-   [/assets/webmcp.js](https://agentreadycheckout.com/assets/webmcp.js)  
    Registers the same tools through navigator.modelContext in browsers that offer WebMCP; each call goes to the REST endpoint of the same name.
-   [/schemamap.xml](https://agentreadycheckout.com/schemamap.xml)  
    Schema feeds: the matrix cells, profiles, rules and discovery counts as JSON-LD lines under /feeds/, named in robots.txt.

## Access, limits and errors

Credential

None. The OpenAPI document declares `security: []` with no security schemes, and [auth.md](https://agentreadycheckout.com/auth.md) says the same. The site publishes no OAuth metadata because no endpoint takes a token, and metadata for an authorization server that does not exist would send agents to a door that is not there.

Rate limit

120 requests a minute per client address, counted per running instance and announced in `RateLimit` and `RateLimit-Policy` headers. A 429 carries `Retry-After`, and the host adds its own limits above that. Each dataset is also one download from [the data page](https://agentreadycheckout.com/data), so a bulk reader never needs the API.

Errors

JSON, never HTML: `{"error":{"code","message","hint","status","docs"}}` with the codes invalid\_params, not\_found, method\_not\_allowed, rate\_limited and internal. A missing endpoint under /api answers 404 and lists the real endpoints in the hint.

Writes

There are none, so every call is safe to retry and no idempotency key exists. Every call answers in one response, so no job pattern is needed.

CORS

Every answer carries `Access-Control-Allow-Origin: *`, so an agent that runs in a browser can call the API and the MCP server.

## Versioning

The path prefix `/api/v1` is the contract. A breaking change, such as a removed or renamed field or a removed tool, ships under `/api/v2` while `/api/v1` keeps answering for at least 180 days, announced on this page and in the `info.version` of openapi.json. Additive changes, such as a new field or a new tool, keep the prefix. The MCP server card and `serverInfo.version` carry the same version number as the OpenAPI document. The data behind every answer is edition 2026-11-04; the edition travels in the `X-Dataset-Edition` header and in each result.

## Cite the data

Every result names the page it comes from, so cite that URL. The data files are free to reuse with attribution under [the terms](https://agentreadycheckout.com/terms), and [the data page](https://agentreadycheckout.com/data) gives the cite line for each dataset.

**Cite this:** Agent Ready Checkout. API and MCP server. Edition of 4 Nov 2026. https://agentreadycheckout.com/developers

## What the surface does not do

It does not write, hold accounts, generate text with a model or search beyond this site's own cells, profiles, rules and pages. A cell read through the API is the cell on the page, with the same read date. The matrix pages stay the record, and [the methodology](https://agentreadycheckout.com/method) explains how a cell is read.

## Sources

1.  [MCP specification, Streamable HTTP transport](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports), read 4 Nov 2026
2.  [NLWeb specification 0.55](https://github.com/nlweb-ai/website/blob/main/NLWEBSPEC.md), read 4 Nov 2026
3.  [RFC 9727, api-catalog](https://www.rfc-editor.org/rfc/rfc9727), read 4 Nov 2026
4.  [OpenAPI Specification 3.1.0](https://spec.openapis.org/oas/v3.1.0), read 4 Nov 2026
5.  [Schema Feeds specification 0.1](https://github.com/nlweb-ai/website/blob/main/SCHEMA_SPEC.md), read 4 Nov 2026

Last reviewed 4 Nov 2026

## Edition

Matrix edition of 4 Nov 2026.

Reviewed 4 Nov 2026, [5 sources](#sources-h).

## Method

[How cells, sources and read dates are defined](https://agentreadycheckout.com/method)
