Get startedUpdated
Quickstart
Read your first site and find the fix worth the most, in about two minutes. No account is needed.
- 1. Add the skills
npx skills add subinternal/mttr - 2. Tell your agent
Check yoursite.com with mttr and fix what’s worth the most.
How do I read my first site?
Type its domain on the home page. mttr reads the first 12 pages on the spot and shows the score and what fails, then puts the full read of up to 100 pages in line behind it. No account is needed. The site has to be on the public internet, and mttr reads only what its robots.txt allows.
| Read | Pages | Ready |
|---|---|---|
| First look | The first 12 | In seconds, on the spot |
| Full read | Up to 100 | When its turn in line comes; the page says how many reads are ahead |
Read your site
Type the domain
On the home page, type the domain, such as
example.com. A full address works too, and anything after the domain is set aside.Take the first look
mttr reads the first 12 pages on the spot and shows the score and what fails, in seconds. The full read, up to 100 pages, goes in line behind it.
Watch it being read
The page shows each step as it happens: the address checked,
robots.txtread, the sitemap read, then every page read and checked. When mttr is busy it says how many reads are ahead of yours. You can close it and come back.Open the report
The report leads with the score and the one fix worth the most. Under it is every failing rule, ranked by how much it weighs and how many pages fail it. A site read in the last day opens straight to its report.
Hand it to an agent
An agent can read the same list, change the site in its own repository, and ask mttr to read it again. Pick where yours runs; it connects once.
Answeringhttps://mttr.si/mcpStreamable HTTPJSON API at /api/v1
- 1Get a key
Free, with an email. It reads any site's public report; claim your own site to add its private parts.
Or connect with no key, and your agent signs you up itself withmttr_signup. - 2Connect where your agent runs
First put the key in your shell, where no file you commit can hold it.
Terminal export MTTR_KEY=mk_your_keyRun this once, from any folder. Claude Code keeps it for every project.
Terminal claude mcp add --transport http mttr https://mttr.si/mcp \ --header "Authorization: Bearer $MTTR_KEY"First put the key in your shell, where no file you commit can hold it.
Terminal export MTTR_KEY=mk_your_keyAdd this to Codex’s settings. It reads the key from your shell when it starts.
~/.codex/config.toml [mcp_servers.mttr] url = "https://mttr.si/mcp" bearer_token_env_var = "MTTR_KEY"Add this to Gemini CLI’s settings, then start it again and run /mcp to see mttr’s tools.
~/.gemini/settings.json { "mcpServers": { "mttr": { "httpUrl": "https://mttr.si/mcp", "headers": { "Authorization": "Bearer mk_your_key" } } } }The key sits in the settings file above. Keep that file to yourself.
settings.json "Authorization": "Bearer mk_your_key"Cursor reads the key from the shell it was opened from.
Terminal export MTTR_KEY=mk_your_keyAdd this in the site’s repository, then turn mttr on under MCP in Cursor’s settings.
.cursor/mcp.json { "mcpServers": { "mttr": { "url": "https://mttr.si/mcp", "headers": { "Authorization": "Bearer ${env:MTTR_KEY}" } } } }Add this under Settings, Customizations, MCP servers, or in this file; then refresh the list of servers. In one project only, use .agents/mcp_config.json instead.
~/.gemini/config/mcp_config.json { "mcpServers": { "mttr": { "serverUrl": "https://mttr.si/mcp", "headers": { "Authorization": "Bearer mk_your_key" } } } }The key sits in the settings file above. Keep that file to yourself, and out of any repository.
mcp_config.json "Authorization": "Bearer mk_your_key"Add this in the site’s repository. VS Code asks for the key the first time and keeps it safe.
.vscode/mcp.json { "servers": { "mttr": { "type": "http", "url": "https://mttr.si/mcp", "headers": { "Authorization": "Bearer ${input:mttr-key}" } } }, "inputs": [ { "id": "mttr-key", "type": "promptString", "description": "Your mttr key", "password": true } ] }Nothing to set by hand: paste the key when VS Code asks for it.
VS Code Your mttr key: mk_your_keyAdd this to Windsurf’s MCP settings, then refresh its list of servers.
~/.codeium/windsurf/mcp_config.json { "mcpServers": { "mttr": { "serverUrl": "https://mttr.si/mcp", "headers": { "Authorization": "Bearer mk_your_key" } } } }The key sits in the settings file above. Keep that file to yourself.
mcp_config.json "Authorization": "Bearer mk_your_key"Any client that speaks MCP over HTTP connects with these three things.
Settings Address https://mttr.si/mcp Transport Streamable HTTP Header Authorization: Bearer mk_your_keyEvery request carries the key as a bearer token.
Header Authorization: Bearer mk_your_key - 3Ask it something
In words. Your agent picks the call, and the answer is the one a person sees on the report.
- What should I fix first on example.com?
mttr_brief({ site: "example.com" }) - Fix the top issue, then have mttr read the site again.
mttr_rescan({ site: "example.com" }) - Who am I up against, and what do they cover that I don’t?
mttr_competitors({ site: "example.com" })
What comes backThe start of a brief, a sample
What mttr_brief answersThe start of one, a sample # Fix list for example.com mttr read 64 pages of https://example.com on 2026-10-15 and scored them 72 of 100. A score says pages are well formed. It does not say an assistant cites the site. ## 1. Put the text in the HTML - **Failing:** 9 pages - **What to do:** Put the page text in the HTML the server sends. Most AI crawlers do not run scripts. - **Pages:** - `/services/drainage` - `/pricing` - and 7 more
- What should I fix first on example.com?