1151 Commits

Author SHA1 Message Date
Fahad
ae64ede51f feat: auto-run setup when virtual environment is missing
- 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>
2025-06-09 20:52:47 +04:00
Fahad
eafe29ddac fix: update setup script to suggest Python 3.10 instead of 3.12
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>
2025-06-09 20:48:49 +04:00
Fahad
de04ed0312 fix: add Python 3.10+ version check to setup scripts
- 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>
2025-06-09 20:47:11 +04:00
Fahad
961925846c feat: add setup scripts and improve dependency installation
- 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>
2025-06-09 20:44:25 +04:00
Fahad
d6504cffac docs: add security section for file access configuration
- 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.
2025-06-09 20:35:58 +04:00
Fahad
e5f721a0d9 refactor: improve file access security model and sandbox logic
- 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>
2025-06-09 20:34:21 +04:00
Fahad
0b424cdd6a fix: handle root directory startup error from Claude Desktop
- 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>
2025-06-09 20:18:24 +04:00
Fahad
00b805e0f5 docs: add Claude Desktop UI configuration option for macOS
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>
2025-06-09 19:59:22 +04:00
Fahad
ce40cd8f26 style: add missing newlines at end of files
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>
2025-06-09 19:55:07 +04:00
Fahad
2bcc2e615b fix: correct broken anchor link for thinking modes section
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>
2025-06-09 19:50:38 +04:00
Fahad
ebbb3c0895 docs: enhance thinking mode documentation with cost guidance
- 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>
2025-06-09 19:45:03 +04:00
Fahad
c220ad28eb feat: add comprehensive Windows/WSL support and documentation
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>
2025-06-09 19:17:17 +04:00
Fahad
783ba73181 refactor: cleanup and comprehensive documentation
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>
2025-06-09 19:04:24 +04:00
vwieczorek
25228fd80d fix: enhance security focus in tool prompts
- 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>
2025-06-09 10:35:56 -04:00
Fahad
fd6e2f9b64 refactor: rename review_pending_changes to review_changes
- 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>
2025-06-09 14:37:03 +04:00
Fahad
dc366d3a23 refactor: remove unused TOOL_TRIGGERS dead code
- 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
2025-06-09 14:24:59 +04:00
Fahad
a11e1b84ac feat: enhance tool triggers and reorder documentation
- Add comprehensive triggers for chat tool including 'ask gemini', 'brainstorm', 'second opinion'
- Enhance triggers for all tools with more natural phrases:
  - think_deeper: added 'deeper analysis', 'critical thinking'
  - review_code: added 'review my code', 'find security issues'
  - debug_issue: added 'stack trace', 'crashed', 'what's wrong'
  - analyze: added 'what does this do', 'how does this work'
  - review_pending_changes: added 'review diff', 'validate implementation'
- Reorder Quick Tool Selection Guide to list chat first
- All tests pass (65 tests), ruff clean, black formatted
2025-06-09 14:17:33 +04:00
Fahad
b179c0ad48 feat: enhance review_pending_changes tool visibility and triggers
- 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
2025-06-09 14:12:55 +04:00
Fahad
c5ac7a08df docs: reorder tools with chat as first tool
- 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
2025-06-09 14:08:59 +04:00
Fahad
854dbe16cf fix: resolve E402 linting errors in conftest.py
- Move all imports to top of file including asyncio, tempfile, and pytest
- Maintain functionality while following proper import order
- All linting checks now pass
2025-06-09 14:02:13 +04:00
Fahad
8ae2b2836b chore: bump version to 2.8.0
- 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)
2025-06-09 14:00:09 +04:00
Fahad
5b75e0cb37 docs: remove tacky subtitle from header tagline 2025-06-09 13:57:44 +04:00
Fahad
49dc38f34c docs: remove excessive rocket emoji from tagline 2025-06-09 13:57:17 +04:00
Fahad
4346b37112 docs: remove tacky tagline from acknowledgments section 2025-06-09 13:56:40 +04:00
Fahad
c3b1ea9066 docs: enhance credits and branding to highlight Claude + Gemini collaboration
- 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
2025-06-09 13:55:39 +04:00
Fahad
e3e6f12cf3 fix: resolve linting issues across multiple files
- Remove unused imports (os, Optional, json, List, sys, MagicMock, DebugIssueTool)
- Remove unused variable assignments (safe_file_name)
- Fix f-strings without placeholders
- Reorder imports in test_live_integration.py
2025-06-09 13:53:37 +04:00
Fahad
a5da02c73f docs: add review_pending_changes tool highlight to Why This Server section
- 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
2025-06-09 13:50:41 +04:00
Fahad
667b8d0ce7 style: apply black formatting to review_pending_changes files
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 12:43:59 +04:00
Fahad
7ee610938b feat: add review_pending_changes tool and enforce absolute path security
- Add new review_pending_changes tool for comprehensive pre-commit reviews
- Implement filesystem sandboxing with MCP_PROJECT_ROOT
- Enforce absolute paths for all file/directory operations
- Add comprehensive git utilities for repository management
- Update all tools to use centralized path validation
- Add extensive test coverage for new features and security model
- Update documentation with new tool and path requirements
- Remove obsolete demo and guide files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 12:42:40 +04:00
Beehive Innovations
00b365f108 Create LICENSE 2025-06-09 12:02:22 +04:00
Fahad
299f7d3897 feat: add Claude-Gemini collaboration and chat capabilities
- Add collaboration demo showing dynamic context requests
- Implement chat tool for general conversations and brainstorming
- Add tool selection guide with clear boundaries
- Introduce models configuration system
- Update prompts for better tool descriptions
- Refactor server to remove redundant functionality
- Add comprehensive tests for collaboration features
- Enhance base tool with collaborative features

This enables Claude to request additional context from Gemini
during tool execution, improving analysis quality and accuracy.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 11:17:26 +04:00
Beehive Innovations
f5dd490c9d Update README.md
Added prompt
2025-06-09 09:46:07 +04:00
Fahad
b9e57aa3c4 fix: resolve GitHub Actions failures
- Remove Codecov coverage upload causing rate limit errors
- Remove pytest-cov dependency (not needed for CI)
- Simplify test workflow to focus on functionality
- All 37 tests still pass without coverage collection
- Workflow now more reliable and faster

🔧 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 09:41:30 +04:00
Fahad
78b8a93fe1 fix: correct GitHub Actions workflow syntax for secrets
- Fix invalid secrets reference in job-level if condition
- Add proper API key availability check with conditional steps
- Gracefully handle missing GEMINI_API_KEY secret
- Live tests now skip cleanly when no API key is configured

🔧 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 09:39:42 +04:00
Fahad
5ccedcecd8 style: fix linting and formatting issues
- Run black formatter on all Python files
- Fix ruff linting issues:
  - Remove unused imports
  - Remove unused variables
  - Fix f-string without placeholders
- All 37 tests still pass
- Code quality improved for CI/CD compliance

🧹 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 09:37:46 +04:00
Fahad
fb5c04ea60 feat: implement comprehensive thinking modes and migrate to google-genai
Major improvements to thinking capabilities and API integration:

- Remove all output token limits for future-proof responses
- Add 5-level thinking mode system: minimal, low, medium, high, max
- Migrate from google-generativeai to google-genai library
- Implement native thinkingBudget support for Gemini 2.5 Pro
- Set medium thinking as default for all tools, max for think_deeper

🧠 Thinking Modes:
- minimal (128 tokens) - simple tasks
- low (2048 tokens) - basic reasoning
- medium (8192 tokens) - default for most tools
- high (16384 tokens) - complex analysis
- max (32768 tokens) - default for think_deeper

🔧 Technical Changes:
- Complete migration to google-genai>=1.19.0
- Remove google-generativeai dependency
- Add ThinkingConfig with thinking_budget parameter
- Update all tools to support thinking_mode parameter
- Comprehensive test suite with 37 passing unit tests
- CI-friendly testing (no API key required for unit tests)
- Live integration tests for API verification

🧪 Testing & CI:
- Add GitHub Actions workflow with multi-Python support
- Unit tests use mocks, no API key required
- Live integration tests optional with API key
- Contributing guide with development setup
- All tests pass without external dependencies

🐛 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 09:35:21 +04:00
Beehive Innovations
9d45207d3f Update README.md 2025-06-09 09:29:26 +04:00
Fahad
e7dcc681d3 refactor: remove MAX_OUTPUT_TOKENS configuration
Remove the hardcoded 32,768 token output limit to allow Gemini to use
its default/dynamic output token allocation. This provides more
flexibility for responses without artificial constraints.

- Remove MAX_OUTPUT_TOKENS constant from config
- Remove max_tokens parameter from ToolRequest base model
- Clean up all references in server.py and tools/base.py
- Remove test_output_tokens.py as it's no longer needed
- Update imports to remove MAX_OUTPUT_TOKENS references

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 08:15:45 +04:00
Beehive Innovations
9bcc78c430 Update README.md
Screenshot
2025-06-09 07:07:42 +04:00
Fahad
986fb20f2e docs: add hash links to tools in 'Why This Server' section
- Convert tool names to clickable links that jump to relevant sections
- Makes it easier for users to navigate directly to tool documentation
- Improves README navigation and user experience

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:49:57 +04:00
Fahad
82f6d29036 feat: add system prompt to chat tool for better collaborative thinking
- Add CHAT_PROMPT to establish Gemini as senior developer partner
- Update handle_chat to use system prompt for consistent context
- Emphasize edge case exploration and deep thinking in prompts
- Enable thoughtful brainstorming and validation capabilities

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:48:28 +04:00
Fahad
72bc43be33 docs: add tool mappings to improve discoverability
- Add tool names in parentheses for each capability in "Why This Server?" section
- Expand "Start Using It\!" section to show all tools with arrow indicators
- Include examples for collaborative thinking (chat tool)
- Make it clearer which tool handles each type of request

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:42:35 +04:00
Fahad
c32dfd591b docs: remove redundant documentation files
- Remove MCP_DISCOVERY.md as README covers all necessary information
- Remove USAGE.md as it duplicates README content
- Consolidate all documentation into single comprehensive README.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:39:57 +04:00
Fahad
3059e3ec7b feat: enhance chat tool discovery for collaborative thinking
- Update chat tool description to emphasize collaborative thinking capabilities
- Add explicit triggers for brainstorming and sharing ideas with Gemini
- Enhance prompt parameter description to include "current thinking"
- Update README to highlight chat as a thinking partner
- Update MCP_DISCOVERY.md with current tool names and enhanced examples
- Bump version to 2.5.0

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:37:59 +04:00
Fahad
e23a30e3e5 docs: reorganize README to highlight file/directory capabilities
- Add key capability highlight in the intro about reading files/directories
- Move File & Directory Support section up before Quickstart
- Remove duplicate Directory Support Features section from tool parameters
- Make the file handling capability more prominent as it's a core feature

This better communicates the server's primary strength of passing entire
codebases to Gemini for comprehensive analysis.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:24:03 +04:00
Fahad
8871748c1b fix: standardize file parameter naming across all tools
- Change `relevant_files` to `files` in debug_issue tool
- Change `reference_files` to `files` in think_deeper tool
- Now all tools consistently use `files` parameter name
- Fix cross-platform test for Windows path separators
- Update README to reflect consistent parameter naming

This improves API consistency and reduces confusion when using different tools.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:14:18 +04:00
Fahad
9a5fc06bc4 docs: remove temporal reference in README
Make documentation timeless by removing 'now' from feature description

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:01:11 +04:00
Fahad
545338ca23 feat: add full directory support and smart file handling
Major improvements to file handling capabilities:

- Add directory traversal support to all file-processing tools
- Tools now accept both individual files and entire directories
- Automatically expand directories and discover code files recursively
- Smart filtering: skip hidden files, __pycache__, and non-code files
- Progressive token loading: read as many files as possible within limits
- Clear file separation markers with full paths for Gemini

Key changes:
- Rewrite file_utils.py with expand_paths() and improved read_files()
- Update all tool descriptions to indicate directory support
- Add comprehensive tests for directory handling and token limits
- Document tool parameters and examples in README
- Bump version to 2.4.2

All tools (analyze, review_code, debug_issue, think_deeper) now support:
- Single files: "analyze main.py"
- Directories: "review src/"
- Mixed paths: "analyze config.py, src/, tests/"

This enables analyzing entire projects or specific subsystems efficiently
while respecting token limits and providing clear file boundaries.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 06:00:25 +04:00
Fahad
024fdd48c9 fix: remove date format assertions from tests
- Remove all date length and format validations
- Only check that __updated__ is a string
- Simplifies tests and prevents future breakage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 05:38:09 +04:00
Fahad
bccde9307f fix: make tests version-agnostic to prevent future breakage
- Remove hardcoded version checks in test_server.py
- Update test_config.py to check version format instead of specific value
- Tests now validate structure/format rather than exact versions
- Prevents test failures when bumping versions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 05:37:14 +04:00