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