Skip to content
seostack

For AI agents

Give any AI agent your whole SEO warehouse.

SEO Stack runs an MCP server over your warehoused Search Console, GA4 and AI visibility data. Connect an agent you already run or build a new one, and it has every row with no request cap and no 16-month cliff. Most people are connected in about two minutes.

Connects

  • Claude
  • ChatGPT
  • Gemini
  • Google Search Console
  • Google Analytics 4

14 day trial · MCP access on every plan · No BigQuery, no service accounts, nothing to configure

Trusted by leading companies

Setup

Two minutes, one key, no pipeline

The usual reason an agent never gets built is that wiring the data up takes longer than the agent does. A Cloud project, a service account, OAuth scopes and an export job all have to exist before a single prompt runs. Here the warehouse already exists, so connecting to it is a config block.

  1. 01Generate a key

    One click in the MCP screen. Each key authenticates a single client as you, and you can name, rotate and revoke them individually.

  2. 02Paste the config

    Point your agent at the endpoint with the key in the Authorization header. Claude, ChatGPT and Gemini each have a ready-made snippet.

  3. 03Start building

    The whole warehouse arrives as tools. No pipeline, no BigQuery, no service account, and nothing to keep running afterwards.

The MCP server in detail

mcp.config.json

api.seo-stack.io/api/mcp

{
  "mcpServers": {
    "seostack": {
      "url": "https://api.seo-stack.io/api/mcp",
      "headers": {
        "Authorization": "Bearer sk_mcp_YOUR_KEY"
      }
    }
  }
}

AI clients

  • Claude
  • ChatGPT
  • Gemini
  • Cursor
  • Grok
  • DeepSeek

Agent frameworks

  • Hermes
  • OpenClaw
  • Astra
  • Custom agents
  • Your own scripts

Automation platforms

  • n8n
  • Make
  • Clay
  • Anything that speaks MCP

What people build

Six agents you could have running this week

These are not hypotheticals, they are the shapes that keep coming up, and each one is really a question about what data the agent can reach. Pick a tab to see the tools it calls and the loop it runs.

An auditor that starts from performance rather than a crawl

Most audit agents crawl a site and grade it against a checklist, which tells you what is wrong and nothing about what it costs. Give the agent warehoused Search Console data and it can rank every finding by the clicks actually attached to it, then go back years to see whether a page was always like this or broke on a particular date.

MCP tools it calls

  • List My Websites
  • Query Search Performance
  • Get Metrics Aggregated By URL Segment
  • Get Algorithm Updates
  1. 01PullEvery URL and query for the property, with no row cap and full history
  2. 02SegmentGroup by folder, page type or template to find where the decay is concentrated
  3. 03DateWalk backwards to the month the pattern started, and check it against core updates
  4. 04RankOrder findings by the clicks and revenue at stake rather than by severity label

An audit where every issue carries a number, so the fix list arrives pre-prioritised.

Reporting

Every channel, in the place your team already talks

Search Console covers organic, GA4 covers paid, social, direct and referral, and AI visibility covers the part that has no report anywhere else. An agent holding all three can post one update covering the whole mix, on a schedule, into Slack, Teams, WhatsApp or wherever else it has an integration.

Weekly marketing update

Posted by an agent, on a schedule, from Search Console, GA4 and AI visibility data

SS

SEO Stack AgentApp

#marketing-weekly · Monday 08:00

Last week across every channel: 92,170 sessions and £303,200 in revenue.

  • GSCOrganic search+6%
  • GA4Paid search-4%
  • GA4Paid social+12%
  • GA4Direct+1%
  • GA4Referral-9%
  • AILLM referrals+38%

LLM referrals grew fastest at +38%, still only 3% of sessions but the fastest-moving line on the board, while referral fell 9%. Ask me for the query, landing page or prompt-level detail behind any line.

Illustrative figures. The agent posts wherever you point it, and the numbers come from the same warehouse the dashboard reads.

The dashboard nobody opens is a genuinely hard problem, and it is not solved by a better dashboard. Putting the numbers into the channel where the conversation already happens is what changes how often they get read, and an agent that can answer the follow-up question in the same thread is what stops the thread ending in somebody exporting a CSV.

Self-learning

An agent that remembers what it already tried

Most SEO automation is stateless. It runs, it recommends, and next month it recommends the same thing because nothing recorded what happened last time. The annotation system is what turns that into a loop, because an agent can read the change history before it acts and write to it afterwards.

Combined with warehoused performance data and Google's algorithm update markers, the agent can then measure its own change against the affected URLs and rule the update in or out, which is the difference between an agent that generates work and one that gets better at choosing it.

Annotations and Google algorithm update markers plotted on the same chart as Search Console clicks and impressions in SEO Stack
The change log an agent reads before it acts, and writes to after.

Why it works

The agent is only as good as what it can reach

Agent quality is mostly a data problem. A capable model reasoning over a truncated, sixteen-month sample will confidently tell you something wrong, and no amount of prompt work fixes it, because the gap is in the input.

10m+

rows per call

Google's Search Console API caps a response at 50,000 rows and makes you paginate for the rest. The warehouse has no such cap, so an agent asking a broad question gets a complete answer rather than a truncated one it cannot tell is truncated.

5 yrs+

of history, minimum

Google's own window rolls at sixteen months, which caps what any agent built on its API can reason about, whether or not the agent realises it. Warehoused history means year-on-year comparisons keep working, so an agent looks at a trend rather than at a snapshot.

23

tools over one connection

Search Console, GA4 and AI visibility, exposed as named tools rather than as a raw query interface, so the model picks the right call instead of assembling one and hoping.

The MCP screen in SEO Stack, where API keys are generated, named, rotated and revoked
Keys are generated, named and revoked here, one per client.

The case for it

Why teams connect an agent rather than open a dashboard

01

Cheaper than the productivity it buys back

An agent that writes the weekly update, watches a portfolio for decay and answers the follow-up questions in the channel costs one subscription, and Basic at $129.99 a month includes MCP access. The comparison is not against another tool, it is against the hours currently going into assembling the same numbers by hand.

02

More of your data, for longer

The agent reasons over years of first-party history rather than a rolling sixteen-month sample, which matters most for exactly the questions people build agents to answer, i.e. is this a trend, and has this happened before.

03

No request caps to design around

You are not writing pagination logic or rate-limit backoff, and you are not deciding which slice of the data to sacrifice to fit inside a 50,000-row response. The agent asks the question it wants to ask.

04

Better outcomes, because the loop closes

Reading annotations, logging changes and measuring them against organic performance is what turns automation into something that improves rankings and traffic rather than something that generates a longer to-do list.

05

Nothing to maintain afterwards

No export job that breaks when a schema changes, no service account that expires, and no scheduled query that has been failing for three weeks without telling anyone. The connection is a key and a URL, and the warehouse fills itself.

06

It works with the agent you already have

This is not a framework you have to adopt. If your team is already running something in Hermes, OpenClaw, n8n or a script somebody wrote, it connects over MCP without being rewritten.

Step by step

Build an SEO agent for Slack, start to finish

A full walkthrough of the whole build, i.e. generating the MCP key, wiring the config, creating the Slack app and its scopes, enabling socket mode, and putting the agent on a cron so the report arrives before anybody asks for it. It uses Hermes as the agent, and the SEO Stack half applies whichever framework you run.

Objections

Before you start

Which agents and clients can connect?

Anything that speaks MCP, which by now is most of them. Claude, ChatGPT, Gemini, Cursor, Grok and DeepSeek connect as clients, agent frameworks such as Hermes, OpenClaw and Astra connect the same way, and automation platforms including n8n, Make and Clay do too. If you have written your own agent, it needs an MCP client library and a bearer token, and nothing else.

How long does it actually take to connect?

For an agent that already exists, it is one key and one config block, so a couple of minutes is realistic and seconds is common. There is no Cloud project, no service account, no OAuth consent screen and no export job, because the agent is reading a warehouse that is already built rather than assembling one on the fly.

How is it authenticated, and can I revoke a key?

A bearer token in the Authorization header. Each key authenticates a single client as you, and you can name, rotate and revoke them individually from the MCP screen, so an agent running on a server and an agent running on your laptop can hold different keys and be turned off separately.

What are the request limits?

There is no row cap. Google's Search Console API caps a single response at 50,000 rows and makes you paginate for the rest, and it stops at 16 months regardless. MCP reads the warehouse, so a query covering ten million rows returns ten million rows, across the full history you hold.

Can agents write as well as read?

Yes, for the change log. An agent can read existing annotations and log new ones, which is what makes a self-correcting loop possible, because the agent can see what has already been tried and record what it did for the next run to measure.

Can an agent access GA4 data, or only Search Console?

Both, in the same call where it makes sense. Sessions, engagement, transactions and revenue come back beside clicks, impressions, CTR and position, which is how an agent can reason about a landing page and the query that brought somebody to it at the same time rather than in two passes.

Can it post into Slack, Teams or WhatsApp?

That part is your agent rather than ours, and it is the easy half. SEO Stack supplies the data over MCP and the agent posts wherever it already has an integration, which for most frameworks means Slack and Teams out of the box and WhatsApp through a gateway. There is a full walkthrough for Slack on the blog.

Does an agent see every property on the account?

It sees what the key's owner can see, so access follows the same per-property permissions as the interface. Give a contractor access to one property and an agent authenticated with their key can only read that one.

Which plans include MCP access?

Every one of them. Basic includes MCP access to Search Console, GA4 and AI visibility data, and the higher plans raise the call allowance rather than adding the feature. So the cheapest way to test whether an agent is worth building is to build it.

Do I need to know how to code?

Not to connect an existing client, which is a copy and paste job. Building a bespoke agent that posts into a channel on a schedule does involve some setup, and the Slack walkthrough on the blog takes it step by step, but the SEO Stack half of it is the key and the config block.

Connect an agent before you build one.

Generate a key, point whatever you already use at the endpoint, and ask it something you would normally open four tools to answer. If it comes back with the right answer, you have your business case for building the rest.

14 day trial · MCP access on every plan · Cancel anytime · Nothing to configure