localhost-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP server that inspects, manages, and kills local dev servers. Stop guessing what's on :3000.
Pairs with terminal-history-mcp — together they give your AI agent full memory of your dev environment: what you ran, what's running.
Why
Every dev hits these daily:
- Error: listen EADDRINUSE :::3000 — what's holding the port?
- 5 forgotten node / vite / next PIDs from last week eating RAM
- Switching projects → no idea which dev servers still running
- lsof -i :3000, kill -9 , repeat
localhost-mcp makes it one tool call.
Install
Wire into Claude Code:
Or any MCP-compatible client. The command runs as a stdio MCP server.
Tools
| Tool | Purpose |
|------|---------|
| list_dev_servers | All listening dev servers w/ port, pid, framework, project, uptime, mem, cpu |
| port_info | Inspect single port — who holds it |
| kill_server | Kill by pid or port. Dry-run by default; pass confirm=true to execute |
| find_zombies | Detect long-running, idle, memory-heavy dev servers |
| port_conflict | Why is port X busy + 5 free alternatives nearby |
Sample output
Safety
- kill_server defaults to dry-run. Must pass confirm=true.
- Refuses to kill PIDs < 1000 (system processes).
- Refuses processes outside the dev whitelist (node, python, ruby, go, deno, bun, php, java, rails, vite, next, etc).
- SIGTERM first, escalates to SIGKILL after 5s timeout.
Frameworks detected
next.js, vite, nuxt, remix, astro, webpack-dev-server, esbuild, create-react-app, express, fastify, koa, hono, rails, django, flask, fastapi, uvicorn, gunicorn, deno, bun, php-builtin, jekyll, hugo.
Falls back to package.json sniffing when the cmdline is generic (node server.js).
Platform support
- macOS — full support (uses lsof)
- Linux — full support (uses lsof + /proc)
- Windows — basic port scan only (uses netstat); cwd / framework detection limited