**Fixed Issues**:
- Proper config file loading from ~/.claude/mcp-browser/config.yaml
- Correct MCPBrowser initialization with config_path parameter
- Fixed server config attribute access using getattr()
- Updated runtime status detection logic
- Reduced initialization wait time for better performance
**Working Features**:
- ✅ Discovers 27 tools from 4 built-in servers (screen, memory, patterns, onboarding)
- ✅ Loads 7 configured external servers from config file
- ✅ Generates comprehensive JSON documentation with runtime status
- ✅ Includes server PIDs and active status for monitoring
- ✅ All regex JSONPath queries working ($.tools[?(@.name =~ /pattern/i)])
The gen_apidoc command now provides complete MCP API documentation
suitable for adding to AI project knowledge bases.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
**Enhanced JSONPath Support**:
- Manual regex implementation for queries like `$.tools[?(@.name =~ /pattern/i)]`
- Supports case-insensitive searches with /i flag
- Works on both tool names and descriptions
- Fallback to standard JSONPath for non-regex queries
**gen_apidoc Command**:
- New `python setup.py gen_apidoc` command
- Generates comprehensive JSON documentation of MCP API
- Includes all servers, tools, schemas, and capabilities
- AI-optimized format with discovery patterns
- Runtime server status information
- Perfect for adding to project knowledge bases
**API Documentation Features**:
- Complete server inventory with tool counts
- Capability inference from tool names/descriptions
- Discovery pattern examples for common queries
- Sparse mode information for context optimization
- Tool grouping by server with metadata
This enables powerful regex-based tool discovery and provides
comprehensive API documentation for AI consumption.
🤖 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>
- Added proper package discovery for mcp_servers modules
- Created __init__.py files for all mcp_servers subpackages
- Added MANIFEST.in to ensure all files are included in distribution
- Removed mcp-browser-demo entry point from setup.py
- Fixed package_data to include all necessary files
The mcp_servers modules are now properly installed alongside mcp_browser,
allowing built-in servers to work correctly after installation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed NameError by adding missing Union import in filter.py
- Reorganized all tests into tests/ subdirectory
- Fixed recursive initialization issue in proxy.py
- Added proper test infrastructure with Makefile and setup.py test target
- Created test_config.yaml for test configurations
- Added Brave Search integration test (requires BRAVE_API_KEY)
- Fixed async test fixtures to use @pytest_asyncio.fixture
- Updated tests to handle 3 sparse tools (including onboarding)
- Fixed JSONPath queries to avoid unsupported filter syntax
- Created unit tests that don't require server initialization
- Added test_simple.py for basic functionality tests
All unit tests now pass successfully. Integration tests that require
full server setup are marked as skipped.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change license to GPLv3+ (OSI approved)
- Update repository URL to github.com/Xilope0/mcp-browser
- Set correct author as Claude4Ξlope <xilope@esus.name>
- Add installation instructions and badges to README
- Add contributing section highlighting AI-only development
- Update all metadata consistently across files
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude4Ξlope <xilope@esus.name>
- Enhanced setup.py with AI-friendly documentation generation
- Added 'python setup.py aidocs' command for:
- Automatic API documentation via pydoc
- ctags generation for code navigation
- Project structure documentation
- API summary generation
- Added CLAUDE.md explaining AI-only development
- Created __main__.py for command-line interface
- Added test_claude_connection.py to verify claude-code integration
- Added py.typed for type checking support
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>