no crd for VS Code
io.github.nogoo9/no-crd
Dynamic pod spawner & proxy for ephemeral AI agent workspaces on Kubernetes without CRDs
client:VS Code
transport:stdio
runtime:npm
Install no crd in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "kubeconfig",
"description": "KUBECONFIG",
"password": true
},
{
"type": "promptString",
"id": "base-url",
"description": "BASE_URL",
"password": true
},
{
"type": "promptString",
"id": "stateless",
"description": "STATELESS",
"password": true
},
{
"type": "promptString",
"id": "tls-cert",
"description": "TLS_CERT",
"password": true
},
{
"type": "promptString",
"id": "tls-key",
"description": "TLS_KEY",
"password": true
},
{
"type": "promptString",
"id": "tls-ca",
"description": "TLS_CA",
"password": true
},
{
"type": "promptString",
"id": "node-tls-reject-unauthorized",
"description": "NODE_TLS_REJECT_UNAUTHORIZED",
"password": true
},
{
"type": "promptString",
"id": "registry-url",
"description": "REGISTRY_URL",
"password": true
},
{
"type": "promptString",
"id": "templates-dir",
"description": "TEMPLATES_DIR",
"password": true
},
{
"type": "promptString",
"id": "builtin-templates",
"description": "BUILTIN_TEMPLATES",
"password": true
},
{
"type": "promptString",
"id": "auth-enabled",
"description": "AUTH_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "jwt-verification-required",
"description": "JWT_VERIFICATION_REQUIRED",
"password": true
},
{
"type": "promptString",
"id": "jwt-secret",
"description": "JWT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "jwt-public-key",
"description": "JWT_PUBLIC_KEY",
"password": true
},
{
"type": "promptString",
"id": "jwks-uri",
"description": "JWKS_URI",
"password": true
},
{
"type": "promptString",
"id": "introspection-endpoint",
"description": "INTROSPECTION_ENDPOINT",
"password": true
},
{
"type": "promptString",
"id": "oauth-client-id",
"description": "OAUTH_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "oauth-client-secret",
"description": "OAUTH_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "jwt-audience",
"description": "JWT_AUDIENCE",
"password": true
},
{
"type": "promptString",
"id": "auth-issuer",
"description": "AUTH_ISSUER",
"password": true
},
{
"type": "promptString",
"id": "auth-sub-jsonpath",
"description": "AUTH_SUB_JSONPATH",
"password": true
},
{
"type": "promptString",
"id": "auth-admin-role",
"description": "AUTH_ADMIN_ROLE",
"password": true
},
{
"type": "promptString",
"id": "auth-admin-users",
"description": "AUTH_ADMIN_USERS",
"password": true
},
{
"type": "promptString",
"id": "proxy-session-ttl",
"description": "PROXY_SESSION_TTL",
"password": true
},
{
"type": "promptString",
"id": "proxy-session-secret",
"description": "PROXY_SESSION_SECRET",
"password": true
},
{
"type": "promptString",
"id": "ui-enabled",
"description": "UI_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "themes-dir",
"description": "THEMES_DIR",
"password": true
},
{
"type": "promptString",
"id": "themes-configmap",
"description": "THEMES_CONFIGMAP",
"password": true
},
{
"type": "promptString",
"id": "docs-dir",
"description": "DOCS_DIR",
"password": true
},
{
"type": "promptString",
"id": "oauth-discovery-url",
"description": "OAUTH_DISCOVERY_URL",
"password": true
},
{
"type": "promptString",
"id": "oauth-login-method",
"description": "OAUTH_LOGIN_METHOD",
"password": true
},
{
"type": "promptString",
"id": "ui-title",
"description": "UI_TITLE",
"password": true
},
{
"type": "promptString",
"id": "ui-subtitle",
"description": "UI_SUBTITLE",
"password": true
}
],
"servers": {
"no-crd": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nogoo9/no-crd"
],
"env": {
"KUBECONFIG": "${input:kubeconfig}",
"BASE_URL": "${input:base-url}",
"STATELESS": "${input:stateless}",
"TLS_CERT": "${input:tls-cert}",
"TLS_KEY": "${input:tls-key}",
"TLS_CA": "${input:tls-ca}",
"NODE_TLS_REJECT_UNAUTHORIZED": "${input:node-tls-reject-unauthorized}",
"REGISTRY_URL": "${input:registry-url}",
"TEMPLATES_DIR": "${input:templates-dir}",
"BUILTIN_TEMPLATES": "${input:builtin-templates}",
"AUTH_ENABLED": "${input:auth-enabled}",
"JWT_VERIFICATION_REQUIRED": "${input:jwt-verification-required}",
"JWT_SECRET": "${input:jwt-secret}",
"JWT_PUBLIC_KEY": "${input:jwt-public-key}",
"JWKS_URI": "${input:jwks-uri}",
"INTROSPECTION_ENDPOINT": "${input:introspection-endpoint}",
"OAUTH_CLIENT_ID": "${input:oauth-client-id}",
"OAUTH_CLIENT_SECRET": "${input:oauth-client-secret}",
"JWT_AUDIENCE": "${input:jwt-audience}",
"AUTH_ISSUER": "${input:auth-issuer}",
"AUTH_SUB_JSONPATH": "${input:auth-sub-jsonpath}",
"AUTH_ADMIN_ROLE": "${input:auth-admin-role}",
"AUTH_ADMIN_USERS": "${input:auth-admin-users}",
"PROXY_SESSION_TTL": "${input:proxy-session-ttl}",
"PROXY_SESSION_SECRET": "${input:proxy-session-secret}",
"UI_ENABLED": "${input:ui-enabled}",
"THEMES_DIR": "${input:themes-dir}",
"THEMES_CONFIGMAP": "${input:themes-configmap}",
"DOCS_DIR": "${input:docs-dir}",
"OAUTH_DISCOVERY_URL": "${input:oauth-discovery-url}",
"OAUTH_LOGIN_METHOD": "${input:oauth-login-method}",
"UI_TITLE": "${input:ui-title}",
"UI_SUBTITLE": "${input:ui-subtitle}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs