A Model Context Protocol (MCP) server that provides AI-powered code review using Google Gemini 3 Pro. LGTMCP reviews your code changes and either commits them automatically (if approved) or provides detailed feedback for improvements.
- AI Code Review: Leverages Google Gemini 3 Pro for intelligent code analysis
- Automatic Commit: Commits changes when code passes review (optional)
- Security Scanning: Built-in secret detection using Gitleaks
- Gitignore Protection: Prevents access to gitignored files during review
- MCP Integration: Works seamlessly with Claude Desktop and other MCP clients
- Review-Only Mode: Option to get feedback without automatic commits
git clone https://msrl.dev/lgtmcp.git
cd lgtmcp
make buildmake installThis installs the binary to ~/bin by default. You can customize the installation directory:
make install INSTALL_PATH=/usr/local/binNote: Ensure ~/bin is in your shell's PATH. Add this to your shell configuration file if needed:
# For bash/zsh
export PATH="$HOME/bin:$PATH"-
Get a Google API key from Google AI Studio.
-
Create configuration directory:
mkdir -p ~/.config/lgtmcp -
Create configuration file from example:
cp config.example.yaml ~/.config/lgtmcp/config.yaml -
Edit the configuration file with your settings:
google: api_key: "your-gemini-api-key-here" gemini: model: "gemini-3-pro-preview" fallback_model: "gemini-2.5-pro" # Default; set to "none" to disable logging: level: "info"
The fallback_model is use when we run into quota exhaustion on the primary
model. While Gemini 3 Pro is in preview, it has very low daily rate limits.
-
Set up configuration file as described above
-
Configure LGTMCP with Claude Code:
claude mcp add lgtmcp -- lgtmcpThe MCP server exposes two tools:
Reviews code changes and returns feedback without committing.
Parameters:
directory: Path to the git repository
Reviews code changes and commits if approved. This is a separate tool so that
you can set tool permissions on it differently from review.
Parameters:
directory: Path to the git repositorycommit_message: Message for the commit if approved
Review only (no commit):
review_only("/path/to/repo")
Review and commit if approved:
review_and_commit("/path/to/repo", "Add new feature")
- Security check: Scans files for secrets using Gitleaks
- Diff generation: Creates diff of all staged and unstaged changes
- AI review: Sends diff to Gemini 3 Pro for analysis
- Gemini can request file contents for context
- Gitignored files are automatically blocked from access
- Decision:
- If approved (LGTM): Returns approval message (
review_only) or commits changes (review_and_commit) - If not approved: Returns detailed feedback
- If approved (LGTM): Returns approval message (
All configuration is managed through the YAML configuration file located at:
$XDG_CONFIG_HOME/lgtmcp/config.yaml(if XDG_CONFIG_HOME is set)~/.config/lgtmcp/config.yaml(default)
See config.example.yaml for all available configuration options.
LGTMCP logs are written to platform-specific default locations:
- macOS:
~/Library/Logs/lgtmcp/lgtmcp.log - Linux:
~/.local/share/lgtmcp/logs/lgtmcp.log(or$XDG_DATA_HOME/lgtmcp/logs/lgtmcp.log) - Windows:
%LOCALAPPDATA%\lgtmcp\logs\lgtmcp.log
You can configure logging in your config.yaml:
logging:
output: "directory" # Options: none, stdout, stderr, directory, mcp
level: "info" # Options: debug, info, warn, error
# directory: "/custom/log/path" # Optional custom directoryTo view logs on macOS:
# View the log file
tail -f ~/Library/Logs/lgtmcp/lgtmcp.log
# Or open in Console.app
open ~/Library/Logs/lgtmcp/lgtmcp.logmake buildmake testmake lintmake coverage"Not a git repository" error
- Ensure you're in a git repository with a
.gitdirectory
"Secrets detected" error
- Review and remove any exposed secrets from your changes
"Gemini API error"
- Verify your API key is valid and has quota remaining
- Check network connectivity
"No changes to review"
- Make sure you have staged or unstaged changes in your repository