🚀 Code Lens MCP Server
Code Lens MCP Server 是一个由 Google Gemini 驱动的 MCP 服务器,可用于自动化代码审查、分析和文档生成,为开发者提供高效、准确的代码处理解决方案。
🚀 快速开始
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
Docker
docker run -i --rm -e GEMINI_API_KEY="your-api-key" ghcr.io/j0hanz/code-lens
或者使用 Docker Compose:
GEMINI_API_KEY=your-api-key docker compose up
✨ 主要特性
- PR 审查流程:生成差异、评估影响、检测 API 重大变更,并生成带有合并建议的审查摘要。
- 文件分析:加载任何源文件以获取重构建议、检测代码异味、生成文档,并支持自然语言问答。
- 逻辑验证:使用 Gemini 的代码执行沙箱验证算法。
- 结构化输出:所有工具通过 Zod v4 输出模式返回经过验证的 JSON。
- 网络搜索:使用 Google Search with Grounding 进行最新信息检索。
- 任务生命周期支持:除
load_file 外,所有工具都可以通过 MCP 任务运行,并支持轮询、取消和进度更新。
📦 安装指南
环境要求
各客户端安装配置
在 VS Code 中安装

添加到 .vscode/mcp.json:
{
"servers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
或者通过 CLI 安装:
code --add-mcp '{"name":"code-lens","command":"npx","args":["-y","@j0hanz/code-lens-mcp@latest"]}'
更多信息,请参阅 VS Code MCP 文档。
在 VS Code Insiders 中安装

添加到 .vscode/mcp.json:
{
"servers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
或者通过 CLI 安装:
code-insiders --add-mcp '{"name":"code-lens","command":"npx","args":["-y","@j0hanz/code-lens-mcp@latest"]}'
更多信息,请参阅 VS Code Insiders MCP 文档。
在 Cursor 中安装

添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Cursor MCP 文档。
在 Visual Studio 中安装

添加到 mcp.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Visual Studio MCP 文档。
在 Goose 中安装

{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Goose MCP 文档。
在 LM Studio 中安装

{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 LM Studio MCP 文档。
在 Claude Desktop 中安装
添加到 claude_desktop_config.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Claude Desktop MCP 文档。
在 Claude Code 中安装
claude mcp add code-lens -- npx -y @j0hanz/code-lens-mcp@latest
或者添加到配置文件:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Claude Code MCP 文档。
在 Windsurf 中安装
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Windsurf MCP 文档。
在 Amp 中安装
amp mcp add code-lens -- npx -y @j0hanz/code-lens-mcp@latest
或者添加到配置文件:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Amp MCP 文档。
在 Cline 中安装
添加到 cline_mcp_settings.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Cline MCP 文档。
在 Codex CLI 中安装
添加到 ~/.codex/config.yaml:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Codex CLI MCP 文档。
在 GitHub Copilot 中安装
添加到 .vscode/mcp.json:
{
"servers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 GitHub Copilot MCP 文档。
在 Warp 中安装
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Warp MCP 文档。
在 Kiro 中安装
添加到 .kiro/settings/mcp.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Kiro MCP 文档。
在 Gemini CLI 中安装
添加到 ~/.gemini/settings.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Gemini CLI MCP 文档。
在 Zed 中安装
添加到 ~/.config/zed/settings.json:
{
"context_servers": {
"code-lens": {
"settings": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"]
}
}
}
}
更多信息,请参阅 Zed MCP 文档。
在 Augment 中安装
添加到 VS Code 的 settings.json 文件的 augment.advanced 部分:
{
"augment.advanced": {
"mcpServers": [
{
"id": "code-lens",
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
]
}
}
更多信息,请参阅 Augment MCP 文档。
在 Roo Code 中安装
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Roo Code MCP 文档。
在 Kilo Code 中安装
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
更多信息,请参阅 Kilo Code MCP 文档。
💻 使用示例
PR 审查流程
- 调用
generate_diff 捕获未暂存或已暂存的更改。
- 运行
analyze_pr_impact 评估严重程度和重大变更。
- 运行
generate_review_summary 生成风险评级和合并建议。
- 运行
detect_api_breaking_changes 检查公共 API 是否有重大变更。
- 运行
generate_test_plan 生成优先级测试用例。
单文件分析
- 调用
load_file 缓存源文件。
- 运行
refactor_code 获取结构改进建议。
- 运行
detect_code_smells 检测 Fowler 分类法中的反模式。
- 运行
generate_documentation 生成 JSDoc/TSDoc 存根。
- 使用
ask_about_code 对文件进行自然语言问答。
- 使用
verify_logic 通过代码执行验证算法。
性能审计
- 对性能敏感的更改调用
generate_diff。
- 运行
analyze_time_space_complexity 检测大 O 复杂度退化。
研究
- 使用
web_search 通过 Google Search with Grounding 获取最新的文档或 API 参考。
📚 详细文档
架构
[MCP Client]
│
│ 传输方式: stdio
▼
[MCP Server: code-lens]
│ 入口: src/index.ts → src/server.ts
│
├── initialize / initialized (生命周期握手)
│
├── tools/call ──────────────────────────────────────────────
│ │
│ │ 基于差异的工具 (需要先调用 generate_diff):
│ ├── [generate_diff] 同步 — 捕获 git 差异
│ ├── [analyze_pr_impact] 快速 — 严重程度和影响评估
│ ├── [generate_review_summary] 快速 — 风险和合并建议
│ ├── [generate_test_plan] 快速 — 测试用例
│ ├── [analyze_time_space_complexity] 快速 — 大 O 复杂度分析
│ ├── [detect_api_breaking_changes] 快速 — API 重大变更检测
│ │
│ │ 基于文件的工具 (需要先调用 load_file):
│ ├── [load_file] 同步 — 缓存源文件
│ ├── [refactor_code] 快速 — 重构建议
│ ├── [detect_code_smells] 快速 — 代码异味检测
│ ├── [generate_documentation] 快速 — 文档存根生成
│ ├── [ask_about_code] 快速 — 问答
│ ├── [verify_logic] 快速 — 代码执行验证
│ │
│ │ 独立工具:
│ └── [web_search] 快速 — Google 搜索
│
├── resources/read ──────────────────────────────────────────
│ ├── [internal://instructions] 服务器使用指南
│ ├── [internal://tool-catalog] 工具参考
│ ├── [internal://workflows] 工作流序列
│ ├── [internal://server-config] 运行时配置
│ ├── [internal://tool-info/{name}] 每个工具的详细信息
│ ├── [internal://diff/current] 缓存的差异 (text/x-patch)
│ └── [internal://file/current] 缓存的源文件
│
├── prompts/get ─────────────────────────────────────────────
│ ├── [get-help] 完整的服务器说明
│ ├── [review-guide] 工具 + 重点区域工作流
│ ├── [select-workflow] 根据变更类型选择的管道
│ ├── [analyze-file] 文件分析管道
│ └── [tool-chain] 工具先决条件链
│
└── 功能: 结构化输出、工具注释、通知
请求生命周期
[客户端] -- initialize {protocolVersion, capabilities} --> [服务器]
[服务器] -- {protocolVersion, capabilities, serverInfo} --> [客户端]
[客户端] -- notifications/initialized --> [服务器]
[客户端] -- tools/call {name, arguments} --> [服务器]
[服务器] -- notifications/progress {token, progress, total} --> [客户端]
[服务器] -- {content, structuredContent, isError?} --> [客户端]
任务生命周期
generate_diff 和 load_file 仅支持同步。所有其他工具都支持 taskSupport: optional。
- 请求者可以提供任务 TTL。服务器使用该值,最大不超过
MAX_TASK_TTL_MS,如果未提供则使用 TASK_TTL_MS。
- 取消的任务将保持为
cancelled 状态,并且 tasks/result 返回一个取消形状的工具结果。
MCP 表面
工具
| 工具 |
描述 |
先决条件 |
模式 |
generate_diff |
捕获 git 差异(未暂存/已暂存)并在服务器端缓存 |
— |
同步 |
analyze_pr_impact |
评估严重程度、类别、重大变更和回滚复杂度 |
generate_diff |
快速 |
generate_review_summary |
PR 摘要、风险评级和合并建议 |
generate_diff |
快速 |
generate_test_plan |
优先级测试用例和覆盖指导 |
generate_diff |
快速 |
analyze_time_space_complexity |
大 O 复杂度分析和退化检测 |
generate_diff |
快速 |
detect_api_breaking_changes |
检测 API/接口的重大变更 |
generate_diff |
快速 |
load_file |
缓存源文件以供分析工具使用 |
— |
同步 |
refactor_code |
提供复杂度、重复、命名和分组方面的建议 |
load_file |
快速 |
detect_code_smells |
检测结构代码异味(Fowler 分类法) |
load_file |
快速 |
generate_documentation |
为公共导出生成 JSDoc/TSDoc 文档存根 |
load_file |
快速 |
ask_about_code |
对缓存文件进行自然语言问答 |
load_file |
快速 |
verify_logic |
通过 Gemini 代码执行沙箱验证算法 |
load_file |
快速 |
web_search |
使用 Google Search with Grounding 进行搜索 |
— |
快速 |
资源
| URI |
描述 |
MIME 类型 |
internal://instructions |
完整的服务器使用说明 |
text/markdown |
internal://tool-catalog |
工具参考:模型、参数、输出和数据流 |
text/markdown |
internal://workflows |
推荐的工作流和工具序列 |
text/markdown |
internal://server-config |
运行时配置和限制 |
text/markdown |
internal://tool-info/{toolName} |
每个工具的详细信息(参数化) |
text/markdown |
internal://diff/current |
最近生成的差异 |
text/x-patch |
internal://file/current |
最近加载的源文件 |
text/plain |
提示
| 提示 |
描述 |
get-help |
完整的服务器说明:功能、工具、资源和约束 |
review-guide |
特定工具和重点区域的工作流指南 |
select-workflow |
根据变更类型推荐的工具管道 |
analyze-file |
基于目标的单文件分析工具管道 |
tool-chain |
给定工具的完整先决条件链 |
MCP 功能
工具注释
所有工具都提供 MCP 工具注释:
| 注释 |
是否使用 |
readOnlyHint |
是 |
destructiveHint |
是 |
idempotentHint |
是 |
openWorldHint |
是 |
结构化输出
所有由 Gemini 驱动的工具都使用 Zod v4 输出模式,除了文本 content 之外,还返回经过验证的 structuredContent。
配置
| 变量 |
默认值 |
描述 |
GEMINI_API_KEY |
— |
必需。Gemini API 密钥。如果未设置,将使用 GOOGLE_API_KEY。 |
GEMINI_MODEL |
gemini-3-flash-preview |
覆盖所有工具的默认 Gemini 模型。 |
MAX_DIFF_CHARS |
120000 |
差异的最大字符数。 |
MAX_CONCURRENT_CALLS |
10 |
最大并发 Gemini API 调用数。 |
MAX_CONCURRENT_BATCH_CALLS |
2 |
最大并发批量 Gemini 调用数。 |
MAX_CONCURRENT_CALLS_WAIT_MS |
2000 |
并发信号量的等待超时时间。 |
TASK_TTL_MS |
300000 |
当请求未指定 task.ttl 时,任务结果的默认保留时间(毫秒)。 |
MAX_TASK_TTL_MS |
3600000 |
请求提供的任务 TTL 的上限。设置为 0 可移除上限。 |
GEMINI_BATCH_MODE |
off |
启用 Gemini 批量模式。 |
GEMINI_HARM_BLOCK_THRESHOLD |
BLOCK_NONE |
安全过滤阈值(BLOCK_NONE、BLOCK_ONLY_HIGH、BLOCK_MEDIUM_AND_ABOVE、BLOCK_LOW_AND_ABOVE)。 |
GEMINI_DIFF_CACHE_ENABLED |
false |
启用 Gemini 大差异的上下文缓存。 |
GEMINI_DIFF_CACHE_TTL_S |
3600 |
缓存的 TTL(秒)(启用缓存时)。 |
CLI 标志
npx @j0hanz/code-lens-mcp@latest --model gemini-2.5-flash --max-diff-chars 200000
| 标志 |
环境变量等效项 |
--model, -m |
GEMINI_MODEL |
--max-diff-chars |
MAX_DIFF_CHARS |
安全
| 控制措施 |
状态 |
| 输入验证 |
所有工具输入使用 Zod v4 模式验证 |
| 路径安全 |
load_file 将路径限制在工作区根目录 |
| 标准输出安全 |
日志记录到标准错误输出;标准输出用于 MCP 协议 |
| 非 root 容器 |
Docker 以专用 mcp 用户身份运行 |
开发
npm install
npm run build
npm run dev
npm run dev:run
npm run start
npm run type-check
npm run lint
npm run test
npm run format
npm run inspector
npm run knip
构建和发布
- CI:
.github/workflows/release.yml
- Docker: 使用
node:24-alpine 进行多阶段构建 (Dockerfile)
- Docker Compose:
docker-compose.yml
- npm: 发布为
@j0hanz/code-lens-mcp
故障排除
- 缺少 API 密钥:在环境变量或客户端配置的
env 块中设置 GEMINI_API_KEY 或 GOOGLE_API_KEY。
- "E_NO_DIFF" 错误:在运行任何基于差异的审查工具之前调用
generate_diff。
- "E_NO_FILE" 错误:在运行任何文件分析工具之前调用
load_file。
- 大差异被截断:增加
MAX_DIFF_CHARS(默认值:120,000 字符)。
- 标准输出有噪音:确保没有其他进程写入标准输出;服务器使用标准输入输出传输。
致谢
📄 许可证
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE。欢迎通过 拉取请求 进行贡献。