Google Search Console & GA4 MCP server documentation
Everything needed to connect your Google data to an AI assistant and trust the answers: setup, the full tool reference, example prompts, data limits, security and troubleshooting.
What GenieSeo is
GenieSeo is a hosted Model Context Protocol (MCP) server that puts your Google Search Console and Google Analytics 4 data inside your AI assistant. Instead of exporting CSVs and building pivot tables, you ask a question in plain English; the assistant queries Google's official APIs and explains the result.
It suits founders, content marketers, e-commerce owners, developers and SEO specialists who want ranking, indexing and conversion answers in the same place they already write and plan.
What it is not: GenieSeo is not a rank tracker, backlink database, site crawler, or a source for non-Google search engines. It reads exactly what Search Console and GA4 already hold for your properties.
How it works
One Google OAuth
A single consent screen grants read-only access to Search Console and GA4. No second login, no service-account key to manage.
One personal MCP URL
Your dashboard issues a private Streamable HTTP endpoint. Your AI client connects to it and discovers every available tool.
Live tool calls
When you ask a question, the assistant calls the right tools, Google returns fresh data, and nothing is kept for training.
Transport is Streamable HTTP MCP (spec 2025-03-26). Each user gets a dedicated server process, started on demand and reaped when idle. New to the protocol? Read what MCP is, explained for SEO.
Before you start
- A Google account that already has access to the Search Console property you want to analyse. Verify ownership in Search Console first — GenieSeo cannot verify sites for you.
- For GA4 questions, at least Viewer access on the GA4 property, granted to that same Google account in GA4 Admin → Property access management.
- An AI client that supports custom MCP servers over Streamable HTTP: Claude web or Desktop, Cursor, Codex, Windsurf, Antigravity, or ChatGPT on a plan with custom connectors.
- Nothing else. No Python, no uv, no Docker, no API keys.
Quick start (60 seconds)
Create a free GenieSeo account
Sign up with your email address. No credit card, no client_secrets.json, no local install.
Open signup →Connect your Google account
Click Connect Google in the dashboard. One consent screen grants read-only access to Search Console (webmasters.readonly) and Google Analytics 4 (analytics.readonly).
Copy your personal MCP URL
The dashboard shows a URL in the form https://seo.geniedial.in/mcp/u/YOUR_TOKEN. Treat the token segment like a password — anyone holding it can read your analytics.
Paste the URL into your AI client
Add it as a custom MCP connector, then ask: list my Search Console properties and show top 20 queries by clicks for the last 28 days.
Per-client steps →Connect your AI client
Every client uses the same single URL. Restart the client after adding it — most load MCP servers only at startup.
Claude (web & Desktop)
Settings → Connectors → Add custom connector
Paste your MCP URL. Claude web and Claude Desktop both speak Streamable HTTP, so no local bridge is needed.
Full setup guide →Cursor
Settings → MCP → Add new MCP server
Paste the URL, or add the JSON block below to ~/.cursor/mcp.json for a server available in every project.
Full setup guide →Codex
MCP server config
Register GenieSeo as a Streamable HTTP MCP server so Codex can read live search data while it edits your site.
Full setup guide →Windsurf
Cascade → MCP servers
Add GenieSeo as a custom server to get Search Console and GA4 tools inside Cascade.
Full setup guide →Antigravity
MCP settings
Same single URL — Antigravity discovers all read-only tools automatically.
Full setup guide →ChatGPT
Connectors / custom MCP
Supported on plans that allow custom MCP connectors. Follow the ChatGPT guide for current availability.
Full setup guide →Your MCP URL ends in a private token. Never commit it to a repository or paste it into a shared config — rotate it from the dashboard if it leaks.
Tool reference (29 tools)
21 Search Console tools and 8 GA4 tools on one URL. You never call these by hand — the assistant picks them from your question — but knowing the names lets you ask precisely, for example use batch_url_inspection on these 40 URLs.
Properties & account
Search ConsoleFind your properties and check the connection.
5 tools— click to expand
Properties & account
Search ConsoleFind your properties and check the connection.
5 tools— click to expand
- list_properties
- Every verified Search Console property on the connected account. Start here — most other tools need an exact site_url.
- get_site_details
- Permission level and verification detail for one property.
- get_capabilities
- Machine-readable list of everything this server can do, with argument hints.
- get_creator_info
- Server and maintainer metadata.
- reauthenticate
- Refresh the Google credential when a token has gone stale.
Search performance
Search ConsoleClicks, impressions, CTR, positions and period deltas.
5 tools— click to expand
Search performance
Search ConsoleClicks, impressions, CTR, positions and period deltas.
5 tools— click to expand
- get_search_analytics
- Clicks, impressions, CTR and average position by query, page, country or device over any date range.
- get_advanced_search_analytics
- Same data with filters, sorting, row limits and search-type control (web, image, video, news, discover).
- get_search_by_page_query
- Pre-joined page × query rows — the fastest way to spot keyword cannibalisation.
- compare_search_periods
- Week-over-week or month-over-month deltas without exporting two CSVs.
- get_performance_overview
- High-level KPI summary for a property: totals plus trend direction.
Indexing & URL inspection
Search ConsoleIs it indexed, and if not, why not.
3 tools— click to expand
Indexing & URL inspection
Search ConsoleIs it indexed, and if not, why not.
3 tools— click to expand
- inspect_url_enhanced
- URL Inspection API for one URL: index status, canonical, crawl result, mobile usability, rich-result issues.
- batch_url_inspection
- Inspect many URLs in one call — use it for template-level indexing audits.
- check_indexing_issues
- Non-indexed URLs grouped by reason (discovered-not-indexed, crawled-not-indexed, blocked, and so on).
Sitemaps
Search ConsoleList, inspect and submit sitemaps.
5 tools— click to expand
Sitemaps
Search ConsoleList, inspect and submit sitemaps.
5 tools— click to expand
- get_sitemaps
- All sitemaps submitted for a property.
- list_sitemaps_enhanced
- Sitemap list with per-file errors, warnings and last-read dates.
- get_sitemap_details
- Full detail for a single sitemap, including per-type URL counts.
- submit_sitemap
- Submit or resubmit a sitemap URL.
- manage_sitemaps
- Combined submit/delete helper. Deletes require the destructive flag.
Write tools
Search Consoleoff by defaultChange your account. Disabled unless you self-host and opt in.
3 tools— click to expand
Write tools
Search Consoleoff by defaultChange your account. Disabled unless you self-host and opt in.
3 tools— click to expand
- add_site
- Add a property to your Search Console account.
- delete_site
- Remove a property from your Search Console account.
- delete_sitemap
- Remove a submitted sitemap.
Google Analytics 4
GA4Sessions, conversions, revenue, realtime and funnels.
8 tools— click to expand
Google Analytics 4
GA4Sessions, conversions, revenue, realtime and funnels.
8 tools— click to expand
- list_ga4_properties
- Every GA4 property on the connected Google account. Always call this first for GA4 work — later calls need the numeric property ID.
- get_ga4_property_details
- Time zone, currency, industry category and parent account. Read it before interpreting dates or revenue.
- get_ga4_custom_dimensions_and_metrics
- Custom dimensions and metrics defined on the property, so reports can use your own event parameters.
- list_ga4_ads_links
- Google Ads accounts linked to the property.
- list_ga4_property_annotations
- Notes recorded against specific dates — useful context when explaining a traffic spike or drop.
- run_ga4_report
- The workhorse: any show-me-X-by-Y report — sessions, users, conversions, revenue — with full dimension, metric, date-range and sort control.
- run_ga4_realtime_report
- Activity in the last 30 minutes.
- run_ga4_funnel_report
- Step-by-step conversion funnel from entry through to goal completion.
Example prompts
Copy & pastePaste any of these straight into a connected client. Swap in your own URLs and date ranges.
Keyword & search performance
Search Console- “What are my top 10 search queries by clicks in the last 28 days?”
- “Show queries where my average position is between 11 and 20 and impressions are above 500 — my page-2 opportunities.”
- “Which countries and devices drive the most organic clicks for my site?”
- “Split my clicks into branded and non-branded queries for last month.”
Content & indexing audits
Technical SEO- “What queries is /blog/seo-guide ranking for, and which have CTR under 2%?”
- “Compare the last 28 days against the previous 28 days. Which pages dropped the most clicks?”
- “Inspect https://example.com/new-post and tell me whether Google has indexed it.”
- “Group my non-indexed URLs by reason and tell me which group to fix first.”
GA4 analytics
GA4- “How many active users are on the site right now, and where did they come from?”
- “Show my top acquisition channels for the last 30 days by sessions and conversions.”
- “Build a funnel for organic-search visitors from landing page to purchase.”
Search Console × GA4 together
Cross-reference- “Map my top 20 organic queries to GA4 conversions and revenue for last month.”
- “Which landing pages get lots of organic clicks but convert below 1% in GA4?”
- “Show weekly revenue by organic landing page for the last 8 weeks.”
Longer, tested workflows live in the recipe library — cannibalisation audits, indexing triage, CTR rescue, weekly stakeholder summaries and Search Console × GA4 cross-references.
Reading the data correctly
Most wrong-number reports trace back to one of these five behaviours of Google's own APIs.
Property types: domain vs URL-prefix
A domain property is addressed as sc-domain:example.com and covers every subdomain and protocol. A URL-prefix property is addressed as its full URL, such as https://example.com/. The site_url must match the property exactly or Google returns 404. To analyse one subdomain inside a domain property, query the domain property and filter by page.
Data freshness
Search Console data lags real time. The most recent one to two days are partial and full data typically settles after two to three days. Self-hosted deployments can set GSC_DATA_STATE=final to return confirmed data only; the hosted server matches what the Search Console dashboard shows.
History window
Search Console retains roughly 16 months of performance data. Older data is unavailable from the API, so year-over-year comparisons work only inside that window.
Row limits and missing totals
The API returns paginated rows, and long-tail queries below Google's privacy threshold are omitted entirely. That is why per-query clicks usually sum to less than the site total — the gap is anonymised queries, not a bug.
GA4 counts differently
GA4 measures sessions and users with its own event model, so its organic-search numbers rarely match Search Console clicks exactly. Use Search Console for demand and rankings, GA4 for behaviour and conversions, and compare trends rather than absolute values.
Security & privacy
- Read-only scopes: the hosted server requests webmasters.readonly and analytics.readonly. It cannot change your Google settings.
- Write tools gated: add_site, delete_site and delete_sitemap only run when GSC_ALLOW_DESTRUCTIVE=true, which the hosted server does not set.
- Tokens encrypted at rest: Google refresh tokens are stored Fernet-encrypted, never in plain text and never exposed to your AI client.
- Your MCP URL is a credential: the token in the path grants read access to your data. Do not share or commit it — rotate it from the dashboard if it is exposed.
- Data is fetched on demand to answer your request and is not used to train models.
- Revoke any time: disconnect Google from your dashboard, or remove access in your Google account security settings.
Full detail in the privacy policy and terms.
Troubleshooting
- Tools do not appear in the client
- Confirm the URL is registered as a Streamable HTTP MCP server (not SSE, which is retired), then fully restart the client. Most clients load MCP servers only at startup.
- 404 or site-not-found error
- The site_url must match the property exactly. Call list_properties and copy the value verbatim, including the sc-domain: prefix or trailing slash.
- No properties returned
- The Google account you connected has no verified Search Console property, or the property is verified under a different account. Verify ownership in Search Console first, then reconnect Google.
- GA4 tools return a permission error
- The connected account needs at least Viewer on the GA4 property. Add it in GA4 Admin → Property access management, then call list_ga4_properties again.
- Auth expired or invalid credentials
- Ask the assistant to run reauthenticate, or reconnect Google from your dashboard. Revoking access in your Google account also invalidates the MCP URL until you reconnect.
- A write tool refuses to run
- add_site, delete_site and delete_sitemap are disabled unless GSC_ALLOW_DESTRUCTIVE=true. The hosted server is read-only by design; enable them only in your own deployment.
- Numbers differ from the Search Console UI
- Check the date range, the property type, the search type and data freshness — recent days are still filling in.
Still stuck? Email support@geniedial.in with your client name and the exact error text.
Frequently asked questions
What is GenieSeo?
GenieSeo is a hosted Model Context Protocol (MCP) server that connects Google Search Console and Google Analytics 4 to AI assistants such as Claude, Cursor, Codex, Windsurf and Antigravity. You sign in with Google once, get one personal MCP URL, and your assistant can then read live search and analytics data in plain English.
How do I connect Google Search Console to Claude?
Create a free GenieSeo account, click Connect Google, copy your personal MCP URL from the dashboard, then open Claude → Settings → Connectors → Add custom connector and paste the URL. Search Console and GA4 tools are then available in every Claude conversation.
Do I need to install Python or Docker?
No. The hosted server needs nothing installed locally — only the MCP URL. Python, uv and Docker matter only if you choose to self-host the open-source server yourself.
How many tools does GenieSeo expose?
29 tools on a single MCP URL: 21 Search Console tools and 8 GA4 tools. Three Search Console tools write to your account (add_site, delete_site, delete_sitemap) and stay disabled unless explicitly enabled, so the hosted server behaves as read-only.
Is my Google Search Console and GA4 data secure?
Yes. GenieSeo requests read-only OAuth scopes (webmasters.readonly and analytics.readonly). Refresh tokens are encrypted at rest, data is fetched on demand to answer a request, it is never used to train models, and you can rotate your MCP URL or revoke Google access at any time.
Does it work with both Claude web and Claude Desktop?
Yes. GenieSeo uses Streamable HTTP MCP transport (spec 2025-03-26), which works in Claude web (claude.ai), Claude Desktop, Cursor, Codex, Windsurf, Antigravity and any other Streamable HTTP MCP client.
Do I need technical skills to use it?
No. After setup you ask ordinary questions such as what are my top 10 keywords this month, or check whether Google indexed my latest article, and the assistant picks the right tools and explains the results.
Why do the numbers differ from the Search Console dashboard?
Three usual reasons: the last one to three days of data are still settling, long-tail queries below Google's privacy threshold are omitted from per-query rows, and domain properties aggregate every subdomain. Match the date range, property type and search type before comparing.
What does GenieSeo cost?
It is free during beta. See the pricing page for current limits and plans.
Related