Gemini Code Reviewer
A universal MCP server that provides AI-powered code review and analysis for any programming language using Google's Gemini CLI.
README
Gemini Code Reviewer
A universal Model Context Protocol (MCP) server that provides AI-powered code review and analysis for any programming language using Google's Gemini CLI. Perfect for developers who want intelligent code feedback directly in their development workflow.
šÆ Purpose
This MCP server acts as your AI-powered code reviewer, providing:
- Comprehensive Code Reviews with severity ratings and actionable feedback
- Code Analysis & Explanation for understanding complex logic
- Improvement Suggestions tailored to your specific goals with clear code examples
- Architecture Validation for design patterns and scalability
- Multi-Language Support with language-specific best practices
- Structured Output - Clear explanations with formatted code suggestions
š Quick Start
Prerequisites
- Node.js v18+
- Gemini CLI installed and configured
- Claude Code CLI or Claude Desktop
- Any Unix-like environment (Linux, macOS, WSL)
Installation
# Install as project dependency
npm install --save-dev github:iamrichardd/claude-gemini-mcp-server
# Add MCP server to Claude CLI
claude mcp add -s project gemini-code-reviewer npx @iamrichardd/claude-gemini-mcp-server
# Initialize and approve the MCP server
claude init
# Choose option 1: "Use this and all future MCP servers in this project"
Important Note on Context Files:
This package includes GEMINI.md and CLAUDE.md files that provide context for its own development. To prevent these files from interfering with the context of your project, a postinstall script will automatically remove them upon installation. This ensures that the Gemini and Claude CLIs use your project's specific context files, not the ones from this server.
Verify Installation
# Check if MCP server is registered and connected
claude mcp list
# Should show: gemini-code-reviewer ā connected
# Test basic functionality
claude "Use get_review_history"
š Available Tools
| Tool | Description | Best For |
|---|---|---|
gemini_code_review |
Comprehensive code review with ratings and priorities | Code quality, bug detection, best practices |
gemini_analyze_code |
Deep code analysis and explanation | Understanding complex code, optimization |
gemini_suggest_improvements |
Specific improvement recommendations with code examples | Refactoring, performance, maintainability |
gemini_validate_architecture |
Architecture and design pattern validation | System design, scalability, SOLID principles |
gemini_propose_plan |
Generate structured implementation plans for other AIs to follow | Task planning, workflow design, AI collaboration |
get_review_history |
Session history and review tracking | Project overview, progress tracking |
š Supported Languages
Auto-detected support for 30+ languages:
Web Development
- JavaScript, TypeScript, HTML, CSS, SCSS, Sass
- React (JSX/TSX), Vue.js, Angular
Backend & Systems
- Python, Java, C++, C, C#, Go, Rust
- PHP, Ruby, Node.js, Kotlin, Swift
Data & Analytics
- R, SQL, MATLAB, Python (NumPy/Pandas)
Mobile Development
- Swift (iOS), Kotlin (Android), Dart (Flutter)
Functional & Specialized
- Haskell, Clojure, OCaml, Elixir, Erlang, Scala
Scripting & Configuration
- Shell, Bash, PowerShell, Perl, Lua, Vim script
Financial & Trading
- Pine Script (TradingView indicators/strategies)
Language detection is automatic based on file extension. Manual specification is also supported.
š” Usage Examples
Comprehensive Code Review
claude "Use gemini_code_review with file_path './src/api.js' and context 'REST API endpoint' and focus_areas 'security'"
# Get detailed security review with specific recommendations
Code Analysis & Explanation
claude "Use gemini_analyze_code with file_path './algorithm.py' and analysis_type 'optimize'"
Get Improvement Suggestions
claude "Use gemini_suggest_improvements with file_path './component.tsx' and improvement_goals 'performance'"
# Get specific performance improvements with code examples
Architecture Validation
claude "Use gemini_validate_architecture with file_path './service.go' and validation_focus 'scalability'"
Review Session Tracking
claude "Use get_review_history"
AI Collaboration Planning
claude "Use gemini_propose_plan with prompt 'Create a user authentication system with JWT tokens'"
# Get a structured plan that Claude can then execute step by step
š Code Suggestions Format
When Gemini identifies specific code improvements, you'll receive:
Structured Response Format
š” Gemini Improvement Suggestion - api.js (JavaScript)
**Rationale:**
This code uses nested callbacks which can lead to callback hell. Converting to async/await will improve readability and error handling.
**Suggested Code Change:**
Old Code:
```javascript
getData(callback) {
db.query('SELECT * FROM users', (err, result) => {
if (err) callback(err);
else callback(null, result);
});
}
New Code: ```javascript async getData() { try { const result = await db.query('SELECT * FROM users'); return result; } catch (err) { throw err; } } ```
Features
- Clear Explanations: Detailed rationale for each suggestion
- Formatted Code: Properly highlighted old and new code blocks
- Language-Specific: Tailored to your programming language's conventions
- Copy-Paste Ready: Well-formatted code for easy implementation
š§ Configuration
Claude CLI MCP Setup
The MCP server integrates with Claude CLI using project-level configuration:
# Add MCP server to your project
claude mcp add -s project gemini-code-reviewer npx @iamrichardd/claude-gemini-mcp-server
# Initialize and approve MCP servers
claude init
# Choose option 1 for persistent approval
Manual Configuration (if needed)
Create .mcp.json in your project root:
For Production Usage (published package):
{
"mcpServers": {
"gemini-code-reviewer": {
"command": "npx",
"args": ["@iamrichardd/claude-gemini-mcp-server"],
"transport": "stdio"
}
}
}
For Local Development:
{
"mcpServers": {
"gemini-code-reviewer": {
"command": "node",
"args": ["server.js"],
"transport": "stdio"
}
}
}
š Tool Parameters
gemini_code_review
- file_path (required): Path to source code file
- context (optional): Additional context about the code
- focus_areas (optional):
syntax,logic,performance,best_practices,security,testing - language (optional): Programming language (auto-detected if not specified)
gemini_analyze_code
- file_path (required): Path to source code file
- **Provide an AI prompt for Gemini CLI ** (optional):
explain,optimize,debug,refactor,compare - language (optional): Programming language (auto-detected)
gemini_suggest_improvements
- file_path (required): Path to source code file
- improvement_goals (optional):
performance,readability,maintainability,scalability,security - language (optional): Programming language (auto-detected)
gemini_validate_architecture
- file_path (required): Path to source code file or directory
- validation_focus (optional):
architecture,design_patterns,scalability,testability,maintainability - language (optional): Programming language (auto-detected)
gemini_propose_plan
- prompt (required): High-level user request or task description that needs a plan
- conversation_history (optional): Previous conversation context for iterative refinement of the plan
š ļø Development Workflow
Recommended Usage Pattern
- Implement your code using Claude Code CLI directly
- Review using
gemini_code_reviewfor comprehensive feedback with specific recommendations - Analyze complex sections with
gemini_analyze_code - Improve based on
gemini_suggest_improvementsrecommendations with clear code examples - Validate overall architecture with
gemini_validate_architecture - Track progress with
get_review_history
Standard Workflow
- Request Review/Suggestions ā Server analyzes code with Gemini
- Receive Detailed Feedback ā Get explanation with formatted code suggestions
- Review & Implement ā Examine suggestions and manually apply improvements
- Copy/Paste ā Use provided code examples to implement changes
- Iterate ā Continue with next suggestions or move to validation
Integration with IDEs
Works seamlessly with:
- Claude Code CLI (primary integration)
- Claude Desktop (alternative setup)
- WebStorm/IntelliJ (via Claude Code plugin)
- VS Code (via Claude Code integration)
šØ Troubleshooting
MCP Server Not Found
# Check installation
npm list | grep claude-gemini-mcp-server
# Reinstall if needed
npm install --save-dev github:iamrichardd/claude-gemini-mcp-server
claude mcp add -s project gemini-code-reviewer npx @iamrichardd/claude-gemini-mcp-server
claude init
MCP Server Connection Hanging
If commands like claude "Use get_review_history" hang or timeout:
# For local development, use local server instead of npm package
claude mcp add -s project gemini-code-reviewer node server.js
claude init
# Verify server starts locally
node server.js
# Should show: "Gemini Code Review MCP Server (Security-Hardened v2.1.1) running on stdio"
# Check .mcp.json uses correct configuration
cat .mcp.json
# For local dev: should use "command": "node", "args": ["server.js"]
# For published package: should use "command": "npx", "args": ["@iamrichardd/claude-gemini-mcp-server"]
Gemini CLI Issues
# Test Gemini CLI directly
gemini -p "test prompt"
# Verify authentication and availability
gemini --version
# Check if Gemini CLI is in PATH
which gemini
Permission Issues
# Ensure MCP server is approved
claude init
# Choose option 1: "Use this and all future MCP servers in this project"
# Check MCP server status
claude mcp list
# Should show: gemini-code-reviewer ā connected
Binary File Errors
# The server automatically detects and rejects binary files
# Error: "File appears to be binary, not a text-based source code file"
# Solution: Ensure you're pointing to text-based source code files only
Language Detection Issues
# Manually specify language if auto-detection fails
claude "Use gemini_code_review with file_path './script' and language 'Python'"
Server Execution Issues
# Verify server starts correctly
npx @iamrichardd/claude-gemini-mcp-server
# Should show: "Gemini Code Review MCP Server (Security-Hardened v2.0.7) running on stdio"
# Check file permissions
chmod +x node_modules/@iamrichardd/claude-gemini-mcp-server/server.js
Error Stack Trace Issues
# The server preserves complete error context for debugging
# Check logs for detailed error information including:
# - Original error message and stack trace
# - Operation context (file path, operation type)
# - Error cause chain for complete debugging context
š¤ Contributing
Contributions welcome! Please see our Contributing Guidelines for details.
Development Setup
git clone https://github.com/iamrichardd/claude-gemini-mcp-server.git
cd claude-gemini-mcp-server
npm install
# Configure MCP server for local development
claude mcp add -s project gemini-code-reviewer node server.js
# Initialize and approve the MCP server
claude init
# Choose option 1: "Use this and all future MCP servers in this project"
# Start development server
npm run dev
Local Development Configuration
For local development, use the local server instead of the npm package:
{
"mcpServers": {
"gemini-code-reviewer": {
"command": "node",
"args": ["server.js"],
"transport": "stdio"
}
}
}
š License
MIT License - see LICENSE file for details.
š Related Tools
- Gemini CLI - Google's AI CLI tool
- Claude Code CLI - Anthropic's AI development assistant
- Model Context Protocol - Standard for AI tool integration
š Use Cases
For Individual Developers
- Code Quality Assurance: Automated reviews before commits
- Learning Tool: Understand complex codebases and patterns
- Performance Optimization: Identify bottlenecks and improvements
- Best Practices: Language-specific recommendations
For Teams
- Code Review Automation: Pre-review screening and feedback
- Architecture Validation: Ensure design consistency
- Onboarding: Help new team members understand code
- Documentation: Generate explanations for complex logic
For Specific Domains
- Web Development: Security, performance, accessibility reviews
- Backend Systems: Scalability, reliability, architecture validation
- Data Science: Algorithm optimization, code clarity
- Mobile Development: Platform-specific best practices
- Financial/Trading: Pine Script strategy validation and optimization
Powered by Google Gemini AI | Compatible with Claude Code | Universal Language Support
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.