NV oOS MCP Bridge

io.github.nvdigitalsolutionsv0.1.0-alpha.4更新於 Oct 8, 2026

Stdio relay connecting Zed, Claude Desktop, Cursor and Codex to NV oOS WordPress MCP endpoints.

概覽

AI 產生的概覽

一個本機 stdio 中繼,將桌面 AI 用戶端透過 HTTPS 或 SSH 通道連線到 NV oOS WordPress 網站的 MCP 端點。

功能
此套件將以 stdio 為基礎的 MCP 用戶端橋接到遠端 NV oOS(Open Operator System)WordPress 的 JSON-RPC 2.0 MCP 端點。它從 stdin 每行讀取一個 JSON-RPC 物件,使用 Bearer 權杖將其 POST 到設定的端點,並將回應寫回 stdout。第二個二進位檔 nvoos-mcp-ssh 會為僅能透過 SSH 存取的網站管理 ssh -N -L 連接埠轉送,並在中繼結束時拆除通道。
適用情境
當 Zed、Claude Desktop、Cursor、Codex 或 VS Code 等桌面 MCP 用戶端需要與 NV oOS WordPress 網站的 MCP 端點通訊時使用,尤其適用於可透過 HTTPS 存取或僅限 SSH 存取的網站。
執行需求
需要 Node.js 與 npx 在本機執行此 npm 套件。需要 MCP_AI_BASE_URL(完整的 MCP 端點 URL)以及網站 Fleet Operator 管理介面中產生的 MCP_AI_TOKEN 權杖。SSH 變體還需要 MCP_AI_SSH_USER 與 MCP_AI_SSH_HOST,以及可用的非互動式金鑰 SSH。選用變數涵蓋逾時、Host 標頭與 env 檔案。
安裝前請注意
MCP_AI_TOKEN 是機密憑證或操作員權杖;請勿將其放入設定檔或處理程序參數,應改用 env 檔案。中繼會向設定的 WordPress 網站傳送請求,因此該權杖擁有其被授予的權限範圍。SSH 變體會開啟到遠端主機的連接埠轉送,並依賴僅金鑰的 SSH 存取。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 NV oOS MCP Bridge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@nvdigitalsolutions/nvoos-mcp-bridge

Zero-dependency MCP stdio ↔ HTTP relay for NV oOS (Open Operator System) WordPress sites.

Every NV oOS site exposes a JSON-RPC 2.0 MCP endpoint at https://<site>/wp-json/mcp-ai/v1/mcp. Most editors and agents (Zed, Claude Desktop, Cursor, Codex) spawn MCP servers over stdio — this package bridges the two transports. Two binaries ship:

BinaryUse when
nvoos-mcpThe site is reachable over HTTPS (normal case)
nvoos-mcp-sshThe site is SSH-only (locked-down VPS / Cloudways droplet) — owns the ssh -N -L port-forward for you
bash
npx -y @nvdigitalsolutions/nvoos-mcp-bridge@latest

Quick start (Zed)

zed: open settings → add to context_servers:

jsonc
"nv-oos": {  "source": "custom",  "command": {    "path": "npx",    "args": ["-y", "@nvdigitalsolutions/nvoos-mcp-bridge@latest"],    "env": {      "MCP_AI_BASE_URL": "https://your-site.com/wp-json/mcp-ai/v1/mcp",      "MCP_AI_TOKEN":    "cred_xxxxx.SECRET"    }  }}

Then reload the Agent Panel (agent: restart language servers → or reopen the panel). Use the Fleet Operator admin screen (Settings → External Operators) to mint a scoped operator token and get a ready-pasted block.

SSH-only sites

jsonc
"nv-oos-ssh": {  "source": "custom",  "command": {    "path": "npx",    "args": ["-y", "@nvdigitalsolutions/nvoos-mcp-bridge@latest", "ssh"],    "env": {      "MCP_AI_SSH_USER": "your-ssh-user",      "MCP_AI_SSH_HOST": "203.0.113.10",      "MCP_AI_SSH_PORT": "22",      "MCP_AI_TOKEN":    "op_xxxxx.SECRET"    }  }}

Pass ssh as the first argument to select the SSH binary via npx (npx exposes only the primary bin as the bare package name). SSH auth is key-only: ssh <user>@<host> must work non-interactively first.

Other clients

Same env vars, different shells — Claude Desktop (claude_desktop_config.json → mcpServers), Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.json):

json
{  "mcpServers": {    "nv-oos": {      "command": "npx",      "args": ["-y", "@nvdigitalsolutions/nvoos-mcp-bridge@latest"],      "env": {        "MCP_AI_BASE_URL": "https://your-site.com/wp-json/mcp-ai/v1/mcp",        "MCP_AI_TOKEN": "cred_xxxxx.SECRET"      }    }  }}

On Windows hosts, some clients need the cmd wrapper: "command": "cmd", "args": ["/c", "npx", "-y", "@nvdigitalsolutions/nvoos-mcp-bridge@latest"].


Configuration

All configuration is environment variables — never put tokens in args (they would show in process listings).

nvoos-mcp (HTTPS relay)

VariableRequiredDefaultPurpose
MCP_AI_BASE_URL✅—Full URL of the MCP endpoint, e.g. https://example.com/wp-json/mcp-ai/v1/mcp
MCP_AI_TOKEN⚠️—Bearer credential (cred_xxxxx.SECRET or operator op_xxxxx.SECRET); unauthenticated if unset
MCP_AI_HOST_HEADER—Override the HTTP Host header (sites that canonical-redirect on Host behind proxies/tunnels)
MCP_AI_HTTP_TIMEOUT120000Request timeout in ms
MCP_AI_ENV_FILE~/.nvoos-bridge.envEnv file for secrets (see below)

nvoos-mcp-ssh (SSH variant)

Adds MCP_AI_SSH_USER, MCP_AI_SSH_HOST (both required), MCP_AI_SSH_PORT (default 22), MCP_AI_SSH_REMOTE_HOST (default localhost), MCP_AI_SSH_REMOTE_PORT (default 80), MCP_AI_LOCAL_PORT (default: free port), MCP_AI_SSH_CMD (default ssh), MCP_AI_SSH_EXTRA_ARGS, MCP_AI_SSH_BATCH_MODE, MCP_AI_SSH_READY_MS (default 15000). Same token, Host-header, timeout, and env-file variables as the HTTPS relay.

Secret file

Keep tokens out of settings files:

bash
# ~/.nvoos-bridge.env  (chmod 600)MCP_AI_BASE_URL=https://your-site.com/wp-json/mcp-ai/v1/mcpMCP_AI_TOKEN=cred_xxxxx.SECRET

Values already present in the process environment win over the file, so per-project overrides still work.


Behavior contract

  • Reads one JSON-RPC 2.0 object per stdin line, POSTs it to the endpoint (Authorization: Bearer …), writes the response as one stdout line.
  • Notifications (no id) get no response, ever.
  • All diagnostics go to stderr — stdout carries MCP messages only.
  • On stdin EOF, in-flight requests drain before exit.
  • The SSH tunnel is torn down when the relay exits — including on hard kill (the bridge holds ssh's stdin open for exactly this reason).

Development

The package files under bin/ are byte-identical copies of the repo's bin/mcp-bridge.js, bin/mcp-bridge-ssh.js, and bin/utils/env-file.js — the repo bin/ is canonical. Edit there, then:

bash
npm run sync               # refresh the copiesnpm run sync -- --check    # drift gate (run in CI)npm test                   # node:test suite (in-process fake endpoint/ssh)npm run pack:dry-run       # inspect the tarball before publishing

Optional Docker E2E against a live NV oOS site (skips when env is unset):

bash
MCP_AI_BASE_URL=http://localhost:8000/wp-json/mcp-ai/v1/mcp \MCP_AI_TOKEN=cred_xxxxx.SECRET \npm run test:e2e

License

GPL-3.0-or-later — see LICENSE.

來源:packages/nvoos-mcp-bridge/README.md,提交 3303988

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0-alpha.4最新Oct 8, 2026