Docs · MCP v2.2.0

Build with SiteTR.

One MCP server, 18 grounded tools, one flat price. Get from install to your first audit in about four minutes.

$ claude mcp add --transport http sitetr https://sitetr.com/api/mcp -H "Authorization: Bearer $SITETR_TOKEN"
→ 18 tools registered
→ ready
Menu
Docs / Getting started / Quickstart

Quickstart

SiteTR ships as a SaaS dashboard and as an MCP server. This page gets you from zero to a prioritized fix plan in your AI agent.

Time 4 minYou’ll need An agent (Claude / Cursor), a Search Console propertyUpdated 2026-10-06

1. Install the MCP server

SiteTR exposes 18 grounded tools over the Model Context Protocol. Add the server to your agent config once, and every tool is available to Claude, Cursor, or any other MCP-compatible client.

shell
$ export SITETR_TOKEN="…the token from onboarding"
$ claude mcp add --transport http sitetr https://sitetr.com/api/mcp -H "Authorization: Bearer $SITETR_TOKEN"
$ # any MCP client: POST https://sitetr.com/api/mcp with the Authorization header
→ 18 tools registered · ready

Where the token comes from

The bearer token is an installation-level secret — one token per SiteTR instance, issued by whoever operates it. There is no signup form for it.

operator
$ openssl rand -hex 32 # generate — set as MCP_TOKEN on the server
→ the MCP endpoint answers 503 until a token is set
Early access on sitetr.com. We operate the instance, so the token is issued manually during onboarding — request access and we’ll send it over. Running your own instance? Then you are the operator: set MCP_TOKEN yourself.

The token grants read access to the instance’s data. Write tools stay off unless the operator turns them on — submit_audit requires MCP_ALLOW_SUBMIT=true on the server.

The agent is the front door. The core loop — ask, audit, decide — runs entirely in your agent. The dashboard adds what teams need on top: reports, approvals, watch lists, and Search Console setup.

2. Connect Search Console (once, in setup)

SiteTR’s value is that findings are cross-referenced with your real search performance — not a black-box difficulty score. Connect the Search Console property whose traffic you actually care about once, in the SiteTR dashboard — every tool that needs it (Decay Scan, audits, Content Gap) reads it from then on.

setup, then agent
setup connect your Search Console property in the dashboard → OAuth consent · access granted
you what’s quietly losing clicks?
SiteTR // decay_scan — last two 28-day windows, refresh vs rewrite

3. Ask a real question

No prompt-crafting required. SiteTR is built for the questions you’d ask a senior consultant on their first day.

agent
you what’s wrong with my site and what do I fix first?
SiteTR // runs audit_site + decay_scan, joined with GSC
  1. /pricing — LCP 4.8s, render-blocking hero image // critical
  2. /blog/mcp-guide — clicks −41% vs last window // decay: critical
  3. /product — llms.txt missing, GPTBot blocked // geo
→ verified against Search Console · 28d window

The tools

Every tool follows the same evidence/verify contract. Tool descriptions are what sells an MCP server — the ones in your client are these, verbatim.

Capabilitiescapabilities
Self-describing tool list + write-tool status (writes off by default).
Site Overviewsite_overview
List every tracked site with its latest audit score and tracked-keyword count.
Latest Auditlatest_audit
Latest stored audit for a domain: scores, GEO score, top issues, fix-plan size.
domainrequired — Site domain, e.g. example.com
Rank Historyrank_history
Per-keyword rank positions for a domain (latest, check count, trend).
domainrequired
Keyword Researchkeyword_research
Keyword suggestions via Google Autocomplete + Trends (+ Keyword Planner volumes when configured).
seedrequired
keyword — Alias for seed
gl
hl
limit
Alerts Listalerts_list
Recent threshold alerts (rank drops, score drops, drift, page changes), newest first.
domain — Optional: restrict to one site
limit
Submit Auditsubmit_audit
Run a full or quick audit for a site and store it (write tool — enabled only by explicit opt-in).
targetrequired — Absolute URL or domain to audit
domain — Alias for target
max_crawl_pages — 1-25, default 10
mode — Default full
Audit Statusaudit_status
Last audit summary for a domain: when, mode, pages crawled, scores.
domainrequired
Audit Issuesaudit_issues
Recorded issues for a domain, optionally filtered by severity.
domainrequired
severity
Audit Siteaudit_site
Full-site audit that ends in a prioritized to-do list. Every finding carries evidence and a verify step.
domainrequired — Site domain, e.g. example.com
Geo Readinessgeo_readiness
Scores whether AI assistants can actually read, quote, and cite your site — bot access, passages, entities.
domainrequired
live — Re-probe now (robots + crawl sample + bot probe) instead of reading the latest audit. Default false.
Decay Scandecay_scan
Flags pages quietly losing clicks — watch / warning / critical / emergency — with a refresh-vs-rewrite verdict.
domainrequired
Monitor Driftmonitor_drift
Named change detection — “schema removed,” “content gutted,” “noindex added.” Severity-graded, webhook + email.
domainrequired
limit
Keyword Clusterskeyword_clusters
Groups keywords by real SERP overlap.
keywordsrequired — 1-50 keywords to cluster
gl
hl
domain — Optional: flag clusters where this domain already competes
Content Gapcontent_gap
Discovers competitors from the SERP, crawls them, diffs the content gap. No competitor list required.
targetrequired — Your site (URL or domain)
competitor — Optional: skip discovery and diff against this site
seed_keyword — Required when competitor is not given — seeds SERP discovery
gl
hl
Generate Metagenerate_meta
Pixel-safe titles and descriptions, three variants, tone control. Never exceeds SERP truncation.
urlrequired — The page URL (brand and canonical derive from it)
keyword — Target keyword for the primary variants
page_title — Existing title, kept as one variant
page_description — Existing description, used as the base when given
tone — Optional LLM tone refinement (e.g. 'professional', 'playful') — costs a rate-limited LLM call
Generate Schemagenerate_schema
Schema.org templates with labeled placeholders. Deprecated types rejected outright.
typerequired — Schema type, e.g. Organization, LocalBusiness, FAQPage
urlrequired
page_title
Entity Reportentity_report
Live Wikidata / Wikipedia / Knowledge Graph resolvability plus sameAs coverage gaps.
domainrequired
name — Brand name to resolve (defaults to the site's derived name)
force — Bypass the cache and re-check live sources

Limits, transport & errors

Per-tool ceilings, generated from the server’s own rate-limit table — the expensive tools throttle, cheap reads don’t. Limits are per instance and reset on a sliding window.

submit_audit3 per 15 min
keyword_research10 per 15 min
geo_readiness3 per 15 min
decay_scan5 per 15 min
keyword_clusters4 per 15 min
content_gap3 per 15 min
entity_report10 per 15 min

Tools not listed have no per-tool ceiling — they read the instance’s stored data and stay cheap.

transport
$ POST https://sitetr.com/api/mcp # JSON-RPC 2.0, plain JSON — single request or batch
→ initialize · tools/list · tools/call # MCP protocol 2024-11-05
→ notifications (no id) get no response body # 202
How errors surface. HTTP level: 503 while no token is configured, 401 on a bad token, 400 on a malformed body. Protocol level: standard JSON-RPC codes (-32600 · -32601 · -32602). A tool that runs but fails — rate limit hit, write tools off, or honestly not enough data — answers isError: true with the reason in plain text. INSUFFICIENT_DATA is one of those reasons, not an error code: it means the engine refused to fabricate a number.

Evidence & verify

Everyone worries AI agents make things up. SiteTR’s evidence/verify pattern is exactly what agent tooling needs in 2026: the agent advises, the engine proves.

Every finding ships with three things

Evidence — the specific selector, header, request, or measurement that produced the finding. Verify — a copy-paste step (curl, DOM query, or agent tool call) that confirms the fix worked. Provenance — which provider the data came from and when it was last fetched. Never a fake number.

Integrity scoring. When SiteTR can’t reach a high confidence answer, it says so — INSUFFICIENT_DATA instead of a fabricated metric. Fabrication kills you the first time a power user checks.

What’s next