Cloud Run MCP Server
OfficialThe Cloud Run MCP Server enables MCP-compatible AI agents to deploy and manage applications on Google Cloud Run.
Key capabilities include:
Deploy applications to Cloud Run:
Deploy local files or folders
Deploy file contents directly
Support for AI-powered IDEs, assistant apps, or agent SDKs
Manage Cloud Run services:
List services within a project and region
Retrieve service details
Access service logs and error messages
Manage Google Cloud projects:
List available GCP projects
Create new projects with optional project IDs
Flexible implementation:
Run locally with Google Cloud credentials
Host securely on Cloud Run with IAM authentication
Customize configurations for project, region, and service name
Provides tools for deploying applications to Google Cloud Run, listing services, getting service details, creating projects, and managing cloud resources. Supports both direct file content deployment and local file/folder deployment.
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., "@Cloud Run MCP Serverdeploy my app to Cloud Run"
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.
Cloud Run MCP server and Gemini CLI extension
Enable MCP-compatible AI agents to deploy apps to Cloud Run.
"mcpServers":{
"cloud-run": {
"command": "npx",
"args": ["-y", "@google-cloud/cloud-run-mcp"]
}
}Deploy from Gemini CLI and other AI-powered CLI agents:
Deploy from AI-powered IDEs:
Deploy from AI assistant apps:
Deploy from agent SDKs, like the Google Gen AI SDK or Agent Development Kit.
This is the repository of an MCP server to deploy code to Cloud Run, to learn how to host MCP servers on Cloud Run, visit the Cloud Run documentation.
Tools
deploy-file-contents: Deploys files to Cloud Run by providing their contents directly.list-services: Lists Cloud Run services in a given project and region.get-service: Gets details for a specific Cloud Run service.get-service-log: Gets Logs and Error Messages for a specific Cloud Run service.deploy-local-folder*: Deploys a local folder to a Google Cloud Run service.list-projects*: Lists available GCP projects.create-project*: Creates a new GCP project and attach it to the first available billing account. A project ID can be optionally specified.
* only available when running locally
Related MCP server: gcloud MCP Cloud Run
Prompts
Prompts are natural language commands that can be used to perform common tasks. They are shortcuts for executing tool calls with pre-filled arguments.
deploy: Deploys the current working directory to Cloud Run. If a service name is not provided, it will use theDEFAULT_SERVICE_NAMEenvironment variable, or the name of the current working directory.logs: Gets the logs for a Cloud Run service. If a service name is not provided, it will use theDEFAULT_SERVICE_NAMEenvironment variable, or the name of the current working directory.
Environment Variables
The Cloud Run MCP server can be configured using the following environment variables:
Variable | Description |
| The default project ID to use for Cloud Run services. |
| The default region to use for Cloud Run services. |
| The default service name to use for Cloud Run services. |
| Controls whether to check for IAM permissions for a Cloud Run service. Set to |
| Prevents DNS Rebinding attacks by validating the Host header. This is disabled by default. |
| Comma-separated list of allowed Host headers (if host validation is enabled). The default value is |
Use as a Gemini CLI extension
To install this as a Gemini CLI extension, run the following command:
Install the extension:
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcpLog in to your Google Cloud account using the command:
gcloud auth loginSet up application credentials using the command:
gcloud auth application-default login
Use in MCP Clients
Learn how to configure your MCP client
Most MCP clients require a configuration file to be created or modified to add the MCP server.
The configuration file syntax can be different across clients. Please refer to the following links for the latest expected syntax:
Once you have identified how to configure your MCP client, select one of these two options to set up the MCP server. We recommend setting up as a local MCP server using Node.js.
Set up as local MCP server
Run the Cloud Run MCP server on your local machine using local Google Cloud credentials. This is best if you are using an AI-assisted IDE (e.g. Cursor) or a desktop AI application (e.g. Claude).
Install the Google Cloud SDK and authenticate with your Google account.
Log in to your Google Cloud account using the command:
gcloud auth loginSet up application credentials using the command:
gcloud auth application-default login
Then configure the MCP server using either Node.js or Docker:
Using Node.js
Install Node.js (LTS version recommended).
Update the MCP configuration file of your MCP client with the following:
"cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"] }[Optional] Add default configurations
"cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"], "env": { "GOOGLE_CLOUD_PROJECT": "PROJECT_NAME", "GOOGLE_CLOUD_REGION": "PROJECT_REGION", "DEFAULT_SERVICE_NAME": "SERVICE_NAME" } }
Using Docker
See Docker's MCP catalog, or use these manual instructions:
Install Docker
Update the MCP configuration file of your MCP client with the following:
"cloud-run": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GOOGLE_APPLICATION_CREDENTIALS", "-v", "/local-directory:/local-directory", "mcp/cloud-run-mcp:latest" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/Users/slim/.config/gcloud/application_default-credentials.json", "DEFAULT_SERVICE_NAME": "SERVICE_NAME" } }
Set up as remote MCP server
Do not use the remote MCP server without authentication. In the following instructions, we will use IAM authentication to secure the connection to the MCP server from your local machine. This is important to prevent unauthorized access to your Google Cloud resources.
Run the Cloud Run MCP server itself on Cloud Run with connection from your local machine authenticated via IAM. With this option, you will only be able to deploy code to the same Google Cloud project as where the MCP server is running.
Install the Google Cloud SDK and authenticate with your Google account.
Log in to your Google Cloud account using the command:
gcloud auth loginSet your Google Cloud project ID using the command:
gcloud config set project YOUR_PROJECT_IDDeploy the Cloud Run MCP server to Cloud Run:
gcloud run deploy cloud-run-mcp --image us-docker.pkg.dev/cloudrun/container/mcp --no-allow-unauthenticatedWhen prompted, pick a region, for example
europe-west1.Note that the MCP server is not publicly accessible, it requires authentication via IAM.
[Optional] Add default configurations
gcloud run services update cloud-run-mcp --region=REGION --update-env-vars GOOGLE_CLOUD_PROJECT=PROJECT_NAME,GOOGLE_CLOUD_REGION=PROJECT_REGION,DEFAULT_SERVICE_NAME=SERVICE_NAME,SKIP_IAM_CHECK=falseRun a Cloud Run proxy on your local machine to connect securely using your identity to the remote MCP server running on Cloud Run:
gcloud run services proxy cloud-run-mcp --port=3000 --region=REGION --project=PROJECT_IDThis will create a local proxy on port 3000 that forwards requests to the remote MCP server and injects your identity.
Update the MCP configuration file of your MCP client with the following:
"cloud-run": { "url": "http://localhost:3000/sse" }If your MCP client does not support the
urlattribute, you can use mcp-remote:"cloud-run": { "command": "npx", "args": ["-y", "mcp-remote", "http://localhost:3000/sse"] }
Using MCP Server with OAuth
Cloud Run MCP server supports OAuth as an authentication mechanism. In order to use OAuth, create the OAuth client, and configure a .env file with the appropriate values pertaining to your OAuth client. A .env.example is provided for reference.
The Cloud Run MCP server works seamlessly with Google Cloud SDK OAuth client. In order to leverage the Google Cloud SDK OAuth client, you can use the .env.gcloud-sdk-oauth file as your .env file as follows:
cp .env.gcloud-sdk-oauth .env
node mcp-server.jsConfigure MCP Server on Gemini CLI to use OAuth
When the Cloud Run MCP server is started in the OAuth mode, the MCP client should also be configured to use OAuth. You can setup the MCP server in OAuth mode in the Gemini CLI by using the following JSON in the ~/.gemini/settings.json file:
{
"mcpServers": {
"cloud-run": {
"httpUrl": "http://localhost:3000/mcp",
"oauth": {
"enabled": true,
"clientId": "<OAUTH_CLIENT_ID>",
"clientSecret": "<OAUTH_CLIENT_SECRET>"
}
}
}
}Post the configuration changes as shown above, start the Gemini CLI. You should authenticate the Cloud Run MCP server using the following prompt in the Gemini CLI:
/mcp auth cloud-runThis will take you to the authentication page on your browser, wherein you need to sign in using the appropriate gmail id, and accept the terms and conditions. Once the authentication is succcessful, you can come back to the Gemini CLI, and the Cloud Run MCP server will be ready to use.
The Google Cloud Platform Terms of Service (available at https://cloud.google.com/terms/) and the Data Processing and Security Terms (available at https://cloud.google.com/terms/data-processing-terms) do not apply to any component of the Cloud Run MCP Server software.
Cloud Run Skills
We introduce Cloud Run skills to enable AI agents to perform actions on Cloud Run. You can use these skills with Gemini CLI and other agentic AI tools. The skills are available at Cloud Run Skills.
The Cloud Run skills are based on top of gcloud cli for Cloud Run empowering agents to perform all the actions on the Cloud Run using gcloud, as can be performed by the GCP user using gcloud cli.
In order to use Cloud Run skills:
Ensure you have the
gcloudCLI installed and authenticated withgcloud auth loginandgcloud auth application-default login.Set your project with
gcloud config set project [PROJECT_ID].Enable the skills on your agentic AI tool. For example, you can enable the skills for Gemini CLI using the following command on your terminal:
gemini skills install https://github.com/GoogleCloudPlatform/cloud-run-mcp.git --path skills/cloud-runOnce the skills are enabled, you can use them to perform actions on Cloud Run. Here are some of the prompts for you to get started:
List the Cloud Run services in the project test-gcp-project in the region us-west1.
Deploy the folder /home/username/workspace/hello-world as Cloud Run service hello-world to the project test-gcp-project in the region us-west1.
Describe the Cloud Run job hello-job in the project test-gcp-project in the region europe-west1.
Available Tools
8 toolscreate_projectA
Creates a new GCP project and attempts to attach it to the first available billing account. A project ID can be optionally specified; otherwise it will be automatically generated.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Optional. The desired ID for the new GCP project. If not provided, an ID will be auto-generated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: project creation, optional project ID specification, auto-generation if not provided, and billing account attachment. However, it lacks details on permissions required, error conditions, or what 'first available billing account' means operationally.
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 two sentences with zero waste: the first states the core action and billing behavior, the second clarifies the parameter usage. It is front-loaded with the main purpose and appropriately sized for the tool's complexity.
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 creation tool with no annotations and no output schema, the description covers the basic action and parameter but lacks completeness. It does not explain the return value, error handling, or the implications of billing account attachment, leaving gaps for an agent to understand full behavior.
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 optional parameter 'projectId'. The description adds minimal value by restating that it's optional and auto-generated if omitted, but does not provide additional semantics beyond what the schema describes.
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 action ('Creates a new GCP project') and resource ('GCP project'), distinguishing it from sibling tools like list_projects (which lists) and deployment tools. It also specifies the additional billing attachment behavior, making the purpose unambiguous.
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 when a new project is needed, but does not explicitly state when to use this tool versus alternatives (e.g., list_projects for viewing existing ones) or any prerequisites. It mentions billing account attachment but not conditions or exclusions for this behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_file_contentsA
Deploy files to Cloud Run by providing their contents directly. Takes an array of file objects containing filename and content. Use this tool if the files only exist in the current chat context.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Array of file objects containing filename and content | |
| project | Yes | Google Cloud project ID. Leave unset for the app to be deployed in a new project. If provided, make sure the user confirms the project ID they want to deploy to. | |
| region | No | Region to deploy the service to | europe-west1 |
| service | No | Name of the Cloud Run service to deploy to | app |
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 the deployment action but doesn't describe critical behavioral aspects like whether this is a destructive operation (overwrites existing files?), authentication requirements, rate limits, or what happens on success/failure. The description adds some context about project ID confirmation but lacks comprehensive behavioral details.
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 (two sentences) and front-loaded with the core purpose. Every sentence earns its place: the first defines what the tool does, the second provides crucial usage guidance. No wasted words or redundant information.
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 deployment tool with no annotations and no output schema, the description provides adequate purpose and usage guidance but lacks important contextual information about what the tool actually does behaviorally (creates/updates services, potential side effects, error handling). The schema covers parameters well, but the description doesn't compensate for the missing behavioral context that annotations would normally provide.
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 fully documents all 4 parameters. The description mentions 'array of file objects containing filename and content' which aligns with the schema but doesn't add meaningful semantic context beyond what's already in the parameter descriptions. The baseline is 3 when 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 specific action ('Deploy files to Cloud Run') and resource ('files'), and distinguishes it from sibling tools by specifying 'by providing their contents directly' and 'if the files only exist in the current chat context', which differentiates it from deploy_local_files and deploy_local_folder that presumably work with local file systems.
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 explicitly states when to use this tool ('Use this tool if the files only exist in the current chat context'), providing clear guidance that distinguishes it from alternatives like deploy_local_files or deploy_local_folder, which would be used for files stored locally rather than in chat context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_local_filesA
Deploy local files to Cloud Run. Takes an array of absolute file paths from the local filesystem that will be deployed. Use this tool if the files exists on the user local filesystem.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Array of absolute file paths to deploy (e.g. ["/home/user/project/src/index.js", "/home/user/project/package.json"]) | |
| project | Yes | Google Cloud project ID. Do not select it yourself, make sure the user provides or confirms the project ID. | |
| region | No | Region to deploy the service to | europe-west1 |
| service | No | Name of the Cloud Run service to deploy to | app |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions that files must exist locally, it doesn't disclose critical behavioral traits like whether this is a destructive operation (overwrites existing deployments), authentication requirements, rate limits, error handling, or what happens after deployment. For a deployment tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 (two sentences) and front-loaded with the core purpose. Every sentence earns its place: the first states what the tool does, the second provides crucial usage guidance. There's zero wasted verbiage.
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 this is a deployment tool (complex operation) with no annotations and no output schema, the description is incomplete. It doesn't explain what 'deploy' entails (e.g., creates/updates a service), what happens on success/failure, or what the tool returns. For a tool that modifies cloud infrastructure, this leaves too many unknowns for safe agent invocation.
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 all parameters thoroughly. The description adds minimal value beyond the schema, only reinforcing that files are 'absolute file paths from the local filesystem.' This matches the baseline expectation when schema coverage is high.
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 action ('Deploy local files to Cloud Run') and resource ('local files'), distinguishing it from sibling tools like 'deploy_file_contents' (which likely deploys content strings) and 'deploy_local_folder' (which deploys folders rather than individual files). The purpose is unambiguous and well-specified.
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 explicitly states when to use this tool ('Use this tool if the files exists on the user local filesystem'), providing clear context for its application. This directly addresses the alternative scenario where files might not be local, helping the agent choose correctly among deployment options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_local_folderA
Deploy a local folder to Cloud Run. Takes an absolute folder path from the local filesystem that will be deployed. Use this tool if the entire folder content needs to be deployed.
| Name | Required | Description | Default |
|---|---|---|---|
| folderPath | Yes | Absolute path to the folder to deploy (e.g. "/home/user/project/src") | |
| project | Yes | Google Cloud project ID. Do not select it yourself, make sure the user provides or confirms the project ID. | |
| region | No | Region to deploy the service to | europe-west1 |
| service | No | Name of the Cloud Run service to deploy to | app |
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 deployment action but lacks critical details like required permissions, whether this creates or updates services, potential costs, time estimates, or error handling. For a deployment tool with zero annotation coverage, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that are front-loaded and waste-free. Every word earns its place by stating the core purpose and key usage condition without redundancy or fluff.
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 this is a deployment tool with no annotations, no output schema, and complex implications (resource creation/modification, cloud costs, permissions), the description is incomplete. It doesn't address what happens after deployment, success indicators, or potential side effects, leaving significant gaps for agent 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?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description only mentions 'absolute folder path' without adding meaningful context beyond what the schema provides for 'folderPath' or other parameters. Baseline 3 is appropriate when 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 specific action ('Deploy a local folder to Cloud Run') and resource ('local folder'), distinguishing it from siblings like 'deploy_file_contents' or 'deploy_local_files' by specifying 'entire folder content' deployment. This provides precise verb+resource differentiation.
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 includes explicit guidance to 'Use this tool if the entire folder content needs to be deployed,' which helps differentiate from tools handling individual files. However, it doesn't mention when NOT to use it or provide alternatives like 'deploy_file_contents' for partial deployments, leaving some contextual gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceC
Gets details for a specific Cloud Run service.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Google Cloud project ID containing the service | |
| region | No | Region where the service is located | europe-west1 |
| service | Yes | Name of the Cloud Run service |
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 this is a read operation ('Gets'), but doesn't mention authentication requirements, rate limits, error conditions, or what the output format looks like. For a tool with no annotation coverage, this leaves significant gaps in understanding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states exactly what the tool does without any wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core functionality.
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 insufficient. It doesn't explain what 'details' are returned, what format they come in, or any behavioral aspects like error handling. Given the complexity of Cloud Run services and the lack of structured output documentation, 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 description coverage is 100%, so all parameters are documented in the schema itself. The description doesn't add any additional parameter semantics beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is complete.
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 ('Gets') and resource ('details for a specific Cloud Run service'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_services' or 'get_service_log', which would require explicit comparison to achieve 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 'list_services' (for listing all services) or 'get_service_log' (for logs). It also doesn't mention prerequisites or contextual constraints, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_logC
Gets Logs and Error Messages for a specific Cloud Run service.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Google Cloud project ID containing the service | |
| region | No | Region where the service is located | europe-west1 |
| service | Yes | Name of the Cloud Run service |
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 of behavioral disclosure. It states the tool 'Gets Logs and Error Messages', implying a read-only operation, but does not specify aspects like authentication needs, rate limits, or what the output format might be (e.g., structured logs, error details). This leaves significant gaps in understanding the tool's behavior.
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 purpose without unnecessary words. It is front-loaded and appropriately sized, 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 for a tool that likely returns logs and error messages. It does not address the nature of the output (e.g., format, structure, or potential limitations), which is crucial for an agent to handle the results effectively. This gap reduces its overall helpfulness.
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 input schema already documents all three parameters (project, region, service) with clear descriptions. The description does not add any additional meaning or context beyond what the schema provides, such as explaining relationships between parameters or usage examples, resulting in a 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 action ('Gets') and the resource ('Logs and Error Messages for a specific Cloud Run service'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'get_service' or 'list_services', which might also involve service-related queries, so it lacks sibling differentiation for 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 how it differs from 'get_service' or 'list_services'. It also lacks context on prerequisites or exclusions, leaving the agent to infer usage based on the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
Lists available GCP projects
| 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 offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, what authentication is required, if there are rate limits, or how results are formatted (e.g., pagination, filtering). The description is too basic 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 wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place 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?
For a tool with no annotations, no output schema, and multiple siblings, the description is insufficient. It lacks details on return format, error conditions, authentication needs, or how it differs from 'list_services'. Given the complexity implied by GCP projects and sibling tools, more context is needed for effective use.
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 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't mention parameters, aligning with the empty input schema. A baseline of 4 is justified since there's nothing to compensate for.
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 ('Lists') and resource ('available GCP projects'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_services' or explain what 'available' means in this context, 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?
No guidance is provided on when to use this tool versus alternatives like 'get_service' or 'create_project'. The description doesn't mention prerequisites, permissions needed, or typical use cases, leaving the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesC
Lists Cloud Run services in a given project and region.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Google Cloud project ID | |
| region | No | Region where the services are located | europe-west1 |
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 it's a list operation but doesn't mention whether it's paginated, what format the results are in, whether authentication is required, or any rate limits. For a cloud service listing tool, this leaves significant behavioral questions unanswered.
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 wasted words. It's front-loaded with the core functionality and appropriately sized for a straightforward listing tool.
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 incomplete behavioral disclosure, the description is insufficient. It doesn't help the agent understand what the tool returns, how to interpret results, or important operational constraints. The description should provide more context given the lack of structured metadata.
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 description mentions 'project and region' parameters but adds no semantic context beyond what's already in the schema (which has 100% coverage with clear descriptions). The description doesn't explain why these parameters matter or how they affect the listing operation, so it 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 verb ('Lists') and resource ('Cloud Run services') with scope ('in a given project and region'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_projects' or 'get_service', which would be needed for 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 'list_projects' or 'get_service'. There's no mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from the tool name alone.
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.
8 tool updates
v1.0.0- First observed
create_project - First observed
deploy_file_contents - First observed
deploy_local_files - First observed
deploy_local_folder - First observed
get_service - First observed
get_service_log - First observed
list_projects - First observed
list_services
TDQS
Most tools have distinct purposes, but the three deployment tools (deploy_file_contents, deploy_local_files, deploy_local_folder) could cause confusion as they all handle deployment with subtle differences in input source. The other tools (create_project, get_service, get_service_log, list_projects, list_services) are clearly differentiated by their target resources and actions.
All tool names follow a consistent verb_noun pattern with snake_case, such as create_project, deploy_file_contents, get_service, and list_services. There are no deviations in naming conventions, making the set predictable and easy to parse.
With 8 tools, the server is well-scoped for managing Cloud Run deployments and related GCP projects. The count is reasonable, covering core operations like deployment, service management, and project handling without being overwhelming or insufficient.
The tool set covers key workflows for Cloud Run, including deployment, service retrieval, logging, and project management. Minor gaps exist, such as missing update or delete operations for services or projects, but agents can likely work around these with the provided tools for basic deployment and monitoring tasks.
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
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted MCP runtime where the agent is the operator: sign up by tool call, publish your own tools.
171Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
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
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Cloud Platform services through gcloud CLI commands via a Cloud Run deployed MCP server. Supports executing gcloud commands and managing GCP resources through natural language.MIT
- 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-
- AlicenseNot gradedqualityBmaintenanceGrok plugin for deploying and managing Google Cloud Run services via MCP tools, slash commands, and a skill.Apache 2.0
Appeared in Searches
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/GoogleCloudPlatform/cloud-run-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server