- Remove unused imports (signal, yaml, os, socket, ConfigLoader)
- Remove unused variable assignments in argument parsers
- Update integration test to send initialize request first
- Fix test to match new server mode behavior
All unit tests pass, integration test needs initialize handshake.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix protocol version mismatch (0.1.0 -> 2024-11-05)
- Fix server mode blocking on startup causing Claude Desktop timeout
- Add --version flag to show version information
- Implement proper daemon cleanup when starting new daemon
- Add kill_daemon_with_children() to properly terminate process tree
- Fix dictionary iteration error during shutdown
- Ensure sparse mode is always enabled (3 tools only)
- Fix async stdin reading in base server to prevent EOF loops
- Add syslog support for server mode logging
- Switch from stdin.read() to readline() for proper JSON-RPC handling
- Add comprehensive MCP protocol test suite
The tool now works correctly as an MCP proxy between Claude Desktop
and MCP servers with additional built-in tools.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major refactoring to fix high CPU usage and improve architecture:
## Fixed Issues
- MCP servers were stuck in infinite loops when stdin closed
- Fixed by checking for EOF (empty string) from stdin.read()
- Fixed indentation error in base.py causing syntax errors
## New Architecture
- Split into separate client and daemon binaries:
- `mcp-browser`: Smart client that can use daemon or run standalone
- `mcp-browser-daemon`: Persistent daemon process
- `mcp-browser-legacy`: Old monolithic version (deprecated)
## Client Features
- Auto-detects and uses daemon if available
- Can auto-start daemon if needed
- Falls back to standalone mode
- Supports `--use-daemon` with modes: auto, always, never
- Works as MCP server (stdin/stdout) or CLI tool
## Daemon Features
- Runs as background process with socket server
- Supports multiple concurrent clients
- Can run in foreground with `--foreground`
- Includes systemd service files for production
- Proper signal handling and cleanup
## Usage Examples
```bash
# CLI usage (auto-uses daemon if available)
mcp-browser tools-list
mcp-browser tools-call builtin:patterns::list_patterns '{}'
# Force standalone mode
mcp-browser --use-daemon never tools-list
# Run daemon manually
mcp-browser-daemon --foreground --log-level DEBUG
# Use as MCP server
echo '{"method":"tools/list"}' | mcp-browser --mode server
```
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>