░█▄█░█▀▀░█▀█░█▄█░█▀█░█▀█ ░█░█░█░░░█▀▀░█░█░█░█░█░█ ░▀░▀░▀▀▀░▀░░░▀░▀░▀▀▀░▀░▀
Dev tool for MCP servers.
Edit code → server restarts → tools refresh → no context loss.
$ mcpmon --watch src/ -- python -m my_server
[mcpmon 14:32:01] Watching src/ for .py changes
[mcpmon 14:32:01 pid:48291] Started: python -m my_server
[mcpmon 14:32:15] File modified: tools.py
[mcpmon 14:32:15 pid:48291] Restarting...
[mcpmon 14:32:15 pid:48342] Restart #1 complete
[mcpmon 14:32:15] Sent tools/list_changed notification
FEATURES
FILE WATCHING
Watch source files, auto-restart on change. No manual restarts.
TOOL REFRESH
Sends list_changed notification. Claude sees new tools without restart.
KEEP CONTEXT
Server restarts mid-session. Your conversation continues.
GATEWAY MODE
Aggregate multiple servers. Add/remove via config, no restart.
INSTALL
Python
pip install mcpmon
gateway + hot reload
Bun
bunx mcpmon
no install needed
Go
go install ...
single binary
MCP CONFIG
// .mcp.json - single server with hot reload { "mcpServers": { "my-server": { "command": "mcpmon", "args": ["--watch", "src/", "--", "python", "-m", "my_server"] } } }
// .mcp.json - gateway aggregates multiple servers { "mcpServers": { "gateway": { "command": "mcpmon", "args": ["--config", ".mcpmon.yaml"] } } } # .mcpmon.yaml servers: sage: command: sage-mcp watch: ~/.sage/src/ crucible: command: crucible-mcp watch: ~/crucible/src/
LOGGING LEVELS
--quiet
errors only
default
start/stop + PIDs
--verbose
+ file changes
--debug
+ everything