---
title: "MCP server"
source: "https://ottom.io/developers/mcp"
summary: "The Ottom MCP server lets an AI assistant check how ready an online store is for AI shopping agents. It is a read only Model Context Protocol server at ottom.io/mcp with three tools: a light check of one store page, the published benchmark for a store category, and the list of checks it runs. A free key allows 50 calls a day."
---

# MCP server

The Ottom MCP server lets an AI assistant check how ready an online store is for AI shopping agents. It is a read only Model Context Protocol server at ottom.io/mcp with three tools: a light check of one store page, the published benchmark for a store category, and the list of checks it runs. A free key allows 50 calls a day.

## Endpoint

https://ottom.io/mcp, over Streamable HTTP. Protocol versions: 2025-11-25, 2025-06-18, 2025-03-26.

## Connect

1. **Make a key.** Sign in to Ottom and make a key on the MCP keys page. It is free and starts with ottom_mcp_. It is shown once, so copy it then.
2. **Add the server to your client.** Add a remote MCP server over HTTP with the address below, and send the key as a bearer token in the Authorization header.
3. **Ask about a store.** Ask your assistant how ready a store is for AI agents, with a product page address. It calls check_store_readiness and answers with what it found and how to fix it.

Make a key at https://ottom.io/dashboard/account/mcp.

![The Keys for AI agents page in the Ottom dashboard. It explains what a key can read and how many calls it makes a day, then has a form to name and make a key.](https://ottom.io/shots/mcp-keys-desktop.webp)

Make a key for the MCP server under your account, at Keys for AI agents.

Claude Code

```shell
claude mcp add --transport http ottom https://ottom.io/mcp \
  --header "Authorization: Bearer $OTTOM_MCP_KEY"
```

A client configured with JSON

```json
{
  "mcpServers": {
    "ottom": {
      "type": "http",
      "url": "https://ottom.io/mcp",
      "headers": {
        "Authorization": "Bearer ottom_mcp_your_key"
      }
    }
  }
}
```

See the tools without a key

```shell
curl -sS https://ottom.io/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Tools

### `check_store_readiness`

**Check how ready a store is for AI agents.** Runs a light check of one store page, the way an AI shopping agent reads it: robots.txt, llms.txt, the product feed, the UCP manifest, structured data (product, price, availability, GTIN) and whether the price is in text an agent can read. Each finding comes with a plain explanation, a fix and a link to read more. If the store’s owner publishes an Ottom result with the Ottom badge, that result is included too. Pass a product page URL for the most findings; a home page works. Every answer links to a full scan on ottom.io.

| Argument | Type | Description |
| --- | --- | --- |
| `url` | `string` | A store page, ideally a product page, e.g. yourstore.com/products/your-product |

### `get_benchmark`

**Get the public benchmark for a store category.** Returns Ottom’s published benchmark for a store category: how far AI agents get at each stage, the stalls that stop them most often, and the score spread. Aggregate figures only, never a named store, published under CC BY 4.0. Use "all" for every store. An unknown category answers with the list of published ones.

| Argument | Type | Description |
| --- | --- | --- |
| `category` | `string` | A category slug, e.g. "fashion", or "all" |

### `list_checks`

**List what the light check looks at.** Lists what check_store_readiness reads on a store, what it never does, and what a full scan on ottom.io adds.

No arguments.

## Limits

- 50 tool calls per key per day, reset at midnight UTC.
- Any one store is checked at most 3 times a day across every key.
- Stores are only visited from Ottom, with its published addresses and user agent, and never if the store has opted out.

## Errors

| Code | HTTP status | What it means |
| --- | --- | --- |
| `key_missing` | 401 | A tool was called with no key. Add one as a bearer token. |
| `key_invalid` | 401 | The key is wrong or has been revoked. Make a new one. |
| `not_entitled` | 403 | The key’s account cannot use the server, for example because its email address is not confirmed. |
| `key_limit_reached` | 429 | The key has made its 50 calls for today. `retryAfterSeconds` and the Retry-After header say when it resets, at midnight UTC. |

Tool results marked `isError` carry `error.code`:

| Code | What it means |
| --- | --- |
| `invalid_arguments` | The arguments did not validate. The message names the field. |
| `invalid_url` | The url is not a page address Ottom can check. |
| `store_opted_out` | The store has asked not to be visited by Ottom, so it was not checked and nothing is shared about it. |
| `opt_out_unchecked` | Ottom could not confirm the store has not opted out, so it did not visit. Try again in a minute. |
| `scans_paused` | Ottom has paused visiting stores. Nothing is wrong with the store. Try again later. |
| `store_limit_reached` | The store has had its checks for now. Any one store is checked at most 3 times a day across every key. |
| `busy` | Several checks are running. Try again after `retryAfterSeconds`. |
| `unavailable` | The light check cannot run right now. Try again later. |
| `unknown_category` | No published benchmark for that category. The message lists the ones there are. |
| `internal_error` | Something failed on Ottom’s side. Try again. |

## Questions

### Is the Ottom MCP server free?

Yes. A key is free and allows 50 calls a day. A full scan, in which an AI agent tries to buy, is run from ottom.io.

### Can it see my Ottom account or my reports?

No. The server is read only and has no tools that reach an account, a report or a scan you ran. It returns a light check of a public store page, published benchmarks and the list of checks. A store’s own Ottom result is included only when its owner publishes it with the badge.

### Does checking a store visit it?

Yes, once per check, and always from Ottom: the same published addresses and user agent as every Ottom scan, never from your machine. A store that has opted out is never visited, and any one store is checked at most 3 times a day however many people ask.

### Which clients work with it?

Any MCP client that supports remote servers over Streamable HTTP and lets you set an Authorization header. Listing the tools needs no key, so a client can show them before you add one.
