GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Dynamic pod spawner & proxy for ephemeral AI agent workspaces on Kubernetes without CRDs
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
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ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"no-crd": {
"command": "npx",
"args": [
"-y",
"@nogoo9/no-crd"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add no-crd --env KUBECONFIG='ใส่ค่าของคุณ' --env BASE_URL='ใส่ค่าของคุณ' --env STATELESS='ใส่ค่าของคุณ' --env TLS_CERT='ใส่ค่าของคุณ' --env TLS_KEY='ใส่ค่าของคุณ' --env TLS_CA='ใส่ค่าของคุณ' --env NODE_TLS_REJECT_UNAUTHORIZED='ใส่ค่าของคุณ' --env REGISTRY_URL='ใส่ค่าของคุณ' --env TEMPLATES_DIR='ใส่ค่าของคุณ' --env BUILTIN_TEMPLATES='ใส่ค่าของคุณ' --env AUTH_ENABLED='ใส่ค่าของคุณ' --env JWT_VERIFICATION_REQUIRED='ใส่ค่าของคุณ' --env JWT_SECRET='ใส่ค่าของคุณ' --env JWT_PUBLIC_KEY='ใส่ค่าของคุณ' --env JWKS_URI='ใส่ค่าของคุณ' --env INTROSPECTION_ENDPOINT='ใส่ค่าของคุณ' --env OAUTH_CLIENT_ID='ใส่ค่าของคุณ' --env OAUTH_CLIENT_SECRET='ใส่ค่าของคุณ' --env JWT_AUDIENCE='ใส่ค่าของคุณ' --env AUTH_ISSUER='ใส่ค่าของคุณ' --env AUTH_SUB_JSONPATH='ใส่ค่าของคุณ' --env AUTH_ADMIN_ROLE='ใส่ค่าของคุณ' --env AUTH_ADMIN_USERS='ใส่ค่าของคุณ' --env PROXY_SESSION_TTL='ใส่ค่าของคุณ' --env PROXY_SESSION_SECRET='ใส่ค่าของคุณ' --env UI_ENABLED='ใส่ค่าของคุณ' --env THEMES_DIR='ใส่ค่าของคุณ' --env THEMES_CONFIGMAP='ใส่ค่าของคุณ' --env DOCS_DIR='ใส่ค่าของคุณ' --env OAUTH_DISCOVERY_URL='ใส่ค่าของคุณ' --env OAUTH_LOGIN_METHOD='ใส่ค่าของคุณ' --env UI_TITLE='ใส่ค่าของคุณ' --env UI_SUBTITLE='ใส่ค่าของคุณ' -- npx -y @nogoo9/no-crdเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"no-crd": {
"command": "npx",
"args": [
"-y",
"@nogoo9/no-crd"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"no-crd": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nogoo9/no-crd"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
KUBECONFIG envBASE_URL envSTATELESS envTLS_CERT envTLS_CA envNODE_TLS_REJECT_UNAUTHORIZED envREGISTRY_URL envTEMPLATES_DIR envBUILTIN_TEMPLATES envAUTH_ENABLED envJWT_VERIFICATION_REQUIRED envJWKS_URI envINTROSPECTION_ENDPOINT envOAUTH_CLIENT_ID envJWT_AUDIENCE envAUTH_ISSUER envAUTH_SUB_JSONPATH envAUTH_ADMIN_ROLE envAUTH_ADMIN_USERS envPROXY_SESSION_TTL envUI_ENABLED envTHEMES_DIR envTHEMES_CONFIGMAP envDOCS_DIR envOAUTH_DISCOVERY_URL envOAUTH_LOGIN_METHOD envUI_TITLE envUI_SUBTITLE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub nogoo9 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: TLS_KEY, JWT_SECRET, JWT_PUBLIC_KEY, OAUTH_CLIENT_SECRET, PROXY_SESSION_SECRET
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.18.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
To get started with @nogoo9/no-crd, select the track that matches your goals:
no-crd to Cursor, Claude Desktop, Cline, or Roo Code to let your agent manage pods.nocr_token and nocr_sess), and automatic HMAC-signed session management for short-lived token resilience.# Option 1: Start HTTP/SSE server on port 3000
npx @nogoo9/no-crd --transport http --port 3000
npx @nogoo9/no-crd --transport stdio --mode cluster
npm install -g @nogoo9/no-crd
nocrd9 --transport stdio --mode cluster
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
The server and command-line utility are configurable using CLI options or environment variables. Below is the quick reference table of all settings:
| CLI Option | Environment Variable | Default | Allowed Values | Description |
|---|---|---|---|---|
-t, --transport | TRANSPORT | http | http, stdio, both | Server transport mode. both fires up both transports simultaneously. |
-p, --port | PORT | 3000 | Number | HTTP server port for SSE transport. |
-H, --host | HOST | 0.0.0.0 | String | Host interface to bind the HTTP/SSE server to. |
--base-url | BASE_URL | "" | Path string | Base URL path prefix for hosting behind a reverse proxy (e.g. /gateway/no-crd). |
| - | STATELESS | false | true, false | Enable stateless request handling (no session affinity). |
-l, --log-level | LOG_LEVEL | info | debug, info, warning, error, fatal | Logging verbosity filter. |
| - | LOG_FILE | nogoo9-mcp.log | String | Output file path for file logging. |
| - | RATE_LIMIT_MAX | 100 | Number | Maximum requests allowed per window for rate limited routes. |
| - | RATE_LIMIT_WINDOW | 60000 | Number | Time window in milliseconds for rate limited routes. |
--proxy-timeout | PROXY_TIMEOUT | 120000 | Number | Timeout in milliseconds for the routing proxy upstream requests. |
--proxy-keep-alive | PROXY_KEEP_ALIVE | true | true, false | Enable TCP keep-alive for the routing proxy upstream requests. |
| CLI Option | Environment Variable | Default | Allowed Values | Description |
|---|---|---|---|---|
--tls-cert | TLS_CERT | - | Path string | Path to TLS certificate file to enable HTTPS. |
--tls-key | TLS_KEY | - | Path string | Path to TLS private key file to enable HTTPS. |
--tls-ca | TLS_CA | - | Path string | Path to TLS CA certificate file for HTTPS client/verification. |
| - | NODE_TLS_REJECT_UNAUTHORIZED | true | 0 (false), 1 (true) | Set to 0 to bypass TLS verification (for development/testing only). |
| CLI Option | Environment Variable | Default | Allowed Values | Description |
|---|---|---|---|---|
--cors-origin | CORS_ALLOWED_ORIGIN, CORS_ORIGIN | * | String | CORS Allowed Origin header. |
--cors-methods | CORS_ALLOWED_METHODS, CORS_METHODS | GET, POST, OPTIONS | String | CORS Allowed Methods header. |
--cors-headers | CORS_ALLOWED_HEADERS, CORS_HEADERS | Content-Type, Authorization, mcp-protocol-version, mcp-session-id | String | CORS Allowed Headers header. |
--cors-allow-credentials | CORS_ALLOW_CREDENTIALS, CORS_CREDENTIALS | false | true, false | Enable CORS Access-Control-Allow-Credentials header. |
--cors-expose-headers | CORS_EXPOSED_HEADERS, CORS_EXPOSED | mcp-session-id, x-refreshed-token | String | Custom CORS Access-Control-Expose-Headers header. |
--cors-max-age | CORS_MAX_AGE | - | Number | Custom CORS Access-Control-Max-Age header in seconds. |
| CLI Option | Environment Variable | Default | Allowed Values | Description |
|---|---|---|---|---|
-m, --mode | MODE | cluster | cluster, namespaced | Kubernetes access scope. namespaced locks operations to a single namespace. |
-n, --namespace | NAMESPACE, DEFAULT_NAMESPACE | nogoo9 | String | Default Kubernetes namespace for operations. |
--disable-permission-checks | DISABLE_PERMISSION_CHECKS | false | true, false | Disable Kubernetes RBAC permission checks and assume all tools are enabled. |
--managed-only | MANAGED_ONLY | true | true, false | When 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-port | DEFAULT_WORKSPACE_PORT | - | Number | Default target port inside the workspace pods to proxy traffic to. |
| - | REGISTRY_URL | - | URL string | Target container registry URL to query for images (e.g. http://localhost:5001). |
| - | TEMPLATES_DIR | - | Path string | Path to local directory containing pod template files (YAML/JSON). See ADR-001. |
| - | BUILTIN_TEMPLATES | true | true, false | Set to false to disable built-in templates shipped with the package. |
| CLI Option | Environment Variable | Default | Allowed Values | Description |
|---|---|---|---|---|
--auth-enabled | AUTH_ENABLED | false | true, false | Enables JWT token authentication on MCP tools and route proxy. |
| - | JWT_VERIFICATION_REQUIRED | true | true, false | Enable/disable JWT signature verification (signature checks). |
| - | JWT_SECRET | - | String | Symmetric HMAC-SHA256 secret for token verification. |
| - | JWT_PUBLIC_KEY | - | String | PEM encoded RSA/ECDSA public key for asymmetric token verification. |
| - | JWKS_URI | - | URL string | Remote JWKS endpoint URL to dynamically retrieve verification keys. |
| - | INTROSPECTION_ENDPOINT, JWT_INTROSPECTION_ENDPOINT | - | URL string | Endpoint for token introspection/validation. |
| - | OAUTH_CLIENT_ID | - | String | OAuth client ID for auth configuration. |
| - | OAUTH_CLIENT_SECRET | - | String | OAuth client secret for auth configuration. |
| - | JWT_AUDIENCE | - | String | Expected token audience. Falls back to OAUTH_CLIENT_ID if set. |
| - | AUTH_ISSUER, JWT_ISSUER | "" | URL string | Identifier URL
ตัดมาแค่ช่วงต้น อ่านต่อใน repo