Harbor MCP Server

Harbor MCP Server

Enables AI agents to discover, configure, and manage local development servers. Provides tools for app registration, port allocation, lifecycle control, and log access without manual config editing.

Category
访问服务器

README

<div align="center">

<img src="assets/banner.png" alt="Harbor — boot every local dev server with one button; smart ports, crash recovery, MCP-native" width="820" />

</div>

Harbor

A polished, native macOS app that boots all the local servers a project needs with one button — with intelligent port allocation, crash recovery, and an MCP server baked in so your Claude (or Codex) can discover, configure, and drive your dev environment without you editing a single config file.

Local process managers exist (foreman, pm2, Tilt, Herd). None are MCP-native. That's Harbor's point: register a project once, and from then on an AI agent can detect what it needs, write the run config, start/stop everything with automatic port allocation, watch resource usage, and read logs to debug.

Stack: Tauri 2 (Rust core + React 19 / Radix Themes UI). macOS only for now. See DESIGN.md for the architecture.

Note: unrelated to the CNCF Harbor container registry.

Features

  • One-button start with a topo-sorted dependency order and live log streaming.
  • Port intelligence — preferred → next-free allocation probed on both IPv4 and IPv6, with ${PORT} / ${services.X.port} placeholders resolved so a frontend automatically targets whatever port the backend actually got. Recognizes a command that pins its own port (e.g. next dev -p 3002) and never bumps it.
  • Detects already-running servers — re-adopts processes a previous Harbor session left running, and recognizes a server you started yourself in a terminal (matched to the app by its port + project folder via a process-group walk), so it's never fooled into a duplicate EADDRINUSE start. It will never claim or kill an unrelated process or your shell.
  • Auto-restart on crash (opt-in per app) with bounded backoff and a give-up cap, plus native crash notifications — and it can tell a deliberate Stop apart from a crash, so it never fights you.
  • Live resource monitor — CPU% and memory per service, summed over the whole process group, in the card and the menu-bar popover.
  • Menu-bar popover to start/stop/open your servers without opening the window.
  • Fix with AI — surfaces a service's error and hands a tailored prompt to a connected Claude/Codex (or runs it headless) to diagnose it.
  • Smart onboarding — drag a project folder onto the window and Harbor scans it and proposes a config (Next/Vite/Remix/Nuxt/SvelteKit/Astro/Angular/CRA/Gatsby, Django/FastAPI/Flask, Go, Rails, static sites; pnpm/yarn/bun aware).
  • MCP-native — an in-process Streamable-HTTP MCP server (bound to 127.0.0.1, per-install bearer token) exposes the whole lifecycle to an agent.

Install

Download the .dmg from the latest release, open it, and drag Harbor to Applications.

First launch: Harbor currently ships unsigned, so macOS will say it "can't verify the developer." Open it once via System Settings → Privacy & Security → Open Anyway (or right-click the app → Open) — you only do this once. (Maintainers can turn on Developer ID signing + notarization to remove this step for everyone; the pipeline is ready — see DISTRIBUTING.md.)

Build it yourself

npm install
npm run tauri dev      # dev window + MCP server on 127.0.0.1:7777
npm run tauri build    # produces a .app / .dmg (unsigned unless you set up signing)

Maintainers: see DISTRIBUTING.md for code signing, notarization, and how to cut a release.

Connect your Claude (or Codex)

Open the Connect your Claude screen (gear, bottom-left) for one-click setup (Claude Code, Claude Desktop, and Codex), or run it manually with your token from ~/Library/Application Support/com.harbor.desktop/mcp.json:

claude mcp add --transport http harbor http://127.0.0.1:7777/mcp \
  --header "Authorization: Bearer <token>"

Then ask your agent to detect_app a folder, start_app it, read app_status / get_logs, restart_app, and stop_app.

Concepts

  • App — a registered project folder with a name, root, and services.
  • Service — one long-running process: { name, cwd, command, port?, env, dependsOn[], healthCheck?, readyLogPattern? }. command/env may contain ${PORT} and ${services.X.port} placeholders.
  • Profile — a named service set (e.g. default = just the server, dev = server + web).
  • Port plan — what each service preferred vs. the port it actually got, and how dependents were rewired.

MCP tools

Tool Purpose
list_apps Registered apps + current run status
app_status(app) Per-service state, resolved ports, the port plan
detect_app(path) Scan a folder, propose a config (does not save)
register_app(config) Add/replace an app in the registry
start_app(app, profile?) / stop_app(app) / restart_app(app, profile?) Lifecycle
get_logs(app, service, lines?) Tail captured logs

The server binds 127.0.0.1 only and requires a per-install bearer token.

Module map (src-tauri/src)

File Responsibility
model.rs Config + run types (serde)
store.rs Flat-JSON registry, MCP settings, and the runs.json adoption record
state.rs AppState shared by commands and the MCP server
supervisor.rs Spawn in process groups, stream logs, health/ready, adoption, auto-restart, resource sampling, clean kill
ports.rs Topo sort, dual-stack allocation, pinned-port detection, ${...} resolution (unit-tested)
health.rs TCP/HTTP readiness probes
detect.rs detect_app framework heuristics (unit-tested)
ops.rs Shared start/stop/restart/open logic (commands + MCP)
commands.rs Tauri command surface
mcp.rs axum + rmcp Streamable-HTTP server, bearer auth
lib.rs Wires it together; hosts the MCP server on Tauri's runtime

Contributing

Issues and PRs welcome. The Rust core has unit + integration tests:

cd src-tauri && cargo test
npx tsc --noEmit   # from the repo root, typecheck the UI

License

MIT © Luke Fairbanks

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选