Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
One MCP endpoint for all your servers: a few meta-tools, Keychain secrets, sandbox, audit, OAuth.
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.
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
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.
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.
These 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 7, 2026
The registry name was verified against the domain soflution.com (the registry checks domain ownership)
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.
The registry does not list a required key, though some servers ask you to sign in on first use.
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 (5.11.0) reached the registry 6 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Detailing Manager
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
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.
McpHub sits between your AI editors and all your MCP servers.
Your agents see 3 tools instead of hundreds , every call goes through the same security guards ,
and your servers run once, sandboxed , shared by Cursor, Claude, Windsurf and VS Code.
Install · Connect your editor · How it works · Code mode · Security · Dashboard · Library · Linux and sync · Configuration · FAQ
-99.9% tokens spent on tool definitions 1,054,593 → 918 on a 928-tool setup 1 process for every editor servers start once, survive editor restarts 8 layers of security Keychain, pinning, sandbox, audit... 0 runtime dependencies a single signed Rust binary
| Each server wired into each editor | Through McpHub | |
|---|---|---|
| Tool definitions in every prompt | all of them (hundreds of thousands of tokens) | 3 tools, schemas loaded on demand |
| Server processes | one copy per editor | one shared copy |
| Secrets | plain text in every editor config | macOS Keychain, ${NAME} references |
| A server silently changes a tool | nobody notices | quarantined until you approve |
A malicious npm server reads ~/.ssh | it can | blocked by the macOS sandbox |
| Remote servers with OAuth | one mcp-remote process each, tokens in plain files | native HTTP, tokens in the Keychain, auto refresh |
| Who called what | unknown | audit log with redacted arguments |
| Finding a new server | search GitHub, copy a JSON snippet, paste a token | Library of the official MCP Registry: trust score, one-click add, secrets straight to the Keychain |
| Your agent needs a tool you lack | you install it by hand | the agent installs it itself from the registry, sandboxed, if it is trusted enough |
| A second machine, a Linux server | redo everything, copy tokens around | same binary, bubblewrap sandbox, encrypted sync of servers and secrets |
curl -fsSL https://raw.githubusercontent.com/Soflutionltd/McpHub/main/get.sh | bash
The script downloads the latest binary for your machine (signed universal binary on macOS, x64 or arm64 on Linux), verifies its SHA-256 checksum and installs it to ~/.local/bin/McpHub. Then:
McpHub dashboard # Library tab: add servers from the official MCP Registry (or McpHub add)
McpHub generate # index every tool once McpHub install # start the daemon at login (LaunchAgent on macOS, systemd --user on Linux)
Manual download
McpHub-macos-universal.tar.gz and its checksum.shasum -a 256 -c McpHub-macos-universal.tar.gz.sha256tar -xzf McpHub-macos-universal.tar.gz && install -m 755 McpHub ~/.local/bin/McpHubxattr -d com.apple.quarantine ~/.local/bin/McpHubLinux (amd64, arm64) and Windows (amd64) archives are attached to every release too. On Linux the sandbox uses bubblewrap and secrets live in ~/.McpHub/secrets.env (mode 600, hidden from sandboxed servers), see Linux servers and sync. Windows has no sandbox.
Build from source
git clone https://github.com/Soflutionltd/McpHub.git
cd McpHub make install # cargo build --release, install, sign
make install signs with your Developer ID certificate when one is present, so macOS keeps its permissions from one version to the next. Linux and Windows build from source (cargo build --release); the macOS sandbox and Keychain features are macOS only.
Once the daemon runs (McpHub install), McpHub keeps itself up to date. Editors connected by URL (Cursor, Claude Code, VS Code, Windsurf) need nothing: they talk to the updated daemon.
latest.json (version and SHA-256 of each file) signed with minisign; the public key is compiled into McpHub. On macOS the new binary must also carry Soflution's Developer ID signature. Anything else is refused."settings": { "autoUpdate": false } turns it off; McpHub update installs the latest release right away, McpHub update --check only reports it. Development builds and named instances never update themselves (the main instance updates the shared binary).mcphub.mcpb uses the installed McpHub when there is one, so it follows the same updates; otherwise it runs the binary it ships with.The daemon listens on http://127.0.0.1:24680. Your token is in ~/.McpHub/auth-token.
Cursor , ~/.cursor/mcp.json
{
"mcpServers": { "McpHub": { "url": "http://127.0.0.1:24680/mcp", "headers": { "Authorization": "Bearer " } } } }
Claude Code
claude mcp add --transport http mcphub http://127.0.0.1:24680/mcp \
--header "Authorization: Bearer $(cat ~/.McpHub/auth-token)"
Claude Desktop , claude_desktop_config.json
{
"mcpServers": { "McpHub": { "command": "/Users/you/.local/bin/McpHub", "args": ["stdio"] } } }
VS Code , .vscode/mcp.json
{
"servers": { "mcphub": { "type": "http", "url": "http://127.0.0.1:24680/mcp", "headers": { "Authorization": "Bearer " } } } }
Windsurf and other SSE clients
Use http://127.0.0.1:24680/sse with the same Authorization header.
One profile per client. Give each editor its own view: http://127.0.0.1:24680/mcp/cursor only shows what the cursor profile allows (see Profiles).
client/ is a small Node MCP server that sits between your editor and the daemon. It talks to the running daemon (SSE, token from ~/.McpHub/auth-token) and falls back to McpHub stdio. It exposes six tools:
mcphub_bootstrap: call once per conversation. Resolves the project from the workspace, returns its aliases and allowed servers, and recalls compact MemoryPilot context, also for folders without a project entry.mcphub_search, mcphub_call: same as the daemon, plus suggestions on a misspelled tool or server, and the input schema on argument errors.mcphub_batch: up to 20 independent calls in one round-trip.mcphub_status, mcphub_savings: server health and an honest context-size comparison.Per-project policy lives in ~/.McpHub/projects.json (or the path in MCPHUB_PROJECTS), see client/projects.example.json. For a workspace listed there, only its allowedServers are reachable, and a call aimed at another Supabase project, App Store app or Cloudflare project is refused. Without the file there is no policy; an unreadable file is an error, never silently ignored.
Each release ships the client as a single file, mcphub-client.mjs, which the daemon keeps up to date in ~/.McpHub/client/ (Node 20 or later, no npm install). Editors pick up a new version the next time they start the server:
{
"mcpServers": { "McpHub": { "command": "node", "args": ["/Users/you/.McpHub/client/mcphub-client.mjs"] } } }
From a clone instead: cd client && npm ci, then point args at /path/to/McpHub/client/index.js.
npm test runs smoke tests against the local daemon (MemoryPilot and supabase configured), with a throwaway project file.
Connecting to a client's Stripe (or Supabase, Cloudflare…) should not log you out of your own, and your own agent should never reach theirs by mistake. Two levels, from light to strict:
1. Client-owned servers (same McpHub). Add the client's server under its own name (stripe-acme, with its own OAuth token or restricted key, since tokens are stored per server name) and list it in the client project's ownedServers:
"acme": {
"workspaces": ["/Users/you/Clients/Acme"], "aliases": { "product": "Acme" }, "allowedServers": ["MemoryPilot", "context7"], "ownedServers": ["stripe-acme"] }
An owned server only answers, appears in mcphub_search and in mcphub_status when working_dir is inside that client's workspace; the project argument alone is not enough. A server owned by two projects is a start-up error. This guard lives in the Node client: an editor connected straight to the daemon still sees every server, so give it a profile with "excludeServers": ["*-acme"].
2. A separate instance (nothing shared). For clients who require it, run a second McpHub with its own folder, port, Keychain service, auth token and LaunchAgent:
export MCPHUB_INSTANCE=acme MCPHUB_PORT=24690
McpHub add # writes ~/.McpHub-acme/config.json McpHub oauth login stripe # token stored under Keychain service McpHub-acme McpHub install # Launc
Only the beginning is shown; read the rest in the repo