Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

No Crd

by nogoo9version 0.18.0i★ –iRuns on your computer
Registry nameio.github.nogoo9/no-crd

Install

Overview

Description from the maker (original English)

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

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Developer tools
  • You need to fill in: TLS_KEY, JWT_SECRET, JWT_PUBLIC_KEY, OAUTH_CLIENT_SECRET, PROXY_SESSION_SECRET

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: KUBECONFIG, BASE_URL, STATELESS, TLS_CERT, TLS_KEY, TLS_CA, NODE_TLS_REJECT_UNAUTHORIZED, REGISTRY_URL, TEMPLATES_DIR, BUILTIN_TEMPLATES, AUTH_ENABLED, JWT_VERIFICATION_REQUIRED, JWT_SECRET, JWT_PUBLIC_KEY, JWKS_URI, INTROSPECTION_ENDPOINT, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, JWT_AUDIENCE, AUTH_ISSUER, AUTH_SUB_JSONPATH, AUTH_ADMIN_ROLE, AUTH_ADMIN_USERS, PROXY_SESSION_TTL, PROXY_SESSION_SECRET, UI_ENABLED, THEMES_DIR, THEMES_CONFIGMAP, DOCS_DIR, OAUTH_DISCOVERY_URL, OAUTH_LOGIN_METHOD, UI_TITLE, UI_SUBTITLE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "no-crd": {
      "command": "npx",
      "args": [
        "-y",
        "@nogoo9/no-crd"
      ],
      "env": {
        "KUBECONFIG": "your-value",
        "BASE_URL": "your-value",
        "STATELESS": "your-value",
        "TLS_CERT": "your-value",
        "TLS_KEY": "your-value",
        "TLS_CA": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "REGISTRY_URL": "your-value",
        "TEMPLATES_DIR": "your-value",
        "BUILTIN_TEMPLATES": "your-value",
        "AUTH_ENABLED": "your-value",
        "JWT_VERIFICATION_REQUIRED": "your-value",
        "JWT_SECRET": "your-value",
        "JWT_PUBLIC_KEY": "your-value",
        "JWKS_URI": "your-value",
        "INTROSPECTION_ENDPOINT": "your-value",
        "OAUTH_CLIENT_ID": "your-value",
        "OAUTH_CLIENT_SECRET": "your-value",
        "JWT_AUDIENCE": "your-value",
        "AUTH_ISSUER": "your-value",
        "AUTH_SUB_JSONPATH": "your-value",
        "AUTH_ADMIN_ROLE": "your-value",
        "AUTH_ADMIN_USERS": "your-value",
        "PROXY_SESSION_TTL": "your-value",
        "PROXY_SESSION_SECRET": "your-value",
        "UI_ENABLED": "your-value",
        "THEMES_DIR": "your-value",
        "THEMES_CONFIGMAP": "your-value",
        "DOCS_DIR": "your-value",
        "OAUTH_DISCOVERY_URL": "your-value",
        "OAUTH_LOGIN_METHOD": "your-value",
        "UI_TITLE": "your-value",
        "UI_SUBTITLE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add no-crd --env KUBECONFIG=your-value --env BASE_URL=your-value --env STATELESS=your-value --env TLS_CERT=your-value --env TLS_KEY=your-value --env TLS_CA=your-value --env NODE_TLS_REJECT_UNAUTHORIZED=your-value --env REGISTRY_URL=your-value --env TEMPLATES_DIR=your-value --env BUILTIN_TEMPLATES=your-value --env AUTH_ENABLED=your-value --env JWT_VERIFICATION_REQUIRED=your-value --env JWT_SECRET=your-value --env JWT_PUBLIC_KEY=your-value --env JWKS_URI=your-value --env INTROSPECTION_ENDPOINT=your-value --env OAUTH_CLIENT_ID=your-value --env OAUTH_CLIENT_SECRET=your-value --env JWT_AUDIENCE=your-value --env AUTH_ISSUER=your-value --env AUTH_SUB_JSONPATH=your-value --env AUTH_ADMIN_ROLE=your-value --env AUTH_ADMIN_USERS=your-value --env PROXY_SESSION_TTL=your-value --env PROXY_SESSION_SECRET=your-value --env UI_ENABLED=your-value --env THEMES_DIR=your-value --env THEMES_CONFIGMAP=your-value --env DOCS_DIR=your-value --env OAUTH_DISCOVERY_URL=your-value --env OAUTH_LOGIN_METHOD=your-value --env UI_TITLE=your-value --env UI_SUBTITLE=your-value -- npx -y @nogoo9/no-crd

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "no-crd": {
      "command": "npx",
      "args": [
        "-y",
        "@nogoo9/no-crd"
      ],
      "env": {
        "KUBECONFIG": "your-value",
        "BASE_URL": "your-value",
        "STATELESS": "your-value",
        "TLS_CERT": "your-value",
        "TLS_KEY": "your-value",
        "TLS_CA": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "REGISTRY_URL": "your-value",
        "TEMPLATES_DIR": "your-value",
        "BUILTIN_TEMPLATES": "your-value",
        "AUTH_ENABLED": "your-value",
        "JWT_VERIFICATION_REQUIRED": "your-value",
        "JWT_SECRET": "your-value",
        "JWT_PUBLIC_KEY": "your-value",
        "JWKS_URI": "your-value",
        "INTROSPECTION_ENDPOINT": "your-value",
        "OAUTH_CLIENT_ID": "your-value",
        "OAUTH_CLIENT_SECRET": "your-value",
        "JWT_AUDIENCE": "your-value",
        "AUTH_ISSUER": "your-value",
        "AUTH_SUB_JSONPATH": "your-value",
        "AUTH_ADMIN_ROLE": "your-value",
        "AUTH_ADMIN_USERS": "your-value",
        "PROXY_SESSION_TTL": "your-value",
        "PROXY_SESSION_SECRET": "your-value",
        "UI_ENABLED": "your-value",
        "THEMES_DIR": "your-value",
        "THEMES_CONFIGMAP": "your-value",
        "DOCS_DIR": "your-value",
        "OAUTH_DISCOVERY_URL": "your-value",
        "OAUTH_LOGIN_METHOD": "your-value",
        "UI_TITLE": "your-value",
        "UI_SUBTITLE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "no-crd": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@nogoo9/no-crd"
      ],
      "env": {
        "KUBECONFIG": "your-value",
        "BASE_URL": "your-value",
        "STATELESS": "your-value",
        "TLS_CERT": "your-value",
        "TLS_KEY": "your-value",
        "TLS_CA": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "REGISTRY_URL": "your-value",
        "TEMPLATES_DIR": "your-value",
        "BUILTIN_TEMPLATES": "your-value",
        "AUTH_ENABLED": "your-value",
        "JWT_VERIFICATION_REQUIRED": "your-value",
        "JWT_SECRET": "your-value",
        "JWT_PUBLIC_KEY": "your-value",
        "JWKS_URI": "your-value",
        "INTROSPECTION_ENDPOINT": "your-value",
        "OAUTH_CLIENT_ID": "your-value",
        "OAUTH_CLIENT_SECRET": "your-value",
        "JWT_AUDIENCE": "your-value",
        "AUTH_ISSUER": "your-value",
        "AUTH_SUB_JSONPATH": "your-value",
        "AUTH_ADMIN_ROLE": "your-value",
        "AUTH_ADMIN_USERS": "your-value",
        "PROXY_SESSION_TTL": "your-value",
        "PROXY_SESSION_SECRET": "your-value",
        "UI_ENABLED": "your-value",
        "THEMES_DIR": "your-value",
        "THEMES_CONFIGMAP": "your-value",
        "DOCS_DIR": "your-value",
        "OAUTH_DISCOVERY_URL": "your-value",
        "OAUTH_LOGIN_METHOD": "your-value",
        "UI_TITLE": "your-value",
        "UI_SUBTITLE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • KUBECONFIG env
    Path to the Kubernetes API credentials configuration file
  • BASE_URL env
    Hosting URL subpath prefix for gateways and reverse proxies
  • STATELESS env
    Disable in-memory session tracking for stateless execution
  • TLS_CERT env
    Local file path containing TLS public certificate (HTTPS)
  • TLS_KEY secret env
    Local file path containing TLS private key (HTTPS)
  • TLS_CA env
    Local file path containing trusted client Certificate Authority
  • NODE_TLS_REJECT_UNAUTHORIZED env
    Set to '0' to allow connection to unverified TLS endpoints
  • REGISTRY_URL env
    Default container registry for workspace image resolution
  • TEMPLATES_DIR env
    Local filesystem directory containing custom YAML/JSON templates
  • BUILTIN_TEMPLATES env
    Enable loading of standard pre-configured templates (default: true)
  • AUTH_ENABLED env
    Enforce JWT verification and user tenant isolation (default: false)
  • JWT_VERIFICATION_REQUIRED env
    Set to 'false' to skip OIDC cryptographic signature checks
  • JWT_SECRET secret env
    HMAC-SHA symmetric secret key to sign/verify JWT tokens
  • JWT_PUBLIC_KEY secret env
    PEM public key to verify asymmetric OIDC signatures
  • JWKS_URI env
    Discovery URI to fetch keys from OIDC provider dynamically
  • INTROSPECTION_ENDPOINT env
    RFC 7662 compliant token introspection validation endpoint
  • OAUTH_CLIENT_ID env
    Client identifier for OAuth2 authentication flows
  • OAUTH_CLIENT_SECRET secret env
    Client secret credentials used for token introspection
  • JWT_AUDIENCE env
    Target audience check value for incoming OIDC tokens
  • AUTH_ISSUER env
    Expected token issuer authority check value (e.g. Keycloak)
  • AUTH_SUB_JSONPATH env
    JSONPath pattern to extract user identity subject from token
  • AUTH_ADMIN_ROLE env
    Bypass role name that grants admin access (default: nogoo9-admin)
  • AUTH_ADMIN_USERS env
    Comma-separated list of user subject IDs (sub) granted admin privileges without OIDC scope/role claims
  • PROXY_SESSION_TTL env
    Active lifetime in seconds for signed proxy session cookies
  • PROXY_SESSION_SECRET secret env
    Secret key for session cookie signing
  • UI_ENABLED env
    Serve the built-in HTML dashboard (default: true)
  • THEMES_DIR env
    Filesystem directory to scan for custom CSS themes
  • THEMES_CONFIGMAP env
    ConfigMap name storing dynamic CSS theme overrides
  • DOCS_DIR env
    Directory containing static documentation web files to serve
  • OAUTH_DISCOVERY_URL env
    Standard OIDC .well-known configuration discovery endpoint
  • OAUTH_LOGIN_METHOD env
    UI SSO flow login method: 'redirect' or silent 'iframe'
  • UI_TITLE env
    Custom dashboard header title for white-label branding
  • UI_SUBTITLE env
    Custom dashboard subtitle text below the header title

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account nogoo9, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Developer toolsi

  • More stars than 0% of the other 1396 servers in this category
  • Published to the registry more recently than 41% of the other 1396 servers in this category
  • Basic checks equal to or better than 100% of the other 1396 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is No Crd safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: TLS_KEY, JWT_SECRET, JWT_PUBLIC_KEY, OAUTH_CLIENT_SECRET, PROXY_SESSION_SECRET

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.18.0) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: GitHub, Desktop Commander, Cloudflare MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

GitHub

by github

GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.

Computer or cloud★ 34,245MITUpdated 4 days ago
Install

Desktop Commander

by wonderwhy-er

MCP server for terminal commands, file operations, and process management

Runs on your computer★ 10,225MITUpdated 16 days ago
Install

Cloudflare MCP

by cloudflare

Cloudflare MCP servers

Runs in the cloud★ 4,446Apache-2.0Updated 14 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

@nogoo9/no-crd

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

@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](https://nogoo9.github.io/no-crd/) 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)
# 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
npm install -g @nogoo9/no-crd

nocrd9 --transport stdio --mode cluster

Run via Docker
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
CLI OptionEnvironment VariableDefaultAllowed ValuesDescription
-m, --modeMODEclustercluster, namespacedKubernetes access scope. namespaced locks operations to a single namespace.
-n, --namespaceNAMESPACE, DEFAULT_NAMESPACEnogoo9StringDefault Kubernetes namespace for operations.
--disable-permission-checksDISABLE_PERMISSION_CHECKSfalsetrue, falseDisable Kubernetes RBAC permission checks and assume all tools are enabled.
--managed-onlyMANAGED_ONLYtruetrue, falseWhen true, pod tools only operate on pods managed by this server (nogoo9/managed-by label). No one bypasses this, not even admins. See ADR-008.
--default-workspace-portDEFAULT_WORKSPACE_PORT-NumberDefault target port inside the workspace pods to proxy traffic to.
-REGISTRY_URL-URL stringTarget container registry URL to query for images (e.g. http://localhost:5001).
-TEMPLATES_DIR-Path stringPath to local directory containing pod template files (YAML/JSON). See ADR-001.
-BUILTIN_TEMPLATEStruetrue, falseSet to false to disable built-in templates shipped with the package.
🔑 Authentication Configuration
CLI OptionEnvironment VariableDefaultAllowed ValuesDescription
--auth-enabledAUTH_ENABLEDfalsetrue, falseEnables JWT token authentication on MCP tools and route proxy.
-JWT_VERIFICATION_REQUIREDtruetrue, falseEnable/disable JWT signature verification (signature checks).
-JWT_SECRET-StringSymmetric HMAC-SHA256 secret for token verification.
-JWT_PUBLIC_KEY-StringPEM encoded RSA/ECDSA public key for asymmetric token verification.
-JWKS_URI-URL stringRemote JWKS endpoint URL to dynamically retrieve verification keys.
-INTROSPECTION_ENDPOINT, JWT_INTROSPECTION_ENDPOINT-URL stringEndpoint for token introspection/validation.
-OAUTH_CLIENT_ID-StringOAuth client ID for auth configuration.
-OAUTH_CLIENT_SECRET-StringOAuth client secret for auth configuration.
-JWT_AUDIENCE-StringExpected token audience. Falls back to OAUTH_CLIENT_ID if set.

| - | AUTH_ISSUER, JWT_ISSUER | "" | URL string | Identifier URL

Only the beginning is shown; read the rest in the repo

Ask PopNx