gke-cred-audit
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., "@gke-cred-auditwhat are the high severity findings?"
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.
gke-cred-audit
Defensive credential-exposure auditor for GKE. Deployed in-cluster as a single
Pod (Deployment + Service); fronted by Natoma at /mcp.
The server uses its own ServiceAccount to:
Inventory its own GCE/GKE workload-identity exposure (project, instance, SA scopes/tokens).
Decode its own projected ServiceAccount token (claims only) and walk its mounted secret files.
Inventory the pods + ConfigMaps in its namespace (and, opt-in, secret metadata) so Natoma can ask follow-up questions about workloads that share the namespace.
Compute its own RBAC posture via
SelfSubjectRulesReviewand a curatedSelfSubjectAccessReviewmatrix.
Surfaces
REST with an OpenAPI 3.1 spec at
/openapi.json(Swagger UI at/docs, ReDoc at/redoc).MCP server over Streamable HTTP, mounted at
/mcp(per MCP spec rev 2025-03-26).
Both surfaces share the same redacted pydantic models. Raw bearer tokens, JWT signatures, PEM
private keys, and Secret values are never returned. The break-glass RAW_REVEAL flag exists for
debugging individual tokens; it never extends to namespace Secret values.
Related MCP server: cloud-pathfinder
Deploying via Natoma
Natoma is the auth boundary for /mcp. The server itself has no native auth; this is intentional
and surfaced in /version, audit://server-info, and the OpenAPI spec via x-auth=none (gateway-managed).
Dockerfile path (recommended)
This repo has a root Dockerfile. Point Natoma at this repo and it will build and run the
container. The server reads $PORT (default 8080) and binds 0.0.0.0. uvicorn is configured
with --proxy-headers --forwarded-allow-ips="*" so X-Forwarded-* from the gateway is honored.
Direct cluster deployment
kubectl apply -f manifests/rbac.yaml
kubectl apply -f manifests/deployment.yaml
kubectl apply -f manifests/service.yaml
kubectl apply -f manifests/networkpolicy.yamlThen point Natoma's gateway at http://gke-cred-audit.<namespace>.svc:8080/mcp.
The bundled NetworkPolicy only permits ingress from namespaces labeled natoma-gateway: "true";
adjust to match your installation. Egress is restricted to the Kubernetes API server and the GCE
metadata IP.
Granting secret enumeration
AUDIT_ENABLE_SECRET_LISTING=true opts in to namespace Secret enumeration. Even when enabled, the
server returns metadata only -- name, type, key names, per-key size, per-key SHA-256 prefix.
Values are never returned. A property-based test (tests/test_redaction_invariant.py)
runs against mocked Secrets containing real-looking base64 data to enforce this.
The trade-off: granting secrets:list to the audit ServiceAccount makes the audit pod a high-trust
target. Default is OFF. When enabling, prefer:
A dedicated namespace for the audit Deployment, with no other workloads.
Tightening the bundled Role with
resourceNames: [...]to specific Secret names.A
NS-SECRETS-LIST-GRANTEDfinding will appear in/findingsto make this visible.
Running locally
pip install -e '.[dev]'
gke-cred-audit --bind 127.0.0.1 --port 8080Then:
curl http://127.0.0.1:8080/openapi.json-- OpenAPI 3.1 documentcurl http://127.0.0.1:8080/findings?severity=HIGH-- JSON findingscurl http://127.0.0.1:8080/server-info-- capability manifestMCP clients connect to
http://127.0.0.1:8080/mcp
What's intentionally NOT in scope
Cross-namespace reads (would require ClusterRole; not used).
Returning Secret
data/stringDataunder any flag.Native auth on the server (Natoma owns auth).
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
IaC attack-path auditor: finds internet-to-crown-jewel chains in Terraform/CFN/K8s.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceGo-based SBOM, vulnerability, and secret scanner with MCP support.3Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for auditing infrastructure-as-code attack paths, finding multi-hop chains from public internet to sensitive resources.2MIT
- AlicenseNot gradedqualityAmaintenanceAudits MCP server configurations for security risks including capability inventory, SSRF, prompt injection, and drift detection. Works in read-only mode and can also be used as an MCP server to let AI agents audit their own attack surface.4MIT
- AlicenseNot gradedqualityAmaintenanceScans self-hosted, multi-tenant AI-agent platforms for tenant-isolation gaps. Native Go MCP server exposing a scan tool that wraps the CLI's audit engine.Apache 2.0