Google Search Console
MCP server for Google Search Console: properties, sitemaps, search analytics and URL inspection
Connector by ni-c · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ni-c-google-search-console-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 12 read · 5 write · 4 delete
- Secrets
- 5 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 21
Read from the source code; the running server may list different tools.
Read 12 · Look things up without changing anything.
get_indexing_statusget_siteget_sitemapget_verification_tokenget_verified_siteinspect_urlinspect_urlslist_sitemapslist_siteslist_verified_sitesquery_search_analyticssetup_site
Write 5 · Create, change, send or run things.
add_siterequest_indexingsubmit_sitemapsubmit_sitemapsverify_site
Delete 4 · Delete, drop, revoke or wipe things.
delete_sitedelete_sitemapunverify_siteupdate_site_owners
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
GOOGLE_APPLICATION_CREDENTIALSGSC_CLIENT_SECRETGSC_REFRESH_TOKENGSC_SERVICE_ACCOUNT_KEYGSC_SERVICE_ACCOUNT_KEY_FILE
Other settings (environment variables or headers).
GSC_ALLOWED_SITESGSC_ALLOW_TOOLSGSC_CLIENT_IDGSC_DENY_TOOLSGSC_READ_ONLYGSC_SITE_URL
Tools (21)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_siteAdd a propertyAdds a property to Search Console. This does NOT verify ownership: unless the credential already owns the domain, the property lands as siteUnverifiedUser and every data call for it returns 403. To actually get a working property, use setup_site, which does this in the right order — get_verification_token, then the DNS record or HTML file, then verify_site, then this.
delete_siteRemove a propertycan change or delete dataRemoves a property from Search Console. Two-step: the first call returns a confirmation token, the second performs the removal.
delete_sitemapRemove a sitemapcan change or delete dataRemoves a sitemap from the property. Two-step: the first call returns a confirmation token, the second performs the removal.
get_indexing_statusGet Indexing API status for a URLread-onlyReturns when this credential last notified Google about a URL through the Indexing API, and what kind of notification it was. This reports the notification history only — it says nothing about whether the page is indexed. inspect_url answers that. The credential must be a verified *owner* of the property — Search Console user access is not enough, and the API answers 403 without saying which of the two is missing.
get_siteGet one propertyread-onlyReturns one property and the permission level this credential has on it. Useful for settling which of the two spellings exists — "sc-domain:example.com" and "https://example.com/" are separate properties holding separate data.
get_sitemapGet one sitemapread-onlyReturns the full record for a single submitted sitemap: last submitted, last downloaded, warnings, errors, and the URL counts per content type. This is how to check whether a submission actually worked — errors appear here, never in the response to submit_sitemap.
get_verification_tokenGet a verification tokenread-onlyReturns the token that proves ownership of a site, and says exactly where to put it. Nothing is created and nothing is claimed by this call — it is safe to run against a domain you do not own, it just achieves nothing. A domain property can only be proven by DNS. A URL-prefix property can use FILE or META here; ANALYTICS and TAG_MANAGER prove ownership through an existing Google product rather than a token, so they have no token to fetch and are only usable with verify_site directly. Placing the token is a human step. Once it is in place, call verify_site.
get_verified_siteGet one owned siteread-onlyReturns one verified site and the email addresses of all its owners.
inspect_urlInspect a URLread-onlyAsks Google what it knows about one URL: whether it is indexed, when it was last crawled, which sitemaps reference it, the canonical Google chose versus the one declared, robots.txt and mobile-usability verdicts, and any rich-result problems. This is the API behind the URL Inspection tool in the Search Console interface. It reports the *indexed* state, not a live fetch — a page changed an hour ago still shows what Google last saw. The URL Inspection API allows 2 000 calls per property per day and 600 per minute. That is a daily budget, not a rate limit — spending it blocks inspection for the …
inspect_urlsInspect several URLsread-onlyDescription is built at runtime.
list_sitemapsList sitemapsread-onlyLists the sitemaps submitted for a property, each with when Google last downloaded it, how many URLs it holds per content type, and whether processing produced warnings or errors. To refresh a sitemap Google already knows, submit the same URL again — there is no separate update call, and submitting is idempotent. Google re-crawls on its own schedule; nothing can force it, and the ping endpoint that used to exist was removed in 2023.
list_sitesList propertiesread-onlyLists every Search Console property this credential can see, with the permission level it has on each. This is the first call to make when anything returns 403: an empty list means the identity was never added to any property, which is the usual state of a fresh service account. permissionLevel is what the credential may do: siteOwner (everything, including the Indexing API), siteFullUser (all data, no user management), siteRestrictedUser (most data), and siteUnverifiedUser — which means the property is listed but ownership was never proven, and every data call for it returns 403 until it is v…
list_verified_sitesList owned sitesread-onlyLists every site this credential has *verified ownership* of, with the full owner list for each. This is a different list from list_sites: that one is Search Console properties, this one is proven ownership, and a site can be in either without being in the other. setup_site compares the two.
query_search_analyticsQuery search analyticsread-onlyDescription is built at runtime.
request_indexingNotify Google that a URL changedTells Google through the Indexing API that a URL was updated or removed. Google only acts on this for pages with JobPosting or BroadcastEvent structured data. For any other page the call succeeds, returns a timestamp, and changes nothing — it is not a way to get a normal page crawled sooner. Submit a sitemap for that. The credential must be a verified *owner* of the property — Search Console user access is not enough, and the API answers 403 without saying which of the two is missing. The default quota is 200 URLs per day per project.
Show 6 more tools
setup_siteCheck what a property still needsread-onlyWorks out where a property stands and says exactly what to do next. Getting a working Search Console property takes four steps in one order — obtain a verification token, place it in DNS or on the page (a human step), verify ownership, add the property — and nothing in the API enforces that order. Calling add_site first succeeds and leaves a property that returns 403 for every piece of data, which looks like a permissions problem and is not. This reads the current state and reports the next step, including the DNS record or meta tag to copy when that is what is missing. It changes nothing.
submit_sitemapSubmit a sitemapSubmits a sitemap URL, or resubmits one Google already knows. To refresh a sitemap Google already knows, submit the same URL again — there is no separate update call, and submitting is idempotent. Google re-crawls on its own schedule; nothing can force it, and the ping endpoint that used to exist was removed in 2023. The call succeeding means Google accepted the address, not that the sitemap is valid — it is fetched later, and any parse error shows up in get_sitemap minutes to hours afterwards.
submit_sitemapsSubmit several sitemapsDescription is built at runtime.
unverify_siteRemove ownershipcan change or delete dataRemoves this credential from the owners of a site. Two-step: the first call returns a confirmation token, the second performs the removal.
update_site_ownersChange the owner listcan change or delete dataReplaces the list of verified owners of a site. This is how a second person or a service account is granted ownership without placing a token of their own. It REPLACES rather than adds: the list you pass becomes the complete owner list. Call get_verified_site first and send back the existing addresses plus the new one, or the others are removed. This server refuses a list that does not contain at least one address, because that is the shape of an accidental wipe. Two-step: the first call returns a confirmation token, the second performs the change.
verify_siteVerify ownershipTells Google to check for the verification token and, if it finds it, records this credential as an owner. Run get_verification_token first and place the token — this call only checks, it does not place anything. A failure here is almost always "not there yet" rather than "wrong": DNS records take minutes to an hour to propagate, and a freshly uploaded file may still be behind a CDN cache. Retrying later is the normal response.
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 47
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Sep 7, 2026 (1 month ago)
- Last package publish
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.ni-c/google-search-console-mcp- Version
- 0.3.0
- Auth
- API key
- Packages
- npm @ni-c/google-search-console-mcpoci
ghcr.io/ni-c/google-search-console-mcp:0.3.0 - License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from ni-c
- 0.638score
IMAP mailbox
ni-c
Read, search and organise any IMAP mailbox, with writes off by default
ConnectorAFreshness: ALocal★ 3↓ 211/wkClaude Code +5 - 0.630score
OpenStreetMap
ni-c
Geocoding, walking/driving/cycling distances, route optimization, isochrones and POI search on OSM
ConnectorAFreshness: ALocalRead-only★ 4Claude Code +5 - 0.625score
mcp-hub
ni-c
Many stdio MCP servers from one container, published over HTTPS with OAuth 2.1 for any MCP client
ConnectorAFreshness: ARemoteLocal★ 3↓ 67/wkClaude Code +5 - 0.623score
CalDAV calendars
ni-c
Read and write CalDAV calendars: events, tasks and journal entries over the open standard
ConnectorAFreshness: ALocal★ 1↓ 138/wkClaude Code +5 - 0.618score

CardDAV address books
ni-c
Read and write CardDAV address books: contacts, groups and photos over the open standard
ConnectorAFreshness: ALocal↓ 200/wkClaude Code +5 - 0.615score
Wiki.js
ni-c
Search, read and edit Wiki.js pages, and manage its assets, users, groups and comments
ConnectorAFreshness: ALocal★ 3↓ 43/wkClaude Code +5
Cite this page
Google Search Console MCP server. Agent Mart. https://agentmart.dev/connectors/ni-c-google-search-console-mcp (last updated 2026-10-24)