Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Google Webtools MCP

OCI · GHCR.IO/STUFENTLY/GOOGLE-WEBTOOLS-MCP

Google Search Console + GA4 for AI agents: properties, reports, indexing, verification, SEO.

42 Trust /100

Last scanned (20 hours ago)

Scores higher than 58% of OCI servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability72
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5455 tokens (~139/item across 39 items; 39 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Oct 26 +1
    • Stability: unverified → 0.07 ▲ functional
  • 15 Oct 26 +31
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Tool coverage: 99 functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 100 functional
  • 14 Oct 26 0
    • Package version: 1.2.1 → 1.2.2 functional
  • 11 Oct 26 10

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Oct 2026 · Analysed oci/ghcr.io/stufently/google-webtools-mcp@1.2.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 39 exposed · ~5,455 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_property ~112

Register a site URL or a domain as a Google Search Console property on the authenticated account. Use when the user asks to add a site to Search Console. Adding a property does not verify it. Call gsc_get_verification_token and then gsc_verify_site to prove ownership, and call list_properties to see sites that are already listed.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

analyze_query_landscape ~151

Classify the Search Console queries of a property by intent, branded versus non-branded demand, and position band. Use when the user wants the shape of search demand rather than a list of winners. Call find_new_queries for queries that just appeared, and call find_cannibalization when several pages share one query.

NameTypeReqDescription
minImpressionsinteger–Minimum impressions for a query to be included
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

batch_inspect_urls ~161

Inspect up to 50 URLs in one call and group them into indexed, not indexed, and errors. Indexed URLs show coverage state and last crawl; not-indexed URLs show verdict, coverage state, robots.txt state, and page fetch state; URLs without index data are listed as errors. Use when the user hands over a list of URLs to check. Call inspect_url for a single URL, and call check_indexing_issues when they want the top traffic pages audited without supplying the list.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")
urlsarrayyesArray of URLs to inspect (max 50)

No output schema declared.

No examples provided.

check_indexing_issues ~127

Audit the top traffic pages of a property for indexing failures, canonical mismatches, missing canonicals, and mobile problems. Use when the user wants an indexing health pass rather than a check of URLs they already named. Call inspect_url or batch_inspect_urls when they already have the URL list.

NameTypeReqDescription
limitnumber–Number of top pages to check (default 20, max 100)
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

compare_periods ~208

Compare Search Console clicks, impressions, CTR, and position between two explicit date ranges, optionally grouped by a dimension. Use when the user names a before and an after, such as a release or a season. Call get_performance_summary when they want the latest period against the one just before it, without choosing dates.

NameTypeReqDescription
dimensionsarray–Dimensions to group by
period1EndDatestringyesPeriod 1 end date (YYYY-MM-DD)
period1StartDatestringyesPeriod 1 start date (YYYY-MM-DD)
period2EndDatestringyesPeriod 2 end date (YYYY-MM-DD)
period2StartDatestringyesPeriod 2 start date (YYYY-MM-DD)
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

delete_property ~108

Remove a Google Search Console property from the authenticated account site list. Use when the user explicitly asks to drop a property. The property can be added back later, and this call does not erase historical data held by Google. Call delete_sitemap to withdraw a sitemap instead, and call add_property to register the site again.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

delete_sitemap ~134

Withdraw a previously submitted sitemap from a Google Search Console property. Use when the user asks to remove a stale, duplicated, or broken sitemap. Removing the sitemap does not drop its URLs from the Google index. Call submit_sitemap to file that feed again, and call list_sitemaps to see what is still submitted.

NameTypeReqDescription
feedpathstringyesThe URL of the sitemap (e.g., "https://example.com/sitemap.xml")
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_cannibalization ~196

Detect queries where more than one page of the property ranks, and name the page that wins the clicks. Use when the user asks whether their own pages compete for the same query. Call find_content_gaps when the query lands on the wrong page, and call get_top_pages for a plain page ranking.

NameTypeReqDescription
minImpressionsinteger–Minimum total impressions for a query to be evaluated for cannibalization
minPageImpressionsinteger–Minimum impressions one page needs before it counts as a real contender. Queries where only a single page clears this bar are reported as low-volume and get no consolidation advice.
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_content_gaps ~153

Find Search Console queries that land on the wrong page, high-impression queries with no clicks, and topics that still need a dedicated page. Use when the user asks what content is missing. Call find_what_to_build_next to group that demand by intent, and call find_cannibalization when several pages already compete for one query.

NameTypeReqDescription
minImpressionsnumber–Minimum impressions to consider a query
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_ctr_opportunities ~150

Find pages whose Search Console click-through rate sits well below the benchmark for their average position, with a fix note for each page. Use when the user asks which titles or snippets are wasting impressions. Call find_quick_wins for query and page pairs near page one, and call get_top_pages for a plain traffic ranking.

NameTypeReqDescription
minImpressionsnumber–Minimum impressions to include a page
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_declining_content ~156

Compare the current Search Console period with the previous one and rank the pages and the queries that lost clicks. Use when the user asks what stopped getting traffic or what dropped recently. Call find_quick_wins for under-clicked rankings that are not necessarily declining, and call weekly_seo_report for a full weekly digest.

NameTypeReqDescription
minClicksInPreviousnumber–Minimum clicks in the previous period to consider a page or query
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_new_queries ~149

Find queries that are new or rising fast by diffing this Search Console period against the previous one. Use when the user asks what people started searching recently. Call analyze_query_landscape for the overall mix of intent, and call find_what_to_build_next when they want those queries grouped into topics to write.

NameTypeReqDescription
minImpressionsinteger–Minimum impressions in the current period to be included
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_quick_wins ~158

Find query and page pairs that rank well but are under-clicked, sit just off page one, or would gain clicks from a small position push. Use when the user asks where search traffic is being left on the table. Call find_ctr_opportunities for page-level CTR gaps, and call find_declining_content when the problem is traffic that is already falling.

NameTypeReqDescription
minImpressionsnumber–Minimum impressions to consider a query
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

find_what_to_build_next ~152

Group Search Console queries by user intent, covering questions, comparisons, problems, and buying signals, into topic clusters for what to write next. Use when the user asks what content to create. Call find_content_gaps for mismatched landing pages and zero-click queries, and call analyze_query_landscape for the overall intent mix.

NameTypeReqDescription
minImpressionsnumber–Minimum impressions to consider a query
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

ga4_create_data_stream ~150

Create a web data stream on a Google Analytics 4 property and return its measurement id for the tag. Use when the user needs a measurement id to install analytics on a site. This server cannot delete the stream afterwards. Call ga4_list_data_streams if a stream may already exist, and call ga4_create_property first when the property itself does not exist yet.

NameTypeReqDescription
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")
stream_namestring–Display name for the stream (defaults to hostname)
urlstringyesWebsite URL for the data stream (e.g., "https://example.com")

No output schema declared.

No examples provided.

ga4_create_property ~183

Create a new Google Analytics 4 property under an account, with a display name, timezone, and currency. Use when the user asks to provision a GA4 property. This server cannot remove the property afterwards. Call ga4_list_properties to see properties that already exist, and call ga4_create_data_stream next when they need a measurement id.

NameTypeReqDescription
account_idstringyesGA4 account ID (e.g., "123456" or "accounts/123456")
currency_codestring–Currency code (e.g., "USD", "EUR")
display_namestringyesDisplay name for the new property
industry_categorystring–Industry category (e.g., "TECHNOLOGY", "FINANCE")
timezonestringyesReporting timezone (e.g., "America/New_York", "Europe/Moscow")

No output schema declared.

No examples provided.

ga4_get_data_stream ~111

Read one Google Analytics 4 data stream, including its measurement id, default URI, and created and updated times. Use when the user names a stream and wants its measurement id or settings. Call ga4_list_data_streams when the stream id is not known yet.

NameTypeReqDescription
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")
stream_idstringyesData stream ID (numeric, e.g., "789012")

No output schema declared.

No examples provided.

ga4_get_metadata ~88

List the dimensions and metrics a Google Analytics 4 property accepts, including custom definitions. Use when a report needs valid metric and dimension names and guessing would be wrong. Call ga4_run_report once the names are known; this tool does not return the numbers.

NameTypeReqDescription
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")

No output schema declared.

No examples provided.

ga4_get_property ~94

Read one Google Analytics 4 property display name, timezone, currency, industry, and parent account. Use when the user asks how a known property is configured. Call ga4_list_properties to find the id first, and call ga4_list_data_streams for the streams on that property.

NameTypeReqDescription
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")

No output schema declared.

No examples provided.

ga4_list_accounts ~66

List every Google Analytics 4 account the credentials can reach, and the properties under each account. Use when the user does not yet know the account or property id. Call ga4_list_properties when they already named an account, and call ga4_get_property for one property settings.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ga4_list_data_streams ~100

List the data streams on a Google Analytics 4 property, including each web stream measurement id and default URI. Use when the user asks which streams or measurement ids a property already has. Call ga4_get_data_stream for one stream, and call ga4_create_data_stream only when they want a new stream.

NameTypeReqDescription
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")

No output schema declared.

No examples provided.

ga4_list_properties ~93

List Google Analytics 4 properties under one account, including timezone, currency, and when each property was created. Use when the user names an account and wants its properties. Call ga4_list_accounts when the account id is unknown, and call ga4_get_property to open one property.

NameTypeReqDescription
account_idstringyesGA4 account ID (e.g., "123456" or "accounts/123456")

No output schema declared.

No examples provided.

ga4_run_realtime_report ~152

Run a Google Analytics 4 realtime report of active users and on-site activity from the last thirty minutes. Use when the user asks who is on the site right now. Call ga4_run_report for any date range older than that live window, and call ga4_get_metadata if a realtime metric name is rejected.

NameTypeReqDescription
dimensionsarray–Realtime dimensions (e.g., ["country", "city", "unifiedScreenName"])
metricsarrayyesRealtime metrics (e.g., ["activeUsers", "screenPageViews", "conversions"])
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")

No output schema declared.

No examples provided.

ga4_run_report ~229

Run a Google Analytics 4 report for chosen metrics, dimensions, and an absolute or relative date range. Use when the user asks for historical GA4 numbers such as users, sessions, or page views. Call ga4_run_realtime_report for who is on the site right now, and call ga4_get_metadata before guessing a custom metric name.

NameTypeReqDescription
dimensionsarray–Dimensions to group by (e.g., ["date", "country", "pagePath"])
end_datestringyesEnd date: YYYY-MM-DD or relative ("yesterday", "today")
limitnumber–Maximum rows to return (1-100000, default 100)
metricsarrayyesMetrics to retrieve (e.g., ["activeUsers", "sessions", "screenPageViews"])
property_idstringyesGA4 property ID (e.g., "123456" or "properties/123456")
start_datestringyesStart date: YYYY-MM-DD or relative ("7daysAgo", "30daysAgo", "yesterday", "today")

No output schema declared.

No examples provided.

get_performance_summary ~141

Summarize clicks, impressions, CTR, and average position for one property against the previous period of the same length. Use when the user asks how search traffic is doing over a named period such as the last 28 days. Call compare_periods when they name two specific date ranges, and call get_search_analytics when they need the raw rows.

NameTypeReqDescription
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

get_property_details ~92

Read the type, permission level, and verification state of one Google Search Console property. Use when the user names a specific site and wants to know how that property is registered. Call list_properties when the property URL is not known yet.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

get_search_analytics ~272

Query raw Google Search Console search analytics with explicit dates, dimensions, filters, search type, row limit, and data state. Use when the user needs a custom breakdown that the shaped reports do not offer. Call get_performance_summary for a period overview, call get_top_queries or get_top_pages for a ranking, and call compare_periods for two named date ranges.

NameTypeReqDescription
aggregationTypestring––
dataStatestring–"final" = finalized data only (the API's own default; the newest days are simply absent until they settle), "all" = also includes the freshest days, whose numbers may still change
dimensionsarray–Dimensions to group by (e.g. query, page, date, country, device, searchAppearance)
endDatestringyesEnd date in YYYY-MM-DD format
filtersarray–Dimension filters to apply
rowLimitnumber–Maximum rows to return (1-25000)
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")
startDatestringyesStart date in YYYY-MM-DD format

No output schema declared.

No examples provided.

get_sitemap_details ~124

Read one submitted sitemap, including its type, last download, URL counts by content type, and error and warning totals. Use when the user names a sitemap and wants its processing status. Call list_sitemaps when they do not yet know which feed to open.

NameTypeReqDescription
feedpathstringyesThe URL of the sitemap (e.g., "https://example.com/sitemap.xml")
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

get_top_pages ~173

List the top Search Console pages by clicks and score each page against the CTR benchmark for its position. Use when the user asks which URLs earn the search traffic. Call get_top_queries for queries, call get_traffic_by_device for a device split, and call find_ctr_opportunities for pages far below the benchmark.

NameTypeReqDescription
devicestring–Filter by device type
limitnumber–Number of top pages to return
periodstring–Predefined date range period
querystring–Filter to pages matching a specific query (contains match)
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

get_top_queries ~193

List the top Search Console queries by clicks and score each query against the CTR benchmark for its position. Use when the user asks which queries bring traffic or which queries underperform their rank. Call get_top_pages for pages rather than queries, and call find_quick_wins for opportunity buckets instead of a plain ranking.

NameTypeReqDescription
countrystring–Filter by country code (e.g. "USA", "GBR")
devicestring–Filter by device type
limitnumber–Number of top queries to return
pagestring–Filter to a specific page URL (contains match)
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

get_traffic_by_device ~126

Split Search Console clicks, impressions, CTR, and average position across desktop, mobile, and tablet. Use when the user asks whether one device is underperforming the others. Call get_top_pages or get_top_queries when they want the pages or queries behind that device split.

NameTypeReqDescription
periodstring–Predefined date range period
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

gsc_get_verification_token ~130

Request a site-verification token for FILE, DNS_TXT, META, or ANALYTICS, and the steps for placing that token. Use when the user needs the token before they can prove they own a site. Call gsc_verify_site only after the token is in place. Domain properties cannot use FILE or META; call this tool with DNS_TXT for those.

NameTypeReqDescription
methodstringyesVerification method to use
site_urlstringyesSite URL or domain to verify (e.g., "https://example.com/" or "example.com" for domain verification)

No output schema declared.

No examples provided.

gsc_verify_site ~126

Record Google site ownership for a URL or a domain once the verification token is already in place. Use when the user says the file, DNS record, meta tag, or Analytics tag is published and asks to finish verification. Call gsc_get_verification_token first if they do not have a token yet. This does not add the Search Console property; call add_property for that.

NameTypeReqDescription
methodstringyesVerification method that was configured
site_urlstringyesSite URL or domain to verify (e.g., "https://example.com/" or "example.com")

No output schema declared.

No examples provided.

inspect_url ~130

Inspect one URL in the Google Search Console index for coverage, mobile usability, and rich-result verdicts, including the issues behind a failure. Use when the user asks why a single URL is missing from search or looks wrong. Call batch_inspect_urls for a list of URLs, and call check_indexing_issues to audit the top traffic pages of the property.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")
urlstringyesThe fully qualified URL to inspect

No output schema declared.

No examples provided.

list_properties ~67

List every Google Search Console property the credentials can access, including each property type and permission level. Use when the user wants to see which sites they can query before choosing one. Call get_property_details for a single known property, and call add_property only when they ask to register a new site.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_sitemaps ~111

List the sitemaps submitted for one Google Search Console property, with status, URL counts, and error flags. Use when the user asks which sitemaps are filed or whether Google reports sitemap problems. Call get_sitemap_details to open one feed, and call submit_sitemap only when they want to file a sitemap.

NameTypeReqDescription
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

seo_health_check ~125

Score a Search Console property from A to F, with sub-scores for traffic trend, CTR efficiency, position distribution, and sitemap health. Use when the user asks how healthy the site is in search or wants a grade. Call weekly_seo_report for the narrative digest, and call find_declining_content when they already know traffic fell.

NameTypeReqDescription
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

submit_sitemap ~139

Submit a sitemap URL to Google Search Console so Google can discover the pages of that property. Use when the user has published or moved a sitemap and asks to file it. Submitting the same feed again refreshes it and does not delete anything. Call delete_sitemap to withdraw a feed, and call get_sitemap_details to check processing afterwards.

NameTypeReqDescription
feedpathstringyesThe URL of the sitemap (e.g., "https://example.com/sitemap.xml")
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

weekly_seo_report ~125

Build a one-call weekly SEO digest with traffic versus last week, top growers and decliners, quick wins, sitemap health, and prioritized recommendations. Use when the user asks for a weekly report or a regular status update. Call seo_health_check for a letter grade, and call get_performance_summary when they only want the headline numbers.

NameTypeReqDescription
searchTypestring–Search type to analyze
siteUrlstringyesThe site URL exactly as it appears in Google Search Console (e.g., "https://example.com/" or "sc-domain:example.com")

No output schema declared.

No examples provided.

Install

How do I install the Google Webtools MCP server?

Google Webtools MCP runs locally as a container image, launched with docker run --rm -i -e GOOGLE_SERVICE_ACCOUNT_KEY ghcr.io/stufently/google-webtools-mcp:1.2.2. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/stufently/google-webtools-mcp

# add to Claude Code
claude mcp add stufently-google-webtools-mcp -- docker run --rm -i -e GOOGLE_SERVICE_ACCOUNT_KEY ghcr.io/stufently/google-webtools-mcp:1.2.2

This image reads GOOGLE_SERVICE_ACCOUNT_KEY. Set it in your client's env block for this server; docker run -e passes it through to the container.

Common questions

What is the Google Webtools MCP server?

Google Webtools MCP is listed in the public MCP registry as io.github.stufently/google-webtools-mcp. Google Search Console + GA4 for AI agents: properties, reports, indexing, verification, SEO. This page covers its container image (ghcr.io/stufently/google-webtools-mcp).

Is the Google Webtools MCP server safe to use?

Google Webtools MCP scores 42 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Google Webtools MCP server expose?

Google Webtools MCP exposes 39 tools: list_properties, get_property_details, add_property, delete_property, list_sitemaps, and 34 more. Their descriptions and schemas cost roughly 5,455 tokens of context every time the server is loaded.

Is the Google Webtools MCP server still maintained?

Google Webtools MCP is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Google Webtools MCP server under?

Google Webtools MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.