Deep audit
Resources across 9 GCP services: Compute Engine, Storage, IAM, Network, GKE, Cloud Run, Cloud SQL, Filestore and Vertex AI.
UCR Research Computing · v0.34.2
GCP audit and reporting for a research cloud fleet.
Skywalker walks the Google Cloud hierarchy to give administrators visibility into the research fleet: security risks, wasted spend and operational hygiene across hundreds of projects.
It ships as a Python CLI and as an MCP server that answers "what is happening in my Google Cloud project?" for AI assistants. Both are read-only by default; the CLI's one write path (--fix) asks for confirmation.
# Audit specific services in specific regions
$ skywalker --project-id my-lab-project \
--services compute storage --regions us-west1
# Find wasted resources across ALL projects in the org
$ skywalker --find-zombies
# Live dashboard of top CPU/Memory consumers
$ skywalker --monitor --limit 20
# Fleet-wide model usage, sorted by estimated cost
$ skywalker --all-projects --model-audit \
--sort-by estimated_cost
# Report for stakeholders
$ skywalker --all-projects --html fleet_report.html
What it does
Scan one project or the whole organization, then act on what it finds. Each mode is a CLI flag.
Resources across 9 GCP services: Compute Engine, Storage, IAM, Network, GKE, Cloud Run, Cloud SQL, Filestore and Vertex AI.
Aggregates CPU, memory and GPU metrics from many VMs into one "Mission Control" dashboard. Finds overloaded instances and VMs missing the Ops Agent.
Orphaned disks, unused static IPs and buckets with zero egress for 30 days, with an estimate of potential monthly savings.
Installs the Google Cloud Ops Agent on Linux VMs over SSH through IAP tunneling, to close monitoring blind spots. Interactive and scoped.
Queries Cloud Monitoring for Vertex AI and publisher model request and token counts, then prices them from a model price map.
Deep API key audit with request counts and estimated cost per key (--api-key-audit).
Queries a BigQuery billing export for gross and net cost reports (--billing-report).
Render audits to HTML or PDF for stakeholders, export fleet data to CSV, or emit structured JSON.
MCP server
The MCP server, built on the skywalker.intel library in this repo, exposes read-only tools for Claude, Gemini Enterprise, Hermes and other programs. Google's own remote MCP servers expose raw APIs one call per tool; Skywalker is the layer above them, joining APIs and the billing export into findings.
| Tool | Role | What it answers |
|---|---|---|
skywalker_overview | read | Findings first, then spend and 7-day trend, budget, VMs and GPUs, idle disks and IPs, IAM risks, exposure, admin changes |
skywalker_spend | read | Billing export: gross, credits, net by service, SKU, day or region |
skywalker_compute | read | VMs, GPUs, spot, external IPs, days stopped; unattached disks first |
skywalker_recommendations | read | Recommender: idle resources, rightsizing, unused IAM roles, with monthly savings |
skywalker_access | read | IAM policy with risky grants flagged |
skywalker_exposure | read | Public IAM bindings, open admin ports, VMs with external IPs, SCC findings |
skywalker_activity | read | Admin Activity audit log: who changed what |
skywalker_fleet | staff | Every project: spend leaders, risers, budgets over 100%, running VMs, public access |
A selection of the tools; the MCP server README lists all of them, plus endpoints, configuration and client setup for Claude Code, Hermes and claude.ai.
How it works
Modular "walkers" query each service through the official Google Cloud Python clients, results are validated against strict Pydantic schemas, and modes turn them into tables, dashboards and reports. A ThreadPoolExecutor scans many projects in parallel. The CLI always fetches fresh data.
Compute, Storage, IAM, GKE, Run, SQL, Filestore, Vertex AI, Monitoring, Asset Inventory, BigQuery billing export.
skywalker.intel: per-caller, JSON-only libraryaudit, monitor, zombies, fix, model usage, API keys, billing.
Rich terminal tables, JSON, CSV, HTML and PDF reports.
Streamable HTTP at /mcp, OAuth 2.1 sign-in, acting as the caller.
Safety
Newer on master (after v0.34.2): per-person project scope for read users and an A2A agent for Gemini Enterprise that runs through the same role checks, limits and audit.
Quick start
Skywalker is packaged with uv. From a clone of the repo, install the tool, then run it with your own Google Cloud credentials. Project names below are placeholders.
Install
git clone https://github.com/charles-forsyth/Skywalker.git
cd Skywalker
uv tool install . --force
Standard audit
# Audit a single project for all services
skywalker --project-id my-lab-project
# Model usage over the last 30 days, as JSON
skywalker --all-projects --model-audit --json
Remediation (Fix-It)
# Install Ops Agent on VMs in the monitoring scope missing it
skywalker --fix ops-agent --monitor
Add the MCP server to a client
claude mcp add --transport http skywalker <URL>/mcp
hermes mcp add skywalker --url <URL>/mcp --auth oauth
Contributing: feature branch, tests with pytest, typing with mypy src, formatting with ruff format ., then a pull request.