tpu-devops (xbill9/tpu-skill-claude) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 62 tools. No publisher has claimed this listing.

D
Caution
52/100

tpu-devops

MCP server for managing Google Cloud TPU capacity and serving Gemma 4 with vLLM, including provisioning, debugging, benchmarking, and teardown.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

xbill9

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
// tools this server exposes31 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

verify_model_health

Runs a deep logic check with latency reporting.

save_hf_token

Saves a Hugging Face API token to GCP Secret Manager as secret 'hf-token'. Note: the token passes through the conversation; for maximum privacy the user can instead run `echo -n <token> | gcloud secrets versions add hf-token --data-file=-` themselves (after creating the secret once).

get_vllm_deployment_config

Generates the gcloud command for a single-host TPU v6e vLLM deployment.

destroy_queued_resource

Safely deletes a Queued Resource and its node. Zone defaults to the server's current zone (which `find_tpu` updates when it secures capacity elsewhere).

manage_queued_resource

Ensures the primary Queued Resource exists — and DELETES every other queued resource in the zone (plus the primary itself if FAILED/SUSPENDED, so it can be recreated). Destructive by design; confirm with the user before running it in a zone that may hold resources they want kept. To create without a

create_tpu_queued_resource

Creates a TPU Queued Resource (Flex-start or reserved) with the vLLM startup script. Non-destructive: unlike `manage_queued_resource`, it never deletes other resources — if one with this ID already exists it just reports its state.

create_tpu_vm_instance

Creates a flex-start TPU VM as a GCE instance (recommended path for v6e/v5p) and auto-starts vLLM via the startup script. Boot disk defaults to 200GB because the image default (10GB) cannot hold the vLLM TPU image.

list_tpu_vm_instances

Lists GCE TPU VM instances (ct6e/ct5p machine types) across all zones, or one zone.

destroy_tpu_vm_instance

Deletes a GCE TPU VM instance. Flex-start bills until deletion — confirm with the user before destroying anything they may still need.

get_tpu_vm_serial_log

Tails the serial-console output of a GCE TPU VM. SSH to TPU VMs is often blocked by firewall policy, so this is the primary way to watch startup-script/vLLM boot progress. Success marker: 'vLLM application startup complete.'

get_tpu_vm_endpoint

Returns the vLLM endpoint URLs of a GCE TPU VM and probes their health. Port 8000 is frequently unreachable from outside the VPC (firewall) even when serving is healthy — if both probes fail, check `get_tpu_vm_serial_log` for the startup-complete marker.

wait_for_vllm_ready

Polls a GCE flex-start TPU VM every 30s until vLLM serving is ready, checking the health endpoint and the serial-console startup marker. One call replaces manual serial-log polling; model load typically takes ~10 min. Also fails fast if the startup script logs an ERROR (e.g. Secret Manager access de

get_zones_with_available_quota

Retrieves the GCP zones that have a non-zero quota limit for a specific metric.

find_tpu

Sweeps every zone with available quota, creating the queued resource and polling until one reaches ACTIVE. Side effects: deletes the created resource in each zone that fails or times out; on success switches the server's default zone to the winning zone; records failed zones in ~/.cache/tpu-devops/t

find_tpu_vm

GCE counterpart of `find_tpu`: tries flex-start TPU VM creation across zones until one grants capacity. TPUS_PER_TPU_FAMILY quota is only discoverable by attempting creation, so quota failures fail fast and the sweep moves on; each attempt's request expires after `per_zone_wait` so no pending reques

manage_vllm_docker

Manages the vLLM Docker container on the serving host. Targets the queued resource's node by default, or a GCE flex-start TPU VM when instance_name is given.

list_queued_resources

Lists all Queued Resources in a specific zone (defaults to the current zone).

describe_queued_resource

Provides detailed information about a specific Queued Resource, including its lifecycle state and expiry.

estimate_deployment_cost

Estimates the cost of a TPU deployment. `topology` is a chip grid like '2x4'.

get_system_status

High-level dashboard covering both serving paths: GCE flex-start TPU VMs (all zones) and Queued Resources (current zone), plus vLLM health.

get_vllm_endpoint

Returns the active vLLM service URL if available.

query_queued_gemma4

Queries the self-hosted model (the configured MODEL_NAME) on the active TPU deployment. With include_stats=True, streams the response and also reports TTFT, total generation time, and tokens/second.

run_vllm_benchmark

Runs vLLM's internal benchmark tool in a separate container on the serving host (queued resource node by default, or a GCE flex-start TPU VM via instance_name). `model` defaults to the model actually being served (else MODEL_NAME).

get_vllm_docker_logs

Retrieves the last `tail` lines of the vLLM Docker container's logs from the serving host (queued resource node by default, or a GCE flex-start TPU VM via instance_name). Bounded — the full log of a long-serving container can run to megabytes.

get_tpu_system_logs

Retrieves systemd logs for a specific service from the serving host (queued resource node by default, or a GCE flex-start TPU VM via instance_name).

get_cloud_logging_logs

Fetches logs from Google Cloud Logging.

analyze_cloud_logging

Summarizes recent TPU errors from Cloud Logging using the self-hosted Gemma 4 model.

get_model_details

Retrieves detailed information about the running model, vLLM engine, and versions.

get_help

Provides help text and summarizes the configuration options and all available SRE/DevOps tools for this TPU VM MCP server.

get_metrics

Fetches Prometheus metrics from the running vLLM service's /metrics endpoint. Returns the key serving metrics by default; raw=True returns the full dump (large — mostly histogram buckets).

find_gpu

Finds available GPU resources (GCE VMs, Cloud Run services, and zones with available GPU quota) in the GCP project.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configGOOGLE_CLOUD_PROJECT
configGOOGLE_CLOUD_ZONE
configGOOGLE_CLOUD_REGION
configMODEL_NAME
configACCELERATOR_TYPE
configTENSOR_PARALLEL_SIZE
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

62/62 tools missing one or more hints — verify_model_health (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); save_hf_token (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_vllm_deployment_config (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +59 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Destructive tools are labelled

2 tools perform destructive updates without destructiveHint — create_tpu_vm_instance deletes at line 691 (os.unlink(script_file)); create_tpu_vm_instance deletes at line 691 (os.unlink(script_file))

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Tool inputs are validated

52/62 tool handlers declare input schemas (84%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 28/62 tool handlers wrap calls in try/catch (45%)

Wrap each tool handler body in try/catch and return a structured error response.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tests exist

No test files found

Add tests that exercise each declared tool.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/xbill9/tpu-skill-claude?variant=verified)](https://m8ven.ai/mcp/xbill9/tpu-skill-claude)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 30f58a0dcf39383a6104f6d4dfc7be1bd3001f1c
code hash: 7eec362966502d6f66103d292cb3af3b67dd0b6cb41442d00bccfc47cf3eb23c
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client