- Add use_websearch parameter to base ToolRequest class
- All tools now inherit web search capability automatically
- Enhanced description emphasizes brainstorming and architectural design
- Add get_websearch_instruction() helper method to base class
- Update all tools to include web search in their prompts when enabled
- Update README documentation with web search examples
- Fix linting issues (ruff, black formatting)
Web search is particularly useful for:
- Brainstorming sessions and architectural design discussions
- Exploring industry best practices
- Working with specific frameworks/technologies
- Researching solutions to complex problems
- Getting current documentation and community insights
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Added check in translate_path_for_environment() to detect and skip
already-translated container paths (those starting with /workspace).
This prevents the function from attempting to translate paths like:
- /workspace/src/main.py -> /inaccessible/outside/mounted/volume/workspace/src/main.py
Now it correctly handles:
- Host path: /Users/.../src/main.py -> /workspace/src/main.py (translation)
- Container path: /workspace/src/main.py -> /workspace/src/main.py (no change)
Added comprehensive test to verify double-translation prevention.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added explicit translation of files parameter using translate_file_paths()
- Now both path and files parameters are properly translated for Docker environments
- Ensures consistent behavior between dockerized and normal installations
- Updated all references to use translated_files consistently
This fixes the bug where files parameter wasn't being explicitly translated,
even though resolve_and_validate_path was handling it internally. The explicit
translation makes the behavior clear and consistent with path translation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated thinking modes section to emphasize that:
- Claude automatically selects appropriate thinking modes based on task complexity
- Manual override is available but not required in most cases
- Auto-managed mode is recommended for optimal cost/quality balance
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed review_changes tool to properly translate host paths to container paths in Docker
- Prevents "No such file or directory" errors when running in Docker containers
- Added proper error handling with clear messages when paths are inaccessible
refactor: Centralized token limit validation across all tools
- Added _validate_token_limit method to BaseTool to eliminate code duplication
- Reduced ~25 lines of duplicated code across 5 tools (analyze, chat, debug_issue, review_code, think_deeper)
- Maintains exact same error messages and behavior
feat: Enhanced large prompt handling
- Added support for prompts >50K chars by requesting file-based input
- Preserves MCP's ~25K token capacity for responses
- All tools now check prompt size before processing
test: Added comprehensive Docker path integration tests
- Tests for path translation, security validation, and error handling
- Tests for review_changes tool specifically with Docker paths
- Fixed failing think_deeper test (updated default from "max" to "high")
chore: Code quality improvements
- Applied black formatting across all files
- Fixed import sorting with isort
- All tests passing (96 tests)
- Standardized error handling follows MCP TextContent format
The changes ensure consistent behavior across all environments while reducing code duplication and improving maintainability.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
More accurate label that clearly shows this is the actual prompt
that produced the results shown in the image.
Co-Authored-By: Claude <noreply@anthropic.com>
- Move example workflow image to Why This Server section
- Condense File & Directory Support into single bullet point
- Remove duplicate image/prompt from think_deeper section
This creates a cleaner, more compelling introduction that showcases
real usage before diving into setup details.
Co-Authored-By: Claude <noreply@anthropic.com>
Focus on using the setup scripts which already generate the exact
Claude Desktop configuration needed. This makes the setup process
much more straightforward.
Co-Authored-By: Claude <noreply@anthropic.com>
Removing automated Docker Hub publishing workflow to keep the setup simple.
Users can build the Docker image locally with 'docker build -t gemini-mcp-server .'
Co-Authored-By: Claude <noreply@anthropic.com>
Only attempt Docker Hub login when running from the main repository,
not from forks. This prevents authentication errors in forked repos
while still allowing them to build images locally.
Co-Authored-By: Claude <noreply@anthropic.com>
Implements comprehensive Docker support to eliminate Python version and dependency concerns.
Users can now run the MCP server in a container with automatic path translation between
host and container filesystems.
Key features:
- Dockerfile with multi-architecture support (amd64/arm64)
- Automatic path translation using WORKSPACE_ROOT environment variable
- Setup scripts for all platforms (Bash, CMD, PowerShell)
- GitHub Actions workflow for automated Docker Hub publishing
- Secure non-root container execution
- Read-only volume mounts by default
The setup process is now simplified to:
1. Run setup-docker-env script to generate .env and Claude config
2. Build the Docker image
3. Copy generated config to Claude Desktop
No Python installation or virtual environment management required.
Fixes#3
Co-Authored-By: Claude <noreply@anthropic.com>
- Add instruction for Gemini to request files when needed
- Add comprehensive tests for files parameter functionality
- Test file request instruction presence/absence based on context
- Run all tests, ruff, and black formatting
Now review_changes can both accept context files and allow Gemini
to request additional files during review for better validation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add files parameter to provide additional context during review
- Context files help validate if changes align with existing patterns
- Files are processed after diffs to prioritize actual changes for token budget
- Clear section headers and summaries show what context was included
- Handles token limits gracefully with truncation when needed
This allows users to provide config files, docs, or related code that
helps Gemini better understand and validate the changes being reviewed.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create SETUP_MACOS.md with step-by-step guidance
- Include both automatic (setup.sh) and manual setup options
- Add troubleshooting for common issues
- Provide clear examples and Terminal tips
- Explain virtual environment usage for beginners
Helps macOS users properly set up the project environment.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update run_gemini.sh to automatically run setup.sh if venv doesn't exist
- Update run_gemini.bat to automatically run setup.bat if venv doesn't exist
- Remove fallback to system Python - always use venv for consistency
- Provide clear error messages if setup fails
This ensures users don't see "ModuleNotFoundError" - instead the server
will automatically set up dependencies on first run.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Since the minimum requirement is Python 3.10, suggest installing 3.10
rather than 3.12 to make it easier for users to meet the minimum requirements.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Python version validation in setup.sh and setup.bat
- Require Python 3.10 or higher (needed by mcp package)
- Provide clear error messages with upgrade instructions
- Update README prerequisites and troubleshooting sections
This prevents confusing dependency errors when users have older Python versions.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add setup.sh for macOS/Linux with dependency installation
- Add setup.bat for Windows with dependency installation
- Update README with clearer setup instructions in Quickstart
- Add troubleshooting for "ModuleNotFoundError: No module named 'mcp'"
- Provide manual installation steps as fallback
This helps users avoid the common "ModuleNotFoundError" by ensuring
dependencies are properly installed before first use.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Document that default access is to home directory
- Explain how to restrict access using MCP_PROJECT_ROOT
- Remove API key warning as requested (applies to all MCP servers)
This helps users understand the security model and how to configure
it for their specific needs.
- Default to user's home directory instead of current working directory when MCP_PROJECT_ROOT is not set
- Replace fragile root directory check with cross-platform compatible approach using Path.parent == Path
- Add SANDBOX_MODE flag to explicitly track whether sandbox is user-configured or default
- Enhance security documentation to clarify the three-tier access model
- Prevent potential security vulnerabilities from overly permissive directory access
This change ensures more predictable and secure file access behavior, especially when the server
is launched from system directories or through automated tools like Claude Desktop.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- When started from Claude Desktop, working directory might be "/"
- Now defaults to user home directory if cwd is "/"
- Startup scripts change to script directory for consistency
- Simplified README to remove implementation details about PROJECT_ROOT
This fixes the "MCP_PROJECT_ROOT cannot be set to '/'" error
while maintaining security by preventing filesystem-wide access.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add alternative instructions for configuring Claude Desktop
through the UI (Settings → Developer → Edit Config) which
is more user-friendly than manually finding the config file.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add newlines at end of JSON example files and batch script
for consistent formatting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The anchor link was using incorrect format. GitHub converts:
"Thinking Modes - Managing Token Costs & Quality"
to: #thinking-modes---managing-token-costs--quality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add cost-focused headings to emphasize token management
- Include token cost multipliers in thinking modes table
- Add practical examples for each tool showing how to save tokens
- Provide specific token savings (e.g., "saves ~8k tokens")
- Guide users on when higher token costs are justified
- Remove recently added emoji indicators per request
This helps users make informed decisions about balancing response
quality with API costs across all tools.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements for Windows users:
- Add detailed Windows Setup Guide with native and WSL options
- Create platform-specific example configurations (Windows/WSL/macOS)
- Add troubleshooting section addressing common Windows/WSL errors
- Create test_wsl_setup.bat diagnostic script for Windows users
Script improvements:
- Enhance run_gemini.bat with error handling and helpful messages
- Update both run scripts to use server.py as main entry point
- Keep gemini_server.py as backward compatibility wrapper
Documentation:
- Add clear instructions for both native Windows and WSL setups
- Explain the wsl.exe bridge approach for WSL users
- Include performance recommendations for WSL file access
- Add specific troubleshooting for spawn ENOENT errors
All tests passing, code properly formatted and linted.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major changes:
- Add comprehensive documentation to all modules with detailed docstrings
- Remove unused THINKING_MODEL config (use single GEMINI_MODEL with thinking_mode param)
- Remove list_models functionality (simplified to single model configuration)
- Rename DEFAULT_MODEL to GEMINI_MODEL for clarity
- Remove unused python-dotenv dependency
- Fix missing pydantic in setup.py dependencies
Documentation improvements:
- Document security measures in file_utils.py (path validation, sandboxing)
- Add detailed comments to critical logic sections
- Document tool creation process in BaseTool
- Explain configuration values and their impact
- Add comprehensive function-level documentation
Code quality:
- Apply black formatting to all files
- Fix all ruff linting issues
- Update tests to match refactored code
- All 63 tests passing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Prioritized security analysis in all tool prompts
- Fixed REVIEW_CHANGES_PROMPT to apply security checks to ALL code, not just new additions
- Added comprehensive security categories to REVIEW_CODE_PROMPT including:
- Authentication/authorization flaws
- Input validation vulnerabilities
- Injection risks (SQL, NoSQL, Command, XSS, etc.)
- Sensitive data exposure
- Cryptographic weaknesses
- API security issues
- Reordered THINK_DEEPER_PROMPT priorities to emphasize security first
- Added security impact assessment to DEBUG_ISSUE_PROMPT format
- Prioritized security considerations in ANALYZE_PROMPT
These changes ensure that all tools properly emphasize security analysis
as a critical priority rather than minimizing or limiting security focus.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Renamed tool from review_pending_changes to review_changes for brevity
- Enhanced tool descriptions for better MCP auto-discovery
- Updated all references throughout codebase including:
- Tool implementation (tools/review_changes.py)
- Test files (tests/test_review_changes.py)
- Server registration and imports
- Documentation in README.md
- Tool prompts in prompts/tool_prompts.py
- Enhanced review_changes description to emphasize pre-commit usage
- All tests pass, linting and formatting checks pass
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove unused TOOL_TRIGGERS dictionary from config.py
- Remove associated test_tool_triggers test case
- TOOL_TRIGGERS was not used anywhere in the codebase
- MCP automatically discovers tools through descriptions in list_tools handler
- All tests pass (64 tests), ruff clean, black formatted
- Update tool description to strongly encourage Claude to use it before commits
- Add 'ALWAYS use this tool before creating any git commit\!' emphasis
- Add comprehensive trigger words in TOOL_TRIGGERS including:
- 'before commit', 'about to commit', 'ready to commit'
- 'review pending changes', 'check my changes'
- 'pre-commit', 'before I commit', 'should I commit'
- Make it clear this is essential for code quality and preventing bugs
- All tests pass (65 tests), ruff linting clean, black formatting applied
- Move chat to position #1 as the most general and approachable tool
- Reorder all tool sections accordingly
- Update all anchor links and cross-references
- Update 'Why This Server' section to prioritize chat
- Better flow from general (chat) to specialized tools
- Move all imports to top of file including asyncio, tempfile, and pytest
- Maintain functionality while following proper import order
- All linting checks now pass
- Added review_pending_changes tool for pre-commit validation
- Fixed bug where temp files were outside project root causing NO FILES FOUND error
- Enhanced README with Claude + Gemini collaboration branding
- Fixed various linting issues
- All tests passing (65 tests)
- Add cool tagline emphasizing Claude + Gemini partnership
- Update acknowledgments section with proper credits for both AI systems
- Add inspiring message about combining their strengths
- Make the collaborative nature of the tool more prominent
- Added compelling highlight for the review_pending_changes tool
- Emphasizes deep analysis, edge case detection, and requirements validation
- Fixed anchor links for all tools to match correct section numbers
- Positions the tool as valuable for catching subtle bugs Claude might miss