Google Search Console integration for Model Context Protocol (MCP)
mttr is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mttr-mcp https://mttr.si/mcp --header 'Authorization: Bearer ${AUTHORIZATION}'
# 2 — ask your agent for something these tools do
# mttr_sites, mttr_site, mttr_brief and 59 more
It needs AUTHORIZATION (Bearer and a free mttr key (mk_...) from https://mttr.si/agents. Without one, an agent can sign up with mttr_signup): this sends it in the Authorization header from your environment, so export it first — its endpoint answers 401 without it.
mttr costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it. Claude Code reads AUTHORIZATION (Bearer and a free mttr key (mk_...) from https://mttr.si/agents. Without one, an agent can sign up with mttr_signup) from your environment each time it connects and sends it in the Authorization header — its endpoint answers 401 without it — so the key stays out of its config: export it in your shell profile (macOS, Linux), or run setx AUTHORIZATION … and open a new terminal (Windows).
claude mcp add --scope user --transport http mttr-mcp https://mttr.si/mcp --header 'Authorization: Bearer ${AUTHORIZATION}'Reconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take Authorization header (Bearer and a free mttr key (mk_...) from https://mttr.si/agents. Without one, an agent can sign up with mttr_signup.) if you want to set it.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
62 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Lists the sites mttr has read, each with its latest score, page count and the rule to fix first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | Text the site name must contain. |
| state | string | no | Only sites in this state. |
| sort | string | no | What to sort by. |
| dir | string | no | Which way to sort. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
One site as its latest run found it: the score and its letter grade, the four stages with theirs (grades), its rank among every ranked site ({place, of}), the towns it serves (served, from its structured data, its town pages and its own place), and every fix in order with each page that fails it. card is a picture of its report card when its report is public (the anonymous card for a sit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
The fix list for a site as Markdown, written to be acted on: what to fix, in what order, how, why, and on which pages. Start here.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
The plan for a site: the fixes worth the most as ordered steps, each with what to do, a few of its pages and the points it is worth, and the words to hand an agent to work through them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
The pages of a site from its latest run, with status, depth, words and the rules each fails. Can be narrowed to the pages failing one rule.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| failing | string | no | A rule id. Only pages failing that rule. |
| q | string | no | Text the path must contain. |
| kind | string | no | Only pages of this kind. |
| section | string | no | Only pages in this section, such as /guides. |
| sort | string | no | What to sort by. |
| dir | string | no | Which way to sort. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
One page of a site: what it says about itself, the rules it fails with the fix for each, and the pages that link to it and that it links to.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| path | string | yes | The page, as a path such as /guides/gravel. |
Checks one live product page's structured data the way the free schema checker does: each Product, ProductGroup and Offer field by field against the fields Google lists for merchant listings (name, image, offers, price above zero, priceCurrency in ISO 4217, availability, shipping, returns, brand, GTIN, variants, ratings), each present, missing or invalid with what to do, and a guess at whether a s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | The product page, as a full public address such as https://example.com/products/linen-shirt. |
Reads one live page the way an agent does, the free "What an agent reads" tool: robots.txt asked first, so a page closed to mttr is not fetched; then its main content as Markdown with words and an estimated token count (about 4 characters a token), and what helped or hurt the reading, each with a state and, where the rulebook has one, its rule: main text found, text before script runs or a shell a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | no | One page, as a full public address such as https://example.com/guides/a-page. Read live. |
| site | string | no | A whole site, as a domain such as example.com, from its latest read instead: the share of its pages an agent reads, how much of each is the page, where that stands among every site read, what its page |
Makes JSON-LD for one page from the fields given, as the free schema creator does, and fetches nothing. Types: LocalBusiness, Organization, Product, Article, BreadcrumbList, Service, Event, WebSite, each with the fields Google's own structured data pages mark required or recommended (Service has no Google rich result; FAQPage and HowTo are not offered, since Google no longer shows them). Empty fie
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | yes | The schema type to make. |
| as | string | no | A more exact type, for LocalBusiness (such as Plumber, RoofingContractor, Restaurant) or Article (BlogPosting, NewsArticle). |
| fields | object | no | The values, by field key, as text: such as { "name": "Acme Plumbing", "city": "Phoenix", "telephone": "+1-602-555-0142" }. Lists, such as images, are one value a line. |
Tests one live link's X card, the free X card tester: robots.txt asked first, so a page closed to mttr is not fetched; then its twitter: tags against what X's archived card docs list (one twitter:card, the site, title, image and its size, and for a player card an https twitter:player with its width and height, and no twitter:player:stream), whether robots.txt keeps Twitterbot out, and for a player
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | The link to be posted, as a full public address such as https://example.com/in-post. |
Grades a brand's location pages together, the free multi-location grader: robots.txt asked first, so a site closed to mttr is not read; then its home page and sitemap, and up to 25 location pages, state and city listings followed down to the places and subpages every location has left out. Eight checks, each passing or not with what was found in words, the locations that fail it with why, and the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | The brand's site, such as example.com or https://example.com/. |
Checks one public host's SSL certificate, the free SSL certificate checker: one TLS handshake on port 443 with the name sent as SNI and nothing sent but the handshake. Whether the certificate is valid for the name, who issued it, valid from and until with the days left (a warning under 30, a failure once expired or before it starts), the names it covers, its key and signature, the chain as sent an
| Parameter | Type | Required | Notes |
|---|---|---|---|
| host | string | yes | The host to check, such as example.com or www.example.com. A full address is taken too, and only its host is used. |
What the latest run of a site changed against the run before it: the score, rules now passing, rules newly failing, and pages added and removed. Call it after a rescan is done. For a site whose server sends its own counts, "visits" sets people, people an assistant sent and crawler fetches in the week before the run against the week since.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Asks mttr to read a site again, after it has been changed. Returns a job to watch with mttr_job. A site is read at most once every ten minutes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| reason | string | no | What was changed, in a few words. |
What assistants were found to cite for a site, question by question, from lookups already made, and the credits left for more. Costs nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Asks ChatGPT, Gemini and Perplexity one question with web search on, and says whether each cites the site, where, whether it names it without citing it, and who it cites instead. Paid in mttr credits; mttr_citations shows the price and the balance first. Only the assistants mttr is connected to are asked: while none is, it answers 503 and costs nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| question | string | yes | What a buyer would ask an assistant, in their words. Leave the site's name out. |
Signs the person up with their email, the one call that works before mttr has a key for them. It answers their key, shown once, and the command that connects with it. Connect again with the key: it reads any public site’s report at once, and claiming their site with mttr_claim adds its private parts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | The person's email address. |
Starts claiming a site for the person: the TXT record or the file that proves they control it. Put either one up, then call mttr_claim_check. A claimed site joins their account: its Search Console figures, visits, citations and rivals, their work board and their progress page. Any key reads a site’s public report without a claim.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Checks the record or file from mttr_claim and, once it is found, adds the site to the person's account. A new DNS record can take a few minutes to be seen.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Names a site the person has claimed on the public leaderboard, with a link to its report, or with show false takes its name off again so it goes by an anonymous code. Only a claimed site can be named.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| show | boolean | no | True to name it, false to make it anonymous again. True if left out. |
Tells mttr what you did on a site, after each step: what you planned, changed, checked, or where you got stuck, what you found along the way, the files you touched and the rules you worked on. It shows on your person’s progress page, and mttr reads these to get better. Never send secrets or a site’s private data.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| step | string | yes | Which step this was. |
| did | string | yes | What was done, in a sentence or two. |
| found | string | no | What you found along the way, such as what was true of the site’s code. |
| files | string | no | The files touched, separated by commas. |
| rules | string | no | The mttr rules worked on, by id, separated by commas. |
| proposal | number | no | The proposal this step carried out or checked, by its id from mttr_propose, when the site works by approval. |
Sets how you work on one of the person's claimed sites: automatic, where you deploy each change as you go, or approve, where you propose each change with mttr_propose and deploy it only once the person approves. Turning approve off is emailed to the person. mttr_proposals({ site }) says which a site is set to.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| mode | string | yes | approve to ask the person before each change, automatic to deploy as you go. |
Before you deploy a change to a site set to approve, proposes it to the person: mttr keeps it and emails them what the change is, the rule and pages, your summary marked as your words, and an Approve and a Decline link, each working once and lapsing after 72 hours. Then wait: call mttr_proposal with the id until it says approved, and deploy only then. Declined or expired means do not deploy. At mo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| title | string | yes | What the change is, in a few words on one line, at most 120 characters. |
| summary | string | yes | What the change does and why, in a few sentences the person can judge, at most 2000 characters. |
| rule | string | no | The mttr rule it answers, by id, such as answer-first. Leave it out for a change no rule names. |
| pages | string | no | The pages it changes, as paths separated by commas, such as /pricing,/about. At most 20; none for the whole site. |
| diff | string | no | The change as a unified diff, at most 20,000 characters. Shown to the person, never applied by mttr. |
Where one proposal stands: pending, approved, declined or expired, with "deploy" true only once the person approved it, and their reason when they declined. Poll it every few minutes after mttr_propose; deploy only when it says approved.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | number | yes | The proposal id that mttr_propose returned. |
The person's proposals, newest first, each with where it stands, for one site or all of them. With a site, it also says whether that site is set to approve or automatic: check it before you start work on a site.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | no | Only proposals for this site, and its mode. |
The person's work across their sites, as their progress page shows it: the next fix to make, with the words to work from, then every other fix by worth, what slipped back, what a read has checked fixed, and sites changed since their last read that need reading again. A fix counts as done only once a later read finds it passing.
No parameter schema on file.
A claimed site's content brain as files to save under .mttr/brain/ in its repository: what the business does and where, how its pages read, the facts its structured data states, what is worth writing, and every brief so far. Read it before writing any page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
The brief for the page most worth writing next on a claimed site: the question, why, the kind of page and its path, the facts to use, the voice, and the rules it will be held to. mttr does not write the page; you or your person do. At most three briefs are open at once. When the page is live, call mttr_rescan.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Says where a content brief's page went on the site, by the brief's id from mttr_content_next and the page's path. The brief goes live when a later read finds that page, and keeps where the site stood then. Ask for a read with mttr_rescan after.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| brief | number | yes | The brief's id, from mttr_content_next. |
| path | string | yes | The page's path on the site, starting with /, such as /services/sump-pumps. |
Drops one of your open content briefs for a site, by its id, freeing its place among the three open at once. A dropped brief is never handed out again.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| brief | number | yes | The brief's id, from mttr_content_next. |
Briefs for posts about a page that went live from one of your content briefs: for X and for LinkedIn, the point of the page, one fact of the site's own that carries it, the link, the voice, and the characters left (X counts a link as 23). mttr writes no post and posts nothing; you or your person write them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| brief | number | yes | The brief's id, from mttr_content_next. Its page must be live. |
What the person queued for you from their mttr, oldest first: each task with its id, its site, and the words to work from. Check it when you start, and whenever an answer says tasks are waiting.
No parameter schema on file.
Says a queued task is done, by its id from mttr_queue. The fix itself counts only once a later read finds it passing, so ask for a fresh read with mttr_rescan.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | number | yes | The task id from mttr_queue. |
A private link to the person's progress page: their sites, every read, what each changed, and what this agent has asked. Signed with this key; it lapses after the days asked (30 if none, 90 at most) or when the key is rotated. Hand it only to the person.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | number | no | How many days the link lasts, from 1 to 90. |
The person's portfolio, private to them: one score across every site they have claimed, half for what was improved while they held each site, three tenths for where the sites stand now, and a fifth for search traffic, not counted yet. Every site by its real name with what it gives each part and why, what the public would see of it, and for each part what would move it most. A score says the pages
No parameter schema on file.
Changes the person's portfolio: publish or hide it, a display name (shown as chosen by its holder, not checked; null clears it), a home site that says who is behind it (one of their sites proved by DNS or a file), or whether one site is named on it or goes by its code. A site is named only where its own owner lets it be. Answers the portfolio as mttr_portfolio does.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| publish | boolean | no | True to publish, false to hide. |
| name | string | no | A display name, at most 40 characters. |
| home | string | no | One of the person's sites proved by DNS or a file, as a domain. |
| site | string | no | A site in the portfolio, to set how it is shown. |
| shown | string | no | named, or code for its code on the profile. Give it with site. |
For the owner of a site: takes it out of every portfolio but their own, at once, or with out false puts it back. Needs the site proved with this key by DNS or a file. To keep a site in portfolios but take its name off, call mttr_list with show false.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| out | boolean | no | True to take it out, false to put it back. True if left out. |
How a rescan stands: waiting, running, done or failed, and how many reads are ahead of it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | number | yes | The job id that mttr_rescan returned. |
The newest things that happened: reads asked for, finished and failed, scores that moved, rules that were fixed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | no | Only events for this site. |
| limit | number | no | How many to return. |
The crawl as it stands: the sites being read now, the next in line, and how the reads that ended over the last 1, 7 or 30 days ended.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | number | no | The range, in days: 1, 7 or 30. The week when left out or anything else. |
The links of a site from its latest run: broken ones by default, or all, those in page content, or the other sites linked to. Link text read from the site comes under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| show | string | no | Which links. |
| q | string | no | Text a path, a site or the link text must contain. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
What a site covers: its subjects and the pages under each, pages competing for the same search, and places a subject is missing from. A model named the subjects, so names come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
How a site is put together: its sections, how many clicks each sits from the home page, how much of each is linked from page content, and the links between sections.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| links | string | no | Which links to count between sections. Content links when left out. |
Every page of a site's latest read, one of three ways. tree: by address, folders as branches, each page with its state, failing rules, clicks from home and words. links: each page reached from home with its clicks and its first way in, the hubs, and the pages no link leads to (none named when the read stopped at its page limit). meaning: each page placed from 0 to 1 across and down by what it is a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| view | string | no | tree (the default), links or meaning. |
Two sites already read, rule by rule: the scores and stages side by side, and the rules each is ahead or behind on by the share of its pages passing. With view "content", their content by meaning instead: their pages measured, page pairs both write about with words on each, and what only one of them writes about. Page titles come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| with | string | yes | The other site, as a domain already read. |
| view | string | no | rules (the default) or content. |
Verdicts a model could not be relied on for, which wait for a person and count neither for nor against a score. Only sites with something waiting, a screen at a time, newest read first, with the total across every site. What the model recorded comes under "quotedDetail".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | number | no | How many to skip, for the next part of a long list. |
The rulebook: every rule mttr checks, with its stage, its weight and how to fix a failure.
No parameter schema on file.
Pages of a site that mean nearly the same thing, grouped, which may compete for one search. With a path, the pages nearest that page, each with the two passages that come closest. Read from vectors of the page text, so the site must have been embedded. Passages come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| path | string | no | A page, as a path such as /guides/gravel. Left out, the groups of pages that read alike. |
| limit | number | no | How many to return. |
The sites closest in meaning to one site, closest first: the ones writing about the same work, which are its likeliest rivals. Read from one vector a site kept in the catalog, so both sites must have been embedded.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| limit | number | no | How many to return. |
The public leaderboard: every ranked site by the score of its latest read, places shared on a tie, or the board of one crowd: a line of work with "in", a state, a city in that state, a size, or any of them together, each place counted as a site's report counts it. Each with its stages, pages read and its score the read before. With "record", one of the records instead: the fastest to answer, the m
| Parameter | Type | Required | Notes |
|---|---|---|---|
| in | string | no | A line of work, such as trades, for its own board. Left out, every site. |
| state | string | no | A US state by its two letters, such as MO, for the board of the sites there. |
| city | string | no | A city in that state, such as Dallas, for the board of the sites there. Needs state. |
| size | string | no | Sites of about one size, by the pages a read took of them. |
| record | string | no | One record in place of the places. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
One thing mttr knows and every way on from it, each edge marked by what made it: meaning (close in meaning, never better or cited), links (pages linking between sites, or between pages of one site, with their anchor text) or rules (code checking pages against the rulebook). Across sites: a site, a market, a line of work or a rule. Inside one named site: a page, a passage of its text, the pages tha
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node | string | yes | What to open: site:example.com, s:<code> for an unnamed site, market:<code>, work:<id> such as work:trades, rule:<id> such as rule:answer-first, page:example.com/path, alike:example.com/path, passage: |
| trail | string | no | The steps walked so far, as the last reply gave them under "onward". Next never leads back into it while another way on is open. |
| by | string | no | What kind of edge led here, so Next takes another kind. |
| why | string | no | On a site node: a named site near it, for the passages of the two that came closest. Read the first time it is asked for, then kept. |
The markets last found: groups of sites close in meaning, each named by the site at its centre, largest first. A site in a market is writing about the same work as the others in it.
No parameter schema on file.
Ask a question, such as a buyer would, and get the passages that answer it best, and each site once by its best passage under "bySite", from the sites closest to the question, one market, or named sites. At most 12 sites are read. Passages come under "quoted". Close means similar in meaning, not right, and not cited by an assistant.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | The question, in plain words. |
| market | string | no | Only this market, named by the site at its centre, as mttr_markets gives it. |
| sites | string | no | Only these sites, as domains separated by commas. |
| limit | number | no | How many to return. |
How other sites pass a page rule a page fails: pages on sites in the same market, or the nearest sites, that pass the rule and are closest to the page in meaning, each with the passage that comes closest. Worked examples for writing the fix. Passages come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| path | string | yes | The page, as a path such as /guides/gravel. |
| rule | string | yes | A page rule id, as mttr_rules gives it. |
| limit | number | no | How many to return. |
A site set against its market, or its nearest sites when it has none: its place by score, the median score, and for every rule the share of pages passing here against the market median and the best site, with the rules furthest behind first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
Content gaps: subjects a site’s rivals write about that nothing on the site comes close to in meaning, the one most rivals cover first, each with the rival pages and the nearest page here. Page titles come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| limit | number | no | How many to return. |
The signs of generated text on a site's pages: hidden characters that can carry a watermark or hidden instructions (with any message spelled out in tag characters), chat and markdown left in, placeholders never filled in, stock phrasing, and heavy use of dashes. Strong signs first. A sign is not proof. Site text comes under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| show | string | no | strong (the default): pages with hidden or left-in text; all: any sign. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
A site's competitors: where it is (from the address or phone numbers on its own pages), the sites near it that do similar work by meaning, everyone near it, and sites doing similar work elsewhere, each with score, pages, and how many sites read link to it, against the site's own.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
The sites mttr has read that link to a site, the most pages first, with how many sites were counted. Links from sites mttr has not read are not known.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
Clicks from Google search, from Search Console. With no site, every site read from Search Console with its clicks and impressions against as many days before, and the searches nothing on two or more of the sites answers, grouped by subject. With a site: clicks by day, the totals against as many days before, and each page's clicks now against before, those that lost most first. A baseline to judge
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | no | The site, as a domain such as example.com. |
| show | string | no | lost (the default), gained, or all pages by clicks. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
Who fetched a site's pages in the last 28 days against the 28 before, counted by the site's own server: people, people an assistant such as ChatGPT or Perplexity sent, and crawlers by name, AI crawlers marked. By day, by crawler, by assistant and by page, with the last day an AI crawler fetched each page. A crawler fetching a page is not a citation, and a crawler is as it named itself. Only sites
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| limit | number | no | How many to return. |
The searches Google showed a site's pages for, from Search Console, with clicks, impressions and average place: by query, by page, or only those close to the top (places 4 to 20). Only sites whose owner added mttr in Search Console have any. Queries come under "quoted".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| site | string | yes | The site, as a domain such as example.com. |
| show | string | no | queries (the default), pages, near: queries close to the top, unanswered: searches no passage on the site comes close to, brand searches left out, or better: searches another page reads closer to than |
| page | string | no | A full page address, to list only the queries that page was shown for. |
| limit | number | no | How many to return. |
| offset | number | no | How many to skip, for the next part of a long list. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install mttr or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| mttr_sites | no tags | |
| mttr_site | no tags | |
| mttr_brief | no tags | |
| mttr_plan | no tags | |
| mttr_pages | no tags | |
| mttr_page | no tags | |
| mttr_product_check | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| mttr_agent_view | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| mttr_schema_create | no tags | |
| mttr_x_card | untrusted-input | untrusted-input: keyword "fetch", declares openWorldHint: true (interacts with entities outside the server) |
| mttr_locations | no tags | |
| mttr_ssl_check | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| mttr_changes | no tags | |
| mttr_rescan | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| mttr_citations | no tags | |
| mttr_cite | untrusted-inputexternal-sink | untrusted-input: keyword "web_search"; external-sink: declares readOnlyHint: false, openWorldHint: true |
| mttr_signup | state-write | state-write: declares readOnlyHint: false |
| mttr_claim | state-write | state-write: declares readOnlyHint: false |
| mttr_claim_check | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| mttr_list | state-write | state-write: declares readOnlyHint: false |
| mttr_log_work | state-write | state-write: declares readOnlyHint: false |
| mttr_approvals_set | state-write | state-write: declares readOnlyHint: false |
| mttr_propose | state-write | state-write: declares readOnlyHint: false |
| mttr_proposal | no tags | |
| mttr_proposals | no tags | |
| mttr_todo | no tags | |
| mttr_content_brain | no tags | |
| mttr_content_next | no tags | |
| mttr_content_done | state-write | state-write: declares readOnlyHint: false |
| mttr_content_drop | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| mttr_content_posts | no tags | |
| mttr_queue | no tags | |
| mttr_queue_done | state-write | state-write: declares readOnlyHint: false |
| mttr_progress_link | state-write | state-write: declares readOnlyHint: false |
| mttr_portfolio | no tags | |
| mttr_portfolio_set | state-write | state-write: declares readOnlyHint: false |
| mttr_portfolio_veto | state-write | state-write: declares readOnlyHint: false |
| mttr_job | no tags | |
| mttr_events | no tags | |
| mttr_crawls | untrusted-input | untrusted-input: keyword "crawl" |
| mttr_links | no tags | |
| mttr_topics | no tags | |
| mttr_structure | no tags | |
| mttr_map | no tags | |
| mttr_compare | no tags | |
| mttr_reviews | no tags | |
| mttr_rules | no tags | |
| mttr_similar | no tags | |
| mttr_near | no tags | |
| mttr_leaderboard | no tags | |
| mttr_explore | no tags | |
| mttr_markets | no tags | |
| mttr_search | no tags | |
| mttr_examples | no tags | |
| mttr_market | no tags | |
| mttr_gaps | no tags | |
| mttr_tells | no tags | |
| mttr_competitors | no tags | |
| mttr_backlinks | no tags | |
| mttr_traffic | no tags | |
| mttr_visits | no tags | |
| mttr_queries | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish mttr can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.