# How a site is put together (`mttr_structure`)

Updated October 24, 2026.

## What does mttr_structure do?

A site’s sections, how many clicks each sits from the home page, how much of each is linked from page content, and the links between sections. Any key may make this call, on any public site.

Who may call it: Any key.

## When to use it

- Deep pages are hard to reach and you want to see where.
- You plan to rework a site’s menus or hubs.

## What you ask

You might say: “How is example.com put together?”

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

| Argument | Type | Needed | What it is |
| --- | --- | --- | --- |
| `site` | Text | Yes | The site, as a domain such as example.com. |
| `links` | One of these: content, all | No | Which links to count between sections. Content links when left out. |

## What comes back

- Each section with its pages and clicks from home.
- How much of it is linked from content.
- The links between sections.

A sample, with made-up sites and figures:

| Section | Pages | Clicks from home | Linked in content |
| --- | --- | --- | --- |
| /guides | 42 | 2 | 64% |
| /services | 18 | 1 | 89% |
| /towns | 30 | 3 | 12% |

## Over HTTP

```
curl "https://mttr.si/api/v1/sites/example.com/structure" \
  -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. |
| mttr has no public report of the site yet | 404 | Ask for a read with `mttr_rescan`, then watch it with `mttr_job`. |

## 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_structure in the API reference](https://mttr.si/docs/reference#mttr_structure).

## Goes with

- [Map of a site](https://mttr.si/docs/tools/map.md)
- [Links](https://mttr.si/docs/tools/links.md)
