Code Assistant

io.github.j0hanz由 GitHub 账号 j0hanz 发布v2.0.0更新于 Oct 24, 2026

Gemini-powered MCP server for code analysis.

概览

AI 生成的概览

由 Gemini 驱动的本地 MCP 服务器,用于审查差异和拉取请求、分析源代码文件并生成文档。

可以做什么
Code Assistant(Code Lens)通过 stdio 在本地运行,使用 Google Gemini 分析代码。它可以捕获 git 差异,并生成 PR 影响评估、审查摘要、测试计划、破坏性变更检测以及 Big-O 复杂度分析。它还能缓存源文件,用于重构建议、代码异味检测、文档存根、自然语言问答,以及通过 Gemini 代码执行沙箱进行逻辑验证。独立的网络搜索工具使用带 Grounding 的 Google 搜索。
适用场景
适合希望助手协助进行拉取请求审查、重构、文档编写或本地仓库复杂度检查的场景。适用于在合并决策前分析差异和文件,以及需要通过网页搜索获取最新文档或 API 参考的工作流。
运行要求
需要 Node.js 24 或更高版本,或 Docker。需要以 GEMINI_API_KEY 提供的 Gemini API 密钥(可回退到 GOOGLE_API_KEY)。需要访问 Gemini API 的网络连接。可选设置包括 GEMINI_MODEL、MAX_DIFF_CHARS 和任务 TTL 变量。
安装前请注意
需要 Gemini API 密钥,这是计费凭据,使用可能产生费用。源代码、差异和文件内容会发送到 Google 的 Gemini API,网页搜索查询会发送到 Google 搜索。差异和文件工具会在服务器端缓存内容。load_file 将路径限制在工作区根目录内,但在发送敏感代码前请先了解提供商的数据处理方式。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Code Assistant,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Code Lens MCP Server

[npm version] [License: MIT]

[Install in VS Code] [Install in VS Code Insiders] [Install in Visual Studio]

[Add to LM Studio] [Install in Cursor] [Install in Goose]

Gemini-powered MCP server for automated code review, analysis, and documentation.

Overview

Code Lens is a Model Context Protocol server that uses Google Gemini to analyze diffs, review pull requests, detect code smells, generate documentation, and verify logic. It exposes 13 tools, 7 resources, and 5 prompts over stdio transport.

Key Features

  • PR review pipeline — generate diffs, assess impact, detect breaking API changes, and produce review summaries with merge recommendations
  • File analysis — load any source file for refactoring suggestions, code smell detection, documentation generation, and natural-language Q&A
  • Logic verification — verify algorithms using Gemini's code execution sandbox
  • Structured outputs — all tools return validated JSON via Zod v4 output schemas
  • Web search — Google Search with Grounding for up-to-date information retrieval
  • Task lifecycle support — every tool except load_file can run via MCP tasks with polling, cancellation, and progress updates

Requirements

Quick Start

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

Docker

bash
docker run -i --rm -e GEMINI_API_KEY="your-api-key" ghcr.io/j0hanz/code-lens

Or with Docker Compose:

bash
GEMINI_API_KEY=your-api-key docker compose up

Client Configuration

Install in VS Code

[Install in VS Code]

Add to .vscode/mcp.json:

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

Or install via CLI:

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

For more info, see VS Code MCP docs.

Install in VS Code Insiders

[Install in VS Code Insiders]

Add to .vscode/mcp.json:

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

Or install via CLI:

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

For more info, see VS Code Insiders MCP docs.

Install in Cursor

[Install in Cursor]

Add to ~/.cursor/mcp.json:

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

For more info, see Cursor MCP docs.

Install in Visual Studio

[Install in Visual Studio]

Add to mcp.json:

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

For more info, see Visual Studio MCP docs.

Install in Goose

[Install in Goose]

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

For more info, see Goose MCP docs.

Install in LM Studio

[Add to LM Studio]

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

For more info, see LM Studio MCP docs.

Install in Claude Desktop

Add to claude_desktop_config.json:

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

For more info, see Claude Desktop MCP docs.

Install in Claude Code
sh
claude mcp add code-lens -- npx -y @j0hanz/code-lens-mcp@latest

Or add to config:

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

For more info, see Claude Code MCP docs.

Install in Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

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

For more info, see Windsurf MCP docs.

Install in Amp
sh
amp mcp add code-lens -- npx -y @j0hanz/code-lens-mcp@latest

Or add to config:

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

For more info, see Amp MCP docs.

Install in Cline

Add to cline_mcp_settings.json:

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

For more info, see Cline MCP docs.

Install in Codex CLI

Add to ~/.codex/config.yaml:

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

For more info, see Codex CLI MCP docs.

Install in GitHub Copilot

Add to .vscode/mcp.json:

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

For more info, see GitHub Copilot MCP docs.

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

For more info, see Warp MCP docs.

Install in Kiro

Add to .kiro/settings/mcp.json:

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

For more info, see Kiro MCP docs.

Install in Gemini CLI

Add to ~/.gemini/settings.json:

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

For more info, see Gemini CLI MCP docs.

Install in Zed

Add to ~/.config/zed/settings.json:

json
{  "context_servers": {    "code-lens": {      "settings": {        "command": "npx",        "args": ["-y", "@j0hanz/code-lens-mcp@latest"]      }    }  }}

For more info, see Zed MCP docs.

Install in Augment

Add to your VS Code settings.json under augment.advanced:

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

For more info, see Augment MCP docs.

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

For more info, see Roo Code MCP docs.

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

For more info, see Kilo Code MCP docs.

Use Cases

PR Review Pipeline

  1. Call generate_diff to capture unstaged or staged changes
  2. Run analyze_pr_impact to assess severity and breaking changes
  3. Run generate_review_summary for a risk rating and merge recommendation
  4. Run detect_api_breaking_changes to check for public API breakage
  5. Run generate_test_plan to produce prioritized test cases

Single-File Analysis

  1. Call load_file to cache a source file
  2. Run refactor_code for structural improvement suggestions
  3. Run detect_code_smells for Fowler-taxonomy anti-patterns
  4. Run generate_documentation to generate JSDoc/TSDoc stubs
  5. Use ask_about_code for natural-language Q&A about the file
  6. Use verify_logic to verify algorithms with code execution

Performance Audit

  1. Call generate_diff on a performance-sensitive change
  2. Run analyze_time_space_complexity to detect Big-O degradation

Research

  • Use web_search for up-to-date documentation or API references via Google Search with Grounding

Architecture

text
[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

Request Lifecycle

text
[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]

Task Lifecycle

  • generate_diff and load_file are sync-only. All other tools advertise taskSupport: optional.
  • Requestors may supply a task TTL. The server uses that value up to MAX_TASK_TTL_MS, or falls back to TASK_TTL_MS when omitted.
  • Cancelled tasks remain terminal as cancelled, and tasks/result returns a cancellation-shaped tool result.

MCP Surface

Tools

ToolDescriptionPrerequisiteModel
generate_diffCapture git diff (unstaged/staged) and cache server-side—Sync
analyze_pr_impactAssess severity, categories, breaking changes, rollback complexitygenerate_diffFlash
generate_review_summaryPR summary, risk rating, merge recommendationgenerate_diffFlash
generate_test_planPrioritized test cases and coverage guidancegenerate_diffFlash
analyze_time_space_complexityBig-O complexity analysis and degradation detectiongenerate_diffFlash
detect_api_breaking_changesDetect breaking API/interface changesgenerate_diffFlash
load_fileCache a source file for analysis tools—Sync
refactor_codeComplexity, duplication, naming, grouping suggestionsload_fileFlash
detect_code_smellsStructural code smells (Fowler taxonomy)load_fileFlash
generate_documentationJSDoc/TSDoc/docstring stubs for public exportsload_fileFlash
ask_about_codeNatural-language Q&A about a cached fileload_fileFlash
verify_logicVerify algorithms via Gemini code execution sandboxload_fileFlash
web_searchGoogle Search with Grounding—Flash

Resources

URIDescriptionMIME
internal://instructionsComplete server usage instructionstext/markdown
internal://tool-catalogTool reference: models, params, outputs, data flowtext/markdown
internal://workflowsRecommended workflows and tool sequencestext/markdown
internal://server-configRuntime configuration and limitstext/markdown
internal://tool-info/{toolName}Per-tool details (parameterized)text/markdown
internal://diff/currentMost recently generated difftext/x-patch
internal://file/currentMost recently loaded source filetext/plain

Prompts

PromptDescription
get-helpFull server instructions: capabilities, tools, resources, constraints
review-guideWorkflow guide for a specific tool and focus area
select-workflowRecommended tool pipeline based on change type
analyze-fileGoal-based tool pipeline for single-file analysis
tool-chainFull prerequisite chain for a given tool

MCP Capabilities

Tool Annotations

All tools expose MCP tool annotations:

AnnotationUsed
readOnlyHintYes
destructiveHintYes
idempotentHintYes
openWorldHintYes

Structured Output

All Gemini-powered tools return validated structuredContent alongside text content, using Zod v4 output schemas.

Configuration

VariableDefaultDescription
GEMINI_API_KEY—Required. Gemini API key. Falls back to GOOGLE_API_KEY.
GEMINI_MODELgemini-3-flash-previewOverride the default Gemini model for all tools.
MAX_DIFF_CHARS120000Maximum diff size in characters.
MAX_CONCURRENT_CALLS10Maximum concurrent Gemini API calls.
MAX_CONCURRENT_BATCH_CALLS2Maximum concurrent batch Gemini calls.
MAX_CONCURRENT_CALLS_WAIT_MS2000Wait timeout for concurrency semaphore.
TASK_TTL_MS300000Default task result retention in milliseconds when the request does not specify task.ttl.
MAX_TASK_TTL_MS3600000Upper bound for request-provided task TTL. Set to 0 to remove the cap.
GEMINI_BATCH_MODEoffEnable Gemini batch mode.
GEMINI_HARM_BLOCK_THRESHOLDBLOCK_NONESafety filter threshold (BLOCK_NONE, BLOCK_ONLY_HIGH, BLOCK_MEDIUM_AND_ABOVE, BLOCK_LOW_AND_ABOVE).
GEMINI_DIFF_CACHE_ENABLEDfalseEnable Gemini context caching for large diffs.
GEMINI_DIFF_CACHE_TTL_S3600Cache TTL in seconds (when caching is enabled).

CLI Flags

bash
npx @j0hanz/code-lens-mcp@latest --model gemini-2.5-flash --max-diff-chars 200000
FlagEnv Equivalent
--model, -mGEMINI_MODEL
--max-diff-charsMAX_DIFF_CHARS

Security

ControlStatus
Input validationZod v4 schema validation on all tool inputs
Path safetyload_file restricts paths to workspace root
Stdout safetyLogs to stderr; stdout reserved for MCP protocol
Non-root containerDocker runs as dedicated mcp user

Development

bash
npm install          # Install dependenciesnpm run build        # Compile TypeScriptnpm run dev          # Watch modenpm run dev:run      # Run with --watch and .envnpm run start        # Run compiled servernpm run type-check   # Type-check src + testsnpm run lint         # ESLintnpm run test         # Run test suitenpm run format       # Prettiernpm run inspector    # MCP Inspectornpm run knip         # Dead code detection

Build and Release

  • CI: .github/workflows/release.yml
  • Docker: Multi-stage build (Dockerfile) with node:24-alpine
  • Docker Compose: docker-compose.yml
  • npm: Published as @j0hanz/code-lens-mcp

Troubleshooting

  • Missing API key: Set GEMINI_API_KEY or GOOGLE_API_KEY in your environment or client config env block.
  • "E_NO_DIFF" errors: Call generate_diff before running any diff-based review tool.
  • "E_NO_FILE" errors: Call load_file before running any file analysis tool.
  • Large diffs truncated: Increase MAX_DIFF_CHARS (default: 120,000 characters).
  • Stdout noise: Ensure no other processes write to stdout; the server uses stdio transport.

Credits

Contributing and License

MIT License. See LICENSE for details.

Contributions welcome via pull requests.

来源:README.md,提交 576b329

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.0.0最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。