mcpField
C
Code Review Analyst

Code Review Analyst

本地服务
github.com开发工具033 周前更新

关于 Code Review Analyst

Code Review Analyst 是面向开发者的 Gemini 驱动 MCP 服务,提供代码审查与源码分析,涵盖 PR 流程、文件检查、逻辑验证和网络搜索。

主要功能

  1. 01PR 影响与风险分析
  2. 02源码重构建议与异味检测
  3. 03文档生成与代码问答
  4. 04借助 Gemini 验证算法
  5. 05经验证的结构化工具输出
  6. 06Google Search grounding

适用场景

  1. 01审查差异并制定测试计划
  2. 02检查源码文件的重构机会
  3. 03通过代码执行核验算法逻辑
  4. 04查找最新 API 或文档资料

MCP 相关

通过 stdio 向 MCP 客户端提供 13 个工具、7 个资源和 5 个提示词。除少数工具外,工具支持任务轮询、取消和进度更新。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"j0hanz-code-review-analyst": {
"command": "npx",
"args": [
"-y",
"@j0hanz/code-review-analyst-mcp"
]
}
}
}
启动命令npx -y @j0hanz/code-review-analyst-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@j0hanz/code-review-analyst-mcp1.7.6

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Code Lens MCP 服务

npm 版本 许可证:MIT

在 VS Code 中安装 在 VS Code Insiders 中安装 在 Visual Studio 中安装

添加到 LM Studio 在 Cursor 中安装 在 Goose 中安装

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

概述

Code Lens 是一个 Model Context Protocol 服务,使用 Google Gemini 分析差异、审查拉取请求、检测代码异味、生成文档并验证逻辑。它通过 stdio 传输提供 13 个工具、7 个资源和 5 个提示词。

主要功能

  • PR 审查流程 — 生成差异、评估影响、检测 API 破坏性变更,并生成包含合并建议的审查摘要
  • 文件分析 — 加载任意源文件,获取重构建议、代码异味检测、文档生成以及自然语言问答
  • 逻辑验证 — 使用 Gemini 的代码执行沙箱验证算法
  • 结构化输出 — 所有工具均通过 Zod v4 输出架构返回经过验证的 JSON
  • 网页搜索 — 使用带 Grounding 的 Google Search 获取最新信息
  • 任务生命周期支持 — 除 load_file 外,每个工具都可通过 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

客户端配置

在 VS Code 中安装

在 VS Code 中安装

添加到 .vscode/mcp.json:

{
  "servers": {
    "code-lens": {
      "command": "npx",
      "args": ["-y", "@j0hanz/code-lens-mcp@latest"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}

或通过命令行安装:

code --add-mcp '{"name":"code-lens","command":"npx","args":["-y","@j0hanz/code-lens-mcp@latest"]}'

更多信息请参阅 VS Code MCP 文档。

在 VS Code Insiders 中安装 [![在 VS Code Insiders 中安装](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=code-lens&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40j0hanz%2Fcode-lens%40latest%22%5D%7D&quality=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 中安装

添加到 ~/.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 中安装

在 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 中安装

在 Goose 中安装

{
  "mcpServers": {
    "code-lens": {
      "command": "npx",
      "args": ["-y", "@j0hanz/code-lens-mcp@latest"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}

更多信息请参阅 Goose MCP 文档。

在 LM Studio 中安装

添加到 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 审查流水线
  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 通过 Google Search with Grounding 查询最新文档或 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(未暂存/已暂存)并在服务端缓存—Sync
analyze_pr_impact评估严重性、类别、破坏性变更和回滚复杂度generate_diffFlash
generate_review_summaryPR 摘要、风险评级和合并建议generate_diffFlash
generate_test_plan优先级测试用例和覆盖率指南generate_diffFlash
analyze_time_space_complexityBig-O 复杂度分析和性能退化检测generate_diffFlash
detect_api_breaking_changes检测 API/接口破坏性变更generate_diffFlash
load_file缓存源文件,供分析工具使用—Sync
refactor_code提供复杂度、重复、命名和分组方面的建议load_fileFlash
detect_code_smells检测结构性代码异味(Fowler 分类法)load_fileFlash
generate_documentation为公开导出项生成 JSDoc/TSDoc/docstring 桩load_fileFlash
ask_about_code以自然语言询问缓存文件相关问题load_fileFlash
verify_logic通过 Gemini 代码执行沙箱验证算法load_fileFlash
web_search使用 Grounding 进行 Google 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_MODELgemini-3-flash-preview覆盖所有工具的默认 Gemini 模型。
MAX_DIFF_CHARS120000diff 的最大字符数。
MAX_CONCURRENT_CALLS10Gemini API 调用的最大并发数。
MAX_CONCURRENT_BATCH_CALLS2Gemini 批量调用的最大并发数。
MAX_CONCURRENT_CALLS_WAIT_MS2000并发信号量的等待超时时间。
TASK_TTL_MS300000请求未指定 task.ttl 时,任务结果的默认保留时间(毫秒)。
MAX_TASK_TTL_MS3600000请求指定的任务 TTL 上限。设为 0 可取消上限。
GEMINI_BATCH_MODEoff启用 Gemini 批量模式。
GEMINI_HARM_BLOCK_THRESHOLDBLOCK_NONE安全过滤阈值(BLOCK_NONE、BLOCK_ONLY_HIGH、BLOCK_MEDIUM_AND_ABOVE、BLOCK_LOW_AND_ABOVE)。
GEMINI_DIFF_CACHE_ENABLEDfalse为大型 diff 启用 Gemini 上下文缓存。
GEMINI_DIFF_CACHE_TTL_S3600缓存 TTL(秒,启用缓存时生效)。
CLI 标志
npx @j0hanz/code-lens-mcp@latest --model gemini-2.5-flash --max-diff-chars 200000
标志对应环境变量
--model、-mGEMINI_MODEL
--max-diff-charsMAX_DIFF_CHARS

安全

控制项状态
输入验证使用 Zod v4 架构验证所有工具输入
路径安全load_file 将路径限制在工作区根目录内
标准输出安全日志写入标准错误;标准输出专用于 MCP 协议
非 root 容器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:使用 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 个字符)。
  • 标准输出有杂音:确保没有其他进程写入标准输出;该服务使用 stdio 传输。

致谢

贡献与许可

MIT 许可证。详情请参阅 LICENSE。

欢迎通过 拉取请求贡献。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。