MCP WatchdogRepository: github.com/vaibhav11123/mcp-watchdog WhyYour editor drops MCP servers silently. After sleep, a flaky MCP Watchdog is a parallel health layer: it probes your configured servers on a schedule, shows Honest scope: this does not replace the editor’s built-in MCP integration. Watchdog opens its own read-only health connections to measure reachability and latency — it cannot fix editor-internal MCP state without you reloading. Works in Cursor, Windsurf, VS Code, VSCodium, and other forks that install from Open VSX. Demo
Replace with InstallInstall in Cursor (recommended)Most Cursor installs pull extensions from Open VSX, not the VS Marketplace:
All install channels
After install, reload the window. Open the activity bar MCP Watchdog icon (not the Extensions detail page). Requirements
Where is the UI?VS Code has two different sidebars:
Other extensions that “show UI when opened” usually either (1) open their own activity bar panel (GitLens, Docker, etc.), (2) add a Getting Started walkthrough (first install), or (3) use a webview in the sidebar. MCP Watchdog uses (1) + a walkthrough on first install. After install, run Help → Welcome → MCP Watchdog: Get started (walkthrough), or MCP Watchdog: Open Servers View. Quick start
ScreenshotsStatus bar — aggregate health (
Servers view — per-server state and last ping latency in the MCP Watchdog activity bar sidebar:
Example
|
| Setting | Default | Description |
|---|---|---|
pingIntervalMs |
30000 |
Ping cadence (ms). |
maxRetries |
5 |
Max reconnect attempts before marking failed. |
initialBackoffMs |
1000 |
First backoff after failure (ms). |
backoffMultiplier |
1.5 |
Backoff multiplier. |
maxBackoffMs |
30000 |
Backoff cap (ms). |
requireApproval |
true |
Prompt before connecting to configured MCP servers. |
probeMode |
interval |
interval = connect/ping/close each cycle; persistent = long-lived client (0.1.x behavior). |
perServer |
{} |
Per-server probeMode, pingIntervalMs, enabled overrides. |
pingTimeoutMs |
5000 |
Ping/probe timeout (ms). |
notify |
failures |
Toasts: failures (default), all (+ recovery), none. |
degradedAlertDelayMs |
60000 |
Wait before warning toast on sustained degraded state. |
Alerts
When a server fails, Watchdog shows a notification with Reconnect, Show Log, Reload Window, and Mute 1h. Set mcpWatchdog.notify to all to also get recovery toasts. Repeated failures within 10 minutes collapse into a single flapping warning.
Probe modes
| Mode | Behavior | When to use |
|---|---|---|
| interval (default) | Each cycle connects, pings, then closes — no duplicate stdio process between checks. | Most servers; avoids leaving extra npx children running. |
| persistent | Keeps one MCP client open and pings on an interval. | Stateful servers that lose session state on disconnect (use deliberately). |
Settings changes apply within ~1s without reloading the window; mcp.json edits reload monitors via the file watcher.
Privacy & data
- No bundled analytics or telemetry from this extension.
- Traffic goes to your configured MCP servers only (stdio child processes and HTTP clients you define in
mcp.json). - Do not commit secrets inside
mcp.jsonin shared repos; use environment variables or secret stores appropriate to your team.
Known limitations
- Reads
.vscode/mcp.json,.cursor/mcp.json, and~/.cursor/mcp.json(merged; project files override global). Does not read other user-global VS Code MCP paths yet. - Independent of the editor’s MCP UI: native MCP may show different state until the next Watchdog ping.
- HTTP transport may combine SDK-level reconnection with Watchdog-level retries.
- Malformed
mcp.json: invalid JSON shows an error notification; fix the file and save.
Troubleshooting
| Symptom | What to check |
|---|---|
| Servers view is empty | Open a folder (not just a file). Add .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). Use the activity bar MCP Watchdog icon, not the Extensions detail page. |
| No MCP Watchdog in Output / no status | Folder open? MCP config present? Try Developer: Show Running Extensions → MCP Watchdog activated. |
| No servers / 0/n | servers key missing or empty; path is wrong root in multi-root. |
| Connecting forever | npx/network blocked; stdio command wrong; HTTP URL/firewall. |
Ping failed: Not connected then retry |
Expected after killing a server or network blip; Watchdog should reconnect within your backoff settings. |
See Screenshots above for the Marketplace / README visuals.
Development
npm install
npm run compile
npm run build
- Run Extension / Run Extension (mcp-watchdog-test workspace) from
.vscode/launch.json. - Fixture:
mcp-watchdog-test/(optional; not shipped in VSIX). - Headless smoke:
npm run smoke.
See CHANGELOG.md.
Ship checklist (maintainers)
- Record
images/demo.gif(see HTML comment in README Demo section). npm test&&npx vsce package— confirmvsce lshas notest/,*.local.md.- Set GitHub secrets:
VSCE_PAT,OVSX_PAT(see CONTRIBUTING.md). ./scripts/ship-release.shor push tagv*to run release.yml.
export VSCE_PAT=... OVSX_PAT=... # one-time
./scripts/ship-release.sh
License
MIT — see LICENSE.
Security: see SECURITY.md.

