AgentGrown
A remote MCP server that gives coding agents a site's real Search Console, GA4, and keyword-demand data, so the agent can check numbers before it ships a page.
Hosted MCP Server
npx add-mcp 'https://agentgrown.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
What AgentGrown does
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.
Getting started
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. A short setup follows: pick your sites, then choose a plan, which starts with a 7-day free trial; the steps after that can be skipped and finished later from the overview page.
2. Your sites. The Search Console properties on that Google account are listed with checkboxes; tick the ones you want, or type a domain that has no property yet. AgentGrown matches the GA4 property to each site 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, connect it from the same page or later from Account.
3. Invite teammates (optional). Enter their email addresses and they get a link to join the account. They sign in with their own Google account and share your sites, plan and agent connections. See Teams.
4. Choose a plan (required). Launch, Scale or Agency; see Pricing. Every plan starts with a 7-day free trial. Your card is taken at checkout and charged when the trial ends; cancel before then and you pay nothing.
5. Connect your agent. Claude Code:
Terminal
$ claude mcp add --transport http agentgrown https://agentgrown.com/mcp
Then run /mcp inside Claude Code, pick agentgrown, sign in with Google in the browser tab it opens, and choose the site. The first time, Google asks for read access to Search Console and Analytics; that is the same permission your account was created with, and returning users just pick their account. The setup page shows a per-client tab for each agent, a first prompt to try, and confirms when it sees your agent’s first call.
Claude.ai, Cursor, Codex, 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 API keys.
CI and headless agents: create an API key on API keys 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:
.mcp.json
{ "mcpServers": { "agentgrown": { "type": "http", "url": "https://agentgrown.com/mcp", "headers": { "Authorization": "Bearer ${AGENTGROWN_API_KEY}" } } } }
A static header disables the OAuth fallback, so use keys only where a browser sign-in is not possible.
For the agent: how to work
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 count the most toward usage, and repeats within 30 days are served from cache and count far less. 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.
Tools
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.
Orient
seo_checkin28-day property totals vs the prior 28 days (matches the Search Console UI), top 10 queries and pages with deltas, biggest movers, GA4 organic sessions if synced, notes, data-through dates and sync state. Call first in any session. Inputs: site?
Stored data
gsc_queryFlexible aggregate over stored Search Console rows. Inputs: 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.
ga4_queryThe same shape over stored GA4 rows. Inputs: dimensions from date, week, month, landing_page, channel_group, source; metrics including engagement_rate; organic_only (default true); filters, ordering, limit.
Live from Google
gsc_livePassthrough to the Search Console query API with the owner’s token, for country, device, search appearance, Discover and News, regex filters, and fresh (non-final) data. Inputs: start_date, end_date, up to 4 dimensions, type, dimension_filter_groups, aggregation_type, data_state (default all), row_limit, start_row.
ga4_livePassthrough to GA4 runReport. Inputs: dimensions[], metrics[], date_ranges[], dimension_filter, metric_filter, order_bys, limit, offset. The tool description lists the common dimension and metric names.
Demand
keyword_ideasKeyword ideas with search volume, CPC and competition for 1–20 seeds, top 100 by volume, joined with the queries the site already ranks for.
keyword_volumeVolume, CPC and competition for 1–1,000 exact keywords; also stored against the site’s matching queries.
keywords_for_siteKeywords Google Ads associates with a domain or URL, joined with your rankings. On your own site the keywords you rank for come first (a click or 20+ impressions in 28 days), with ranked_only to keep just those; on a competitor it shows their topic space, not the keywords they rank for. Inputs: target? (defaults to the site’s domain), ranked_only?.
AI visibility
ai_visibilityThe stored report for a site: how often AI answers mention the brand, where it ranks among the brands named, whether the site is cited, and which competitors and sources appear, per engine and week over week. Tracked prompts are asked weekly on ChatGPT and Perplexity (Gemini and Claude optional) with live web search. US/English.
ai_visibility_promptsList, add or remove tracked prompts; set brand names, competitors (by name or, better, domain) and engines; turn tracking on or off. Every call also lists about 20 recommended prompts written from the site’s home page and its Search Console data; suggest writes a fresh list and add_recommended tracks them. Recommendations do not count toward usage. Plans include 25, 100 or 300 tracked prompts.
ai_visibility_checkAsk prompts right now instead of waiting for the weekly run: up to 5 new prompts or 10 tracked ones per call. Each AI answer counts toward usage.
Account
site_notesRead the site’s durable notes, or append one with add. Notes return in every check-in.
list_sitesDomains, ids and data-through dates for every site on the account. Account-scoped connections only. Does not count toward usage.
Data notes
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.
Pricing
AgentGrown is sold as a monthly plan, built for funded startups and agencies. Every tool is on every plan; the plans differ in sites, seats and tracked AI visibility prompts. Pay monthly, or yearly for the price of 10 months (2 months free).
Launch $49 a month. 3 sites, 3 seats, 25 tracked AI visibility prompts. For a funded startup with one product and a small team.
Scale $149 a month. 15 sites, 5 seats, 100 tracked AI visibility prompts. For a growth team with several properties, or a small agency. Most popular.
Agency $399 a month. Unlimited sites, 15 seats, 300 tracked AI visibility prompts. For an agency running every client site from one account.
Every plan starts with a 7-day free trial. A card is required to start it and is charged when the trial ends; cancel any time from the billing portal on Billing. Companies in the Startups program get the Launch plan free for six months.
Usage limits. Each plan includes monthly usage that resets each month. Queries on synced Search Console and GA4 data count least, live Google queries more, and keyword lookups and AI visibility answers the most. Repeat keyword lookups within 30 days count far less, and list_sites does not count. If an account reaches its limit, calls stop until the next month, an upgrade, or the owner adds more on the Billing page. This month’s usage and every call your agent made are on the Account page; keys and connected agents are on API keys.
Teams
One account can have several people. An owner invites teammates by email from Account (or during setup); each invite is a link that expires after 14 days and can be resent or revoked. A teammate signs in with their own Google account, which is used for identity only: they are never asked for Search Console or Analytics access, and their sign-in never replaces the Google connection that feeds the syncs. Members share the account’s sites, plan, API keys and agent connections. Owners can remove members from the same page; the last owner cannot be removed. Someone who belongs to more than one account switches between them from the account menu.
Questions a human should answer: support@agentgrown.com.