GSC Magic

Connect Google Search Console, Bing Webmaster Tools and GA4 data to your AI agent.

Hosted MCP Server

npx add-mcp 'https://mcp.gscmagic.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

What is GSC Magic

GSC Magic is a hosted MCP server. You sign in once, add one URL to your AI client, and the agent can read your search data directly instead of working from CSV exports and screenshots.

1. Connect

Sign in with Google or e-mail and password, and allow access to Search Console. Add Bing and GA4 if you use them.

2. Paste one URL

Add https://mcp.gscmagic.com/mcp to Claude, ChatGPT, Cursor or any MCP client.

3. Ask

The agent calls tools such as gsc_query_analytics and answers from your real numbers.

Along the way the dashboard at app.gscmagic.com shows the same data as charts, keeps a history longer than Google’s 16 months, sends alerts, and logs everything your agents do.

Quickstart

  1. Create your account. Open the dashboard and continue with Google, or create an account with e-mail and password (you will confirm the address by e-mail). Use the Google account that owns your Search Console properties.
  2. Allow access. The first sign-in asks Google once for Search Console, read-only Google Analytics 4 and read-only Tag Manager. Nothing is switched on for writing unless your plan allows it.
  3. Import your sites. On the Welcome screen, pick the properties to add. GSC Magic shows the busiest first and respects your plan’s site limit. Bing sites and GA4 properties with the same host are linked automatically.
  4. Connect your AI client. Follow AI clients below. The endpoint is https://mcp.gscmagic.com/mcp.
  5. Ask something. Start with “List my sites in GSC Magic.” Then try a prompt from Example prompts.

The Connect page in the dashboard has the same instructions, with one-click buttons and a connection test.

AI clients

The endpoint is the same everywhere:

https://mcp.gscmagic.com/mcp

Clients that support OAuth sign you in through a GSC Magic page. For clients that do not, use an access token.

Claude (claude.ai, desktop and mobile)

  1. Open Customize → Connectors → Add custom connector, name it GSC Magic and paste the endpoint. The dashboard’s Connect page has an Add to Claude button that pre-fills this.
  2. Click Connect next to GSC Magic, continue with Google (or e-mail) and allow access.
  3. In a new chat, enable GSC Magic under + → Connectors and ask “List my sites in GSC Magic.”

On Team and Enterprise plans only an Owner can add the connector (Organization settings → Connectors → Add → Custom); members then click Connect themselves. Connectors added on the web appear in the desktop and mobile apps.

ChatGPT

  1. Turn on Developer mode: Settings → Apps → Advanced settings → Developer mode. On Business, Enterprise and Edu a workspace admin enables it first.
  2. Create an app: name GSC Magic, MCP server URL as above, authentication OAuth. Leave client ID and secret empty and tick “I trust this application.”
  3. Sign in with Google when ChatGPT opens the GSC Magic page, then pick GSC Magic from the + menu in a chat.

Custom MCP apps need a paid ChatGPT plan, and OpenAI moves these menus around. ChatGPT has no field for a custom header, so it cannot use an access token.

Claude Code

claude mcp add --transport http --scope user gsc-magic https://mcp.gscmagic.com/mcp

Then type /mcp, pick gsc-magic and choose Authenticate. With a token instead of a browser sign-in:

claude mcp add --transport http --scope user gsc-magic https://mcp.gscmagic.com/mcp \
  --header "Authorization: Bearer gsm_YOUR_TOKEN"

Cursor

Add this to ~/.cursor/mcp.json, then click Connect next to gsc-magic in Settings → MCP:

{
  "mcpServers": {
    "gsc-magic": {
      "url": "https://mcp.gscmagic.com/mcp"
    }
  }
}

Older Cursor versions finish the sign-in on cursor://, which GSC Magic does not accept. Use a token there:

{
  "mcpServers": {
    "gsc-magic": {
      "url": "https://mcp.gscmagic.com/mcp",
      "headers": {
        "Authorization": "Bearer gsm_YOUR_TOKEN"
      }
    }
  }
}

VS Code, Windsurf and others

Any client that speaks remote MCP over Streamable HTTP works. Give it the endpoint and, if it cannot do OAuth, this request header:

Authorization: Bearer gsm_YOUR_TOKEN

The dashboard’s Connect page lists ready-made snippets for VS Code, Windsurf, Hermes Agent, OpenClaw, Grok and DeepSeek.

Access tokens

An access token (gsm_…) lets a client connect without a browser sign-in. It suits scripts, automation tools and clients without OAuth.

  • Create one in the dashboard under Connect → Access tokens (workspace owner or admin). The full token is shown once. Store it in the client’s own config, never in a chat.
  • Tokens expire after 365 days by default. You can pick a different lifetime up to 730 days, or none.
  • Tick Read-only to make a token incapable of writing, whatever your plan allows.
  • A token works on the MCP endpoint only, not on the dashboard API, and can be revoked at any moment. Revoking takes effect immediately.
  • The Test connection button on the Connect page checks that an endpoint and token work.

Data sources

SourceHow to connectAccess
Google Search ConsoleGranted when you sign in with Google, or from Sources → Connect for e-mail accounts.Read; write needs Pro and write mode
Google Analytics 4Granted with the same Google consent. Link a GA4 property to each site (Sites → edit) so the dashboard can show its data.Read-only
Google Tag ManagerGranted with the same Google consent.Read-only, Pro and Agency
Bing Webmaster ToolsPaste your Bing Webmaster API key under Sources. Link a Bing site to each site.Read; a few write tools
IndexNowGenerate a key with indexnow_generate_key, host the key file on your site and save the key under Sources.Write (Pro)
Core Web VitalsNothing to connect. Uses the Chrome UX Report and PageSpeed Insights.Read-only

Connected is not linked. Access to GA4 or a Bing key only makes properties discoverable. To see data on the Overview page, link a GA4 property and a Bing site to each site under Sites. Sources shows how many sites are linked.

Each source has Reconnect and Disconnect. Disconnecting GA4 stops GSC Magic reading it and removes the GA4 rows we stored; your Google connection and Search Console stay as they are.

Dashboard

PageWhat it does
OverviewClicks, impressions and position across one site or all sites, for 28 days, 3 months or 12 months. Top queries and pages with change against the previous period, Bing clicks, AI referrals from GA4, a What changed card, Core Web Vitals with an on-demand Lighthouse audit, and CSV export.
SitesAdd, edit and remove sites, link Bing and GA4, and run a quick robots.txt and sitemap audit.
SourcesConnection state for Google, GA4, Bing and IndexNow, with Reconnect and Disconnect.
ConnectYour endpoint, instructions per AI client, access tokens and the connection test.
AlertsRules, e-mail delivery and the weekly digest. See Alerts and digest.
ActivityA log of every tool call your agents made (30 days), filterable by client, source and status, with export.
TeamInvite people, set roles and create client groups (Agency).
BillingPlan, usage, invoices and the customer portal.
SettingsProfile, password, sessions, write mode, appearance (system, light or dark), data export and account deletion.

History. After you add a site, GSC Magic backfills up to 16 months of daily data (14 days on Free), then refreshes every six hours. Raising your plan pulls in the older months. You can export or delete your stored history at any time.

Alerts and digest

On Pro and Agency, GSC Magic checks your sites after every sync and e-mails you when something needs attention. Delivery is by e-mail to the workspace owner. Every message has an unsubscribe link.

  • Traffic drop: a page lost a large share of its clicks (30% by default).
  • Indexing: a page that had traffic stopped appearing.
  • Cannibalization: two of your pages started splitting a query.
  • Ranking: an important query fell several positions.
  • AI traffic: sessions from AI assistants jumped (needs GA4).

You can edit thresholds, turn rules off and delete them (with an Undo for a few seconds). A weekly digest summarizes your sites. On Free, the Overview’s What changed card previews what these rules would find. Each finding is reported once per week.

Example prompts

Replace example.com with your site. Your agent picks the right tools by itself.

Weekly check

“Compare the last 28 days with the previous 28 for example.com. What lost the most clicks, and what is the likely reason?”

Quick wins

“Show quick wins for example.com: pages at positions 4–20 with the most impressions. Suggest a title and meta change for the top five.”

Cannibalization

“Find queries where two of my pages compete on example.com and tell me which page should win each one.”

Indexing

“Run an index health report from my sitemap and list the URLs that are not indexed, grouped by reason.”

Two engines

“Compare Google and Bing clicks per page for example.com. Where is Bing clearly stronger?”

AI traffic

“How many GA4 sessions came from ChatGPT, Perplexity and Claude in the last 90 days, and which landing pages got them?”

More ideas in the prompt library.

Tools reference

Tools marked write change something in Google, Bing or IndexNow. They are offered to the agent only when your plan allows writing, write mode is on in Settings, and the source permits it (Search Console writes also need the full Google permission, which the first sign-in requests). Everything else is read-only.

SEO reports

Analyses that run on our servers and return finished numbers, so the agent reasons about results instead of paging through raw rows.

ToolWhat it does
report_quick_winsQuery and page pairs ranking in positions 4–20 with many impressions: the cheapest traffic to gain, sorted by potential extra clicks.
report_traffic_dropsCompare a period with the same-length period before it and return the biggest click losers and gainers by page or query.
report_content_decayPages whose clicks fell in each of the last three windows: a steady slide, not a one-off dip. Candidates for a content refresh.
report_cannibalizationQueries where two or more of your pages each get a meaningful share of impressions, splitting ranking signals.
report_ctr_outliersPages whose CTR is under half of your site's median at the same position: candidates for better titles and descriptions.
report_brand_splitBranded vs non-branded queries with clicks, impressions and click share, plus the top queries in each group.
report_index_healthRead URLs from your sitemaps, inspect them with the URL Inspection API and group them by coverage state.
report_google_vs_bingClicks and impressions per page from Google and Bing side by side.

Bing Webmaster Tools

The full Bing Webmaster API: search performance, crawl data, backlinks, keyword research and URL submission.

ToolWhat it does
bing_list_sitesSites in Bing Webmaster Tools for the API key, with verification status.
bing_get_site_rolesUsers with access to a site.
bing_query_statsClicks, impressions and average position for top search queries (weekly, about six months).
bing_page_statsClicks, impressions and average position for top pages.
bing_page_query_statsSearch queries that led to one page.
bing_query_page_statsPages shown for one search query.
bing_query_page_detail_statsDetailed stats for one query on one page.
bing_query_traffic_statsTraffic history for one query.
bing_rank_traffic_statsDaily clicks and impressions for the whole site.
bing_crawl_statsDaily crawled pages, crawl errors, in-index counts and pages blocked by robots.txt.
bing_crawl_issuesURLs with crawl issues: 4xx/5xx, DNS, timeouts, malware.
bing_url_infoIndex details for a single URL: HTTP status, last crawl, discovery date, size, anchors.
bing_url_trafficClicks and impressions for a single URL.
bing_list_sitemapsSitemaps and feeds submitted to Bing, with status and URL counts.
bing_sitemap_detailsChild sitemaps of a sitemap index.
bing_link_countsYour pages that have inbound links, with link counts.
bing_url_linksExternal pages linking to a URL on your site.
bing_keywordBing search impressions for any keyword in a period (keyword research, not limited to your site).
bing_keyword_statsHistorical weekly impressions for a keyword.
bing_related_keywordsRelated keywords with impressions for a period.
bing_url_submission_quotaRemaining daily and monthly URL submission quota.
bing_list_blocked_urlsURLs and directories blocked from Bing results.
bing_crawl_settingsCrawl rate per hour and crawl boost setting.
bing_list_query_paramsQuery parameters Bing ignores for URL normalization.
bing_fetched_urlsURLs previously fetched with Fetch as Bingbot.
bing_fetched_url_detailsResult of a Fetch as Bingbot request: status, headers, content.
bing_add_site writeAdd a site to Bing Webmaster Tools.
bing_verify_site writeAttempt verification of a site (meta tag, XML file or DNS already in place).
bing_remove_site writeRemove a site from Bing Webmaster Tools.
bing_submit_urls writeSubmit up to 500 URLs for crawling and indexing, checking the remaining quota first.
bing_save_crawl_settings writeSet the hourly crawl rate and crawl boost.
bing_submit_sitemap writeSubmit a sitemap or feed to Bing.
bing_remove_sitemap writeRemove a submitted sitemap or feed.
bing_block_url writeBlock a page or directory from Bing results.
bing_unblock_url writeRemove a page or directory block.
bing_add_query_param writeTell Bing to ignore a query parameter.
bing_remove_query_param writeStop ignoring a query parameter.
bing_fetch_url writeAsk Bingbot to fetch a URL now; read the result later with bing_fetched_url_details.

IndexNow

Tell Bing, Yandex, Seznam, Naver and other IndexNow engines about new, changed or deleted URLs within seconds.

ToolWhat it does
indexnow_generate_keyGenerate a new IndexNow key and the file you need to host on the site.
indexnow_submit writeNotify IndexNow engines about new, changed or deleted URLs: one host per call, up to 10,000 URLs.

Core Web Vitals and PageSpeed

Real-user Chrome UX Report data and Lighthouse audits for any origin or URL you own.

ToolWhat it does
cwv_get_originReal-user Core Web Vitals (LCP, INP, CLS, FCP, TTFB) for a whole origin, last 28 days, p75 and good/needs-improvement/poor shares.
cwv_get_urlReal-user Core Web Vitals for a single URL (needs enough Chrome traffic).
cwv_historyWeekly Core Web Vitals history, up to about six months, for an origin or URL.
psi_run_auditRun Lighthouse through PageSpeed Insights: category scores, lab metrics, field data and top opportunities.

Google Analytics 4

GA4 reports next to your search data: sessions, key events, landing pages and referral traffic from AI assistants.

ToolWhat it does
ga_list_propertiesGoogle Analytics accounts and GA4 properties the account can access.
ga_list_data_streamsData streams of a GA4 property, including the Measurement ID used by the tag on the site.
ga_get_metadataDimensions and metrics available for a property, including custom ones, with search.
ga_run_reportRun a GA4 report with dimensions, metrics, date ranges, filters, ordering and paging.
ga_run_realtime_reportGA4 realtime report for the last 30 minutes.
ga_list_key_eventsKey events (formerly conversions) configured on a property.

Google Tag Manager

Read-only view of what is actually firing on the site: containers, tags, triggers, variables and the live version.

ToolWhat it does
gtm_list_accountsTag Manager accounts the account can access.
gtm_list_containersContainers of an account, with the public GTM-XXXX id.
gtm_list_workspacesWorkspaces (drafts) of a container.
gtm_list_tagsTags of a workspace with type, triggers and parameters, including GA4 measurement ids and event parameters.
gtm_list_triggersTriggers of a workspace with type and conditions.
gtm_list_variablesUser-defined variables of a workspace.
gtm_get_live_versionThe currently published container version: what is really running on the site.

Plans and limits

FreeProAgency
Price$0$19/month or $182/year (founding price until 31 Dec 2026)$34/month or $326/year (founding price until 31 Dec 2026)
Tool calls200/month, 10/dayUnlimitedUnlimited
Sites11050
Stored history14 days16 months16 months
Search Console, Bing, IndexNow, Web Vitals, reports, GA4YesYesYes
Tag ManagerNoYesYes
Write toolsNoYesYes
Alerts and weekly digestNoYesYes
Team seats and client reportsNoNo5 seats, monthly client reports
  • 7-day Pro trial on new accounts, with no card needed. When it ends the account returns to Free. One trial per e-mail address.
  • Every call to a tool counts, including failed ones. The daily limit resets at midnight UTC.
  • If a plan ends and you have more sites than the new plan allows, the dashboard asks which to keep and the MCP endpoint pauses until you choose.
  • Payments and invoices are handled by Polar. Cancel any time; the plan stays active to the end of the period you paid for.

Teams and roles

The Agency plan includes five seats counting the owner. Everyone works on the owner’s workspace, data and plan.

RoleCan do
OwnerEverything, including billing, team and deleting sites.
AdminManage sites, sources, tokens and alerts. No billing or role changes.
MemberUse the AI tools, read-only.
ViewerView the dashboard. No AI access.

Client groups restrict a person to selected sites. A member or admin in a group sees only those sites in the dashboard, in alerts and through MCP, and nothing else. Subdomains count as separate sites, so you can give a.com to one client and blog.a.com to another. Invitations are e-mailed and valid for seven days.

Troubleshooting

ProblemWhat to try
The client cannot sign in or says the redirect is not allowedUse an access token in the request header. This affects older Cursor, VS Code on vscode.dev and Grok.
ChatGPT fails to connectDelete the app and create it again, then sign in once more. A stale sign-in is the usual cause. Make sure your plan allows custom MCP apps.
“No Search Console property” or an empty listSign in with the Google account that owns the properties, then check Sources. If it shows Reconnect, Google revoked or expired the connection: reconnect it.
The tool list lacks write toolsCheck that your plan is Pro or Agency, that write mode is on in Settings, that you granted full Search Console access, and that the token or role is not read-only.
Bing returns nothingCheck the Bing Webmaster API key under Sources and that a Bing site is linked to the site.
Overview shows no GA4 or Bing numbersThe source is connected but not linked: open Sites, edit the site and choose the GA4 property or Bing site.
“Daily limit reached”Free allows 10 calls a day and 200 a month. The daily count resets at midnight UTC; Pro removes the limits.
A site shows ReconnectGoogle rejected our access. Reconnect Google under Sources. Apps in Google’s testing mode expire after seven days, which does not apply to GSC Magic.
Inspection quota errorsGoogle allows 2,000 URL inspections per day per property. Wait for the reset or inspect fewer URLs.

Still stuck? Write to support@gscmagic.com with the client you use and the error message. Never include an access token.

Quick answers

Which AI clients work?

Any client that supports remote MCP over Streamable HTTP: Claude, ChatGPT, Claude Code, Cursor, VS Code, Windsurf and others.

Can my agent change anything?

Not unless you allow it. Write tools need the Pro or Agency plan, write mode switched on, and, for Search Console, full Google access. Tokens can be made read-only.

Is the data stored?

Tool calls read live from Google and Bing. The dashboard keeps daily statistics for the sites you add, for as long as your plan’s history allows.