GCP MCP
Enables natural language querying and management of Google Cloud Platform resources including Compute Engine, Cloud Storage, Cloud Functions, Cloud Run, BigQuery, Cloud SQL, GKE clusters, Cloud Logging, and billing information across multiple GCP projects and regions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GCP MCPlist all Cloud Storage buckets in my current project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository:
git clone https://github.com/RadiumGu/gcp-ops-mcp.git
cd gcp-ops-mcpInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
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
Open Claude desktop app and go to Settings -> Developer -> Edit Config
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
Open Cursor and go to Settings (⌘,)
Navigate to AI -> Model Context Protocol
Add a new MCP configuration:
{
"gcp": {
"command": "npx -y gcp-mcp"
}
}Windsurf
Open
~/.windsurf/config.json(create if it doesn't exist)Add the MCP configuration:
{
"mcpServers": {
"gcp": {
"command": "npx -y gcp-mcp"
}
}
}GCP Setup
Set up GCP credentials:
Set up application default credentials using
gcloud auth application-default login
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
run-gcp-code: Execute GCP API calls using TypeScript codelist-projects: List all accessible GCP projectsselect-project: Select a GCP project for subsequent operationsget-billing-info: Get billing information for the current projectget-cost-forecast: Get cost forecast for the current projectget-billing-budget: Get billing budgets for the current projectlist-gke-clusters: List all GKE clusters in the current projectlist-sql-instances: List all Cloud SQL instances in the current projectget-logs: Get Cloud Logging entries for the current project
Example Interactions
List available projects:
List all GCP projects I have access toSelect a project:
Use project my-project-idCheck billing status:
What's my current billing status?View logs:
Show me the last 10 log entries from my projectSupported 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.logCommon issues:
Authentication errors: Ensure you've run
gcloud auth application-default loginPermission errors: Check IAM roles for your account
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 toolsget-billing-budgetC
Get billing budgets for the current project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project ID to get budgets for (defaults to selected project) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project ID to get billing info for (defaults to selected project) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project ID to get forecast for (defaults to selected project) | |
| months | No | Number of months to forecast (default: 3) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter for the log entries (see Cloud Logging query syntax) | |
| pageSize | No | Maximum number of entries to return (default: 10) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | Location (region or zone) to list clusters from (defaults to all locations) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| reasoning | Yes | The reasoning behind the code | |
| code | Yes | Your 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. | |
| projectId | No | GCP project ID to use | |
| region | No | Region to use (if not provided, us-central1 is used) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ID of the GCP project to select | |
| region | No | Region to use (if not provided, us-central1 is used) |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
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.
Interact with your Google Cloud Firestore resources using natural language commands.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.16MIT
- AlicenseCqualityDmaintenanceEnables 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.401Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables managing Google Cloud Platform infrastructure through natural language, including VM deployment, SSH key management, remote command execution, and Terraform infrastructure-as-code operations.2
- AlicenseBqualityNot gradedmaintenanceEnables 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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