代码分析服务

基于Google Gemini的MCP服务器,提供自动化代码审查、分析和文档生成功能,适用于PR审查、文件分析和逻辑验证等场景。

  • by j0hanz
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 j0hanz/code-review-analyst-mcp

使用说明

编码镜头MCP服务器

Gemini驱动的MCP服务器,用于自动代码审查、分析和文档编制。

概述

Code Lens是一款 模型上下文协议 使用Google Gemini分析差异、查看拉取请求、检测代码气味、生成文档和验证逻辑的服务器。它通过stdio传输公开了13个工具、7个资源和5个提示。

主要特点

  • PR审查管道 -生成差异、评估影响、检测突破性API变更,并生成包含合并建议的评审摘要
  • 文件分析 --加载任何源文件,用于重构建议、代码气味检测、文档生成和自然语言问答
  • 逻辑验证 --使用Gemini的代码执行沙箱验证算法
  • 结构化输出 --所有工具都通过Zod v4输出模式返回经过验证的JSON
  • 网络搜索 --基于谷歌搜索的最新信息检索
  • 任务生命周期支持 --除以下工具外的所有工具 load_file 可以通过MCP任务运行,包括轮询、取消和进度更新

需求

快速开始

{
  "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"
      }
    }
  }
}

有关更多信息,请参阅 GitHub Copilot MCP文档.

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审查流程

  1. 呼叫 generate_diff 捕捉未稳定或阶段性的变化
  2. 跑 analyze_pr_impact 评估严重性和突破性变化
  3. 跑 generate_review_summary 风险评级和合并建议
  4. 跑 detect_api_breaking_changes 检查公众API是否破损
  5. 跑 generate_test_plan 生成优先级测试用例

单文件分析

  1. 呼叫 load_file 缓存源文件
  2. 跑 refactor_code 结构改进建议
  3. 跑 detect_code_smells Fowler分类反模式
  4. 跑 generate_documentation 生成JSDoc/TSDoc存根
  5. 使用 ask_about_code 关于文件的自然语言问答
  6. 使用 verify_logic 通过代码执行来验证算法

绩效审计

  1. 呼叫 generate_diff 对性能敏感的变化
  2. 跑 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传输。

积分

贡献和许可

MIT许可证。看 许可证 了解详情。

欢迎通过以下方式捐款 拉取请求.