SEO Receipts

GROWTH PLAN · READ-ONLY · ONE SITE PER KEY

Give your AI assistant your site's SEO history.

Claude Code, Cursor, and Codex can read the 15 reports SEO Receipts already stores for one site you own: Search Console performance for both windows, Site Check findings with their fix steps, page speed measurements, your task list, what each shipped change did, and Google indexing status.

Create an access key

NEEDS A CLIENT THAT SETS REQUEST HEADERS · SEE SETUP BELOW

EXAMPLE EXCHANGE

“Did the pricing page change work?”

REPORT
CHANGE_DETAIL
SHIPPED
2026-07-01
WINDOW
28 DAYS · COMPLETE

CLICKS BEFORE

150

CLICKS AFTER

200

POSITION BEFORE

7.8

POSITION AFTER

6.1

Every response states its dates and where the numbers came from, and says that movement after a change is not proof the change caused it.

SAMPLE DATA

SEO Receipts has two connectors. Here is which one you want.

They read different data and are set up differently. Running both at once is fine and common.

FREE · SIGN IN WITH GOOGLE

Search Console connector

Reads your Google Search Console account directly: clicks, impressions, CTR, average position, query and page rows, and sitemap status, for any property you allow. Six tools. Signs in with OAuth, so it works in Claude, ChatGPT, Cursor, and Codex.

Set up the free connector

GROWTH · ACCESS KEY

This one: the Workbench connector

Reads what SEO Receipts has already checked and stored for one site: Site Check findings and their fix steps, page speed measurements, your task list, what each shipped change did afterwards, and indexing status. 15 reports. Authenticates with an access key, so it needs a client that sets request headers.

Set it up below

Three tools, 15 reports

The assistant asks what is available, then runs it.

Publishing one tool per report would put 15 descriptions into your assistant's context in every session. Instead it gets three tools and looks up the rest when it needs them.

  1. seo_list_reports

    Lists every report with a one-line purpose. The assistant calls this first when it does not know the report id.

  2. seo_describe_report

    Returns a report's parameters, what it returns, and the cases it is the wrong choice for. Pass a check id to get that finding's fix steps instead.

  3. seo_run_report

    Runs one report against your site and returns structured JSON with the dates and sources included.

Every report it can run

YOUR SITE'S PAGES · 7

Site overviewsite_overview
The property's current state in one response: latest Site Check, counts, and the active task.
Open Site Check findingssite_check_findings
Every open technical SEO finding from the latest completed Site Check, with the page and the fix steps.
Findings fixed since an earlier checkfixed_findings
Findings that were open in an earlier Site Check and are gone from the latest one.
Site Check historysite_check_history
Recent Site Checks with their page counts and finding totals, so you can see the direction of travel.
Pages read by the latest Site Checkcrawled_pages
The per-page record behind the findings: status code, title, description, canonical, word count, and response time.
Page speed measurementspage_speed
Real-user and lab speed measurements for the pages the latest Site Check measured.
Complete evidence bundleevidence_bundle
Every stored slice for this property in one structured response.

GOOGLE SEARCH PERFORMANCE · 3

Search queries, this window against the lastsearch_queries
Stored top Search Console queries with clicks, impressions, CTR, and average position for both windows.
Landing pages, this window against the lastsearch_pages
Stored top Search Console landing pages with clicks, impressions, CTR, and average position for both windows.
Watched queriesquery_watchlist
The queries the owner chose to track, with their movement and the landing page Google picked.

TASKS AND SHIPPED CHANGES · 4

Today's tasktodays_task
The single task SEO Receipts picked for this site today, with its evidence and ordered steps.
Task backlogtask_backlog
The queued tasks behind today's, ranked by score.
Shipped changes and what happened aftershipped_changes
Each change marked shipped, with the changed page's search figures for equal windows after and before it.
One change, day by daychange_detail
The daily clicks, impressions, and position for one shipped change, plus the queries that moved.

GOOGLE INDEXING · 1

Google indexing statusindexing_status
How many known pages Google reports as indexed, and which recently checked pages are not.

ONE ADDRESS · ONE ACCESS KEY

Add the address and your key to your AI client.

Create the key in the Workbench under “Let your assistant fetch fresh site data”. It is shown once. Paste it into the Authorization header below, replacing sr_agent_YOUR_KEY.

https://seoreceipts.com/api/agent/mcp

CLIENT 01

Claude Code

ACCESS KEY

Adds the server with the access key as a request header, in one command.

  1. 1Create an access key in the Workbench and copy it.
  2. 2Run the command below, with your key in place of the placeholder.
  3. 3Ask Claude Code to list the SEO reports for your site.
claude mcp add --transport http seo-receipts https://seoreceipts.com/api/agent/mcp \
  --header "Authorization: Bearer sr_agent_YOUR_KEY"
Claude Code MCP documentation

CLIENT 02

Cursor

ACCESS KEY

Add the server to your global or project mcp.json file.

  1. 1Create an access key in the Workbench and copy it.
  2. 2Open your global or project mcp.json file.
  3. 3Add the block below and reload Cursor.
{
  "mcpServers": {
    "seo-receipts": {
      "url": "https://seoreceipts.com/api/agent/mcp",
      "headers": {
        "Authorization": "Bearer sr_agent_YOUR_KEY"
      }
    }
  }
}
Cursor MCP documentation

CLIENT 03

Codex

ACCESS KEY

Codex sets request headers in config.toml rather than on the command line.

  1. 1Create an access key in the Workbench and copy it.
  2. 2Open ~/.codex/config.toml.
  3. 3Add the block below and restart Codex.
[mcp_servers.seo_receipts]
url = "https://seoreceipts.com/api/agent/mcp"
http_headers = { "Authorization" = "Bearer sr_agent_YOUR_KEY" }
Codex MCP documentation

Claude desktop and claude.ai

Custom connectors there sign in with OAuth and give you nowhere to put a request header, so this connector cannot be added that way yet. The free Search Console connector uses OAuth and does work there.

Free connector setup

EXAMPLE QUESTIONS

Questions it can answer about this site.

The assistant picks the report, reads the rows, and can act on them in the same session, because it already has your code open.

  1. 01

    Which of my pages lost the most clicks against the previous 28 days?

  2. 02

    List the new findings from the latest Site Check and fix the top one.

  3. 03

    Did the change I shipped to /pricing/ move anything? Show me the daily numbers.

  4. 04

    How many of my known pages does Google report as indexed?

  5. 05

    What is today's task, and what are the exact steps?

  6. 06

    Which queries have more than 500 impressions and an average position past 10?

What a key can do

One site, read-only, revocable.

An access key is created for a single site and cannot be pointed at another. No report accepts a site or account parameter, so there is no request an assistant can phrase that reaches data you did not grant.

  • Reads only

    The tool surface has no write, publish, or delete. Nothing an assistant does here changes your site or your account.

  • Shown once

    SEO Receipts stores a hash and a short prefix, never the key. Revoking one key leaves your other keys and your Google connection alone.

  • Bounded rate

    Sixty requests per minute per key, so a loop in an agent cannot run up your Search Console quota.

  • Truncation is disclosed

    Responses are capped at 96 KB. When one is shortened, it names each shortened path and how many entries existed.

Read the full privacy policy and terms of service.

COMMON QUESTIONS

Before you file a bug.

Can I add this as a connector on claude.ai or in the Claude desktop app?OPEN +

Not yet. Custom connectors there sign in with OAuth and have no field for a request header, and this server authenticates with an access key in the Authorization header. Use Claude Code, Cursor, or Codex, which all support headers.

How is this different from the free Search Console connector?OPEN +

The free connector reads your Google Search Console account directly and returns what Google returns. This one reads what SEO Receipts has already checked and stored for one site: Site Check findings, page speed measurements, tasks, shipped-change measurements, and indexing status. You can run both at once.

The assistant says it cannot find any tools.OPEN +

Check that the Authorization header contains the whole key, including the sr_agent_ prefix. A key is shown once when you create it; if you no longer have it, revoke that key in the Workbench and create another.

A report returned fewer rows than my site has.OPEN +

Every response carries an outputBudget field. When truncated is true, it lists which paths were shortened and how many entries existed, so the assistant can ask a narrower question. Site Checks also read a bounded number of pages, and each report states how many it read.

Can the assistant change anything on my site or in my account?OPEN +

No. Every report is a read. There is no write, no publish, and no delete in the tool surface, and no report takes a site or account parameter, so a key can only ever reach the one site it was created for.

GROWTH PLAN · $29/MONTH

Create a key, paste two lines, ask your first question.

Growth includes the access keys for this connector, weekly Site Checks of up to 250 pages, fifty watched queries per site, and daily commentary on each new report.

See plans and pricing