# Content gaps (`mttr_gaps`)

Updated October 24, 2026.

## What does mttr_gaps do?

Subjects a site’s rivals write about that nothing on the site comes close to in meaning, the one most rivals cover first. A key may make this call on the sites it has claimed.

Who may call it: Your claimed sites.

## When to use it

- You plan what to write next.

## What you ask

You might say: “What do rivals write about that example.com does not?”

```
mttr_gaps({ site: "example.com" })
```

| Argument | Type | Needed | What it is |
| --- | --- | --- | --- |
| `site` | Text | Yes | The site, as a domain such as example.com. |
| `limit` | Number | No | How many to return. |

## What comes back

- Each missing subject with the rival pages on it.
- The nearest page on the site, so you can tell how far off it is.

A sample, with made-up sites and figures:

| Subject | Rivals covering it | Nearest page here |
| --- | --- | --- |
| Tankless water heaters | 5 | /services/water-heaters |
| Root intrusion | 3 | /guides/drain-cleaning |

## Over HTTP

```
curl "https://mttr.si/api/v1/sites/example.com/gaps" \
  -H "Authorization: Bearer $MTTR_KEY"
```

## When it fails

| When | Status | What to do |
| --- | --- | --- |
| Your assistant has no key yet | 401 over MCP | Sign up with `mttr_signup`, then connect again with the key it gives. |
| The key has not claimed the site | 404 | Claim it with `mttr_claim`, then `mttr_claim_check`. |

## Sources

- [Model Context Protocol: tools](https://modelcontextprotocol.io/specification/2025-06-18/server/tools), Model Context Protocol: How an assistant calls a tool.

The call in full: [mttr_gaps in the API reference](https://mttr.si/docs/reference#mttr_gaps).

## Goes with

- [Topics](https://mttr.si/docs/tools/topics.md)
- [Worked examples](https://mttr.si/docs/tools/examples.md)
