Skip to main content
Glama

GCP MCP

A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your Google Cloud Platform environment. This allows for natural language querying and management of your GCP resources during conversations.

Features

  • 🔍 Query and modify GCP resources using natural language

  • ☁️ Support for multiple GCP projects

  • 🌐 Multi-region support

  • 🔐 Secure credential handling (no credentials are exposed to external services)

  • 🏃‍♂️ Local execution with your GCP credentials

  • 🔄 Automatic retries for improved reliability

Related MCP server: GCP Billing and Monitoring MCP Server

Prerequisites

  • Node.js

  • Amazon Q CLI/Claude Desktop/Cursor/Windsurf

  • GCP credentials configured locally (application default credentials)

Installation

  1. Clone the repository:

git clone https://github.com/RadiumGu/gcp-ops-mcp.git
cd gcp-ops-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Configuration

Amazon Q CLI

Add the following configuration to your Q CLI MCP settings:

{
  "mcpServers": {
    "gcp-mcp": {
      "command": "node",
      "args": ["/path/to/gcp-ops-mcp/bin.js"],
      "env": {
        "NODE_PATH": "/path/to/gcp-ops-mcp/node_modules"
      }
    }
  }
}

Replace /path/to/gcp-ops-mcp with the actual path to your project directory.

Claude Desktop

  1. Open Claude desktop app and go to Settings -> Developer -> Edit Config

  2. Add the following entry to your claude_desktop_config.json:

via npm:

{
  "mcpServers": {
    "gcp": {
      "command": "sh",
      "args": ["-c", "npx -y gcp-mcp"]
    }
  }
}

If you installed from source:

{
  "mcpServers": {
    "gcp": {
      "command": "npm",
      "args": [
        "--silent",
        "--prefix",
        "/path/to/gcp-mcp",
        "start"
      ]
    }
  }
}

Replace /path/to/gcp-mcp with the actual path to your project directory if using source installation.

Cursor

  1. Open Cursor and go to Settings (⌘,)

  2. Navigate to AI -> Model Context Protocol

  3. Add a new MCP configuration:

{
  "gcp": {
    "command": "npx -y gcp-mcp"
  }
}

Windsurf

  1. Open ~/.windsurf/config.json (create if it doesn't exist)

  2. Add the MCP configuration:

{
  "mcpServers": {
    "gcp": {
      "command": "npx -y gcp-mcp"
    }
  }
}

GCP Setup

  1. Set up GCP credentials:

    • Set up application default credentials using gcloud auth application-default login

  2. Refresh your AI assistant (Claude Desktop/Cursor/Windsurf)

Usage

Start by selecting a project or asking questions like:

  • "List all GCP projects I have access to"

  • "Show me all Cloud SQL instances in project X"

  • "What's my current billing status?"

  • "Show me the logs from my Cloud Run services"

  • "List all GKE clusters in us-central1"

  • "Show me all Cloud Storage buckets in project X"

  • "What Cloud Functions are deployed in us-central1?"

  • "List all Cloud Run services"

  • "Show me BigQuery datasets and tables"

Available Tools

  1. run-gcp-code: Execute GCP API calls using TypeScript code

  2. list-projects: List all accessible GCP projects

  3. select-project: Select a GCP project for subsequent operations

  4. get-billing-info: Get billing information for the current project

  5. get-cost-forecast: Get cost forecast for the current project

  6. get-billing-budget: Get billing budgets for the current project

  7. list-gke-clusters: List all GKE clusters in the current project

  8. list-sql-instances: List all Cloud SQL instances in the current project

  9. get-logs: Get Cloud Logging entries for the current project

Example Interactions

  1. List available projects:

List all GCP projects I have access to
  1. Select a project:

Use project my-project-id
  1. Check billing status:

What's my current billing status?
  1. View logs:

Show me the last 10 log entries from my project

Supported Services

  • Google Compute Engine

  • Cloud Storage

  • Cloud Functions

  • Cloud Run

  • BigQuery

  • Cloud SQL

  • Google Kubernetes Engine (GKE)

  • Cloud Logging

  • Cloud Billing

  • Resource Manager

  • More coming soon...

Troubleshooting

To see logs:

tail -n 50 -f ~/Library/Logs/Claude/mcp-server-gcp.log

Common issues:

  1. Authentication errors: Ensure you've run gcloud auth application-default login

  2. Permission errors: Check IAM roles for your account

  3. API errors: Verify that required APIs are enabled in your project

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Available Tools

9 tools
get-billing-budgetC

Get billing budgets for the current project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoProject ID to get budgets for (defaults to selected project)

TDQS

C2.9/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 but only states what the tool does without behavioral details. It doesn't disclose if this is a read-only operation, requires specific permissions, has rate limits, or what the return format looks like. This is inadequate for a tool with zero annotation coverage.

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, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loaded with the core 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?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'billing budgets' entails, the return format, or behavioral aspects like error handling. For a tool in a billing context with siblings offering related functions, more context 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?

The schema has 100% description coverage, with the single parameter 'projectId' well-documented in the schema. The description adds no additional parameter semantics beyond implying it defaults to the current project, which is already covered in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('billing budgets'), specifying it's for the current project. However, it doesn't distinguish this tool from sibling tools like 'get-billing-info' or 'get-cost-forecast', which likely provide related billing information but for different resources.

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 minimal guidance by mentioning 'for the current project', but offers no explicit when-to-use advice, no exclusions, and no alternatives. It doesn't help an agent decide between this tool and siblings like 'get-billing-info' or 'get-cost-forecast'.

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

get-billing-infoC

Get billing information for the current project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoProject ID to get billing info for (defaults to selected project)

TDQS

C2.9/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 states the tool 'Get's information, implying a read-only operation, but doesn't clarify permissions needed, rate limits, error conditions, or response format. This is a significant gap for a tool that likely accesses sensitive billing data.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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. It doesn't explain what billing information is returned (e.g., costs, invoices, usage details), potential authentication needs, or how it interacts with sibling tools. For a billing-related tool, this leaves critical context gaps.

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 schema already documents the single parameter 'projectId' with its default behavior. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, resulting in a baseline score.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('billing information for the current project'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-billing-budget' or 'get-cost-forecast', which likely provide related but different billing data, preventing a perfect score.

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 minimal guidance, implying usage for retrieving billing info but not specifying when to use this tool versus alternatives like 'get-billing-budget' or 'get-cost-forecast'. No explicit when/when-not instructions or prerequisites are included, leaving the agent to infer usage context.

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

get-cost-forecastC

Get cost forecast for the current project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoProject ID to get forecast for (defaults to selected project)
monthsNoNumber of months to forecast (default: 3)

TDQS

C2.7/5.0
Behavior2/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 mentions 'Get cost forecast' but doesn't explain what the forecast includes (e.g., breakdowns, accuracy), how it's generated, or any limitations (e.g., data freshness, assumptions). This leaves key behavioral traits unspecified for a forecasting tool.

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, efficient sentence with zero waste. It's front-loaded with the core action ('Get cost forecast') and specifies the scope ('for the current project'), making it easy to parse quickly without unnecessary details.

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 complexity of cost forecasting and the lack of annotations and output schema, the description is incomplete. It doesn't cover what the forecast returns (e.g., monetary values, time periods), potential errors, or dependencies. For a tool with no structured output and behavioral gaps, this is inadequate.

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, clearly documenting both parameters (projectId and months) with defaults. The description adds no additional meaning beyond the schema, such as explaining what 'cost forecast' entails or how parameters affect the output. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose3/5

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

The description states the tool's purpose ('Get cost forecast') and specifies the target ('for the current project'), which is clear but vague. It doesn't distinguish this from potential sibling tools like 'get-billing-budget' or 'get-billing-info', leaving ambiguity about what differentiates a 'forecast' from other billing-related queries.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description implies it's for forecasting costs, but it doesn't specify scenarios (e.g., planning vs. monitoring), prerequisites, or exclusions. Without context, an agent might struggle to choose between this and tools like 'get-billing-budget'.

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

get-logsC

Get Cloud Logging entries for the current project

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter for the log entries (see Cloud Logging query syntax)
pageSizeNoMaximum number of entries to return (default: 10)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Get Cloud Logging entries' but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires specific permissions, rate limits, pagination details, or what the return format looks like. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence that front-loads the core purpose without any wasted words. It is appropriately sized for the tool's complexity and gets straight to the point.

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. It doesn't address behavioral aspects like safety, permissions, or return values, which are crucial for a tool that interacts with cloud resources. The high schema coverage helps with parameters but doesn't compensate for other gaps.

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 schema description coverage is 100%, so the schema already documents both parameters ('filter' and 'pageSize') with descriptions. The tool description adds no additional meaning beyond what the schema provides, such as examples or constraints, but the high schema coverage justifies the baseline score of 3.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('Cloud Logging entries for the current project'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'list-projects' or 'list-sql-instances', but the resource specificity is sufficient for clarity without being tautological.

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, such as how it differs from other logging or listing tools. It mentions 'current project' but doesn't specify prerequisites or exclusions, leaving usage context implied at best.

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

list-gke-clustersB

List all GKE clusters in the current project

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNoLocation (region or zone) to list clusters from (defaults to all locations)

TDQS

B3.1/5.0
Behavior2/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 states it's a list operation, implying read-only behavior, but doesn't cover aspects like permissions required, rate limits, pagination, or what 'current project' means in context. This leaves significant gaps for an agent to understand how to use it effectively.

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, direct sentence that efficiently conveys the core action and resource without any fluff or redundancy. It's front-loaded with the key information, making it easy for an agent to parse quickly.

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 low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavior, usage context, or output format, which could hinder an agent's ability to use it correctly in more complex scenarios.

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, with the 'location' parameter clearly documented in the schema. The description doesn't add any parameter-specific details beyond implying a scope ('in the current project'), which aligns with the schema's default behavior. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('List all') and resource ('GKE clusters in the current project'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list-projects' or 'list-sql-instances' beyond specifying the resource type, which keeps it from a perfect score.

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, such as whether it's for inventory checks, monitoring, or setup purposes. It also doesn't mention prerequisites like needing a selected project or compare it to siblings like 'list-projects' for broader context.

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

list-projectsB

List all GCP projects accessible with current credentials

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/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 states this is a list operation but doesn't describe return format, pagination, rate limits, authentication requirements beyond 'current credentials', or error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that communicates the essential information without any wasted words. It's appropriately sized for a simple list operation and front-loads the core functionality. Every word earns its place in this concise statement.

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 tool with no annotations and no output schema, the description is insufficiently complete. While it states what the tool does, it doesn't describe what the output looks like, how results are formatted, whether there are limitations, or how it differs from related tools. Given the lack of structured data, the description should provide more operational context.

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

Parameters4/5

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

The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is correct for zero-parameter tools where the schema handles all parameter documentation.

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

Purpose4/5

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

The description clearly states the action ('List all') and resource ('GCP projects'), making the purpose immediately understandable. It specifies the scope ('accessible with current credentials'), which adds useful context. However, it doesn't explicitly differentiate from sibling tools like 'select-project' or 'get-billing-info', preventing a perfect score.

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 like 'select-project' or 'get-billing-info'. It mentions the credential scope but doesn't indicate prerequisites, typical use cases, or exclusions. Without any usage context, the agent must infer when this tool is appropriate.

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

list-sql-instancesB

List all Cloud SQL instances in the current project

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as pagination, rate limits, authentication requirements, error conditions, or what 'current project' means contextually. This leaves significant gaps 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?

The description is a single, efficient sentence that front-loads the core purpose with zero wasted words. It's appropriately sized for a simple list operation with no parameters.

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 tool with no annotations, no output schema, and no parameters, the description is too minimal. It doesn't address what the output contains (e.g., instance details, formats), error handling, or dependencies on project context, leaving the agent with incomplete operational 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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't add parameter details, earning a baseline score of 4 for not introducing unnecessary information.

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 specific verb 'List' and resource 'all Cloud SQL instances in the current project', which distinguishes it from sibling tools like list-gke-clusters or list-projects. It precisely defines scope without ambiguity.

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 like list-projects or list-gke-clusters, nor does it mention any prerequisites or exclusions. It simply states what the tool does without contextual usage information.

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

run-gcp-codeC

Run GCP code

ParametersJSON Schema
NameRequiredDescriptionDefault
reasoningYesThe reasoning behind the code
codeYesYour job is to answer questions about GCP environment by writing Javascript/TypeScript code using Google Cloud Client Libraries. The code must adhere to a few rules: - Must use promises and async/await - Think step-by-step before writing the code, approach it logically - Must be written in TypeScript using official Google Cloud client libraries - Avoid hardcoded values like project IDs - Code written should be as parallel as possible enabling the fastest and most optimal execution - Code should handle errors gracefully, especially when doing multiple API calls - Each error should be handled and logged with a reason, script should continue to run despite errors - Data returned from GCP APIs must be returned as JSON containing only the minimal amount of data needed to answer the question - All extra data must be filtered out - Code MUST "return" a value: string, number, boolean or JSON object - If code does not return anything, it will be considered as FAILED - Whenever tool/function call fails, retry it 3 times before giving up - When listing resources, ensure pagination is handled correctly - Do not include any comments in the code - Try to write code that returns as few data as possible to answer without any additional processing required Be concise, professional and to the point. Do not give generic advice, always reply with detailed & contextual data sourced from the current GCP environment.
projectIdNoGCP project ID to use
regionNoRegion to use (if not provided, us-central1 is used)

TDQS

C2/5.0
Behavior1/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 but offers none. It doesn't indicate whether this is a read-only or mutative operation, what permissions or authentication are required, potential side effects, rate limits, or error handling. The description fails to provide any behavioral context beyond the minimal action implied by the name.

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

Conciseness5/5

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

The description is extremely concise at just three words, with no wasted language or unnecessary elaboration. It's front-loaded with the core action, though this brevity comes at the cost of completeness. Every word earns its place by directly stating the tool's function without redundancy.

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

Completeness1/5

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

Given the complexity of executing code in a GCP environment with no annotations and no output schema, the description is completely inadequate. It doesn't explain what the tool actually does, what happens when code runs, what permissions are needed, what format results return, or any behavioral characteristics. The agent would be left guessing about fundamental aspects of this potentially complex 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 description coverage is 100%, providing detailed documentation for all parameters including 'reasoning', 'code', 'projectId', and 'region'. The description adds no additional parameter semantics beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline score is 3 even without parameter information in the description.

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

Purpose2/5

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

The description 'Run GCP code' is essentially a tautology that restates the tool name with minimal elaboration. It doesn't specify what kind of code execution this involves (e.g., executing scripts, invoking APIs, or running queries) or what resources it acts upon. While it distinguishes from sibling tools by focusing on code execution rather than information retrieval, it lacks the specific verb+resource clarity needed for higher scores.

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

Usage Guidelines1/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's no mention of prerequisites, appropriate contexts, or comparison with sibling tools like 'get-logs' or 'list-projects' that might serve related purposes. The agent must infer usage entirely from the tool name and input schema without any descriptive assistance.

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

select-projectB

Selects GCP project to use for subsequent interactions

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the GCP project to select
regionNoRegion to use (if not provided, us-central1 is used)

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 mentions the tool selects a project for subsequent interactions, implying state change or context setting, but doesn't disclose behavioral traits like whether this affects all following tools, if it's reversible, requires specific permissions, or has side effects. For a tool that likely modifies session state, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Selects GCP project') and adds necessary context ('to use for subsequent interactions'). There is zero waste, and every word earns its place, making it appropriately sized for the tool's function.

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 moderate complexity (state-changing with 2 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavior, side effects, or return values. For a tool that sets context, more completeness on how it interacts with other tools would be beneficial, but it meets the minimum viable threshold.

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 clear descriptions for both parameters (projectId and region). The description doesn't add any meaning beyond the schema, such as explaining the impact of region selection or projectId format. With high schema coverage, the baseline is 3, as the schema does the heavy lifting without extra value from the description.

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

Purpose4/5

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

The description clearly states the action ('selects') and resource ('GCP project'), and specifies the purpose ('to use for subsequent interactions'). It distinguishes from siblings like 'list-projects' (which enumerates) and 'run-gcp-code' (which executes). However, it doesn't explicitly contrast with all siblings, such as 'get-billing-info' or 'list-gke-clusters', which operate on different resources.

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 by stating 'for subsequent interactions', suggesting this tool sets context for other operations. It doesn't provide explicit when-to-use guidance, alternatives (e.g., when to use 'list-projects' first), or exclusions (e.g., not needed if project is already selected). The context is clear but lacks detailed guidance.

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

TDQS

C2.8/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific GCP services or functions, but 'run-gcp-code' is ambiguous and could overlap with other operations, potentially causing confusion. The other tools are clearly scoped to billing, logging, resource listing, and project selection.

Naming Consistency3/5

The naming is mixed with inconsistent patterns: some use verb_noun (e.g., 'list-projects', 'get-logs'), others use noun_verb (e.g., 'run-gcp-code'), and hyphenation varies. While readable, it lacks a uniform convention across all tools.

Tool Count4/5

With 9 tools, the count is reasonable for a GCP server, covering key areas like billing, logging, and resource management. It's slightly lean but well-scoped, avoiding bloat while providing essential functionality.

Completeness3/5

The toolset covers listing and getting operations well but has notable gaps in CRUD coverage, such as missing create, update, or delete tools for resources like GKE clusters or SQL instances. This could limit agent workflows that require full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • 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 interaction with Google Cloud services including billing cost analysis, log querying, and metrics monitoring through natural language commands. Provides comprehensive tools for managing GCP resources, analyzing costs, detecting anomalies, and retrieving operational insights.
    40
    1
    Apache 2.0
  • 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
  • A
    license
    B
    quality
    Not graded
    maintenance
    Enables AI assistants to interact with and manage Google Cloud Platform resources including Artifact Registry, BigQuery, Cloud Build, Compute Engine, Cloud Run, Cloud Storage, and monitoring services through a standardized MCP interface.
    1

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/RadiumGu/gcp-ops-mcp'

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