# Code Lens (npm · @j0hanz/code-lens-mcp)

Gemini-powered MCP server for code analysis.

- Trust score: 81/100 (high trust)
- Change this week: +28
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@j0hanz/code-lens-mcp`: 81/100 (this document), [markdown](https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp.md), [page](https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp)

## Channel facts

- Registry: `npm`
- Package: `@j0hanz/code-lens-mcp`
- Version: `0.12.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (135 of 139), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (135 of 139), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to j0hanz/code-lens).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 147 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 84/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3271 tokens (~102/item across 32 items; 13 tools + 19 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add j0hanz-code-lens -- npx -y @j0hanz/code-lens-mcp
```

### Codex

```bash
codex mcp add j0hanz-code-lens -- npx -y @j0hanz/code-lens-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "j0hanz-code-lens": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@j0hanz/code-lens-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add j0hanz-code-lens --command npx --arg -y --arg @j0hanz/code-lens-mcp
```

### Hermes

```yaml
mcp_servers:
  j0hanz-code-lens:
    command: "npx"
    args: ["-y", "@j0hanz/code-lens-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "j0hanz-code-lens": {
      "command": "npx",
      "args": [
        "-y",
        "@j0hanz/code-lens-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 81, +55)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: j0hanz/code-lens
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-07-31 (score 26, −27)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 53, +29)

- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100

### 2026-07-28 (score 24, −29)

- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (13)

### `generate_diff` (~98 tokens)

Generate Diff

Generate a diff of the current branch working changes and cache it for all review tools. You MUST call this tool before calling any other review tool. Use "unstaged" for working-tree changes not yet staged, or "staged" for changes already added with git add.

Input parameters:

- `mode` (string): "unstaged": working-tree changes not yet staged. "staged": changes added to the index with git add. Default: unstaged.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `analyze_pr_impact` (~64 tokens)

Analyze PR Impact

Assess impact and risk from cached diff. Prerequisite: generate_diff. Auto-infer repo/language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `generate_review_summary` (~63 tokens)

Generate Review Summary

Summarize diff and risk level. Prerequisite: generate_diff. Auto-infer repo/language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `generate_test_plan` (~101 tokens)

Generate Test Plan

Generate test cases. Prerequisite: generate_diff. Auto-infer repo/language/framework.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.
- `maxTestCases` (integer): Max test cases (1-30). Default: 15.
- `testFramework` (string): Test framework (jest, pytest, etc). Auto-infer.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `analyze_time_space_complexity` (~60 tokens)

Analyze Time & Space Complexity

Analyze Big-O complexity. Prerequisite: generate_diff. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `detect_api_breaking_changes` (~60 tokens)

Detect API Breaking Changes

Detect breaking API changes. Prerequisite: generate_diff. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `load_file` (~90 tokens)

Load File

Cache a single file for analysis tools (refactor_code, ask_about_code, verify_logic). Overwrites previous cache. Path is relative to server working directory (e.g. src/index.ts) or absolute (e.g. /home/user/project/src/index.ts).

Input parameters:

- `filePath` (string, required): File path relative to workspace root (e.g. src/index.ts) or absolute. Must be within workspace.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `refactor_code` (~92 tokens)

Refactor Code

Analyze cached file for complexity, duplication, naming, and grouping improvements. Prerequisite: load_file. Set maxSuggestions to cap output (default 10).

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.
- `maxSuggestions` (integer): Max suggestions (1-15). Default: 10.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `generate_documentation` (~66 tokens)

Generate Documentation

Generate documentation stubs for all public exports in a cached file. Prerequisite: load_file. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `detect_code_smells` (~63 tokens)

Detect Code Smells

Detect structural code smells in a cached file. Prerequisite: load_file. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `ask_about_code` (~72 tokens)

Ask About Code

Answer questions about a cached file. Prerequisite: load_file. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.
- `question` (string, required): Question about the loaded file.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `verify_logic` (~89 tokens)

Verify Logic

Verify algorithms and logic in a cached file using Gemini code execution sandbox. Prerequisite: load_file. Auto-infer language.

Input parameters:

- `language` (string): Primary language (e.g. TypeScript, Python, JavaScript, Go, Rust, Java). Auto-infer from files.
- `question` (string, required): What to verify in the loaded file (e.g. algorithm correctness, edge cases).

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

### `web_search` (~113 tokens)

Web Search

Google Search with Grounding. Set topic to scope results; responseStyle controls output length.

Input parameters:

- `maxChars` (integer): Truncate response text to this many characters. Default: no truncation.
- `query` (string, required): Search query.
- `responseStyle` (string): concise: 2-4 sentences. detailed: full explanation. bullets: list. code_focused: code snippets.
- `topic` (string): Domain focus (e.g. "TypeScript", "Docker"). Set to avoid irrelevant results.

Output parameters:

- `error` (object): Error payload when ok is false.
- `ok` (boolean): Whether the tool completed successfully.
- `result` (object): Successful result payload.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp#diagnostics

## Score history

- 2026-08-03: 81
- 2026-08-02: 81
- 2026-08-01: 26
- 2026-07-31: 26
- 2026-07-30: 53
- 2026-07-28: 24
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/@j0hanz/code-lens-mcp
- Socket report: https://socket.dev/npm/package/@j0hanz/code-lens-mcp
- Repository: https://github.com/j0hanz/code-lens
- Changelog RSS feed: https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/j0hanz-code-lens/j0hanz-code-lens-mcp
