{"id":45086,"library":"harbormaster-mcp","title":"Harbormaster MCP","description":"Multi-project MCP router and operator dashboard for Claude Code, Codex, and Cursor. Version 27.0.0, active development. Ships a live web console with KPI strip, inter-project network graph, trace waterfall, memory editor, and multi-axis budgets. Part of the FleetQ ecosystem.","status":"active","version":"27.0.0","language":"python","source_language":"en","source_url":"https://github.com/FleetQ/harbormaster","tags":["mcp","multi-project","router","claude-code","cursor","codex","fleetq"],"install":[{"cmd":"pip install harbormaster-mcp","lang":"bash","label":"Default install"},{"cmd":"pip install harbormaster-mcp[web]","lang":"bash","label":"With web dashboard dependencies"}],"dependencies":[{"reason":"Required for web dashboard","package":"fastapi","optional":false},{"reason":"Required for web dashboard server","package":"uvicorn","optional":false}],"imports":[{"wrong":"from harbormaster import Harbormaster","symbol":"Harbormaster","correct":"import harbormaster"}],"quickstart":{"code":"from harbormaster import Harbormaster, create_app\n\n# Initialize router\nrouter = Harbormaster(\n    projects=[\n        {\"name\": \"project-alpha\", \"path\": \"/path/to/alpha\", \"mcp_command\": \"uv run mcp\"},\n        {\"name\": \"project-beta\", \"path\": \"/path/to/beta\"}\n    ]\n)\n\n# Or use FastAPI integration\napp = create_app(router)\n\n# To serve: uvicorn myapp:app --host 0.0.0.0 --port 8000","lang":"python","description":"Initialize a Harbormaster router with multiple projects and optionally wrap it in a FastAPI app."},"warnings":[{"fix":"Add 'transport': 'stdio' to each project dict in Harbormaster configuration.","message":"Version 27.0.0 changed the default MCP transport from stdio to SSE. Projects that expect stdio must set transport='stdio' explicitly in project config.","severity":"breaking","affected_versions":">=27.0.0"},{"fix":"Use pip install harbormaster-mcp[web] if you need the web console.","message":"The 'web' extra install group is no longer included by default. Web dashboard dependencies must be installed explicitly.","severity":"breaking","affected_versions":">=25.0.0"},{"fix":"Use dict format: {'name': 'proj', 'path': '/path', 'mcp_command': '...'}.","message":"The 'projects' argument to Harbormaster now expects a list of dicts with 'name', 'path', and optional 'mcp_command'. Old format (tuple of (name, path)) was deprecated in v24 and removed in v26.","severity":"deprecated","affected_versions":">=26.0.0"},{"fix":"Ensure the remote machine has harbormaster-mcp installed and the MCP server is reachable on the given host/port.","message":"SSH-hosted projects require the remote machine to have harbormaster-mcp installed and a running MCP server. The router does not auto-install on remote hosts.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'27.0.0':18 'activ':19 'axi':41 'budget':42 'claud':12,54 'claude-cod':53 'code':13,55 'codex':14,57 'consol':25 'cursor':16,56 'dashboard':10 'develop':20 'ecosystem':47 'editor':37 'fleetq':46,58 'graph':33 'harbormast':1 'inter':30 'inter-project':29 'kpi':27 'live':23 'mcp':2,6,48 'memori':36 'multi':4,40,50 'multi-axi':39 'multi-project':3,49 'network':32 'oper':9 'part':43 'project':5,31,51 'router':7,52 'ship':21 'strip':28 'trace':34 'version':17 'waterfal':35 'web':24","created_at":"2026-06-07T12:53:17.323610+00:00","updated_at":"2026-06-07T12:53:17.323610+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/FleetQ/harbormaster","github":"https://github.com/FleetQ/harbormaster","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","ai-ml"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}