start_serverLABSCO SUMMARY
Log pagination, which is what makes reading a dev server's output survivable.
Both the log tool and the console-message tool take an offset, a limit and a direction, with negative offsets counting from the end — so an agent can ask for the last twenty lines instead of receiving the whole buffer. The project describes itself as alpha; treat the browser half as experimental.
What it is
A server that manages the processes declared in a devservers.yml — backend, frontend, worker — and streams their logs into a terminal UI you can also click. An experimental Playwright layer adds browser control against what those servers are serving.
What you get
- start_server and stop_server by name, including servers it did not start
- get_devserver_statuses — the state of everything configured
- get_devserver_logs with offset, limit and reverse, so a long log is paginated rather than dumped
- browser_navigate, browser_snapshot, browser_click, browser_type, browser_resize and browser_screenshot
- browser_console_messages with the same pagination and an option to clear after reading
- A terminal UI with live log streaming and clickable start and stop
Requirements
Installed with uv from the repository, then a devservers.yml at the project root declaring each server's command, working directory and port. The client connects over HTTP to http://localhost:3001/mcp while the TUI runs in a terminal. The browser tools need Playwright and its drivers installed separately and the experimental flag switched on in the config.
Setup effort
Follow the published steps — uv add --dev git+https://github.com/Uninen/devserver-mcp.git --tag v0.6.0
USE CASES
Finding out why the frontend is not responding
Check the statuses, then read the last lines of that server's log newest-first.
Restarting one service without touching the rest
Stop and start it by name — including a server that was already running outside the tool.
Checking a page renders after a change
Navigate to it, take an accessibility snapshot, and read the console messages for errors.
Reproducing a bug in the running app
Click and type through the flow, resize the viewport, and capture a screenshot of what happened.
11 tools
Listed in project docs. Your client may show a different list.
stop_serverget_devserver_statusesget_devserver_logsbrowser_navigatebrowser_snapshotbrowser_console_messagesbrowser_clickbrowser_typebrowser_resizebrowser_screenshotBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation. A default install exposes 4; the 7 browser tools need experimental.playwright set in config and Playwright installed manually. The project calls itself alpha software.
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
uv add --dev git+https://github.com/Uninen/devserver-mcp.git --tag v0.6.0Optional, for the experimental browser tools: uv add playwright then playwright install
Create a devservers.yml in the project root listing your servers (and experimental: playwright: true if you want the browser tools)
Run the TUI in its own terminal: devservers (this is what serves MCP on http://localhost:3001/mcp/)
Register the URL with your client — Claude Code: claude mcp add --transport http devservers http://localhost:3001/mcp/ (add -s project to write .mcp.json); VS Code: .vscode/mcp.json; Gemini CLI: ~/.gemini/settings.json globally or .gemini/settings.json per project
MCP Clients
VS Code
{
"servers": {
"devserver": {
"url": "http://localhost:3001/mcp/",
"type": "http"
}
}
}Claude Code
claude mcp add --transport http devservers http://localhost:3001/mcp/Gemini CLI
{
"mcpServers": {
"devservers": {
"httpUrl": "http://localhost:3001/mcp",
"timeout": 5000,
"trust": true
}
}
}Zed
{
"context_servers": {
"devservers": {
"command": {
"path": "uvx",
"args": [
"mcp-proxy",
"--transport",
"streamablehttp",
"http://localhost:3001/mcp/"
]
}
}
}
}