ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

NV oOS Gateway

โดย nvdigitalsolutionsรุ่น 0.3.1i★ –iรันบนคลาวด์
ชื่อใน registryio.github.nvdigitalsolutions/nvoos-mcp-gateway

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Streamable HTTP MCP gateway for NV oOS fleets — one API key, namespaced tools, quotas and policy.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนคลาวด์
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: Authorization

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http nvoos-gateway https://mcp.nvoos.pro/mcp --header 'Authorization: ใส่ค่าของคุณ'

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "nvoos-gateway": {
      "url": "https://mcp.nvoos.pro/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "nvoos-gateway": {
      "type": "http",
      "url": "https://mcp.nvoos.pro/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • Authorization ความลับ จำเป็น HTTP header
    Gateway API key issued by NV Digital Solutions, bound to one or more site slugs. Send as "Authorization: Bearer ".

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub nvdigitalsolutions ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 149 ms (HTTP 401)

  • ✓ ผ่าน

    ล็อกอินแบบ OAuth

    ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 18606 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 91% ของอีก 18606 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 18606 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

NV oOS Gateway ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: Authorization

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.1) เข้า registry 4 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, VMware Storage

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

โดย formulahendryเริ่มต้น↓ 66/สัปดาห์★ 440อัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

โดย desktop-commanderกำลังโต★ 211อัปเดต 3 วันที่ผ่านมา

รันบนคลาวด์✓ desktopcommander.app

VMware Storage

VMware vSphere storage with 16 MCP tools: datastores, iSCSI, vSAN, FC multipath.

โดย vmware-skillsยังใหม่มาก↓ 322/สัปดาห์อัปเดต วันนี้

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

NV oOS MCP Gateway

==================

A public, fleet-scoped Model Context Protocol endpoint for the NV oOS (Open Operator System) WordPress platform. One API key, every bound site — tools appear namespaced as . .

The gateway is an MCP aggregating proxy speaking streamable HTTP (MCP 2026-07-28): it authenticates callers with a public API key, forwards initialize / tools/list / tools/call to the bound NV oOS sites' native /wp-json/mcp-ai/v1/mcp endpoints using Fleet Operator tokens, and keeps the fleet surface collision-free by prefixing tool names per site.

Deployment target: Cloudways Velocity (managed Node hosting) at https://mcp.nvoos.pro. See docs/operations/deployment/mcp-gateway-velocity-setup.md.

One-way mirror: this addon is the canonical source and is synced to

the standalone repo nvdigitalsolutions/nvoos-mcp-gateway (branch main)

by sync-mcp-gateway.yml, which snapshots the subtree as one commit per

sync and pushes without `--force` — the mirror main stays a linear

fast-forward line, so hosting platforms (Cloudways Velocity) auto-deploy

on every sync. Never commit to the standalone repo directly — the next

sync overwrites it.


Endpoints

RouteAuthPurpose
GET /mcppublicStreamable-HTTP discovery JSON
POST /mcpBearer keyJSON-RPC 2.0 (initialize, ping, notifications, tools/list, tools/call, resources/*, prompts/*)
GET /healthpublicMinimal status + per-site health registry
GET /health/fullBearer keyFull view (host-only URLs, bindings)
GET /admin/policyOperator tokenEffective policy + quota table (read-only)
POST /admin/policy-simOperator tokenReplay a candidate policy against recorded calls
GET /admin/catalogOperator tokenFleet catalog with per-site lifecycle states
GET /publicHuman landing page (directory reviewers)

Configuration (env only)

VariableRequiredPurpose
GATEWAY_PUBLIC_KEYSyesPublic keys → site slugs: key=slug-a,slug-b;key2=slug-c (or JSON object)
GATEWAY_PUBLIC_KEYS_PREVIOUSnoRotation overlap — previous key map (warns once on use)
PUBLIC_SITE_SLUGSnoPrivacy filter for the public /health endpoint: comma-separated slugs visible without auth (* or unset = all configured sites). /health/full always reports every site.
NVOOS_SITE_ _URLper siteUpstream MCP endpoint, full URL incl. /wp-json/mcp-ai/v1/mcp
NVOOS_SITE_ _TOKENper siteFleet Operator token (op_xxxx.SECRET); never logged or returned
AUTH_MODEnostrict (default) fails closed at boot when no keys are set
UPSTREAM_TIMEOUT_MSnoPer-site timeout for tools/list + notifications (default 20000)
UPSTREAM_TOOL_TIMEOUT_MSnotools/call budget only — long-running tools get more room without slowing tools/list (default: UPSTREAM_TIMEOUT_MS)
GATEWAY_OAUTH_ISSUERnoOAuth 2.1 authorization server issuer (e.g. Auth0 tenant). Setting it turns the gateway into an RFC 9728 protected resource — see the OAuth section below
GATEWAY_OAUTH_JWKS_URInoJWKS override (default: issuer's /.well-known/jwks.json)
GATEWAY_OAUTH_RESOURCEnoRFC 8707 resource identifier / token audience (default https://mcp.nvoos.pro)
TRUST_PROXYyes on Velocity1 — NGINX sets X-Forwarded-For
ALLOWED_ORIGINSnoComma-separated CORS origins for browser-based clients
MAX_JSON_BODYnoBody limit (default 1mb)
RATE_LIMIT_GLOBAL / _MCP / _HEALTHnoPer-group budgets (defaults 600/5min, 120/min, 60/min)
TOOL_QUOTASnoPer-tool quotas, compact form: : / : — e.g. delete_post:5/1h:2,woo_*:60/1m:*. Most-specific pattern wins. (Proposal 094)
GATEWAY_POLICYnoPolicy ruleset (JSON string) — see the policy reference below. (Proposal 094)
POLICY_FILEnoAlternative: path to a JSON policy file (Git-versioned policy, read at boot).
SHADOW_POLICYnoShadow ruleset (JSON string) — evaluated and logged, never enforced.
GEO_MAPnoJSON object mapping public key ids to ISO country codes (used when not behind a trusted proxy).
GATEWAY_ADMIN_TOKENnoOperator token enabling the /admin/* surface (inert without it).
AUDIT_SINK_URL / AUDIT_SINK_SECRETnoHMAC-signed webhook for governance events (deny, quota_exceeded, call_ok…). Must be set together.
SITE_LIFECYCLEnoPer-site catalog states: slug-a:draft,slug-b:published (default published).

Slug → env suffix mapping: site-a → NVOOS_SITE_SITE_A_* (uppercase, hyphens → underscores).

Example
GATEWAY_PUBLIC_KEYS=demo-public-key-1234567890=demo-site

NVOOS_SITE_DEMO_SITE_URL=https://demo.example.com/wp-json/mcp-ai/v1/mcp NVOOS_SITE_DEMO_SITE_TOKEN=op_xxxx.SECRET AUTH_MODE=strict TRUST_PROXY=1

Policy & quotas (Proposal 094)

Per-tool quotas and declarative policy ride on top of the group budgets. Sites remain the deep enforcement layer (per-tool RPM, token budgets, iteration caps, capability boundaries, nefarious-usage auto-shutdown) — the gateway adds the fleet layer and can only tighten, never weaken.

Quotas
TOOL_QUOTAS=delete_post:5/1h:2,woo_*:60/1m:*,*:600/5m:*

Breaches return HTTP 429 + RFC 9558 headers (RateLimit-Limit/Remaining/Reset, RateLimit-Policy) with the JSON-RPC error -32099. Buckets are scoped (key × site × tool) — one noisy key cannot exhaust another's budget.

Policy grammar
{

"rules": [ { "id": "no-night-deletes", "effect": "deny", "tool": { "match": "delete_*" }, "time": { "window": { "tz": "Europe/London", "days": [1,2,3,4,5], "start": "09:00", "end": "17:00" } } } ] }

First match wins. Effects: deny (403 + -32001), require_approval (428 + -32002 with a redacted preview). Conditions: tool.match (glob), site, key, time.window (IANA tz, ISO weekdays 1–7, midnight-crossing windows), geo.country (ISO alpha-2). Denied tools are filtered out of tools/list entirely (kept out of model context).

Inspection
  • dryRun: true on tools/call evaluates policy + quotas without

executing or consuming — the result carries would_execute, policy, and quota.

  • POST /admin/policy-sim replays a candidate policy against the last 200

recorded calls (argument keys only) and diffs it against the live policy.

  • SHADOW_POLICY evaluates in parallel and logs — never enforces.

Tool namespacing

  • tools/list merges every site bound to the key and prefixes names: site-a.create_post, site-b.woo_get_products.
  • tools/call accepts the prefixed name (always) or a bare name when the key is bound to exactly one site (passthrough mode).
  • A failing upstream degrades the list to a _meta.gateway.errors entry instead of failing the whole call.
  • v1 aggregation limitation: resources/* and prompts/* use the first bound site.

Behavior & security

  • Protocol negotiation: initialize echoes the highest protocol version both sides support (2026-07-28 → 2024-11-05), defaulting to 2024-11-05 when the client sends no version — strict clients (Zed, Claude Desktop) abort with "Unsupported protocol version" when the server hardcodes a version they do not speak.
  • Stateless — no sessions, no SSE in v1 (the July 2026 spec revision makes stateless transport first-class).
  • Fail-closed: no keys configured in strict mode → boot refuses; a key bound to no configured site → 503; unknown key → 401 with WWW-Authenticate.
  • Rate limits are per public key (one noisy key cannot exhaust another's budget); upstream tokens are header-only and never appear in responses, logs, or errors.
  • Auth: static API keys in v1; OAuth 2.1 (RFC 8414 + dynamic client registration) is the documented upgrade path.

Claude Code plugin

The addon ships a Claude Code plugin (.claude-plugin/plugin.json, commands/connect.md, skills/gateway/) that syncs to the mirror repo and doubles as the marketplace source:

/plugin marketplace add nvdigitalsolutions/nvoos-mcp-gateway

Enabling the plugin prompts for the gateway API key (stored securely as a sensitive userConfig option) and substitutes it into the MCP server's Authorization header.

OAuth 2.1 resource server (opt-in)

With GATEWAY_OAUTH_ISSUER set, the gateway acts as an RFC 9728 protected resource alongside static keys:

  • GET /.well-known/oauth-protected-resource (+ the /mcp path-insertion variant) serves the protected-resource metadata document (inert 404 when OAuth is unconfigured).
  • 401 responses carry WWW-Authenticate: Bearer resource_metadata="…", scope="…" so MCP clients can run the OAuth 2.1 authorization-code + PKCE flow against the configured authorization server.
  • JWT bearer tokens validate against the AS JWKS (cached, fail-closed): signature, iss, aud (RFC 8707 resource binding), exp/nbf, and scope.
  • Site binding is scope-based: each site: scope grants access to that bound site (the read-only site:read scope is advertised for future fine-grained enforcement). Tokens granting no configured site get 403 insufficient_scope.
  • Upstream proxying is unchanged: the gateway always exchanges for the site's own Fleet Operator token — OAuth tokens are never forwarded upstream (no confused-deputy passthrough).

Authorization server: any OAuth 2.1 AS with RFC 8414 metadata + JWKS (Auth0 is the platform convention). Dynamic client registration (RFC 7591) belongs to the AS, not the gateway.

Development

npm install

npm test # node:test suites — fake upstreams, no infrastructure npm run dev # node --watch src/index.js

Local smoke test against the docker compose dev site:

GATEWAY_PUBLIC_KEYS="dev-key-1234567890abcd=docker" \

NVOOS_SITE_DOCKER_URL="http://localhost:8000/wp-json/mcp-ai/v1/mcp" \ NVOOS_SITE_DOCKER_TOKEN=" " \ PORT=8899 npm start

→ curl http://127.0.0.1:8899/mcp

Ecosystem discovery

The public endpoint https://mcp.nvoos.pro/mcp is listed in the official MCP Registry (registry.modelcontextprotocol.io) as io.github.nvdigitalsolutions/nvoos-mcp-gateway — a streamable-HTTP remote with a required Authorization header. The registry metadata lives in server.json and is published with the mcp-publisher CLI. Community directories (mcpservers.org, mcp.directory, PulseMCP, Glama) carry entries that point back here; the GET / landing page is the directory-reviewer surface.

License

GPL-3.0-or-later — see the repository LICENSE.

ถาม PopNx