Switchboard
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Switchboardlist my running projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⏻ Switchboard
Mission control for your localhosts. Register every dev server you run, flip them on and off from one dark, fast dashboard — and hand the keys to Claude, which can discover, start, stop and debug them over MCP.
One board for all your projects: status, port, pid, uptime, CPU/memory
Start / stop / restart with one click — kills the whole process tree, no orphaned Vite daemons
Live log tailing (stdout + stderr) streamed over SSE
Port scanner: see everything listening on your machine, adopt unmanaged servers into the board, or kill them
Crash detection with exit codes, port-conflict guards, process re-adoption after Switchboard restarts
Claude integration two ways (HTTP or stdio MCP) plus a plain REST API for everything else
Zero build step, zero external assets, works offline. Node 18+.
Quickstart
git clone https://github.com/nnnunezr/switchboard.git
cd switchboard
npm install
npm startOpen http://localhost:4200. Register a project (name, directory, start command, port), hit Start.
usage: switchboard [--port N]
env:
PORT preferred port (default 4200, walks upward if taken)
SWITCHBOARD_TOKEN require "Authorization: Bearer <token>" on /api and /mcp
SWITCHBOARD_DATA data directory (default ~/.switchboard)Related MCP server: iStdBMAD
Connect Claude
Switchboard speaks MCP, so Claude can find and administrate your localhosts by itself — "what's running?", "start the backend and tail its logs", "something is squatting port 3000, kill it". Use whichever transport you prefer (the Connect Claude button in the dashboard shows these commands pre-filled):
Claude Code — streamable HTTP (app must be running):
claude mcp add --transport http switchboard http://127.0.0.1:4200/mcpClaude Code — stdio (proxies to the running app, auto-discovers its port):
claude mcp add switchboard -- node /path/to/switchboard/mcp-stdio.jsClaude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"switchboard": {
"command": "node",
"args": ["/path/to/switchboard/mcp-stdio.js"]
}
}
}MCP tools
Tool | What it does |
| Every registered project with live status, port, uptime, URL |
| All TCP listeners on the machine, attributed to projects where possible |
| Lifecycle control by name or id |
| Tail captured stdout/stderr |
| Manage the registry |
| Signal an unmanaged pid found via scan |
| Switchboard's own version, URLs, data dir |
REST API
Everything the UI and MCP tools do is plain HTTP on http://127.0.0.1:4200:
Method & path | Purpose |
| List projects (optionally with CPU/mem) |
| Register |
| Update fields |
| Unregister |
| Lifecycle |
| Log tail |
| Port sweep |
|
|
| SSE stream: |
| Liveness / metadata |
How it works
Projects are spawned through your login shell (
$SHELL -lc) in their own process group, so stopping a project SIGTERMs the entire tree (with SIGKILL escalation after 5s) — dev-server child processes don't survive.A port probe promotes
starting → runningwhen the project's port opens; a non-zero exit marks itcrashedwith the exit code and captured stderr.Started pids are persisted, so if Switchboard itself restarts it re-adopts still-running servers instead of losing track of them.
The registry lives in
~/.switchboard/projects.json— plain JSON, edit it by hand if you like.
Security notes
Binds to
127.0.0.1only, and rejects requests whoseHostheader isn't local (DNS-rebinding guard).Optional bearer auth: set
SWITCHBOARD_TOKEN=...and every/apiand/mcprequest must carryAuthorization: Bearer <token>. The dashboard prompts for the token and keeps it in localStorage.Switchboard executes the shell commands you register, with your user's privileges. That is its job — but only register commands you trust, and treat
add_projectfrom any connected agent accordingly.
Changelog
See CHANGELOG.md for the list of bugs found and fixes made.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nnnunezr/switchboard'
If you have feedback or need assistance with the MCP directory API, please join our Discord server