---
title: "API and MCP server | Am I Ready for Agents?"
description: "Query the sector scorecards, the 18 self-check questions and the ten decisions as data: an MCP server, a REST API with openapi.json and an NLWeb ask endpoint."
canonical: https://amireadyforagents.com/developers
site: "Am I Ready for Agents?"
last_updated: 2026-11-04
section: "Developers"
---

# API and MCP server | Am I Ready for Agents?

> Query the sector scorecards, the 18 self-check questions and the ten decisions as data: an MCP server, a REST API with openapi.json and an NLWeb ask endpoint.

Source: https://amireadyforagents.com/developers
Site: Am I Ready for Agents?
Last reviewed: 2026-11-04

# API and MCP server

## In short

The sector scorecards, the 18 self-check questions and the ten decisions are also data an agent can query. An MCP server at /mcp offers five read-only tools, a REST API under /api/v1 is described by openapi.json, and an NLWeb endpoint at /ask searches the rows and pages. No credential is needed, and the limit is 120 requests a minute.

## Connect the MCP server

The server speaks the Streamable HTTP transport at `https://amireadyforagents.com/mcp`. Send JSON-RPC 2.0 messages with POST and read the JSON answer. There is no session, no credential and no server-initiated stream, so one request gets one answer. Any MCP client that takes a URL connects with that address alone. The card at [/mcp/server-card](https://amireadyforagents.com/mcp/server-card) and the manifest at [/.well-known/mcp.json](https://amireadyforagents.com/.well-known/mcp.json) say the same thing in the forms clients read.

```bash
curl -s https://amireadyforagents.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://amireadyforagents.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_sector_scorecard","arguments":{"sector":"ecommerce"}}}'
```

A tool answers with the 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. The server also lists resources with `resources/list`: the page index, the methodology, this page and the five dataset files (the scorecards as JSON and CSV, the sector index, the self-check questions and the ten decisions), each readable with `resources/read`.

## The five tools

| Tool | What it returns | Parameters |
| --- | --- | --- |
| list_sectors | Lists the eight sectors the scorecards cover: sample size, the four shares (allow the four main AI agents, readable home page, any act surface, any payment file) as counts and percent, and the page URLs of each sector, with the baseline of every crawled domain. Call it first to find a sector id or slug for the other tools. | limit (optional): page size, 1 to 100. cursor (optional): the next_cursor of the previous page. |
| get_sector_scorecard | Returns the scorecard of one sector: sample size, how many domains came in by Ora leaderboard category and by domain keyword, and for each of the four measures its definition, the count (n out of the sites where the check could be made), the percent and the baseline of every crawled domain, with the page URLs to cite. Use it when a person asks how their own sector stands. | sector: The sector slug (ecommerce, bookings, publishers, saas, services, healthcare, finance or local) or the id used in the data files, for example bookings-travel. |
| rank_sectors | Orders the eight sectors by one of the four measures (allow_agents, readable_text, act_surface or pay_surface), highest share first unless order is asc, with each count and the baseline of every crawled domain. Call it for questions such as which sector lets AI agents in most or publishes an act surface least. | metric: allow_agents (share allowing GPTBot, ClaudeBot, PerplexityBot and Google-Extended), readable_text, act_surface or pay_surface. order (optional): desc puts the highest share first (default); asc the lowest. |
| get_self_check | Returns the 18 self-check questions in the order the page shows them (find, read, act, pay, trust), each with the question, the plain reason it matters, and whether the next step is a decision for leadership or a request for the web team. Pass a sector for its examples and two extra questions, an area to keep one area, and include_sources for the dated sources behind each question. | sector (optional): Sector slug or id, for example healthcare. Adds the sector examples and its two extra questions, so the list has 20 questions. area (optional): Keep only the questions of one area. Question numbers stay as in the full list. include_sources (optional): true adds each question's dated sources (claim, source URL, read date, kind). |
| get_definitions | Returns what each of the four scorecard measures counts, the whole-crawl figure for each, and the crawl behind them: domains crawled and reachable, how many sit in a sector row and how many in none, the status of the edition and the page that gives every rule. Call it before quoting a share, so the denominator is stated correctly. | None. |

## 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://amireadyforagents.com/api) is the index, [/openapi.json](https://amireadyforagents.com/openapi.json) describes every operation with its parameters, its response schema and the Error schema, and [/.well-known/api-catalog](https://amireadyforagents.com/.well-known/api-catalog) links that description the way RFC 9727 says. Paginated endpoints take `limit` (1 to 100) and the `next_cursor` of the previous page as `cursor`.

-   [/api/v1/list\_sectors](https://amireadyforagents.com/api/v1/list_sectors)List the eight sectors. Paginated.
-   [/api/v1/get\_sector\_scorecard?sector=ecommerce](https://amireadyforagents.com/api/v1/get_sector_scorecard?sector=ecommerce)One sector scorecard in full.
-   [/api/v1/rank\_sectors?metric=allow\_agents](https://amireadyforagents.com/api/v1/rank_sectors?metric=allow_agents)Rank the sectors on one measure.
-   [/api/v1/get\_self\_check?sector=ecommerce&area=pay](https://amireadyforagents.com/api/v1/get_self_check?sector=ecommerce&area=pay)The self-check questions.
-   [/api/v1/get\_definitions](https://amireadyforagents.com/api/v1/get_definitions)What each measure counts and the crawl behind it.
-   [/api](https://amireadyforagents.com/api)The index: endpoints, datasets, limits and versioning.

```bash
curl -s 'https://amireadyforagents.com/api/v1/get_sector_scorecard?sector=healthcare'
```

## Ask in plain words

The `/ask` endpoint follows NLWeb 0.55. It searches the sector scorecards, the measure definitions, the self-check questions, the ten decisions and every page, and returns schema.org objects, each with 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. The mode `summarize` adds a one-sentence SearchSummary item built from the results, never from a model.

```bash
curl -s 'https://amireadyforagents.com/ask?query=which+AI+bots+to+let+in'
```

```bash
curl -s https://amireadyforagents.com/ask -H 'Content-Type: application/json' -d '{"query":{"text":"which AI bots to let in"},"prefer":{"mode":"list"},"meta":{"version":"0.55"}}'
```

A search with no match answers `_meta.response_type: failure` with the code NO\_RESULTS, and a missing query answers 400 with INVALID\_QUERY. Context objects are accepted and ignored, because the answers come from the data and not from a conversation.

## Discovery files

-   [/openapi.json](https://amireadyforagents.com/openapi.json)OpenAPI 3.1 for the REST API and /ask, linked from every page as rel=service-desc and from the Link header of the home page.
-   [/.well-known/api-catalog](https://amireadyforagents.com/.well-known/api-catalog)RFC 9727 linkset: the API, the MCP server and the ask endpoint with their descriptions.
-   [/mcp/server-card](https://amireadyforagents.com/mcp/server-card)The MCP server card with name, version, remote URL and protocol versions, copied at /.well-known/mcp/server-card.json.
-   [/.well-known/mcp.json](https://amireadyforagents.com/.well-known/mcp.json)The manifest: endpoint, transport and the tools with their input schemas.
-   [/.well-known/ai-catalog.json](https://amireadyforagents.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, also served at /.well-known/ard.json.
-   [/schemamap.xml](https://amireadyforagents.com/schemamap.xml)Schema feeds: the rows as JSON-LD lines under /feeds/, named in robots.txt.
-   [/.well-known/agent-skills/index.json](https://amireadyforagents.com/.well-known/agent-skills/index.json)Two agent skills with a digest each: reading the scorecards and running the self-check with a person.

## Access, limits and errors

Credential

None. The OpenAPI document declares `security: []` with no security schemes, and [auth.md](https://amireadyforagents.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 the `RateLimit` and `RateLimit-Policy` headers. A 429 carries `Retry-After`. The host may add limits of its own above that. Each dataset is also one file, listed under `datasets` in [/api](https://amireadyforagents.com/api), so a bulk reader never needs the API.

Errors

JSON and never HTML: `{"error":{"code","message","hint","status","docs"}}` with the codes invalid\_params, not\_found, method\_not\_allowed, unsupported\_media\_type, rate\_limited and internal. A missing endpoint under /api answers 404 and lists the 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 running in a browser can call the API and the MCP server.

## WebMCP in the browser

Pages that carry the self-check, the brief generator or the calculator register one read-only tool, `score_self_check`, in browsers that offer `navigator.modelContext`. It scores answers the caller passes in, with the rules of the [self-check](https://amireadyforagents.com/self-check), inside the tab. It makes no network call and keeps nothing. The server-side tools above are the way to read the data.

## Versioning

The path prefix `/api/v1` is the contract. A breaking change, such as a field removed or renamed or a tool removed, 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 follows the same rule, and its card and `serverInfo.version` carry the number of the OpenAPI document. The data behind every answer is edition 2026-11-04, named in the `X-Dataset-Edition` header and in every tool result.

## Cite the data

Every result names the page it comes from, and that URL is the one to cite. The scorecard files are published under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) and the citation line is on the [scorecards page](https://amireadyforagents.com/scorecards). The wording of the questions and decisions follows the [terms of use](https://amireadyforagents.com/terms-of-use).

## What the surface does not do

It does not write, hold accounts, generate text with a model or search beyond this site's own rows and pages. It scores no website: the figures describe the sectors of one crawl, and the self-check describes what a business has decided. The pages remain the record, and the [methodology](https://amireadyforagents.com/scorecards/methodology) explains how the scorecards are made.

## Sources

1.  [MCP specification, Streamable HTTP transport](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports) (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) (github.com/nlweb-ai/website/blob/main/NLWEBSPEC.md), read 4 Nov 2026.
3.  [RFC 9727, the api-catalog well-known URI](https://www.rfc-editor.org/rfc/rfc9727) (rfc-editor.org/rfc/rfc9727), read 4 Nov 2026.
4.  [OpenAPI Specification 3.1.0](https://spec.openapis.org/oas/v3.1.0) (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) (github.com/nlweb-ai/website/blob/main/SCHEMA\_SPEC.md), read 4 Nov 2026.
6.  [Cloudflare: the agentic internet, WebMCP example (6 Aug 2026)](https://blog.cloudflare.com/the-agentic-internet/) (blog.cloudflare.com/the-agentic-internet), read 4 Nov 2026. Vendor claim.

Last reviewed 4 November 2026

Reviewed 4 November 2026. [6 sources](#sources), each with the day it was read.
