Skip to main content
Glama
skiddgoddamn

google-seo-mcp

by skiddgoddamn

๐Ÿ” google-seo-mcp

Full Google SEO & analytics stack for AI agents โ€” over one MCP server.

Search Console ยท Indexing API ยท GA4 (Admin + Data) ยท Tag Manager ยท PageSpeed Insights

npm version npm downloads node license MCP


A Model Context Protocol server that gives Claude (and any MCP client) hands-on control of the Google SEO and analytics stack โ€” list and claim properties, query search performance, submit URLs for indexing, spin up GA4 properties and data streams (i.e. install the measurement tag), wire up Tag Manager, and run PageSpeed audits. Ships with self-configuring OAuth2: no tokens at launch โ€” the agent walks through authorization with built-in tools.

โœจ Highlights

  • ๐Ÿ”Ž Search Console โ€” properties, sitemaps, search analytics, URL inspection

  • โšก Indexing API โ€” push URL_UPDATED / URL_DELETED notifications

  • ๐Ÿ“Š GA4 โ€” create properties & web data streams (get the Measurement ID), run reports & realtime

  • ๐Ÿท๏ธ Tag Manager โ€” accounts, containers, workspaces, tags

  • ๐Ÿšฆ PageSpeed Insights โ€” Core Web Vitals + Lighthouse, no OAuth needed

  • ๐Ÿ” Self-configuring OAuth2 โ€” loopback code capture + auto-refresh, stored locally

  • ๐Ÿ›ก๏ธ Safety rails โ€” read-only mode and per-call confirm guards

Related MCP server: Google Search Console MCP Server

๐Ÿ“ฆ Installation

Run straight from npm with npx (no install needed), or build from source:

# from source
git clone https://github.com/skiddgoddamn/google-seo-mcp
cd google-seo-mcp
npm install && npm run build

๐Ÿ”Œ Connect to your MCP client

Add to your MCP config (e.g. ~/.claude.json or claude_desktop_config.json):

{
  "mcpServers": {
    "google-seo": {
      "command": "npx",
      "args": ["-y", "google-seo-mcp"],
      "env": { "GOOGLE_PSI_API_KEY": "" }
    }
  }
}
{
  "mcpServers": {
    "google-seo": {
      "command": "node",
      "args": ["F:/projects/google-seo-mcp/build/index.js"]
    }
  }
}

โ˜๏ธ Google Cloud setup

  1. Open Google Cloud Console โ†’ APIs & Credentials

  2. Create an OAuth 2.0 Client ID โ†’ application type Desktop app

  3. Enable these APIs for the project:

    • Google Search Console API ยท Indexing API ยท Analytics Admin API ยท Analytics Data API ยท Tag Manager API

  4. On the OAuth consent screen, add your Google account as a test user (while the app is in "Testing")

  5. Keep the Client ID and Client Secret handy

๐Ÿ”‘ Authorize (self-setup)

No tokens needed at startup โ€” run these tools from your agent, in order:

Step

Tool

What happens

1

g_set_credentials

Save your OAuth Client ID + Client Secret

2

g_authorize

Opens Google's consent screen and captures the code via a local loopback server

โ†ณ

g_set_code

Headless fallback โ€” paste the code + redirect URI manually

โœ“

g_auth_status

Check what's configured and whether the token is valid

The refresh token is saved to ~/.google-seo-mcp/config.json and reused (and auto-refreshed) on every run.

โš™๏ธ Environment variables

Variable

Default

Description

G_READONLY

false

Block every mutating tool (_add _create _update _delete _submit _set)

G_CONFIRM

false

Require a confirm=true argument on mutating calls

G_LOG_LEVEL

INFO

DEBUG ยท INFO ยท WARNING ยท ERROR

G_LOG_BODIES

false

Log request/response bodies to stderr (verbose)

G_LOG_FILE

โ€”

Append log lines to a file (default: stderr only)

GOOGLE_MCP_CONFIG_DIR

~/.google-seo-mcp

Override the config directory

GOOGLE_PSI_API_KEY

โ€”

PageSpeed Insights key; anonymous (rate-limited) if unset

See .env.example for a ready-to-copy template.

๐Ÿงฐ Tool reference

๐Ÿ” Auth โ€” g_

Tool

Description

g_auth_status

Show OAuth configuration status and token validity

g_set_credentials

Save OAuth client_id and client_secret

g_authorize

Open the consent screen via loopback and store the refresh token

g_set_code

Manually exchange an authorization code for a refresh token

๐Ÿ”Ž Search Console โ€” gsc_

Tool

Description

gsc_sites_get

List all Search Console properties

gsc_site_get

Get a single property and your permission level

gsc_site_add

Add (claim) a property

gsc_site_delete

Remove a property

gsc_sitemaps_get

List submitted sitemaps

gsc_sitemap_get

Get a sitemap's status

gsc_sitemap_submit

Submit a sitemap

gsc_sitemap_delete

Delete a sitemap

gsc_search_analytics

Clicks / impressions / CTR / position by query, page, country, device, date

gsc_url_inspect

Index status, coverage, mobile usability, rich results

โšก Indexing API โ€” idx_

Tool

Description

idx_url_submit

Notify Google a URL was added/updated (URL_UPDATED)

idx_url_delete

Notify Google a URL was removed (URL_DELETED)

idx_metadata

Latest indexing-notification metadata for a URL

โ„น๏ธ The Indexing API is officially eligible only for pages with JobPosting or BroadcastEvent structured data. Other URLs may be ignored.

๐Ÿ“Š GA4 โ€” ga4_

Tool

Description

ga4_accounts_get

List Analytics accounts

ga4_properties_get

List properties under an account

ga4_property_get

Get a property

ga4_property_create

Create a GA4 property

ga4_datastreams_get

List a property's data streams

ga4_datastream_create

Create a web data stream โ†’ returns the Measurement ID

ga4_datastream_get

Get a data stream

ga4_run_report

Run a report (metrics + dimensions over a date range)

ga4_realtime

Run a realtime report

๐Ÿท๏ธ Tag Manager โ€” gtm_

Tool

Description

gtm_accounts_get

List GTM accounts

gtm_containers_get

List containers under an account

gtm_container_create

Create a container โ†’ returns its GTM-ID

gtm_workspaces_get

List workspaces of a container

gtm_tags_get

List tags in a workspace

gtm_tag_create

Create a tag in a workspace

๐Ÿšฆ PageSpeed Insights โ€” psi_

Tool

Description

psi_run

Analyze a URL โ€” Core Web Vitals + Lighthouse (no OAuth required)

๐Ÿ›ก๏ธ Safety rails

  • G_READONLY=true โ€” blocks every tool whose name contains _add _create _update _delete _submit _set. Reads still work.

  • G_CONFIRM=true โ€” mutating tools return a preview and require a follow-up call with confirm: true.

๐Ÿ“„ License

MIT ยฉ skiddgoddamn

Available Tools

17 tools
ga4_datastream_createA

GA4 Admin: create a WEB data stream (returns the Measurement ID / tag โ€” i.e. installs the GA4 counter).

ParametersJSON Schema
NameRequiredDescriptionDefault
default_uriYesSite URL, e.g. https://example.com
property_idYes
display_nameYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It discloses the return value (Measurement ID/tag) which is useful. However, it does not mention whether the operation is idempotent, destructive, or if it requires specific permissions. Missing some behavioral details expected for a create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that efficiently communicates purpose and key output. No unnecessary words, front-loaded with the action, and structured well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param create tool with no output schema and no annotations, the description covers core purpose and result. Missing prerequisites (e.g., property must exist), error conditions, and whether duplicate creation is allowed. Adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (33%), only default_uri has a description. The tool description does not provide additional details about property_id or display_name beyond their names. The parameter meanings are partially inferred but not explicitly clarified. More explanation would help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'create a WEB data stream' and specifies the result (returns Measurement ID/tag). The verb 'create' and resource 'WEB data stream' are distinct from sibling tools that get or list streams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'create a WEB data stream', implying it is the tool for GA4 web data stream creation. Does not explicitly state when not to use or provide alternatives, but the context of sibling names makes differentiation clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ga4_datastreams_getB

GA4 Admin: list data streams of a property.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_idYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description must fully convey behavior. The word 'list' implies a read-only operation, which is transparent enough for a simple list. However, it doesn't disclose pagination, authentication requirements, or the nature of the returned data, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, seven words, no fluff. Essential information is front-loaded. Ideal conciseness for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description is minimal but functional. It doesn't describe the return format (e.g., array of stream objects), pagination, or any edge cases. Adequate for a straightforward list, but would benefit from slight expansion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'property_id' has no schema description (0% coverage). The description adds value by stating 'of a property', clarifying that property_id identifies the property whose data streams are listed. This compensates for the missing schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists data streams of a property, using a specific verb and resource. It differentiates from siblings like ga4_datastream_get (singular) and ga4_datastream_create, but could be more explicit about the 'list' vs 'get' distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., ga4_datastream_get for a single stream, or ga4_datastream_create for creation). The description provides no context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ga4_property_createB

GA4 Admin: create a new GA4 property under an account.

ParametersJSON Schema
NameRequiredDescriptionDefault
time_zoneYesIANA tz, e.g. Europe/Moscow
account_idYesNumeric account ID or 'accounts/123'
display_nameYes
currency_codeNoe.g. RUB, USD (default USD)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies mutation ('create') but does not disclose permissions, rate limits, side effects, or error states. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. While concise, it could be slightly expanded to improve completeness without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is too minimal. It does not explain what the tool returns, prerequisites, or error handling, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75% (three of four parameters have descriptions). The tool description adds no extra meaning beyond the schema; it merely restates the action. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'create', the resource 'GA4 property', and the context 'under an account'. It distinguishes the tool from sibling tools like ga4_properties_get (list) and ga4_property_get (get single).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions. It is a bare statement with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gsc_site_addC

Search Console: add (claim) a property.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesProperty URL exactly as in Search Console, e.g. https://example.com/ or sc-domain:example.com

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No behavioral traits beyond the brief action described; missing side effects, auth needs, or success/failure conditions. No annotations to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise but under-sized; lacks essential information that could be added without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description is too brief to fully inform an agent about results, errors, or implications of claiming a property.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already provides detailed parameter description (100% coverage). The description adds no additional context beyond the action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'add (claim)' and resource 'property', distinguishing it from sibling tools like gsc_site_delete and gsc_site_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like gsc_sites_get or gsc_site_get, nor prerequisites or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gsc_site_deleteB

Search Console: remove a property from the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesProperty URL exactly as in Search Console, e.g. https://example.com/ or sc-domain:example.com

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden but only states 'remove a property'. It does not disclose consequences (e.g., irreversibility, permission requirements, impact on associated data), leaving the agent underinformed about the tool's behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with 'Search Console' for context. It is efficient but could include a bit more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is too minimal for a delete operation. It lacks information on what happens upon removal, error scenarios, or success confirmation, leaving the agent with incomplete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate. It does not clarify formatting or validation beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'remove' and the resource 'property' from the account, distinguishing it from sibling tools like gsc_site_add (add) and gsc_site_get (get). It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., gsc_sitemap_delete, gsc_site_get). There is no mention of prerequisites, conditions, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gsc_site_getA

Search Console: get one property and the user's permission level.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesProperty URL exactly as in Search Console, e.g. https://example.com/ or sc-domain:example.com

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explicitly states a read operation ('get'), which is safe and idempotent, but does not disclose error behavior, rate limits, or idempotency beyond the verb. For a simple GET tool, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the purpose ('Search Console: get one property and the user's permission level'). Every word earns its place; no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic purpose but omits details about response structure (no output schema) and error handling. For a one-parameter GET tool, it is adequately complete but could be more informative, e.g., mentioning that the response includes the site object and permission level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description repeats the schema's parameter description verbatim ('Property URL exactly as in Search Console, e.g. https://example.com/ or sc-domain:example.com'). No additional semantic enrichment is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific verb ('get') and resource ('one property and the user's permission level'), distinguishing it from sibling tools like gsc_site_add (create) and gsc_sites_get (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single site's details and permissions, but does not explicitly state when to use this versus gsc_sites_get or other tools. No exclusions or alternative guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gsc_sitemaps_getB

Search Console: list submitted sitemaps for a property.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesProperty URL exactly as in Search Console, e.g. https://example.com/ or sc-domain:example.com

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It indicates a read operation but doesn't disclose any limitations or side effects. Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with zero wasted words; front-loaded with purpose. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and description lacks any hint of return format (e.g., list of objects, fields). For a listing tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, so description adds no extra value beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action 'list' and resource 'submitted sitemaps for a property', effectively distinguishing from siblings like gsc_sitemap_get and gsc_sitemap_submit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., gsc_sitemap_get for single sitemap). No context on prerequisites or use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gsc_sites_getA

Search Console: list all properties for the user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full burden. Only states it lists properties; no disclosure of behavior like authentication needs, rate limits, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence with no redundancy. Front-loads 'Search Console:' for context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 0-param list tool, description is minimally adequate but lacks details about output content (e.g., what a 'property' includes) as no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters and 100% schema coverage, so baseline 4 applies. Description adds no param info but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list' and resource 'properties' for Search Console. It distinguishes from sibling tools like 'gsc_site_get' which targets a single property.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this vs siblings like 'gsc_site_get' or 'gsc_search_analytics'. Usage context is only implied by the verb 'list'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

g_set_codeA

Manual fallback: paste an authorization code obtained by opening the authorize_url with a known redirect_uri (for headless machines).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
redirect_uriYesThe exact redirect_uri used to get the code, e.g. http://127.0.0.1:5000

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It indicates it's a mutation action (setting code) but doesn't detail side effects, error conditions, or state changes beyond the intended use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence that is front-loaded with the key phrase 'Manual fallback'. Every word contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers the purpose, when to use it, and parameter roles. It is reasonably complete, though it could mention what happens on success or error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (redirect_uri has a description, code does not). The description explains that 'code' is the authorization code from authorize_url and 'redirect_uri' must match the one used to get the code, adding meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a manual fallback to paste an authorization code. It specifies the verb 'paste' and the resource 'authorization code', and distinguishes it from sibling tools like g_authorize and g_auth_status by indicating it's for headless machines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Manual fallback' and specifies the use case: for headless machines where interactive authorization is not possible. It implies not to use this tool if interactive flow is available, though it doesn't name the alternative tool directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

g_set_credentialsB

Save the Google OAuth app client_id and client_secret. Create a 'Desktop app' OAuth client at https://console.cloud.google.com/apis/credentials and enable the Search Console, Indexing, Analytics Admin/Data, Tag Manager APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYes
client_secretYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'save' without disclosing side effects, validation, overwrite behavior, or storage details. This is insufficient for a mutation tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first defines purpose, second provides setup instructions. No extraneous content, though the second sentence could be considered user guidance rather than tool behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and the description does not specify return values or confirm successful saving. It fails to explain what happens after credentials are saved, which is needed for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It names 'Google OAuth app client_id and client_secret' which adds minimal meaning. It does not explain format, constraints, or validation rules for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Save the Google OAuth app client_id and client_secret' which clearly identifies the action and resource. It also provides contextual steps for obtaining the credentials, distinguishing it from sibling tools like g_authorize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is a prerequisite for authorization but does not explicitly state when to use it vs. alternatives. It lacks guidance on when not to use it or clear context on the authorization flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_accounts_getB

Tag Manager: list GTM accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'list GTM accounts'. It does not disclose behavioral traits such as authentication requirements, rate limits, or the nature of the response. The description carries the full burden but adds minimal insight beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise phrase with no wasted words. However, it is very minimal and could be considered under-specified, though it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that it is a listing operation with no parameters and no output schema, the description is bare minimum. It does not mention that this is a read-only operation or what the response format is. For a simple tool, it is adequate but could provide more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0 params, 100% schema coverage), so the description need not add parameter details. Baseline for 0 params is 4, and the description is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'GTM accounts', distinguishing it from sibling tools like gtm_containers_get and ga4_accounts_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. It implies listing all GTM accounts but offers no exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_container_createC

Tag Manager: create a container (returns its GTM-ID).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
account_idYes
usage_contextNoDefault ['web']

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only mentions that it returns a GTM-ID. It does not disclose whether creation is idempotent, what happens on duplicate names, any side effects, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the purpose. No extraneous words, but it could benefit from slightly more detail without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that it is a creation tool with no output schema and no annotations, the description is incomplete. It does not explain error conditions, the format of the returned GTM-ID, rate limits, or how to use the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only usage_context has a description). The tool description does not add any additional meaning for the parameters account_id, name, or usage_context beyond the schema, leaving their semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'create' and the resource 'container' and specifies that it returns the GTM-ID, which distinguishes it from sibling tools like gtm_containers_get (which lists).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, prerequisites (e.g., need an account_id), or when not to use it. The description simply states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_containers_getC

Tag Manager: list containers under an account.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description fails to explicitly state that the tool is read-only or disclose any behavioral traits such as pagination or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words, though it lacks structured sections like examples or prerequisites.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 required parameter, no output schema), the description is insufficient. It does not explain the return value or confirm the parameter is required, leaving gaps for an AI agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only hints at the 'account_id' parameter by mentioning 'under an account', but does not specify its format, constraints, or that it is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'containers under an account', distinguishing it from sibling tools like 'gtm_container_create'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'gtm_tags_get' or 'gtm_workspaces_get' is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_tag_createC

Tag Manager: create a tag in a workspace. Pass the raw GTM tag object (type + parameters).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesGTM Tag resource, e.g. {"name":"GA4 Config","type":"googtag","parameter":[{"type":"template","key":"tagId","value":"G-XXXX"}]}
account_idYes
container_idYes
workspace_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states mutation ('create') and hints at object format, but no disclosure of side effects, permissions, idempotency, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences, front-loaded with purpose and format. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with nested object parameter, no output schema, and no annotations, the description is too sparse. Missing return value, error handling, and prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has only 25% coverage (tag parameter described). Description adds value by emphasizing 'raw GTM tag object (type + parameters)', but fails to explain the other three mandatory parameters (account_id, container_id, workspace_id).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb and resource: 'create a tag in a workspace'. Distinguishes from sibling tools like gtm_tags_get (read) and gtm_container_create (different resource), but could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, nor when not to use it. No mention of prerequisites or context like needing a workspace first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_tags_getC

Tag Manager: list tags in a workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYes
container_idYes
workspace_idYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. The description only says 'list tags', which is a read operation, but doesn't disclose any side effects, authentication needs, or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it omits important details that could be added without making it verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no parameter descriptions, and no annotations, the description is insufficient. It does not explain the response format or the structure of tags, leaving the agent with incomplete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not explain any of the three required parameters (account_id, container_id, workspace_id). It adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'tags' in the context of 'Tag Manager' and 'workspace'. It distinguishes from siblings like gtm_tag_create and gtm_workspaces_get, which have different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to list tags) but provides no guidance on prerequisites, alternatives, or when not to use. For a simple list operation, it's adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gtm_workspaces_getC

Tag Manager: list workspaces of a container.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYes
container_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read-only operation ('list'), but no annotations are present to confirm safety. No behavioral details (e.g., permissions needed, rate limits, or side effects) are provided beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief (one sentence), which is concise, but lacks critical information such as parameter details. It is front-loaded but does not fully earn its place because it omits necessary context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's simplicity, the description fails to explain the return value (e.g., a list of workspace objects) or any pagination behavior. With no output schema or annotations, the description is insufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two required parameters (account_id, container_id) with no description coverage (0%). The tool description does not explain their purpose or format, leaving the agent to guess their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('list') and the resource ('workspaces of a container'), making the tool's purpose unambiguous. It also distinguishes from siblings like gtm_containers_get (lists containers) and gtm_tags_get (lists tags).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not specify prerequisites, such as needing an existing container, or when to use it instead of other tagging tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

psi_runA

PageSpeed Insights: analyze a URL (Core Web Vitals + Lighthouse). No OAuth needed; uses GOOGLE_PSI_API_KEY if set.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze
localeNoe.g. ru, en
categoryNoLighthouse categories
strategyNoDefault mobile

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that no OAuth is needed and an API key is used, which is helpful for understanding authentication behavior. However, it does not mention rate limits, error handling, or what happens if the key is missing, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence with no filler words. It front-loads the core purpose and adds the key usage detail about OAuth. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should ideally hint at return values (e.g., scores, reports). It does not, but the tool's purpose (Core Web Vitals + Lighthouse) implies typical results. For a simple analysis tool, this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains parameters. The description adds value by specifying that 'locale' is e.g. 'ru, en', that 'category' refers to Lighthouse categories, and that 'strategy' defaults to 'mobile'. This enriches the schema definitions without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes a URL using PageSpeed Insights, specifically mentioning Core Web Vitals and Lighthouse. This verb+resource combination is specific and distinguishes it from sibling tools like gsc_url_inspect or ga4_run_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'No OAuth needed; uses GOOGLE_PSI_API_KEY if set,' which provides clear guidance on when to use this tool (when OAuth is not required) compared to other tools that may need authentication. However, it does not state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updatesv1.0.1
    • Addedg_set_code
    • Addedg_set_credentials
    • Removedga4_accounts_get
    • Removedga4_properties_get
    • Removedga4_property_get
    • Addedgsc_site_add
    • Addedgsc_site_delete
    • Addedgsc_sitemaps_get
    • Addedgsc_sites_get
    • Removedgsc_url_inspect
    • Addedgtm_accounts_get
    • Addedgtm_container_create
    • Addedgtm_containers_get
    • Addedgtm_tags_get
    • Addedgtm_workspaces_get
    • Removedidx_metadata
    • Removedidx_url_delete
    • Addedpsi_run
  2. 22 tool updatesv1.0.1
    • Removedg_auth_status
    • Removedg_authorize
    • Removedg_set_code
    • Removedg_set_credentials
    • Removedga4_datastream_get
    • Removedga4_realtime
    • Removedga4_run_report
    • Removedgsc_search_analytics
    • Removedgsc_site_add
    • Removedgsc_site_delete
    • Removedgsc_sitemap_delete
    • Removedgsc_sitemap_get
    • Removedgsc_sitemap_submit
    • Removedgsc_sitemaps_get
    • Removedgsc_sites_get
    • Removedgtm_accounts_get
    • Removedgtm_container_create
    • Removedgtm_containers_get
    • Removedgtm_tags_get
    • Removedgtm_workspaces_get
    • Removedidx_url_submit
    • Removedpsi_run
  3. 33 tool updatesv1.0.0
    • First observedg_auth_status
    • First observedg_authorize
    • First observedg_set_code
    • First observedg_set_credentials
    • First observedga4_accounts_get
    • First observedga4_datastream_create
    • First observedga4_datastream_get
    • First observedga4_datastreams_get
    • First observedga4_properties_get
    • First observedga4_property_create
    • First observedga4_property_get
    • First observedga4_realtime
    • First observedga4_run_report
    • First observedgsc_search_analytics
    • First observedgsc_site_add
    • First observedgsc_site_delete
    • First observedgsc_site_get
    • First observedgsc_sitemap_delete
    • First observedgsc_sitemap_get
    • First observedgsc_sitemap_submit
    • First observedgsc_sitemaps_get
    • First observedgsc_sites_get
    • First observedgsc_url_inspect
    • First observedgtm_accounts_get
    • First observedgtm_container_create
    • First observedgtm_containers_get
    • First observedgtm_tag_create
    • First observedgtm_tags_get
    • First observedgtm_workspaces_get
    • First observedidx_metadata
    • First observedidx_url_delete
    • First observedidx_url_submit
    • First observedpsi_run

TDQS

B3.4/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct service and action. For example, gtm_tag_create is clearly different from gsc_sites_get, and the descriptions remove any ambiguity. There is no overlap in functionality.

Naming Consistency3/5

Most tools follow a 'service_operation' pattern (e.g., gtm_tag_create, ga4_property_create), but 'g_set_credentials' and 'g_set_code' deviate with a 'g_' prefix. 'psi_run' also breaks the pattern. This inconsistency could confuse an agent.

Tool Count5/5

With 17 tools across multiple Google services (Search Console, GA4, Tag Manager, PageSpeed), the count is appropriate. Each tool serves a clear purpose, and the number is neither too small nor too large for the scope.

Completeness3/5

The tools cover basic CRUD for Search Console and GA4 setup, but lack update/delete for tags, sitemap submission, and Analytics Data API reporting. Some lifecycle operations are missing, which may require workarounds.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to manage Google Tag Manager, Google Search Console, and Google Analytics (GA4) through unified access to tags, search performance data, URL inspection, sitemaps, and analytics reporting.
    8 npm
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query Google Search Console data including search analytics, URL inspection, sitemap management, and site performance monitoring, with per-user OAuth authentication.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Connects Google Search Console to AI assistants, enabling natural language analysis of SEO data. Provides read-only tools for properties, search analytics, URL inspection, and sitemaps.
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to access Google Search Console search performance and index health data, including clicks, impressions, rankings, URL inspection, and sitemap management.
    2 npm
    MIT