编码镜头MCP服务器
](https://www.npmjs.com/package/%40j0hanz%2Fcode-lens) 
Gemini驱动的MCP服务器,用于自动代码审查、分析和文档编制。
概述
Code Lens是一款 模型上下文协议 使用Google Gemini分析差异、查看拉取请求、检测代码气味、生成文档和验证逻辑的服务器。它通过stdio传输公开了13个工具、7个资源和5个提示。
主要特点
- PR审查管道 -生成差异、评估影响、检测突破性API变更,并生成包含合并建议的评审摘要
- 文件分析 --加载任何源文件,用于重构建议、代码气味检测、文档生成和自然语言问答
- 逻辑验证 --使用Gemini的代码执行沙箱验证算法
- 结构化输出 --所有工具都通过Zod v4输出模式返回经过验证的JSON
- 网络搜索 --基于谷歌搜索的最新信息检索
- 任务生命周期支持 --除以下工具外的所有工具
load_file可以通过MCP任务运行,包括轮询、取消和进度更新
需求
- Node.js>=24
- A. Gemini API密钥 (
GEMINI_API_KEY或GOOGLE_API_KEY)
快速开始
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}码头工人
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客户端配置
Install in 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代码MCP文档.
Install in 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代码内部人员MCP文档.
Install in Cursor

添加 ~/.cursor/mcp.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 光标MCP文档.
Install in 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文档.
Install in Goose

{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 鹅MCP文件.
Install in LM Studio

{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 LM Studio MCP文档.
Install in 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"
}
}
}
}有关更多信息,请参阅 克劳德桌面MCP文档.
Install in 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"
}
}
}
}有关更多信息,请参阅 克劳德代码MCP文档.
Install in 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文件.
Install in 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文档.
Install in Cline
添加 cline_mcp_settings.json:
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 临床MCP文档.
Install in 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文档.
Install in GitHub Copilot
添加 .vscode/mcp.json:
{
"servers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 .
Install in Warp
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 扭曲MCP文档.
Install in 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文件.
Install in 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文档.
Install in Zed
添加 ~/.config/zed/settings.json:
{
"context_servers": {
"code-lens": {
"settings": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"]
}
}
}
}有关更多信息,请参阅 Zed MCP文件.
Install in Augment
添加到您的VS代码 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"
}
}
]
}
}有关更多信息,请参阅 补充MCP文件.
Install in Roo Code
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 Roo代码MCP文档.
Install in Kilo Code
{
"mcpServers": {
"code-lens": {
"command": "npx",
"args": ["-y", "@j0hanz/code-lens-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}有关更多信息,请参阅 基洛代码MCP文档.
用例
PR审查流程
- 呼叫
generate_diff捕捉未稳定或阶段性的变化 - 跑
analyze_pr_impact评估严重性和突破性变化 - 跑
generate_review_summary风险评级和合并建议 - 跑
detect_api_breaking_changes检查公众API是否破损 - 跑
generate_test_plan生成优先级测试用例
单文件分析
- 呼叫
load_file缓存源文件 - 跑
refactor_code结构改进建议 - 跑
detect_code_smellsFowler分类反模式 - 跑
generate_documentation生成JSDoc/TSDoc存根 - 使用
ask_about_code关于文件的自然语言问答 - 使用
verify_logic通过代码执行来验证算法
绩效审计
- 呼叫
generate_diff对性能敏感的变化 - 跑
analyze_time_space_complexity检测Big-O降解
研究
- 使用
web_search通过谷歌搜索获取最新文档或API参考资料
建筑
[MCP Client]
│
│ Transport: stdio
▼
[MCP Server: code-lens]
│ Entry: src/index.ts → src/server.ts
│
├── initialize / initialized (lifecycle handshake)
│
├── tools/call ──────────────────────────────────────────────
│ │
│ │ Diff-based tools (require generate_diff first):
│ ├── [generate_diff] Sync — capture git diff
│ ├── [analyze_pr_impact] Flash — severity & impact
│ ├── [generate_review_summary] Flash — risk & merge rec
│ ├── [generate_test_plan] Flash — test cases
│ ├── [analyze_time_space_complexity] Flash — Big-O analysis
│ ├── [detect_api_breaking_changes] Flash — API breakage
│ │
│ │ File-based tools (require load_file first):
│ ├── [load_file] Sync — cache source file
│ ├── [refactor_code] Flash — refactoring
│ ├── [detect_code_smells] Flash — smell detection
│ ├── [generate_documentation] Flash — doc stubs
│ ├── [ask_about_code] Flash — Q&A
│ ├── [verify_logic] Flash — code execution
│ │
│ │ Standalone:
│ └── [web_search] Flash — Google Search
│
├── resources/read ──────────────────────────────────────────
│ ├── [internal://instructions] Server usage guide
│ ├── [internal://tool-catalog] Tool reference
│ ├── [internal://workflows] Workflow sequences
│ ├── [internal://server-config] Runtime config
│ ├── [internal://tool-info/{name}] Per-tool details
│ ├── [internal://diff/current] Cached diff (text/x-patch)
│ └── [internal://file/current] Cached source file
│
├── prompts/get ─────────────────────────────────────────────
│ ├── [get-help] Full server instructions
│ ├── [review-guide] Tool + focus area workflow
│ ├── [select-workflow] Pipeline by change type
│ ├── [analyze-file] File analysis pipeline
│ └── [tool-chain] Tool prerequisite chain
│
└── Capabilities: structured output, tool annotations, notifications请求的生命周期
[Client] -- initialize {protocolVersion, capabilities} --> [Server]
[Server] -- {protocolVersion, capabilities, serverInfo} --> [Client]
[Client] -- notifications/initialized --> [Server]
[Client] -- tools/call {name, arguments} --> [Server]
[Server] -- notifications/progress {token, progress, total} --> [Client]
[Server] -- {content, structuredContent, isError?} --> [Client]任务生命周期
generate_diff和load_file仅同步。所有其他工具都做广告taskSupport: optional.- 请求者可以提供任务TTL。服务器最多使用该值
MAX_TASK_TTL_MS,或回落到TASK_TTL_MS当省略时。 - 已取消的任务仍处于终止状态
cancelled,以及tasks/result返回一个取消形状的工具结果。
MCP表面
工具
| 工具 | 描述 | 先决条件 | 型号 |
|---|---|---|---|
generate_diff | 捕获git diff(未暂存/暂存)并在服务器端缓存 | -- | 同步 |
analyze_pr_impact | 评估严重性、类别、突破性更改、回滚复杂性 | generate_diff | 闪光灯 |
generate_review_summary | 公关摘要、风险评级、合并建议 | 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/docstring存根 | load_file | 闪光灯 |
ask_about_code | 关于缓存文件的自然语言问答 | load_file | 闪光灯 |
verify_logic | 通过Gemini代码执行沙箱验证算法 | load_file | 闪光灯 |
web_search | 谷歌搜索禁飞 | -- | Flash |
资源
| 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电动工具返回验证 structuredContent 旁边文字 content,使用Zod v4输出模式。
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
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 限制工作区根目录的路径 |
| Stdout安全 | 记录到stderr;stdout保留用于MCP协议 |
| 非根容器 | Docker作为专用容器运行 mcp 用户 |
发展
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode
npm run dev:run # Run with --watch and .env
npm run start # Run compiled server
npm run type-check # Type-check src + tests
npm run lint # ESLint
npm run test # Run test suite
npm run format # Prettier
npm run inspector # MCP Inspector
npm run knip # Dead code detection构建与发布
- CI:
.github/workflows/release.yml - Docker:多阶段构建(
Dockerfile)与node:24-alpine - Docker编写:
docker-compose.yml - npm:发布为
@j0hanz/code-lens-mcp
故障排除
- 缺少API密钥:设置
GEMINI_API_KEY或GOOGLE_API_KEY在您的环境或客户端配置中env块。 - “E_NO_DIFF”错误:呼叫
generate_diff在运行任何基于差异的审查工具之前。 - “E_NO_FILE”错误:呼叫
load_file在运行任何文件分析工具之前。 - 大差异被截断:增加
MAX_DIFF_CHARS(默认值:120000个字符)。 - 标准噪声:确保没有其他进程写入stdout;服务器使用stdio传输。
积分
- 谷歌双子座 --LLM后端(
@google/genai) - 模型上下文协议SDK --MCP框架(
@modelcontextprotocol/sdk) - 黄道带 --架构验证(
zodv4) - 解析差异 --Diff解析
贡献和许可
MIT许可证。看 许可证 了解详情。
欢迎通过以下方式捐款 拉取请求.
