Skip to main content
Harbor’s fleet sync lets teams share a canonical set of MCP server definitions through a git repository. Every teammate pulls the same server configs — without sharing raw API keys.

How it works

  • Fleet repo — a git repository at ~/.harbor/fleet/ containing harbor-fleet.toml. Only server definitions are committed: command, args, env var names (as vault:KEY references), URLs, headers, and tool filters.
  • Secrets stay local — raw values never leave your machine. Fleet configs use vault:KEY_NAME references that each teammate provisions independently.
  • 3-way merge — pulling the fleet merges upstream changes into your local config without overwriting per-machine settings (enabled state, host connections, tool overrides).
  • Drift detection — Harbor tracks a SHA-256 hash of each server’s definition after every pull. If you hand-edit a fleet-managed server, it is flagged as locally modified and skipped on the next pull until you resolve it.

Setup (one person per team)

1. Initialize the fleet and link a remote:
2. Share your existing servers:
This writes harbor-fleet.toml to the fleet repo and pushes to the remote. 3. Invite teammates: Send them the git URL. They run:
join clones the fleet and automatically runs pull, adding all fleet servers to their local config.

Day-to-day workflow

Provisioning secrets

Fleet servers reference secrets by name (vault:GITHUB_TOKEN, vault:SLACK_TOKEN). After pulling a fleet for the first time, run:
This scans the fleet config for vault: references that aren’t yet in your keychain and prompts you to enter each value (input is hidden). Secrets are stored in your OS keychain — they never touch the git repo. To preview what’s missing without entering values:

Resolving conflicts

Locally modified server

If you’ve edited a fleet-managed server since your last pull, Harbor skips it on the next pull to protect your changes:
Choose one:
  • Accept upstreamharbor undock github && harbor crew pull
  • Share your versionharbor crew push github

Source conflict

If a server exists locally with a non-fleet source (e.g., you docked it manually before the fleet existed), it will also be skipped:
Run harbor undock github then harbor crew pull to let the fleet version take over.

Desktop app

The desktop app surfaces fleet state without requiring the CLI:
  • Fleet badge — server cards show a blue fleet chip for fleet-managed servers.
  • Modified badge — an amber modified chip appears when a server has drifted from its last-pulled definition.
  • Crew section — in Settings → Crew, you can see the fleet remote URL, git ahead/behind status, and trigger a pull with the Pull button.

The fleet config file

harbor-fleet.toml is human-readable TOML. You can edit it directly and push:
Never put raw secret values in harbor-fleet.toml. Use vault:KEY_NAME references. Each teammate stows their own copy of the secret with harbor crew provision or harbor chest set KEY value.

Without a remote

Fleet sync also works locally (no git remote required) — useful for sharing configs between machines via any file sync tool, or just keeping a versioned history of your server setup:
Add a remote later with: