Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Stdio relay connecting Zed, Claude Desktop, Cursor and Codex to NV oOS WordPress MCP endpoints.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MCP_AI_BASE_URL, MCP_AI_TOKEN, MCP_AI_HTTP_TIMEOUTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"nvoos-bridge": {
"command": "npx",
"args": [
"-y",
"@nvdigitalsolutions/nvoos-mcp-bridge"
],
"env": {
"MCP_AI_BASE_URL": "your-value",
"MCP_AI_TOKEN": "your-value",
"MCP_AI_HTTP_TIMEOUT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add nvoos-bridge --env MCP_AI_BASE_URL=your-value --env MCP_AI_TOKEN=your-value --env MCP_AI_HTTP_TIMEOUT=your-value -- npx -y @nvdigitalsolutions/nvoos-mcp-bridgeFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"nvoos-bridge": {
"command": "npx",
"args": [
"-y",
"@nvdigitalsolutions/nvoos-mcp-bridge"
],
"env": {
"MCP_AI_BASE_URL": "your-value",
"MCP_AI_TOKEN": "your-value",
"MCP_AI_HTTP_TIMEOUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"nvoos-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nvdigitalsolutions/nvoos-mcp-bridge"
],
"env": {
"MCP_AI_BASE_URL": "your-value",
"MCP_AI_TOKEN": "your-value",
"MCP_AI_HTTP_TIMEOUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
MCP_AI_HTTP_TIMEOUT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account nvdigitalsolutions, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MCP_AI_BASE_URL, MCP_AI_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0-alpha.4) reached the registry 33 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Agent Guild
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Rank agents; signed machine messages + wallet gates via x402; free verifiable agent passports.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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:// /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:
| Binary | Use when |
|---|---|
nvoos-mcp | The site is reachable over HTTPS (normal case) |
nvoos-mcp-ssh | The site is SSH-only (locked-down VPS / Cloudways droplet) — owns the ssh -N -L port-forward for you |
npx -y @nvdigitalsolutions/nvoos-mcp-bridge@latest
zed: open settings → add to context_servers:
"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.
"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
sshas 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 @must work non-interactively first.
Same env vars, different shells — Claude Desktop (claude_desktop_config.json → mcpServers), Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.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"].
Some NV surfaces split write auth: the storefront MCP (https://astro.nvoos.cloud/mcp) serves reads publicly, accepts NVOOS_MCP_TOKEN for design writes, and requires a manager session cookie for contract writes (cms_*, media_upload). Give the bridge login credentials and it obtains the session for you — no cookie copying, no re-login dance:
"nvoos-astro": {
"source": "custom", "command": { "path": "npx", "args": ["-y", "@nvdigitalsolutions/nvoos-mcp-bridge@latest"], "env": { "MCP_AI_BASE_URL": "https://astro.nvoos.cloud/mcp", "MCP_AI_TOKEN": " ", "MCP_AI_LOGIN_URL": "https://astro.nvoos.cloud/api/auth/login", "MCP_AI_LOGIN_EMAIL": "manager@your-domain.com", "MCP_AI_LOGIN_PASSWORD": " " } } }
At startup the bridge POSTs { "email": "…", "password": "…" } to MCP_AI_LOGIN_URL, attaches the returned session cookies to every upstream request, and re-establishes the session once when a request answers 401/403 or the cookies near expiry. The account needs the backend manage_astro capability. Keep the password out of shared settings files (editor secret store, or a dedicated manager account).
All configuration is environment variables — never put tokens in args (they would show in process listings).
nvoos-mcp (HTTPS relay)| Variable | Required | Default | Purpose |
|---|---|---|---|
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_TIMEOUT | 120000 | Request timeout in ms | |
MCP_AI_COOKIE | — | Static Cookie header for every upstream request (manual-session escape hatch; wins over the login bootstrap) | |
MCP_AI_LOGIN_URL | — | Login endpoint that answers with Set-Cookie session headers (must be same-origin with MCP_AI_BASE_URL) | |
MCP_AI_LOGIN_EMAIL | — | Login credential — default body is { email, password } | |
MCP_AI_LOGIN_PASSWORD | — | Login credential | |
MCP_AI_LOGIN_BODY | — | Raw JSON body override for the login POST (wins over the email/password pair) | |
MCP_AI_ENV_FILE | ~/.nvoos-bridge.env | Env 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.
Keep tokens out of settings files:
# ~/.nvoos-bridge.env (chmod 600)
MCP_AI_BASE_URL=https://your-site.com/wp-json/mcp-ai/v1/mcp MCP_AI_TOKEN=cred_xxxxx.SECRET
Values already present in the process environment win over the file, so per-project overrides still work.
Authorization: Bearer …), writes the response as one stdout line.id) get no response, ever.Accept: application/json, text/event-stream) and transparently unwraps SSE-framed responses (event: message + data: ) — SDK-v2 servers such as the NV Astro storefront answer in SSE whenever the client accepts it.MCP_AI_LOGIN_URL (or MCP_AI_COOKIE) configured, the bridge logs in at startup, attaches the session cookie to every request, and re-establishes the session once on an upstream 401/403 or near cookie expiry. Without session env vars the relay stays a fully transparent transport (HTTP statuses pass through untouched).ssh's stdin open for exactly this reason).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:
npm run sync # refresh the copies
npm 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):
MCP_AI_BASE_URL=http://localhost:8000/wp-json/mcp-ai/v1/mcp \
MCP_AI_TOKEN=cred_xxxxx.SECRET \ npm run test:e2e
This package is listed in the official MCP Registry (registry.modelcontextprotocol.io) as io.github.nvdigitalsolutions/nvoos-mcp-bridge (stdio / npm). The registry name is declared via the mcpName field in package.json (ownership verification marker); the registry metadata itself lives in server.json and is published with the mcp-publisher CLI. Community directories (mcpservers.org, Glama, PulseMCP, mcp.directory, the awesome-mcp-servers list) carry entries that point back to this package and its registry record.
GPL-3.0-or-later — see LICENSE.