cloud-run
Allows deploying code to Google Cloud Run, managing services, and retrieving service details and logs.
Click on "Deploy 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-rundeploy the current folder 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.
MCP server to deploy code to Google Cloud Run
Enable MCP-compatible AI agents to deploy apps to Cloud Run.
"mcpServers":{
"cloud-run": {
"command": "npx",
"args": ["-y", "https://github.com/GoogleCloudPlatform/cloud-run-mcp"]
}
}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-files*: Deploys files from the local file system to a Google 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: Cloud Run MCP Server
Use 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 Node.js (LTS version recommended).
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 loginUpdate the MCP configuration file of your MCP client with the following:
"cloud-run": { "command": "npx", "args": ["-y", "https://github.com/GoogleCloudPlatform/cloud-run-mcp"] }
Use 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.
Run 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"] }
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 of behavioral disclosure. It does disclose the 'attempts to attach' behavior, which implies possible failure, and explains auto-generation of project ID. However, it does not mention required permissions, potential side effects, or what happens if no billing account is available. It adds some value beyond just 'create', but remains incomplete for a mutation operation.
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 concise sentences with no filler. It front-loads the primary action and includes the most important behavioral caveat (billing attach attempt) early. Every sentence serves a purpose, making it efficient and easy to parse.
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?
The tool is simple with one optional parameter and no output schema, so the description is reasonably complete. However, it lacks a note about the return value or result of the operation (e.g., what the agent should expect back), and does not mention asynchronous behavior or potential errors. This is a minor but relevant gap for an agent invoking a creation action.
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 parameter is already well-documented. The description reinforces the fact that projectId is optional and that auto-generation occurs, but adds no new semantic meaning beyond the schema. Baseline of 3 is appropriate given 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 a specific verb ('Creates') and resource ('GCP project'), and adds a key behavioral detail (attaching to first available billing account). This differentiates it from sibling tools like list_projects and deploy_local_files, which are clearly read or deployment operations.
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 does not provide any guidance on when to use this tool versus alternatives. It does not mention exclusions or conditions that would select another tool. While the action is self-evident given the siblings, there is no explicit routing or contextual instructions.
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 | |
| region | No | Region to deploy the service to | europe-west1 |
| 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. | |
| 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 must carry the full behavioral burden. It states the action (deploy files) but does not disclose side effects such as creating or updating a Cloud Run service, potential overwrites, or whether the operation is async or sync. For a mutation tool that deploys services, this lack of effect disclosure is a significant gap.
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?
Two sentences with zero fluff. The opening sentence states the core action and method, and the second sentence gives the explicit usage condition. Everything in the description is essential and front-loaded.
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 4 parameters and no output schema, the description covers the selection criteria but misses execution details like expected behavior, return values, or error handling. The schema covers parameter definitions, but the operational context (e.g., deployment progress, confirmation requirements for project ID) is absent, making the tool only partially complete for an agent.
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. The description only repeats the main concept ('array of file objects containing filename and content'), which adds no new meaning beyond the schema. It does not clarify parameter relationships, defaults, or the meaning of 'project' being optional, so the baseline 3 applies.
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 uses a specific verb ('Deploy'), names the resource ('files to Cloud Run'), and specifies the method ('by providing their contents directly'). It also distinguishes from siblings by noting the condition 'if the files only exist in the current chat context', which sets it apart from deploy_local_files and deploy_local_folder.
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.' This gives a clear selection criterion, though it does not name the alternative tools explicitly. The implicit contrast with local deployment tools is present but not spelled out as a formal 'when-not-to-use' statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_local_filesB
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"]) | |
| region | No | Region to deploy the service to | europe-west1 |
| project | Yes | Google Cloud project ID. Do not select it yourself, make sure the user provides or confirms the project ID. | |
| 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 must carry the full behavioral disclosure burden. It only states that it deploys files, implying a mutation operation, but says nothing about side effects, required permissions, authentication, whether an existing Cloud Run service is updated or a new one created, or what happens on failure. For a deployment tool with significant side effects, this is a major gap.
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?
Two sentences with minimal waste. The core action and usage condition are front-loaded. The minor grammar error ('exists' instead of 'exist') is negligible. It earns a 4 for being concise and to the point, though it could have added behavioral context without sacrificing brevity.
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 is severely incomplete. It fails to explain deployment behavior, what the result will be, whether it is destructive, or any prerequisites (e.g., gcloud auth, project existence). The high schema coverage partially compensates for parameter details, but the overall operation context is missing, making it inadequate for reliable 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% – every parameter has a description, including the guidance on 'project' to have the user confirm it. The description adds no additional meaning beyond what the schema already provides; it merely restates 'absolute file paths' which is already in the schema. Baseline 3 is correct since the schema handles the 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 ('Deploy local files to Cloud Run') and the resource (local filesystem files as an array of absolute paths). It distinguishes from likely siblings like deploy_file_contents and deploy_local_folder by the 'local files' phrasing, though it does not explicitly name alternatives. This is clear but lacks explicit sibling differentiation that would merit a 5.
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 gives an explicit condition: 'Use this tool if the files exists on the user local filesystem.' This tells the agent when to choose this tool over deploy_file_contents (which likely handles in-memory content) or deploy_local_folder. However, it does not state when not to use it or mention the other deploy tools as explicit alternatives, so a 4 is appropriate.
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 |
|---|---|---|---|
| region | No | Region to deploy the service to | europe-west1 |
| project | Yes | Google Cloud project ID. Do not select it yourself, make sure the user provides or confirms the project ID. | |
| service | No | Name of the Cloud Run service to deploy to | app |
| folderPath | Yes | Absolute path to the folder to deploy (e.g. "/home/user/project/src") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description only states the action and the input path; it does not disclose whether the deployment overwrites an existing service, requires special permissions, or has any side effects. For a deployment action, this is a significant transparency gap.
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 concise—two sentences—with the primary purpose stated first and the usage condition appended. There is no redundant or filler content; every sentence contributes to understanding the tool's purpose and when to use it.
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?
This is a deployment tool with no output schema and no annotations. The description only covers purpose and a usage tip, but omits crucial context such as what happens after deployment, how to verify success, whether the service gets replaced, or any required prerequisites. Given the complexity of deploying to Cloud Run, the description is critically incomplete for an agent to execute safely.
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 provides full descriptions for all four parameters (100% coverage), so the schema carries the burden. The tool description adds no parameter-specific meaning beyond the schema. The baseline of 3 is appropriate, as the schema already defines each parameter's purpose and defaults.
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 tool's function: deploy a local folder to Cloud Run. It names a specific verb and resource, and the addition of 'Use this tool if the entire folder content needs to be deployed' distinguishes it from sibling tools like deploy_local_files and deploy_file_contents, which handle different deployment scopes.
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 a clear condition for when to use the tool: when deploying the entire folder content. It implies that for partial deployments, alternative tools should be used, though it does not explicitly name those alternatives. The schema also includes a guidance note on the project parameter (user confirmation), which adds to usage clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceB
Gets details for a specific Cloud Run service.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Region where the service is located | europe-west1 |
| project | Yes | Google Cloud project ID containing the service | |
| 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. It only states 'gets details,' which implies a read operation, but it does not disclose potential error behaviors (e.g., not-found handling), required IAM permissions, rate limits, or what specific details are returned. For a tool without annotations, this is a minimal disclosure that leaves significant behavioral aspects unspecified.
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 sentence, front-loaded with the action and resource, with zero filler. It is efficiently structured and immediately understandable, achieving maximum conciseness without sacrificing necessary content.
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?
This is a simple read tool with no output schema and no annotations. The description offers only the bare minimum. Given the lack of annotations, the description should clarify what details are returned, potential failure cases, or any special handling. Without this, an agent cannot fully anticipate the tool's behavior, making the description incomplete for a tool with no other structured 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?
Schema description coverage is 100%, with each parameter having a description in the schema. The tool description adds no additional meaning beyond what the schema already provides. Thus, the baseline of 3 applies, as the schema adequately documents all parameters and the description does not compensate or enrich them further.
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 a specific verb ('gets') and a well-defined resource ('details for a specific Cloud Run service'). The word 'specific' distinguishes it from list_services, which presumably lists all services. This is a precise, non-tautological statement that unambiguously identifies the tool's function.
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 its siblings (e.g., list_services for enumeration, get_service_log for logs). There is no mention of alternatives or prerequisites. The usage context is only implied by the generic 'gets details' phrasing, leaving the agent to infer when this should be chosen over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_logB
Gets Logs and Error Messages for a specific Cloud Run service.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Region where the service is located | europe-west1 |
| project | Yes | Google Cloud project ID containing the service | |
| 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 must bear the burden of behavioral disclosure. 'Gets' implies a read-only operation, but the description doesn't mention permissions, pagination, or the nature of the returned logs. It provides only the basic action without additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence with no filler. The action verb and object are front-loaded, making it easy to parse at a glance.
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?
With no output schema, the description leaves out what the returned logs will include (structure, size, ordering). For a simple tool this is acceptable, but an agent would benefit from knowing the response format or any constraints (e.g., time range) to fully anticipate the call.
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 coverage is 100%, with each parameter (project, service, region) already described at the schema level. The tool description adds no further parameter semantics, so the baseline of 3 applies given the schema's adequacy.
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 a specific verb ('Gets') and a distinct resource ('Logs and Error Messages for a specific Cloud Run service'). It clearly implies this is for a single service, which differentiates it from list-style siblings, though it doesn't explicitly name alternatives.
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 gives no guidance on when to choose this tool over siblings like get_service or list_services. It merely states what it does, leaving the agent to infer the appropriate context without any exclusionary or alternative routing.
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, the description bears full burden. It implies a read-only operation via 'Lists', but does not disclose pagination, output format, filtering, or any side effects. Minimal value added beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, and the action is front-loaded. It is concise without being verbose, though it could incorporate more context without losing efficiency.
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, the description provides a fundamental understanding of what it does, but it lacks details about the output structure (e.g., project names/IDs) or any usage notes. With no output schema or annotations, this is a marginal pass.
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?
Zero parameters make schema coverage trivially 100%. Baseline for 0 params is 4; description adds no parameter information, but none is needed, so the baseline stands.
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?
Verb 'Lists' and resource 'available GCP projects' are clear and unambiguous. It does not explicitly differentiate from sibling tools like list_services, but the resource type is specific enough for most agents. Minor deduction for lacking explicit sibling distinction.
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 on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or scenarios, leaving the agent to infer its placement among list_services and other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesB
Lists Cloud Run services in a given project and region.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Region where the services are located | europe-west1 |
| project | Yes | Google Cloud project ID |
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. 'Lists' implies a read-only operation, but the description does not explicitly state that it is safe/non-destructive, nor does it disclose what it returns (e.g., list of service names vs. full objects), pagination behavior, or error cases. This is a significant gap 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 sentence with no waste. It is front-loaded with the verb and resource, and includes both parameter scopes. This is appropriately concise and well-structured.
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 simple list operation with two fully described parameters and no output schema, the description is adequate in stating the primary function. However, it lacks details on the return format (what fields are included) and any caveats (e.g., pagination, absence of results). The agent can infer a list is returned, but not the structure. This is acceptable but not fully complete.
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 both 'project' and 'region' having descriptions. The tool description adds no parameter information beyond what the schema provides, so baseline 3 is appropriate.
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 uses a specific verb ('Lists') and a specific resource ('Cloud Run services in a given project and region'). This clearly distinguishes it from get_service (singular) and from deployment-related siblings. The scope (project and region) is explicitly mentioned, matching the parameters.
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. It does not mention that get_service retrieves a single service or that listing is for multiple services. There is no explicit context, exclusions, or alternative routing.
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.
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
Scored across 8 tools
Each tool has a clearly distinct purpose: listing vs creating projects, listing vs getting services, fetching logs, and three deployment methods differentiated by file source (local files, folder, or content). The deployment tools include explicit 'use this tool if' guidance to remove any ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case: list_projects, create_project, list_services, get_service, get_service_log, deploy_local_files, deploy_local_folder, deploy_file_contents. The pattern is uniform and predictable.
8 tools is well-scoped for a Cloud Run management server, covering project, service, log, and deployment operations without unnecessary redundancy. Each tool serves a distinct purpose within a reasonable count.
The tool set covers project listing/creation, service listing/detail/logs, and multiple deployment modes, but lacks operations for updating or deleting services, managing revisions, or handling traffic splits. These are notable gaps for a full Cloud Run lifecycle, though core workflows are handled.
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Hosting for AI agents: your AI client deploys Docker apps to live HTTPS URLs over MCP.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
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
- AlicenseAqualityCmaintenanceEnables MCP-compatible AI agents to deploy applications to Google Cloud Run by providing tools for deploying code, listing services, and managing Google Cloud projects.82,055 npm631Apache 2.0
- 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.1MIT