Running the server
You only need this if you want the dashboard, a shared team server, or a client with no plugin system. For a single developer on Claude Code, the plugin needs none of it.
From source
Section titled “From source”cd mcpuv syncuv run server.py # HTTP + SSE on :3000, plus the dashboarduv run server.py --stdio # MCP over stdio; no port, no dashboardBoth transports share one server instance and one set of initialization options, so the tool
surface is identical across them by construction. --stdio is what the Claude Code plugin
launches; SSE is what a shared team instance runs.
Docker Compose
Section titled “Docker Compose”cp .env.example .env # set MCP_ADMIN_PASSWORDdocker compose up -dDocker, standalone
Section titled “Docker, standalone”docker build -t dev-playbook .docker run -d \ --name dev-playbook \ -p 127.0.0.1:3001:3000 \ -e MCP_ADMIN_PASSWORD=changeme \ -v playbook-data:/data \ --restart unless-stopped \ dev-playbookDashboard at http://localhost:3001/dashboard/, MCP over SSE at http://localhost:3001/sse.
About that port
Section titled “About that port”The host port is 3001 because 3000 is commonly taken on a development machine; the container
listens on 3000 internally. It is published to 127.0.0.1 only, so nothing on your network can
reach it until you decide otherwise.
Next: configuration and auth and tokens.