diff --git a/README.md b/README.md
index 3477003..5fceed6 100644
--- a/README.md
+++ b/README.md
@@ -3,12 +3,12 @@
[zen_web.webm](https://github.com/user-attachments/assets/851e3911-7f06-47c0-a4ab-a2601236697c)
- 🤖 Claude + [Gemini / OpenAI / Grok / OpenRouter / DIAL / Ollama / Any Model] = Your Ultimate AI Development Team
+ 🤖 [Claude](https://www.anthropic.com/claude-code) OR [Gemini CLI](https://github.com/google-gemini/gemini-cli) + [Gemini / OpenAI / Grok / OpenRouter / DIAL / Ollama / Any Model] = Your Ultimate AI Development Team
-The ultimate development partners for Claude - a Model Context Protocol server that gives Claude access to multiple AI
+The ultimate development partners for your favorite Coding Agent ([Claude](https://www.anthropic.com/claude-code) OR [Gemini CLI](https://github.com/google-gemini/gemini-cli)) - a Model Context Protocol server that gives you access to multiple AI
models for enhanced code analysis, problem-solving, and collaborative development.
**Features true AI orchestration with conversations that continue across workflows** - Give Claude a complex
@@ -73,7 +73,7 @@ Because these AI models [clearly aren't when they get chatty →](docs/ai_banter
- [Complete Advanced Guide](docs/advanced-usage.md) - Model configuration, thinking modes, workflows, tool parameters
- **Setup & Support**
- - [WSL Setup Guide](#21-wsl-windows-subsystem-for-linux-setup-guide) - Windows Subsystem for Linux configuration
+ - [WSL Setup Guide](docs/wsl-setup.md) - Windows Subsystem for Linux configuration
- [Troubleshooting Guide](docs/troubleshooting.md) - Common issues and debugging steps
- [License](#license) - Apache 2.0
@@ -181,85 +181,13 @@ cd zen-mcp-server
- **Sets up everything automatically** - Python environment, dependencies, configuration
- **Configures Claude integrations** - Adds to Claude Code CLI and guides Desktop setup
- **Ready to use immediately** - No manual configuration needed
+- **Also works with Gemini CLI** - See [Gemini CLI Setup](docs/gemini-setup.md) for configuration
**After updates:** Always run `./run-server.sh` again after `git pull` to ensure everything stays current.
+**Windows users:** Using WSL? See the [WSL Setup Guide](docs/wsl-setup.md) for detailed instructions.
-### 2.1. WSL (Windows Subsystem for Linux) Setup Guide
-
-If you're running on Windows with WSL, follow these additional steps to ensure proper configuration:
-
-#### Prerequisites for WSL
-```bash
-# Update WSL and ensure you have a recent Ubuntu distribution
-sudo apt update && sudo apt upgrade -y
-
-# Install required system dependencies
-sudo apt install -y python3-venv python3-pip curl git
-
-# Install Node.js and npm (required for Claude Code CLI)
-curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
-sudo apt install -y nodejs
-
-# Install Claude Code CLI globally
-npm install -g @anthropic-ai/claude-code
-```
-
-#### WSL-Specific Installation Steps
-
-1. **Clone the repository in your WSL environment** (not in Windows filesystem):
- ```bash
- # Navigate to your home directory or preferred location in WSL
- cd ~
-
- # Clone the repository
- git clone https://github.com/BeehiveInnovations/zen-mcp-server.git
- cd zen-mcp-server
- ```
-
-2. **Run the setup script**:
- ```bash
- # Make the script executable and run it
- chmod +x run-server.sh
- ./run-server.sh
- ```
-
-3. **Verify Claude Code can find the MCP server**:
- ```bash
- # List configured MCP servers
- claude mcp list
-
- # You should see 'zen' listed in the output
- # If not, the setup script will provide the correct configuration
- ```
-
-#### Troubleshooting WSL Issues
-
-**Python Environment Issues:**
-```bash
-# If you encounter Python virtual environment issues
-sudo apt install -y python3.12-venv python3.12-dev
-
-# Ensure pip is up to date
-python3 -m pip install --upgrade pip
-```
-
-**Path Issues:**
-- Always use the full WSL path for MCP configuration (e.g., `/home/YourName/zen-mcp-server/`)
-- The setup script automatically detects WSL and configures the correct paths
-
-**Claude Code Connection Issues:**
-```bash
-# If Claude Code can't connect to the MCP server, check the configuration
-cat ~/.claude.json | grep -A 10 "zen"
-
-# The configuration should show the correct WSL path to the Python executable
-# Example: "/home/YourName/zen-mcp-server/.zen_venv/bin/python"
-```
-
-**Performance Tip:** For best performance, keep your zen-mcp-server directory in the WSL filesystem (e.g., `~/zen-mcp-server`) rather than in the Windows filesystem (`/mnt/c/...`).
-
-### 4. Add Your API Keys
+### 3. Add Your API Keys
```bash
# Edit .env to add your API keys (if not already set in environment)
@@ -297,7 +225,7 @@ If you were already running a `claude` code session, please exit and start a new
2. **Copy the configuration** shown by `./run-server.sh -c` into your `claude_desktop_config.json`
3. **Restart Claude Desktop** for changes to take effect
-### 5. Start Using It!
+### 4. Start Using It!
Just ask Claude naturally:
- "Think deeper about this architecture design with zen" → Claude picks best model + `thinkdeep`
diff --git a/docs/gemini-setup.md b/docs/gemini-setup.md
new file mode 100644
index 0000000..bf694ae
--- /dev/null
+++ b/docs/gemini-setup.md
@@ -0,0 +1,43 @@
+# Gemini CLI Setup
+
+> **Note**: While Zen MCP Server connects successfully to Gemini CLI, tool invocation is not working
+> correctly yet. We'll update this guide once the integration is fully functional.
+
+This guide explains how to configure Zen MCP Server to work with [Gemini CLI](https://github.com/google-gemini/gemini-cli).
+
+## Prerequisites
+
+- Zen MCP Server installed and configured
+- Gemini CLI installed
+- At least one API key configured in your `.env` file
+
+## Configuration
+
+1. Edit `~/.gemini/settings.json` and add:
+
+```json
+{
+ "mcpServers": {
+ "zen": {
+ "command": "/path/to/zen-mcp-server/zen-mcp-server"
+ }
+ }
+}
+```
+
+2. Replace `/path/to/zen-mcp-server` with your actual Zen installation path.
+
+3. If the `zen-mcp-server` wrapper script doesn't exist, create it:
+
+```bash
+#!/bin/bash
+DIR="$(cd "$(dirname "$0")" && pwd)"
+cd "$DIR"
+exec .zen_venv/bin/python server.py "$@"
+```
+
+Then make it executable: `chmod +x zen-mcp-server`
+
+4. Restart Gemini CLI.
+
+All 15 Zen tools are now available in your Gemini CLI session.
\ No newline at end of file
diff --git a/docs/wsl-setup.md b/docs/wsl-setup.md
new file mode 100644
index 0000000..c417ef1
--- /dev/null
+++ b/docs/wsl-setup.md
@@ -0,0 +1,79 @@
+# WSL (Windows Subsystem for Linux) Setup Guide
+
+This guide provides detailed instructions for setting up Zen MCP Server on Windows using WSL.
+
+## Prerequisites for WSL
+
+```bash
+# Update WSL and ensure you have a recent Ubuntu distribution
+sudo apt update && sudo apt upgrade -y
+
+# Install required system dependencies
+sudo apt install -y python3-venv python3-pip curl git
+
+# Install Node.js and npm (required for Claude Code CLI)
+curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
+sudo apt install -y nodejs
+
+# Install Claude Code CLI globally
+npm install -g @anthropic-ai/claude-code
+```
+
+## WSL-Specific Installation Steps
+
+1. **Clone the repository in your WSL environment** (not in Windows filesystem):
+ ```bash
+ # Navigate to your home directory or preferred location in WSL
+ cd ~
+
+ # Clone the repository
+ git clone https://github.com/BeehiveInnovations/zen-mcp-server.git
+ cd zen-mcp-server
+ ```
+
+2. **Run the setup script**:
+ ```bash
+ # Make the script executable and run it
+ chmod +x run-server.sh
+ ./run-server.sh
+ ```
+
+3. **Verify Claude Code can find the MCP server**:
+ ```bash
+ # List configured MCP servers
+ claude mcp list
+
+ # You should see 'zen' listed in the output
+ # If not, the setup script will provide the correct configuration
+ ```
+
+## Troubleshooting WSL Issues
+
+### Python Environment Issues
+
+```bash
+# If you encounter Python virtual environment issues
+sudo apt install -y python3.12-venv python3.12-dev
+
+# Ensure pip is up to date
+python3 -m pip install --upgrade pip
+```
+
+### Path Issues
+
+- Always use the full WSL path for MCP configuration (e.g., `/home/YourName/zen-mcp-server/`)
+- The setup script automatically detects WSL and configures the correct paths
+
+### Claude Code Connection Issues
+
+```bash
+# If Claude Code can't connect to the MCP server, check the configuration
+cat ~/.claude.json | grep -A 10 "zen"
+
+# The configuration should show the correct WSL path to the Python executable
+# Example: "/home/YourName/zen-mcp-server/.zen_venv/bin/python"
+```
+
+### Performance Tip
+
+For best performance, keep your zen-mcp-server directory in the WSL filesystem (e.g., `~/zen-mcp-server`) rather than in the Windows filesystem (`/mnt/c/...`).
\ No newline at end of file
diff --git a/run-server.sh b/run-server.sh
index 5fa9fe3..5880266 100755
--- a/run-server.sh
+++ b/run-server.sh
@@ -1298,11 +1298,108 @@ EOF
fi
}
+# Check and update Gemini CLI configuration
+check_gemini_cli_integration() {
+ local script_dir="$1"
+ local zen_wrapper="$script_dir/zen-mcp-server"
+
+ # Check if Gemini settings file exists
+ local gemini_config="$HOME/.gemini/settings.json"
+ if [[ ! -f "$gemini_config" ]]; then
+ # Gemini CLI not installed or not configured
+ return 0
+ fi
+
+ # Check if zen is already configured
+ if grep -q '"zen"' "$gemini_config" 2>/dev/null; then
+ # Already configured
+ return 0
+ fi
+
+ # Ask user if they want to add Zen to Gemini CLI
+ echo ""
+ read -p "Configure Zen for Gemini CLI? (Y/n): " -n 1 -r
+ echo ""
+ if [[ $REPLY =~ ^[Nn]$ ]]; then
+ print_info "Skipping Gemini CLI integration"
+ return 0
+ fi
+
+ # Ensure wrapper script exists
+ if [[ ! -f "$zen_wrapper" ]]; then
+ print_info "Creating wrapper script for Gemini CLI..."
+ cat > "$zen_wrapper" << 'EOF'
+#!/bin/bash
+# Wrapper script for Gemini CLI compatibility
+DIR="$(cd "$(dirname "$0")" && pwd)"
+cd "$DIR"
+exec .zen_venv/bin/python server.py "$@"
+EOF
+ chmod +x "$zen_wrapper"
+ print_success "Created zen-mcp-server wrapper script"
+ fi
+
+ # Update Gemini settings
+ print_info "Updating Gemini CLI configuration..."
+
+ # Create backup
+ cp "$gemini_config" "${gemini_config}.backup_$(date +%Y%m%d_%H%M%S)"
+
+ # Add zen configuration using Python for proper JSON handling
+ local temp_file=$(mktemp)
+ python3 -c "
+import json
+import sys
+
+try:
+ with open('$gemini_config', 'r') as f:
+ config = json.load(f)
+
+ # Ensure mcpServers exists
+ if 'mcpServers' not in config:
+ config['mcpServers'] = {}
+
+ # Add zen server
+ config['mcpServers']['zen'] = {
+ 'command': '$zen_wrapper'
+ }
+
+ with open('$temp_file', 'w') as f:
+ json.dump(config, f, indent=2)
+
+except Exception as e:
+ print(f'Error processing config: {e}', file=sys.stderr)
+ sys.exit(1)
+" && mv "$temp_file" "$gemini_config"
+
+ if [[ $? -eq 0 ]]; then
+ print_success "Successfully configured Gemini CLI"
+ echo " Config: $gemini_config"
+ echo " Restart Gemini CLI to use Zen MCP Server"
+ else
+ print_error "Failed to update Gemini CLI config"
+ echo "Manual config location: $gemini_config"
+ echo "Add this configuration:"
+ cat << EOF
+{
+ "mcpServers": {
+ "zen": {
+ "command": "$zen_wrapper"
+ }
+ }
+}
+EOF
+ fi
+}
+
# Display configuration instructions
display_config_instructions() {
local python_cmd="$1"
local server_path="$2"
+ # Get script directory for Gemini CLI config
+ local script_dir=$(dirname "$server_path")
+
echo ""
local config_header="ZEN MCP SERVER CONFIGURATION"
echo "===== $config_header ====="
@@ -1340,6 +1437,20 @@ EOF
echo ""
print_info "3. Restart Claude Desktop after updating the config file"
echo ""
+
+ print_info "For Gemini CLI:"
+ echo " Add this configuration to ~/.gemini/settings.json:"
+ echo ""
+ cat << EOF
+ {
+ "mcpServers": {
+ "zen": {
+ "command": "$script_dir/zen-mcp-server"
+ }
+ }
+ }
+EOF
+ echo ""
}
# Display setup instructions
@@ -1509,7 +1620,10 @@ main() {
check_claude_cli_integration "$python_cmd" "$server_path"
check_claude_desktop_integration "$python_cmd" "$server_path"
- # Step 10: Display log information
+ # Step 10: Check Gemini CLI integration
+ check_gemini_cli_integration "$script_dir"
+
+ # Step 11: Display log information
echo ""
echo "Logs will be written to: $script_dir/$LOG_DIR/$LOG_FILE"
echo ""
@@ -1522,7 +1636,7 @@ main() {
echo "To show config: ./run-server.sh -c"
echo "To update: git pull, then run ./run-server.sh again"
echo ""
- echo "Happy Clauding! 🎉"
+ echo "Happy coding! 🎉"
fi
}
diff --git a/tools/listmodels.py b/tools/listmodels.py
index 0813ee7..2afe61b 100644
--- a/tools/listmodels.py
+++ b/tools/listmodels.py
@@ -43,7 +43,16 @@ class ListModelsTool(BaseTool):
def get_input_schema(self) -> dict[str, Any]:
"""Return the JSON schema for the tool's input"""
- return {"type": "object", "properties": {}, "required": []}
+ return {
+ "type": "object",
+ "properties": {
+ "model": {
+ "type": "string",
+ "description": "Model to use (ignored by listmodels tool)"
+ }
+ },
+ "required": []
+ }
def get_system_prompt(self) -> str:
"""No AI model needed for this tool"""
diff --git a/tools/version.py b/tools/version.py
index e9a473a..e52158a 100644
--- a/tools/version.py
+++ b/tools/version.py
@@ -147,7 +147,16 @@ class VersionTool(BaseTool):
def get_input_schema(self) -> dict[str, Any]:
"""Return the JSON schema for the tool's input"""
- return {"type": "object", "properties": {}, "required": []}
+ return {
+ "type": "object",
+ "properties": {
+ "model": {
+ "type": "string",
+ "description": "Model to use (ignored by version tool)"
+ }
+ },
+ "required": []
+ }
def get_system_prompt(self) -> str:
"""No AI model needed for this tool"""
diff --git a/zen-mcp-server b/zen-mcp-server
new file mode 100755
index 0000000..9375307
--- /dev/null
+++ b/zen-mcp-server
@@ -0,0 +1,11 @@
+#!/bin/bash
+# Wrapper script for Gemini CLI compatibility
+
+# Get the directory of this script
+DIR="$(cd "$(dirname "$0")" && pwd)"
+
+# Change to the zen-mcp-server directory
+cd "$DIR"
+
+# Execute the Python server with all arguments passed through
+exec .zen_venv/bin/python server.py "$@"
\ No newline at end of file