Written agent-first: connect the MCP server, then paste this page’s URL into your agent. Everything below is meant to be read by the model doing the work.
Your agent already knows the repo. What it cannot see is the outside: which queries Google shows the site for, which pages are gaining or losing clicks, what visitors do after they land, and whether a keyword is worth a page at all. AgentGrown syncs your Google Search Console and GA4 data into its own store and serves it over a remote MCP server, with live passthroughs to Google for anything not stored and keyword-demand lookups for anything not yet ranking. The agent asks questions; the answers come back as tables it can act on.
1. Sign in with Google at agentgrown.com. One consent grants read-only access to Search Console and Analytics for the Google account you choose. No password, no card.
2. Add your site. Type the domain. AgentGrown detects the matching Search Console and GA4 properties and starts syncing the last 180 days; the first numbers arrive within a couple of minutes. If the properties live under a different Google account, attach it from Connect.
3. Connect your agent. Claude Code:
Upgrading from the old npx agentgrown mcp setup? Remove that entry first: claude mcp remove agentgrown -s local, then run the command above.
Claude.ai, Cursor, ChatGPT, and any other client that supports remote MCP servers: add https://agentgrown.com/mcp as a remote MCP server and sign in with Google when prompted. The consent screen lets you scope the connection to one site or the whole account, and you can revoke it from Connect.
CI and headless agents: create an API key on Connect and send it as a bearer token. In Claude Code, keep the secret in the environment as AGENTGROWN_API_KEY and reference it from .mcp.json:
A static header disables the OAuth fallback, so use keys only where a browser sign-in is not possible.
Optional, free, no account: npx agentgrown init installs a local SEO-audit skill (titles, metadata, Open Graph, schema.org, sitemap, robots.txt, canonicals, internal links) into the repo for Claude Code, Cursor, or any AGENTS.md agent.
Start every session with seo_checkin: it returns the last 28 days against the prior 28, the top queries and pages with deltas, the biggest movers, GA4 organic sessions when synced, the site’s saved notes, and the dates the data runs through. Answer questions from stored data with gsc_query and ga4_query; before editing a page, query it by page so a title or H1 rewrite keeps the queries it already wins. Reach for gsc_live and ga4_live only when a question needs a dimension that is not stored (country, device, search appearance, any GA4 dimension by name). Check demand with the keyword tools before building a page; they draw from a free monthly allowance that every response reports, and repeats are cached. When you learn something durable about the site, save it with site_notes.
There is no ticket queue and nothing to mark shipped. You ask, decide with evidence, and ship in the repo as usual. The check-in shows what moved.
Every tool takes an optional site (domain or id); omit it when the connection is scoped to one site. Output is text: a header line with the domain, date range and data-through date, then markdown tables. Default 50 rows, hard cap 300, with a Rows: N of M shown footer. Errors come back as text.
site?dimensions up to 3 of date, week, month, query, page; metrics; last_days (up to 490) or date_range; compare_previous; up to 5 filters on query or page (contains, not_contains, equals, starts_with, ends_with); order_by, order, limit.dimensions from date, week, month, landing_page, channel_group, source; metrics including engagement_rate; organic_only (default true); filters, ordering, limit.start_date, end_date, up to 4 dimensions, type, dimension_filter_groups, aggregation_type, data_state (default all), row_limit, start_row.runReport. Inputs: dimensions[], metrics[], date_ranges[], dimension_filter, metric_filter, order_bys, limit, offset. The tool description lists the common dimension and metric names.seeds, top 100 by volume, joined with the queries the site already ranks for. 1 lookup; repeats cached 30 days.keywords; also stored against the site’s matching queries. 1 lookup per 1,000; cached.target? (defaults to the site’s domain). 1 lookup; cached.add. Notes return in every check-in.Search Console final data lags 2–3 days; the header of every response says which date the data runs through, and whether a backfill is still in progress. Property totals (clicks, impressions, CTR, position) come from daily property rows and match the Search Console UI for the same dates. Query-level and page-level rows exclude the queries Google anonymizes, so their sums run lower than the property totals by design. 180 days are synced when a site is added and refreshed daily; the full 16 months Google retains can be backfilled on request from the site page. GA4 rows are organic-only by default and cover landing page, channel group and source.
Stored-data and live tools are free without limit. The three demand tools call a paid keyword-data provider, so each account gets 30 lookups per calendar month at no charge; the footer of every demand response shows lookups used, lookups remaining, and the reset date, and repeats of the same request within 30 days are served from cache and marked (cached, free). Usage is listed at Usage.
Sign-in requests read-only scopes only: Search Console read and Analytics read, plus your email address for the account. Your Google data is used to answer your own agent’s questions and to show sync status in your dashboard; it is never sold, never used for advertising, and never shared with other customers. Tokens are stored encrypted. Disconnect the Google account, revoke an agent, or delete a key at any time at Connect. Details are in the Privacy Policy.
Questions a human should answer: support@agentgrown.com.