Reload Claude Desktop / MCPs
When to do this
  • Edited ~/Sync/ED/config/claude_desktop_config.json (added/removed/modified an MCP)
  • Edited an MCP server’s source code in ~/.mcp-servers/<name>/
  • Edited a SKILL.md and need it to appear in available_skills (also requires ~/scripts/sync-cowork-snapshot.sh first โ€” see below)
  • A specific MCP shows Server transport closed unexpectedly in ~/Library/Logs/Claude/mcp-server-<name>.log
Procedure

Step 1 โ€” quit fully (not just close the window):

Cmd-Q from the Claude Desktop menu bar

If you see “Claude Desktop is still running” indicators (tray icon, dock bounce), kill from terminal:

osascript -e 'tell application "Claude" to quit'
# or, harder:
pkill -f 'Claude.app/Contents/MacOS/Claude'

Step 2 โ€” relaunch. Open /Applications/Claude.app or open -a Claude.

Step 3 โ€” verify MCPs loaded. Open a Cowork session. The first system reminder of any session lists deferred MCP tools. Look for the MCP you expected.

If you only changed a SKILL, the change won’t appear in the new session unless you also:

~/scripts/sync-cowork-snapshot.sh

The Cowork session snapshot is keyed on stable UUIDs and is REUSED across sessions โ€” Cmd-Q doesn’t rebuild it, plugin reinstall doesn’t rebuild it. Only the explicit rsync does.

Verify

For a specific MCP, do a one-tool call in a new Cowork session. e.g. for tana-local: mcp__tana-local__list_workspaces. For memory: mcp__memory__memory_stats.

For SKILL availability: open a session and type /skill โ€” the new SKILL should appear in the dropdown.

Gotchas
  • Tana startup race: if you launch Claude Desktop before Tana is fully open, tana-local will ECONNREFUSED 127.0.0.1:8262 and bail. Launch Tana first, then Claude. The MCP doesn’t auto-reconnect โ€” restart Claude Desktop after the race.
  • ha-mcp connection failures: check that NetBird has the 192.168.0.0/24 route enabled and that fpve.netbird.cloud is reachable. The MCP itself wires correctly; the typical failure is the upstream HA being unreachable.
  • MCP venvs on MacBook may be stale after a Syncthing pull. The com.bee.rebuild-mcp-venvs launchd watcher handles it on file change, but you can force it: launchctl kickstart -k gui/$(id -u)/com.bee.rebuild-mcp-venvs.