No Crd logo

No Crd

Dynamic pod spawner & proxy for ephemeral AI agent workspaces on Kubernetes without CRDs

Install No Crd

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "no-crd": {
      "command": "npx",
      "args": [
        "-y",
        "@nogoo9/no-crd"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y @nogoo9/no-crd

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 6d ago.

Overview

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

6/6 checks healthy over the last 39d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11d ago via OSV.dev · @nogoo9/no-crd (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
npm downloads273Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

@nogoo9/no-crd

nogoo9 logo

no-crd Dashboard

Agent-Driven, On-Demand Pod Orchestration in Kubernetes — Without Custom Resource Definitions.

npm version npm downloads Documentation License Coverage Status OpenSSF Scorecard Semgrep

Model Context Protocol Built with Antigravity Powered by Gemini

Bun Deno Node.js

@nogoo9/no-crd is a lightweight, cross-runtime Model Context Protocol (MCP) server that empowers AI agents and APIs to dynamically spawn, route to, and manage ephemeral containerized sandboxes on standard Kubernetes (k8s/k3s) clusters — without requiring Custom Resource Definitions (CRDs), cluster-level operators, or elevated RBAC permissions.

It provides JupyterHub-like dynamic pod lifecycle management but is completely agnostic to actual workloads and supports multi-runtime execution under Bun, Deno, and Node.js.

📚 For detailed guides, API reference, and configuration options, visit the public Documentation Website or access the built-in documentation served directly at /docs/ (e.g. http://localhost:3000/docs/) when running the server.


🗺️ Choose Your Path

To get started with @nogoo9/no-crd, select the track that matches your goals:

  • Track A: AI Agent & MCP Users $\rightarrow$ MCP Client Setup Guide
    • Best for: Connecting no-crd to Cursor, Claude Desktop, Cline, or Roo Code to let your agent manage pods.
  • Track B: Platform & Service Deployers $\rightarrow$ SSO & Routing Deployment Guide
    • Best for: Deploying a multi-tenant sandbox service in your Kubernetes cluster with Keycloak OIDC, stateless cookies, and reverse proxy routing.
  • Track C: SDK & Code Contributors $\rightarrow$ SDK & Contributor Guide
    • Best for: Programmatically controlling pods via the TypeScript SDK or contributing to the core runtime codebase.

🚀 Key Features

  • No CRDs Required: Runs directly against core Kubernetes resources (Pods, ConfigMaps, ServiceAccounts). Highly portable, secure, and compatible with restricted/managed environments (EKS, GKE, K3s).
  • Agent Sandbox Spawner: Specialized spawner tools that automate workspace provisioning with context validation, init containers, IAM roles, pre-stop hooks, and lifecycle sync.
  • ConfigMap-Based Templates: Store, version, and load reusable pod templates stored as standard Kubernetes ConfigMaps.
  • Local Filesystem Templates: Bake YAML/JSON pod templates into Docker images or mount them from host paths — with built-in defaults shipped in the package.
  • Isomorphic Multi-Runtime SDK: Imports seamlessly as a composable programmatic SDK or MCP server running under Node.js, Bun, or Deno.
  • Workspace Routing Proxy (Experimental): Built-in reverse proxy routing that dynamically pipes traffic to running container IPs with secure user token ownership verification, path-scoped session cookies (nocr_token and nocr_sess), and automatic HMAC-signed session management for short-lived token resilience.
  • Experimental JWT Authentication: Built-in OAuth token validation engine supporting HS256, RS256, ES256, JWKS endpoints, and OAuth 2.0 Token Introspection (RFC 7662).
  • Embedded Web UI App: Exposes an interactive web-based Pod Manager interface featuring a light/dark theme toggle, client-side PKCE OIDC login with proactive silent token refresh, and workspace file preview rendering (supporting HTML sandboxed iframes and custom Markdown rendering).

⚡ Quick Start

Run Standalone via NPX (No Installation)

bash
# Option 1: Start HTTP/SSE server on port 3000
npx @nogoo9/no-crd --transport http --port 3000

# Option 2: Run over standard input/output (stdio) for local IDE agents
npx @nogoo9/no-crd --transport stdio --mode cluster

Install Globally

Terminal
npm install -g @nogoo9/no-crd
nocrd9 --transport stdio --mode cluster

Run via Docker

Terminal
docker run -d -p 3000:3000 \
  -v "$HOME/.kube/config:/app/.kube/config:ro" \
  -e KUBECONFIG=/app/.kube/config \
  ghcr.io/nogoo9/no-crd:latest

⚙️ Configuration & Environment Variables

The server and command-line utility are configurable using CLI options or environment variables. Below is the quick reference table of all settings:

🔌 Server Configuration

CLI OptionEnvironment VariableDefaultAllowed ValuesDescription
-t, --transportTRANSPORThttphttp, stdio, bothServer transport mode. both fires up both transports simultaneously.
-p, --portPORT3000NumberHTTP server port for SSE transport.
-H, --hostHOST0.0.0.0StringHost interface to bind the HTTP/SSE server to.
--base-urlBASE_URL""Path stringBase URL path prefix for hosting behind a reverse proxy (e.g. /gateway/no-crd).
-STATELESSfalsetrue, falseEnable stateless request handling (no session affinity).
-l, --log-levelLOG_LEVELinfodebug, info, warning, error, fatalLogging verbosity filter.
-LOG_FILEnogoo9-mcp.logStringOutput file path for file logging.
-RATE_LIMIT_MAX100NumberMaximum requests allowed per window for rate limited routes.
-RATE_LIMIT_WINDOW60000NumberTime window in milliseconds for rate limited routes.
--proxy-timeoutPROXY_TIMEOUT120000NumberTimeout in milliseconds for the routing proxy upstream requests.
--proxy-keep-alivePROXY_KEEP_ALIVEtruetrue, falseEnable TCP keep-alive for the routing proxy upstream requests.

🔒 TLS Configuration

CLI OptionEnvironment VariableDefaultAllowed ValuesDescription
--tls-certTLS_CERT-Path stringPath to TLS certificate file to enable HTTPS.
--tls-keyTLS_KEY-Path stringPath to TLS private key file to enable HTTPS.
--tls-caTLS_CA-Path stringPath to TLS CA certificate file for HTTPS client/verification.
-NODE_TLS_REJECT_UNAUTHORIZEDtrue0 (false), 1 (true)Set to 0 to bypass TLS verification (for development/testing only).

🌐 CORS Configuration

CLI OptionEnvironment VariableDefaultAllowed ValuesDescription
--cors-originCORS_ALLOWED_ORIGIN, CORS_ORIGIN*StringCORS Allowed Origin header.
--cors-methodsCORS_ALLOWED_METHODS, CORS_METHODSGET, POST, OPTIONSStringCORS Allowed Methods header.
--cors-headersCORS_ALLOWED_HEADERS, CORS_HEADERSContent-Type, Authorization, mcp-protocol-version, mcp-session-idStringCORS Allowed Headers header.
--cors-allow-credentialsCORS_ALLOW_CREDENTIALS, CORS_CREDENTIALSfalsetrue, falseEnable CORS Access-Control-Allow-Credentials header.
--cors-expose-headersCORS_EXPOSED_HEADERS, CORS_EXPOSEDmcp-session-id, x-refreshed-tokenStringCustom CORS Access-Control-Expose-Headers header.
--cors-max-ageCORS_MAX_AGE-NumberCustom CORS Access-Control-Max-Age header in seconds.

☸️ Kubernetes Configuration

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about No Crd

no-crd is an MCP server that lets AI agents and APIs dynamically spawn, route to, and manage ephemeral containerized sandboxes on standard Kubernetes clusters without Custom Resource Definitions, cluster-level operators, or elevated RBAC permissions. It supports workload-agnostic execution across Bun, Deno, and Node.js and provides lifecycle management for temporary workspaces.

no-crd uses standard Kubernetes resources and dynamic pod lifecycle management instead of requiring Custom Resource Definitions or cluster-level operators. It can dynamically spawn, route to, and manage ephemeral containerized workspaces on Kubernetes or k3s clusters.

no-crd supports Bun, Deno, and Node.js runtimes.

Developers can use no-crd to let AI agents and APIs manage ephemeral containerized sandboxes on Kubernetes. It is designed for dynamic pod orchestration, routing, and lifecycle management, while remaining agnostic to the workloads running in those sandboxes.

The no-crd MCP client setup guide covers connecting the server to Cursor, Claude Desktop, Cline, and Roo Code. These integrations let an agent manage Kubernetes pods through the MCP server.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewNo Crd AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/no-crd?style=directory)](https://allmcps.com/mcp/no-crd)
HTML Embed
<a href="https://allmcps.com/mcp/no-crd"><img src="https://allmcps.com/api/badge/no-crd?style=directory" alt="No Crd on AllMCPs" /></a>