Skip to main content
Glama

Google Cloud & GA4 MCP Server

A full-featured Model Context Protocol (MCP) server for managing Google Cloud Platform resources and pulling Google Analytics 4 (GA4) data. This server allows AI agents (like Claude Desktop or Antigravity) to seamlessly interface with your GCP projects and web analytics.

Features

This server exposes 33 powerful tools across 4 domains:

1. πŸ“Š Google Analytics 4 (GA4)

Pull comprehensive web analytics for configured sites without leaving your AI environment.

  • ga4_discover_properties: Probe GA4 property IDs to verify access and metadata.

  • ga4_list_configured_sites: Show current site-to-property mappings.

  • ga4_set_site_property: Save a property ID for a specific site.

  • ga4_audience_overview: Get users, sessions, pageviews, bounce rate, and engagement.

  • ga4_top_pages: View the highest traffic pages for a site.

  • ga4_traffic_sources: Break down traffic by channel (organic, direct, referral, etc.).

  • ga4_traffic_over_time: View trends over days, weeks, or months.

  • ga4_device_breakdown: Compare desktop, mobile, and tablet usage.

  • ga4_geo_breakdown: See traffic distributed by country and city.

  • ga4_realtime_users: Check live active users on the site right now.

  • ga4_compare_all_sites: Get a quick side-by-side comparison of all configured sites.

  • ga4_run_custom_report: Run custom queries using any dimensions and metrics.

2. πŸ—οΈ GCP Projects Management

  • gcp_list_projects, gcp_get_project

  • gcp_create_project, gcp_update_project, gcp_delete_project

  • gcp_get_operation

3. πŸ” Identity and Access Management (IAM)

  • Service Accounts: gcp_list_service_accounts, gcp_create_service_account, gcp_delete_service_account, gcp_enable_service_account, gcp_disable_service_account, gcp_list_service_account_keys

  • IAM Policies: gcp_get_project_iam_policy, gcp_add_project_iam_binding, gcp_remove_project_iam_binding, gcp_list_roles

4. βš™οΈ GCP Service APIs

  • gcp_list_apis, gcp_enable_apis, gcp_disable_api, gcp_get_api, gcp_get_api_operation


Related MCP server: GCP MCP Server

Configuration

1. Service Account Authentication

This server uses a Google Cloud Service Account for authentication.

  1. Create a service account in GCP and download the JSON key file.

  2. Ensure the service account has the necessary GCP IAM roles (e.g., Project Creator, Security Admin, etc. depending on which tools you use).

  3. To use GA4 tools, you must also add the service account email as a Viewer inside your GA4 property's Property access management settings.

  4. Set the path to your JSON key file using the GOOGLE_APPLICATION_CREDENTIALS environment variable when running the server.

2. GA4 Sites Configuration

Your site property IDs are stored in sites.config.json in the root of this project. Currently configured for:

  • crossroadworks.com

  • alliesprettylittletreats.com

  • dooratl.church

You can update these mappings at any time via the AI using the ga4_set_site_property tool or by editing the JSON file manually.


Installation & Setup

  1. Clone the repository:

    git clone https://github.com/natekpurcella-hue/gcp-mcp.git
    cd gcp-mcp
  2. Install dependencies:

    npm install
  3. Build the server:

    npm run build

Connecting to an MCP Client

To use this server with an MCP client (such as Claude Desktop, Cursor, or Antigravity), add it to your client's configuration file.

Claude Desktop

For macOS/Linux, edit ~/Library/Application Support/Claude/claude_desktop_config.json (or the equivalent path for your OS):

{
  "mcpServers": {
    "gcp-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/gcp-mcp/dist/index.js"
      ],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/your/service-account-key.json"
      }
    }
  }
}

Cursor

  1. Open Cursor Settings > Features > MCP.

  2. Click Add New MCP Server.

  3. Choose command and enter: node /absolute/path/to/gcp-mcp/dist/index.js

  4. Make sure your GOOGLE_APPLICATION_CREDENTIALS environment variable is available to Cursor.

Antigravity

Edit ~/.gemini/antigravity-cli/mcp.json:

{
  "mcpServers": {
    "gcp-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/gcp-mcp/dist/index.js"
      ],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/your/service-account-key.json"
      }
    }
  }
}

Restart your MCP client, and your AI assistant will instantly have access to all GCP and Analytics capabilities!

Available Tools

33 tools
ga4_audience_overviewB

Get high-level audience metrics for a site: total users, new users, sessions, page views, bounce rate, avg session duration, engagement rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name (e.g. 'crossroadworks.com') or a raw numeric GA4 property ID.
endDateNoEnd date (e.g. 'today', '2024-01-31'). Defaults to today.
startDateNoStart date (e.g. '30daysAgo', '2024-01-01'). Defaults to 30daysAgo.

TDQS

B3.3/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 does not disclose whether the tool is read-only, any side effects, authentication requirements, or rate limits. While the tool is inherently read-only, the description should explicitly state this for clarity.

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 that directly states the tool's purpose and lists key metrics. It is concise and front-loaded, with no unnecessary words.

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 overview tool with three well-documented parameters, the description is adequate. It enumerates the metrics returned, compensating for the lack of an output schema. It does not cover edge cases or error handling, but it meets the essential needs for this level of complexity.

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%, with each parameter having a clear description. The tool description adds no extra meaning beyond the schema; it simply lists the metrics returned. Baseline is 3, and no additional value 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 states the tool retrieves high-level audience metrics and enumerates specific metrics like total users, sessions, bounce rate. This distinguishes it from sibling tools that focus on specific dimensions like pages (ga4_top_pages) or traffic sources (ga4_traffic_sources).

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. Other GA4 tools exist for more specific analyses (e.g., ga4_top_pages), but the description does not help the agent choose between them. It only states what the tool does, not when it's appropriate.

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

ga4_compare_all_sitesA

Get audience overview metrics for ALL three configured sites at once for a quick side-by-side comparison. Sites: crossroadworks.com, alliesprettylittletreats.com, dooratl.church.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date. Defaults to today.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

A3.9/5.0
Behavior3/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. It describes the tool as a read operation ('get metrics') but does not disclose any behavioral traits such as authentication requirements, data freshness, error handling for missing sites, or whether the operation is expensive. The description is insufficiently transparent about side effects or constraints.

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 sentence summarizing the purpose, followed by an inline list of the three sites. It is concise and front-loaded with the key action. No unnecessary words.

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 lack of output schema and annotations, the description is minimally complete. It explains what it does and the specific sites, but omits details about the type of metrics returned (e.g., users, sessions) and any prerequisites (e.g., all sites must have data). For a tool with two optional parameters, this is adequate but not comprehensive.

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?

The input schema has 100% coverage with descriptions for both parameters. The tool description does not add any additional semantic information beyond what the schema already provides, such as formatting or default behavior. Therefore, it does not improve parameter understanding.

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 function: retrieving audience overview metrics for all three specific sites simultaneously for side-by-side comparison. It distinguishes itself from single-site tools like ga4_audience_overview by emphasizing 'ALL three configured sites at once.'

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 implies usage when a quick comparison across the three listed sites is needed. However, it does not explicitly state when not to use this tool or mention alternative tools (e.g., ga4_audience_overview for individual sites). The context is clear but lacks direct guidance.

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

ga4_device_breakdownB

Break down users by device type (desktop, mobile, tablet) and operating system.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
endDateNoEnd date. Defaults to today.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

B3.2/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 fails to disclose whether it returns aggregate counts, whether it respects date parameters, or any other behavioral traits like authentication needs or rate limits.

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, front-loaded, no wasted words. Every part adds value.

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 and no annotations, the description is insufficient. It doesn't specify the output format or provide enough context for an agent to fully understand the result. For a breakdown tool, more detail on return structure is expected.

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 100%, so baseline is 3. The description does not add any extra meaning beyond the parameter names and schema descriptions. It does not explain the site parameter or default date behavior 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 a specific verb ('Break down') and resource ('users by device type and operating system'). It distinguishes itself from sibling tools like ga4_geo_breakdown by focusing on device and OS.

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. No context on prerequisites, exclusions, or when not to use it. The description only states what it does, not when it's appropriate.

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

ga4_discover_propertiesA

Probe GA4 property IDs to verify access and retrieve property metadata. Pass known property IDs as candidatePropertyIds (find them in GA4 β†’ Admin β†’ Property Settings). Also probes any IDs already saved in sites.config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
candidatePropertyIdsNoList of numeric GA4 property IDs to probe (e.g. ['461153501', '479398718']).

TDQS

A4.2/5.0
Behavior3/5

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

No annotations. Description states it verifies access and retrieves metadata, implying read-only behavior. Does not detail error handling, authentication needs, or side effects.

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?

Two sentences, front-loaded purpose, no wasted words.

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?

No output schema, but tool is simple. Description explains what it does and hints at output. Could note return type, but sufficient for agent.

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 covers parameter syntax. Description adds source guidance (GA4 Admin) and mention of probing config IDs, providing extra utility beyond 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?

Clear verb 'probe' and resource 'GA4 property IDs'. Distinguishes from siblings by focusing on access verification and metadata retrieval, not listing or reporting.

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?

Provides specific instruction on finding property IDs and mentions automatic probing of config-stored IDs. Lacks explicit 'when not to use' but is clear enough.

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

ga4_geo_breakdownC

Show top countries and cities by users for a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
limitNoMax locations to return (default 20).
endDateNoEnd date. Defaults to today.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states 'show', implying a read operation, but lacks details on aggregation, permission needs, data volume, or response format. A score of 2 reflects minimal 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 concise sentence, which is efficient and front-loaded. However, it could benefit from slightly more detail without losing brevity.

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 has 4 parameters and no output schema, the description is too minimal. It does not explain return values, pagination, or how the limit parameter impacts results, leaving the agent underinformed.

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%, so the baseline is 3. The description does not add extra context beyond the schema's parameter descriptions, such as how limit or dates affect results.

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 uses 'Show top countries and cities by users for a site', which clearly indicates a geographic aggregation tool. It distinguishes from sibling tools like ga4_top_pages and ga4_traffic_sources by focusing on location data.

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 over others, prerequisites, or when not to use it. The description is purely declarative with no conditional context.

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

ga4_list_configured_sitesA

Show the configured sites and their GA4 property IDs from sites.config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 full burden. It implies a read operation from a config file without side effects, but does not specify if authentication is needed, whether the config is local or remote, or if the output is sorted/limited. For a simple list tool, this is adequate but not richly transparent.

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, complete sentence of 14 words. Every word is necessary and there is no redundancy or filler.

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 and no annotations, the description is minimal. It does not describe the output format (e.g., list, table), the number of configured sites, or any error conditions. For a simple read tool it is adequate, but more context would improve an agent's understanding.

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?

With zero parameters and 100% schema coverage, the description adds value by specifying the data source (sites.config.json). This contextualizes the lack of parameters beyond the baseline of 4 for no-param tools.

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 shows configured sites and their GA4 property IDs from a specific source file (sites.config.json). The verb 'show' with resource 'configured sites and their GA4 property IDs' is specific and distinguishes it from sibling tools like gcp_list_projects or ga4_discover_properties.

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. There are many sibling tools for listing (gcp_list_projects) and GA4-related operations (ga4_discover_properties), but no indication of when sites.config.json is relevant or what distinguishes this tool.

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

ga4_realtime_usersA

Get real-time active users on a site right now (last 30 minutes), broken down by page.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.

TDQS

A3.8/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 full burden. It states the tool fetches data but does not disclose authentication requirements, return format, or whether it is read-only. The description is adequate but lacks detail.

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 sentence of 18 words, highly concise, and front-loaded with the key action. No unnecessary words.

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 read tool with one parameter and no output schema, the description is fairly complete. It explains the scope and breakdown. However, it could mention the return format or limitations.

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 100%, so the description adds no additional parameter semantics beyond the schema. The baseline is 3, and the description does not improve or degrade it.

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 'Get', the resource 'real-time active users on a site', the temporal scope 'right now (last 30 minutes)', and the breakdown 'by page'. It is specific and distinct from sibling tools like ga4_traffic_over_time or ga4_top_pages.

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 it (when needing real-time active users by page) but does not explicitly state when not to use it or provide alternatives. No exclusions or comparisons are given.

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

ga4_run_custom_reportA

Run a fully custom GA4 report with any dimensions and metrics. See https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema for all available names.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
limitNoMax rows to return (default 50).
endDateYesEnd date (e.g. '2024-01-31').
metricsYesMetric names (e.g. ['totalUsers', 'sessions']).
startDateYesStart date (e.g. '2024-01-01').
dimensionsYesDimension names (e.g. ['pagePath', 'deviceCategory']).
orderByMetricNoMetric name to sort by descending.

TDQS

A3.5/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 fully disclose behavior. It only mentions that dimensions and metrics follow the GA4 API schema (via link) but does not specify rate limits, authentication requirements, error handling, or whether the tool is read-only.

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 two sentences, front-loaded with the core purpose, and includes a helpful reference link. No wasted words.

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 tool has 7 parameters, no output schema, and no annotations, the description is minimal. It covers the basic purpose and provides a reference, but lacks details on response format, pagination, error cases, or example usage.

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?

The input schema has 100% coverage with descriptions for all 7 parameters. The description adds no extra semantics beyond 'any dimensions and metrics' and a link to the schema. 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 explicitly states 'Run a fully custom GA4 report', clearly identifying the action (run) and resource (custom GA4 report). This distinguishes it from sibling tools like ga4_top_pages which are pre-defined report templates.

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 for custom queries not covered by specific report tools, but it does not explicitly state when to choose it over alternatives or provide exclusions. Usage is inferred but not guided.

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

ga4_set_site_propertyA

Save a GA4 property ID for a named site. Call this after ga4_discover_properties to link crossroadworks.com, alliesprettylittletreats.com, or dooratl.church to their property IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name (e.g. 'crossroadworks.com').
propertyIdYesThe numeric GA4 property ID (e.g. '123456789').

TDQS

A3.8/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. It only states the action without disclosing side effects, permissions, overwrite behavior, or result 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?

Two sentences: first states purpose, second gives usage context. Efficient and front-loaded with zero waste.

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 or annotations; description lacks details on success/failure, idempotency, or what happens if property ID already set. Incomplete for a write operation.

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 100%, but description adds context with example sites and reinforces the site parameter's meaning, adding value beyond 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?

Clear verb+resource: 'Save a GA4 property ID for a named site.' Distinguishes from siblings by referencing ga4_discover_properties and giving example sites.

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 'Call this after ga4_discover_properties' and lists example sites, providing clear workflow context. No explicit when-not-to-use, but sufficient guidance.

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

ga4_top_pagesB

Get the top pages by views for a site, with users, avg duration, and bounce rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
limitNoMax pages to return (default 20).
endDateNoEnd date. Defaults to today.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It does not mention sorting order, data freshness, authentication requirements, or any limitations like pagination. The description only states what it gets, not how it behaves.

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 key action and resource. It wastes no words, but lacks structure like bullet points or sections. Appropriate for a simple 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?

For a tool with 4 parameters (all described in schema) and no output schema, the description covers the core function but misses usage guidelines and behavioral context. It is adequate but not comprehensive given the sibling diversity.

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 100%, so the baseline is 3. The description adds minimal meaning beyond the schema, only implying that 'site' is a required parameter and that metrics are returned. It does not elaborate on parameter defaults or formats.

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 'Get', the resource 'top pages by views for a site', and the specific metrics included (users, avg duration, bounce rate). This distinguishes it from sibling tools like ga4_traffic_sources or ga4_audience_overview.

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 is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparisons to other similar tools in the sibling list.

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

ga4_traffic_over_timeA

Get daily, weekly, or monthly traffic trend (users, sessions, page views) for a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
endDateNoEnd date. Defaults to today.
dimensionNoTime grouping β€” 'date' (daily), 'week', or 'month'. Defaults to 'date'.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description transparently indicates a read operation returning trend data, though it does not mention rate limits, data freshness, or error conditions.

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 front-loads the action and purpose, with no unnecessary words.

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?

Adequate for a simple tool, but missing details about the return structure (e.g., array of objects) since no output schema is provided.

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 100%, but the description adds value by specifying the output metrics (users, sessions, page views) not in the schema, helping agents understand what the tool returns.

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 the tool retrieves traffic trend data over time with daily/weekly/monthly grouping, distinguishing it from sibling GA4 tools that focus on different metrics like audience, top pages, or traffic sources.

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?

Implied usage for traffic trends, but no explicit guidance on when to use this tool versus alternatives like ga4_audience_overview or ga4_top_pages.

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

ga4_traffic_sourcesA

Break down where traffic is coming from: organic search, direct, referral, social, email, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite name or raw GA4 property ID.
endDateNoEnd date. Defaults to today.
startDateNoStart date. Defaults to 30daysAgo.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly indicates a read operation but provides no additional details about fetch limitations, data granularity, or whether results are cached. It is minimally transparent.

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, concise sentence that conveys the core functionality without any wasted words or redundancy. It is front-loaded with key information.

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?

Given the tool's simplicity (three parameters, no output schema, clear read operation), the description is largely complete. It could mention the date range scope or that it returns aggregated counts by source, but the current level is sufficient for a straightforward query tool.

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?

The input schema has 100% description coverage for all three parameters. The description adds no extra meaning beyond what the schema already provides, so the 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 what the tool does with a specific verb ('Break down') and resource ('where traffic is coming from'), listing common traffic source categories. It effectively distinguishes itself from sibling tools like ga4_audience_overview or ga4_top_pages.

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 lacks any guidance on when to use this tool versus alternatives, no mention of prerequisites, constraints, or when not to use it. The agent receives no contextual cues for appropriate invocation.

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

gcp_add_project_iam_bindingA

Grant an IAM role to a member on a GCP project. member format: 'user:email', 'serviceAccount:email', 'group:email', 'domain:domain'. role format: 'roles/editor', 'roles/viewer', 'roles/iam.serviceAccountUser', etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesIAM role (e.g. 'roles/storage.objectViewer').
memberYesMember to grant the role to (e.g. 'user:alice@example.com').
projectIdYesThe GCP project ID.

TDQS

A3.6/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 only states 'Grant an IAM role,' implying addition, but fails to disclose whether the action is idempotent, if it appends to existing bindings, or what the response looks like. The behavioral impact is underspecified.

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 extremely concise with two sentences. The first sentence states the purpose, and the second provides necessary format examples. No unnecessary words.

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 lack of annotations and output schema, the description is incomplete for a mutation tool. It does not explain the result (e.g., returns nothing or updated policy), whether the operation is synchronous, or how to handle errors. Critical context for safe invocation is missing.

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 100% with basic descriptions. The description adds value by providing concrete format examples for member ('user:email', 'serviceAccount:email', etc.) and role ('roles/editor', etc.), which aids correct invocation. This extra context justifies a score above the baseline of 3.

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: 'Grant an IAM role to a member on a GCP project.' This is a specific verb-resource combination that distinguishes it from sibling tools like gcp_remove_project_iam_binding and gcp_get_project_iam_policy.

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 provides format hints for member and role parameters, but does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites, such as required permissions or that this tool adds a binding rather than replacing the entire policy.

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

gcp_create_projectA

Create a new GCP project. Returns a long-running operation name. Use gcp_get_operation to poll for completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoOptional key-value labels to attach to the project.
parentIdNoOptional folder or organization ID to nest the project under (e.g. 'folders/123456').
projectIdYesUnique project ID (6-30 chars, lowercase letters, digits, hyphens).
displayNameYesHuman-readable name for the project.

TDQS

A3.9/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 adds value by disclosing async behavior (long-running operation) and the need to poll. However, it lacks details on permissions, prerequisites, error states, or limits, which would be important for an agent.

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?

Two sentences, no fluff. The first sentence states purpose and return, the second gives follow-up action. Every word 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 4 parameters, no output schema, and no annotations, the description is adequate but incomplete. It explains the async nature and follow-up, but omits details on failure modes, duplicate detection, or status fields of the operation.

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 100% and every parameter has a description. The description adds no additional semantic information about parameters 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 'Create a new GCP project', specifying the verb and resource. It distinguishes from sibling tools like gcp_list_projects and gcp_get_project by focusing on creation and mentioning the long-running operation return.

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 tells when to use the tool (to create a project) and gives a clear next step (poll with gcp_get_operation). It does not list alternatives or exclusions, but the context of sibling tools makes the usage scope evident.

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

gcp_create_service_accountC

Create a new service account in a GCP project.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesUnique ID for the service account (6-30 chars, e.g. 'my-deployer').
projectIdYesThe GCP project ID.
descriptionNoOptional description of the service account's purpose.
displayNameNoOptional human-readable name.

TDQS

C2.9/5.0
Behavior2/5

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

Description does not disclose behavioral traits such as what happens if the service account already exists, required permissions, or whether the account is created enabled or disabled. Without annotations, the description carries full burden but is insufficient.

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?

Single sentence is concise and front-loaded. No unnecessary words, but lacks structure like bullet points or bolding. Appropriate for a simple tool.

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 provided and no annotations. Description does not explain return values, error cases, or side effects. For a creation tool with 4 parameters, more context is needed for completeness.

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?

Input schema has 100% description coverage, so the description adds no extra meaning. Baseline is 3. The description does not enhance or contradict the schema.

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?

Clearly states 'Create a new service account in a GCP project', specifying the verb and resource. It distinguishes from sibling tools like gcp_delete_service_account and gcp_enable_service_account. However, it does not specify scope or constraints like 'uniqueness' or 'default enabled status'.

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. Lacks mention of prerequisites (e.g., IAM permissions) or when not to use it (e.g., if service account already exists). No context for usage conditions.

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

gcp_delete_projectA

Move a GCP project to DELETE_REQUESTED state. The project is recoverable for 30 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID to delete.

TDQS

A3.8/5.0
Behavior4/5

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

Discloses the specific state transition (DELETE_REQUESTED) and recovery period (30 days), providing meaningful behavioral context in absence of annotations.

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?

Two short sentences efficiently convey the core action and a key behavioral detail, with no wasted words.

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?

Adequately covers the tool's behavior for a simple delete operation; could mention required permissions or that the project is not immediately destroyed.

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 100% (1 parameter, described), and the description adds no extra semantic value beyond restating the parameter's purpose.

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 the action ('Move a GCP project to DELETE_REQUESTED state') and the resource ('GCP project'), distinguishing it from sibling tools like create, update, or list operations.

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 tool versus alternatives; lacks context like project prerequisites or consequences beyond 30-day recovery.

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

gcp_delete_service_accountB

Permanently delete a service account.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceAccountEmailYesFull email of the service account (e.g. 'my-sa@my-project.iam.gserviceaccount.com').

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavioral traits. It states permanent deletion but lacks details on required permissions, irreversibility, or consequences (e.g., if keys exist).

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 short sentence with no wasted words. However, it could be slightly expanded with useful context 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 the lack of output schema and annotations, the description is insufficient. It does not explain return values, error conditions, or dependencies. More context about the destructive nature is needed.

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?

Input schema describes both parameters with clear descriptions. Schema coverage is 100%, so the description does not need to add more. It does not provide additional 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 it permanently deletes a service account, which is a specific verb+resource. It distinguishes from sibling tools like gcp_create_service_account or gcp_disable_service_account.

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 usage guidelines provided. It does not mention when to use this tool versus alternatives, prerequisites, or restrictions.

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

gcp_disable_apiB

Disable a GCP API on a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceNameYesAPI service name to disable (e.g. 'compute.googleapis.com').

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action without elaborating on consequences (e.g., potential irreversibility, impact on dependent services, or whether the operation is asynchronous and requires polling gcp_get_api_operation). The description is too minimal to inform the agent about important side effects.

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, clear sentence with no wasted words. It efficiently communicates the core purpose. However, it could be slightly more informative without becoming verbose, earning a 4 rather than a 5.

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 tool's simplicity and the fully described parameters, the description minimally covers the basics. However, it omits important context: the tool likely triggers an asynchronous operation (suggested by sibling gcp_get_api_operation), and there is no mention of this or how to handle the result. The absence of an output schema also means the agent might not know what to expect. Complete for a trivial tool but insufficient given the broader toolset.

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 100% (both projectId and serviceName have descriptions). The description adds no additional meaning beyond the schema, which is the baseline expected for high coverage. It does not clarify format constraints (e.g., serviceName must be the full service name) or provide examples, but it is not misleading.

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 'Disable a GCP API on a project' clearly specifies the action (disable), the resource (GCP API), and the scope (on a project). It distinguishes the tool from siblings like gcp_enable_apis, gcp_list_apis, and gcp_get_api, and is specific enough to avoid confusion with project-level or service account tools.

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 its siblings (e.g., gcp_enable_apis, gcp_list_apis). There is no mention of prerequisites (e.g., the API must be enabled first) or context about whether disabling is safe or reversible. The agent receives no help in deciding when to invoke this tool.

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

gcp_disable_service_accountA

Disable a service account (credentials will stop working until re-enabled).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceAccountEmailYesFull email of the service account.

TDQS

A4/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 credentials stop working until re-enabled, but lacks details on permissions or side effects.

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 parenthetical clarification, no wasted words.

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?

Given few params and no output schema, the description provides enough context for an agent to understand the impact, though it could mention prerequisites.

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 100% with clear parameter descriptions. The description adds no extra meaning beyond the schema, so 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?

The description clearly states the action (Disable) and the resource (service account), and distinguishes from sibling tools like gcp_enable_service_account.

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 implies usage context (when you want to stop credentials) but does not explicitly state when not to use or provide alternatives.

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

gcp_enable_apisA

Enable one or more GCP APIs on a project. Returns an operation name to poll. Common APIs: compute.googleapis.com, run.googleapis.com, container.googleapis.com, storage.googleapis.com, cloudfunctions.googleapis.com, iam.googleapis.com, cloudbuild.googleapis.com, secretmanager.googleapis.com

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceIdsYesList of API service names to enable (e.g. ['compute.googleapis.com', 'run.googleapis.com']).

TDQS

A3.9/5.0
Behavior3/5

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

The description mentions that the tool returns an operation name to poll, hinting at asynchronous behavior, which is a key behavioral trait. However, it does not disclose idempotency, error handling, rate limits, or what happens if an API is already enabled. Given no annotations, the description carries full burden but provides only partial 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 two sentences plus a list of common APIs, front-loading the action and return value. Every sentence is essential, with no wasted words. The structure is clean and easy to parse.

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 and return value but lacks details about polling mechanics, required IAM roles, error scenarios, or limits. With no output schema, more context on what the operation name represents and how to use it would improve completeness. It is adequate but not thorough.

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 input schema already describes both parameters clearly (projectId as string, serviceIds as array with examples). The description adds value beyond schema by listing common API service names, which helps the agent choose appropriate values. With 100% schema coverage, the baseline is 3, and the additional list justifies a 4.

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 'Enable one or more GCP APIs on a project' with the specific verb 'Enable' and resource 'GCP APIs on a project'. It distinguishes from siblings like gcp_disable_api and gcp_list_apis, making the tool's unique function immediately obvious.

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?

While the description implies the tool is for enabling APIs and mentions returning an operation name to poll, it does not explicitly state when to use this vs alternatives (like gcp_list_apis or gcp_disable_api) or provide prerequisites (e.g., required permissions, project state). The list of common APIs offers some context but no explicit usage guidance.

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

gcp_enable_service_accountB

Enable a previously disabled service account.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceAccountEmailYesFull email of the service account.

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 should disclose behavioral traits like idempotency, permissions needed, or error conditions. The single sentence only states the core action without any such details, leaving the agent unaware of important behaviors.

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 very concise at one sentence, which is efficient. However, it could be improved by adding more context without becoming verbose, so it is not a perfect score.

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 output schema and annotations, the description is incomplete. It does not explain return values, success criteria, or any side effects, leaving the agent with significant gaps in 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?

The input schema already provides full descriptions for both parameters (projectId and serviceAccountEmail) with 100% coverage. The description adds no additional semantic information 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 action (enable) on the resource (service account) with the condition (previously disabled). It is specific and distinguishes itself from the sibling tool gcp_disable_service_account by its name and opposite action.

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 like gcp_disable_service_account, nor any prerequisites or context about the service account's state. The description lacks any usage recommendations.

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

gcp_get_apiB

Get the enabled/disabled state of a specific API on a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceNameYesAPI service name (e.g. 'compute.googleapis.com').

TDQS

B3.2/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 states it gets the state but does not disclose behavior such as whether it is purely read-only, if it requires specific permissions, or what happens when the API or project does not exist. The description is minimal and lacks behavioral context.

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, front-loaded sentence with no wasted words. It is appropriately concise for a simple read operation, though it could briefly mention the output format.

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?

With no output schema, the description should clarify what the tool returns. It only says 'state' without specifying format (e.g., boolean, string). For a tool with two simple parameters and no nested objects, the description is moderately complete but lacks output detail.

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%, so both parameters are already documented. The description does not add any additional meaning or constraints beyond what is in the schema, earning a baseline score of 3.

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 retrieves the enabled/disabled state of a specific API on a project. The verb 'Get' and resource 'enabled/disabled state' are specific, and it distinguishes from sibling tools like gcp_disable_api, gcp_enable_apis, and gcp_list_apis.

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. It does not mention prerequisites, error conditions, or scenarios where this tool is appropriate, leaving the agent to infer usage from the name alone.

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

gcp_get_api_operationA

Check the status of a long-running API enable/disable operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNameYesThe operation name returned by gcp_enable_apis or gcp_disable_api.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions 'long-running' to indicate non-immediate completion, but lacks details on response format, side effects (none expected), error handling, or what 'status' entails (e.g., done, error, in progress).

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-loading the purpose. No extraneous words, but could be structured with additional details like expected output. It earns its place but leaves room for improvement.

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 status check tool with no output schema, the description is partially complete. It explains what the tool does and references sibling operations, but fails to describe what the status response looks like, which is critical for an agent to interpret results.

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 100% and the parameter 'operationName' is already described in the schema. The description adds no extra meaning beyond tying the operation to API enable/disable. 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?

The description clearly states the tool's purpose: checking the status of a long-running API enable/disable operation. It uses a specific verb ('check') and resource ('status of... operation'), distinguishing it from sibling tools like gcp_get_operation (general operation status) and gcp_enable_apis/gcp_disable_api (which initiate operations).

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 after gcp_enable_apis or gcp_disable_api via the parameter description, but it does not explicitly state when to use this tool versus alternatives like gcp_get_operation. No when-not or context-specific guidance is provided.

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

gcp_get_operationA

Check the status of a long-running GCP operation (from project creation, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNameYesThe operation name returned by gcp_create_project or gcp_delete_project.

TDQS

A3.9/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 but only states the tool checks status. It does not disclose additional behavioral traits such as idempotency, required permissions, or polling behavior. While not misleading, it is minimally informative.

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 concise sentence that front-loads the purpose. Every word is necessary and adds value.

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 simplicity of the tool and no output schema, the description is minimally complete for a basic status check. However, it lacks details about return values or expected behavior, leaving the agent to infer how to interpret the response.

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 100%, so the description adds no new meaning to the parameter. It mentions 'from project creation, etc.' but the schema already states the parameter is returned by related tools. 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 tool checks the status of a long-running GCP operation, with a specific example (project creation). It uses a specific verb ('check') and resource ('status of a long-running GCP operation'), distinguishing it from sibling tools that create or delete operations.

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 provides clear context ('from project creation, etc.'), implying when to use this tool (after initiating a long-running operation). However, it does not explicitly state when not to use it or mention alternatives, missing an opportunity for complete guidance.

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

gcp_get_projectB

Get details for a specific GCP project by project ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID (e.g. 'my-cool-project').

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 full burden. It only says 'Get details' without disclosing safety (read-only), authentication needs, error behavior (e.g., project not found), or rate limits.

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 sentence with no wasted words. It is appropriately concise for a simple read operation.

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?

With no output schema, the description should explain what 'details' means. It lacks information about return structure or fields, making it incomplete for an agent to understand what to expect.

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 100% with a parameter description that gives an example. The tool description adds no additional meaning beyond the schema, so 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?

The description clearly states the verb 'Get' and resource 'details for a specific GCP project by project ID'. It distinguishes from siblings like gcp_list_projects (which lists all) and gcp_create_project (which creates).

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 when needing single project details, but does not explicitly state when to use versus alternatives (e.g., gcp_list_projects for listing all projects). No exclusions or prerequisites are given.

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

gcp_get_project_iam_policyA

Get the current IAM policy for a GCP project (shows all role bindings).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so the description must cover behavioral traits. It states the tool gets a policy (read-only), which is appropriate, but lacks details on permissions, error cases, or response size. Acceptable 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?

Single sentence, front-loaded with the verb 'Get', efficient and without waste.

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 read tool with no output schema, the description adequately states what is returned (all role bindings). It is complete enough for basic usage, though additional context about the response format would be helpful.

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 100% with one parameter described. The description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate as schema already explains the parameter.

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 that the tool gets the current IAM policy for a GCP project, specifying it shows all role bindings. This clearly distinguishes it from sibling tools that add or remove bindings.

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?

No explicit guidance on when to use this tool versus alternatives. Usage is implied from the description (viewing current policy), but no mention of when-not-to-use or prerequisites.

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

gcp_list_apisA

List APIs/services on a GCP project. Use filter='state:ENABLED' to see only enabled APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter string (e.g. 'state:ENABLED' or 'state:DISABLED').
pageSizeNoMax results to return (default 50).
projectIdYesThe GCP project ID.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided; description does not disclose auth requirements, rate limits, or default behavior (e.g., whether it lists all APIs or only enabled). However, the filter hint implies listing is for all states by default.

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?

Two sentences, no redundancy, front-loaded with the core action. 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?

Lacks description of output format or fields returned. With no output schema, the tool's return value is not explained. Otherwise adequate for a simple listing tool with 3 parameters.

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 covers all 3 parameters (100% coverage). The description only adds a usage example for 'filter' but does not augment meaning for 'projectId' or 'pageSize' 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 states 'List APIs/services on a GCP project' with a specific verb and resource, clearly distinguishing it from siblings like gcp_disable_api or gcp_get_api.

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?

Provides a concrete filter example ('state:ENABLED') that guides usage, though it does not explicitly contrast with alternatives like gcp_get_api for single API details.

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

gcp_list_projectsA

List all GCP projects accessible by the configured service account. Use filter='state:ACTIVE' to see only active projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional filter string. Examples: 'state:ACTIVE', 'labels.env:prod'
pageSizeNoMaximum number of results to return (default 50).

TDQS

A3.5/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. It notes 'accessible by the configured service account', implying authentication context. However, it does not disclose whether it is read-only, rate limits, or any other behavioral traits beyond the obvious list 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?

Two sentences, front-loaded with the main purpose, and every sentence earns its place. No redundant information.

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?

Given no output schema and simple list functionality, the description is fairly complete. It explains what the tool does and gives a filter example. However, it does not describe the return format (e.g., list of project IDs or objects), which could be helpful.

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 100% with descriptions for filter and pageSize. The description adds value by providing a concrete example ('state:ACTIVE'), which is not in the schema. This helps the agent understand the filter parameter's usage.

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 'List all GCP projects accessible by the configured service account', providing a specific verb and resource. It implies differentiation from siblings like gcp_get_project (single project) but does not explicitly distinguish it.

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?

Includes a usage tip: 'Use filter='state:ACTIVE' to see only active projects.' This guides the agent on a common filter. However, it does not mention when not to use this tool or provide alternatives among siblings.

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

gcp_list_rolesA

List available GCP IAM roles. Use filter to narrow results (e.g. 'storage' to find storage roles).

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional keyword to filter role names (e.g. 'compute', 'storage', 'run').
pageSizeNoMax results to return (default 50).

TDQS

A3.8/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 for behavioral disclosure. It does not mention that the operation is read-only, required permissions, rate limits, or any side effects. The pageSize parameter is not explained in the description, leaving its behavior implied.

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?

Two concise sentences with no wasted words. The purpose is front-loaded, and the usage hint follows immediately. Efficient and clear.

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 listing tool with no output schema, the description covers the main operation and filter usage. The pageSize parameter is not explained, but it is self-explanatory given the schema. Overall, adequate for the tool's simplicity.

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 100%, so the description adds minimal value beyond the schema. It provides an example for the filter parameter ('storage') which is useful, but the pageSize parameter is omitted from the description. 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?

The description clearly states the verb 'List' and the resource 'available GCP IAM roles', making the tool's purpose immediately obvious. It is distinct from sibling tools like gcp_list_projects or gcp_list_service_accounts, so no ambiguity.

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 provides a concrete usage example (filter='storage' to find storage roles), guiding the agent on how to narrow results. However, it does not explicitly state when to choose this tool over alternatives, though there are no direct competitors among siblings.

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

gcp_list_service_account_keysB

List all keys for a service account.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.
serviceAccountEmailYesFull email of the service account.

TDQS

B3/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. It only indicates a read operation but does not disclose permissions, pagination, or other 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.

Conciseness3/5

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

Extremely shortβ€”one sentenceβ€”but lacks depth. Acceptable for a simple tool but could include more context 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 no output schema and no behavioral details, the description is incomplete for an agent to fully understand return values or limitations. Adequate for basic use but insufficient for nuanced selection.

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 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 it lists all keys for a service account, using a specific verb and resource. It distinguishes from sibling tools like gcp_list_service_accounts which list accounts.

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 or not use this tool. It does not mention prerequisites or alternatives, such as needing a service account email from gcp_list_service_accounts.

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

gcp_list_service_accountsA

List all service accounts in a GCP project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe GCP project ID.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as required permissions, pagination behavior, return format, or any side effects. The tool is read-only, but this is not stated.

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, clear sentence with no wasted words. It is appropriately front-loaded and concise.

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 simplicity of the tool (one parameter, no output schema), the description is adequate but does not mention return format or any filtering options. More completeness could be achieved with additional 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% (projectId is described), but the tool description adds no additional meaning beyond the 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?

The description clearly states the action (list), the resource (service accounts), and the scope (in a GCP project). It effectively distinguishes from sibling tools like create/delete/enable/disable service accounts.

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?

No explicit guidance on when to use this tool versus alternatives. However, the purpose is straightforward and siblings handle distinct operations, so usage is implied.

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

gcp_remove_project_iam_bindingB

Remove an IAM role from a member on a GCP project.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesIAM role to remove.
memberYesMember to remove the role from.
projectIdYesThe GCP project ID.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the removal is incremental or replaces the entire policy, required permissions, or side effects. The description merely restates the action.

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 directly states the purpose. It is well front-loaded and contains no unnecessary words.

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 and no annotations, the description should provide more context about return values, effects on the IAM policy, and required permissions. The current description is insufficient for an agent to fully understand the tool's behavior.

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?

The input schema has 100% description coverage for parameters, and the tool description adds no additional meaning beyond what the schema already provides. 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 action (remove), the resource (IAM role), the target (member), and the context (GCP project). It effectively distinguishes from sibling tools like gcp_add_project_iam_binding.

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 the tool is for removing IAM bindings but does not provide explicit guidance on when to use it, prerequisites, or when to consider alternatives like modifying the entire policy.

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

gcp_update_projectB

Update a GCP project's display name or labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoNew labels (replaces existing labels).
projectIdYesThe GCP project ID.
displayNameNoNew display name for the project.

TDQS

B3.2/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 states 'update' implying mutation but does not mention that labels replace existing ones, what happens to fields not specified, required permissions, or idempotency.

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, no fluff. Efficiently conveys the tool's purpose.

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 mutation tool with 3 parameters, no output schema, and nested objects, the description is too sparse. It lacks information about side effects, return values, and operational 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 descriptions already cover all parameters (100% coverage). The description adds minimal value by naming 'display name or labels', but does not provide additional 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?

Description clearly states the verb 'update' and the resource 'GCP project', specifying the updatable fields 'display name or labels'. It distinguishes this from sibling tools like gcp_get_project, gcp_list_projects, and gcp_delete_project.

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, no prerequisites (e.g., project must exist), no mention of when not to use it. The description is purely declarative.

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. Dates show when Glama detected each change.

  1. 33 tool updatesv1.0.0
    • First observedga4_audience_overview
    • First observedga4_compare_all_sites
    • First observedga4_device_breakdown
    • First observedga4_discover_properties
    • First observedga4_geo_breakdown
    • First observedga4_list_configured_sites
    • First observedga4_realtime_users
    • First observedga4_run_custom_report
    • First observedga4_set_site_property
    • First observedga4_top_pages
    • First observedga4_traffic_over_time
    • First observedga4_traffic_sources
    • First observedgcp_add_project_iam_binding
    • First observedgcp_create_project
    • First observedgcp_create_service_account
    • First observedgcp_delete_project
    • First observedgcp_delete_service_account
    • First observedgcp_disable_api
    • First observedgcp_disable_service_account
    • First observedgcp_enable_apis
    • First observedgcp_enable_service_account
    • First observedgcp_get_api
    • First observedgcp_get_api_operation
    • First observedgcp_get_operation
    • First observedgcp_get_project
    • First observedgcp_get_project_iam_policy
    • First observedgcp_list_apis
    • First observedgcp_list_projects
    • First observedgcp_list_roles
    • First observedgcp_list_service_account_keys
    • First observedgcp_list_service_accounts
    • First observedgcp_remove_project_iam_binding
    • First observedgcp_update_project

TDQS

A3.7/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose, covering GCP project management, IAM, service accounts, API operations, and GA4 analytics without overlap.

Naming Consistency5/5

Tools follow consistent patterns: gcp_verb_noun for GCP operations and ga4_verb_noun for GA4 analytics, with no mixing of conventions.

Tool Count4/5

33 tools is on the higher side but acceptable given the dual GCP and GA4 domains. The tool count is proportionate to the breadth of features.

Completeness4/5

Covers core GCP resources and a wide range of GA4 reports. Missing a few operations like updating service accounts or managing GA4 properties, but overall comprehensive.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Provides capabilities that let LLM agents perform a range of infrastructure management tasks.

  • Unified API to query AWS, GCP, Azure and generate Terraform/CLI execution kits for AI agents.

  • The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.

  • The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costsβ€”all without needing to parse text output or use complex kubectl commands.

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables managing Google Cloud Platform resources through natural language commands in Claude Desktop, supporting comprehensive operations across compute, storage, databases, networking, monitoring, and IAM without manual credential setup.
    56
    20
    -
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to interact with and manage Google Cloud Platform resources including Compute Engine, Cloud Run, Storage, BigQuery, and other GCP services through a standardized MCP interface.
    1
    6
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to interact with Google Cloud Platform resources through natural language queries. Supports querying and managing GCP services like Compute Engine, Cloud Storage, BigQuery, and more across multiple projects and regions.
    9
    3,857
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables managing Google Cloud Platform infrastructure through natural language, including VM deployment, SSH key management, remote command execution, and Terraform infrastructure-as-code operations.
    2
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/natekpurcella-hue/gcp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server