Skip to main content
Glama

codeviewer-mcp

codeviewer-mcp ist ein TypeScript-MCP-Server für zustandsbehaftete, AST-fähige Code-Review-Workflows.

Er läuft über STDIO und ist für MCP-Clients und LLM-Harnesses konzipiert, die lokale MCP-Server starten können.

Was dieser Server bietet

  • MCP-Tools für iterative Planregistrierung und Code-Chunk-Reviews

  • SQLite-gestützte Review-Sitzungen und Historie

  • AST-Indizierung/Kontextlokalisierung für JS/TS-Quellcodebäume

  • Preflight-Prüfungen (TypeScript-Diagnose + Erkennung von Sicherheitsmustern)

  • Strukturierte Review-Ausgabe mit Urteilen, kategorisiertem Feedback und optionalen Patch-Hinweisen

Related MCP server: lsp-intelligence

MCP-Tools

  1. register_plan

  2. review_code_chunk

  3. cleanup_expired_sessions

  4. cleanup_session

  5. list_sessions

  6. list_indexing_errors

  7. list_prompt_profiles

  8. get_prompt_profile

  9. health_check

Voraussetzungen

Diese Voraussetzungen sind erforderlich, damit dieses MCP korrekt installiert und ausgeführt werden kann.

Anforderung

Warum wird sie benötigt?

Node.js 20+

Laufzeitumgebung für Server und MCP SDK

pnpm 9+

Abhängigkeitsinstallation und Build-Workflow

Git

Klonen/Aktualisieren des Repositorys für Auto-Install-Flows

Native Build-Toolchain

Erforderlich für das native Modul better-sqlite3

Native Build-Toolchain nach Betriebssystem:

  • Windows: Visual Studio Build Tools 2022 (Desktop-Entwicklung mit C++) + Python 3

  • macOS: Xcode Command Line Tools (xcode-select --install)

  • Linux (Debian/Ubuntu): build-essential python3 make g++

Wenn native Builds fehlen, kann pnpm install beim Kompilieren von better-sqlite3 fehlschlagen.

Schnellstart

git clone https://github.com/Master0fFate/codeviewer-mcp.git
cd codeviewer-mcp
pnpm install
pnpm build
pnpm start

Entwicklungsmodus:

pnpm dev

Umgebungsvariablen

Variable

Beschreibung

Standardwert

MCP_PROJECT_PATH

Projektstammverzeichnis für AST-Indizierung und Pfad-Containment-Prüfungen

Aktuelles Arbeitsverzeichnis

MCP_REVIEWER_DB_PATH

Pfad zur SQLite-Datenbank

<MCP_PROJECT_PATH>/.codeviewer-mcp.sqlite

MCP_PROMPTS_DIR

Verzeichnis mit *.md Prompt-Profilen

<server_root>/prompts

MCP_DEFAULT_PROMPT_PROFILE

Standard-Prompt-Profil-ID, wenn register_plan prompt_profile auslässt

universal-auditor-general-v2.1 falls vorhanden, sonst erstes Profil

MCP_SESSION_TTL_HOURS

Sitzungs-TTL in Stunden, nur positive Ganzzahlen

168

MCP_AUTH_TOKEN

Optionales Bearer-Token für geteilte Umgebungen. Wenn gesetzt, muss jeder Tool-Aufruf auth_token enthalten.

nicht gesetzt

MCP_CLEANUP_ON_STARTUP

Bereinigung abgelaufener Sitzungen beim Prozessstart (true oder false)

false

LOG_LEVEL

Log-Level (trace, debug, info, warn, error)

info

Beispiel:

MCP_PROJECT_PATH=/absolute/path/to/repo \
MCP_SESSION_TTL_HOURS=24 \
LOG_LEVEL=info \
node dist/index.js

Authentifizierungsbeispiel, wenn MCP_AUTH_TOKEN gesetzt ist:

{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "plan_step": 1,
  "target_file": "src/example.ts",
  "code_chunk": "export const ok = true;",
  "modification_type": "MODIFY",
  "auth_token": "your-shared-secret"
}

Prompt-Profil-Workflow (kompartimentierte Prompts)

Dieses MCP unterstützt jetzt sitzungsbasierte Prompt-Kompartimentierung aus dem prompts-Ordner.

  • Fügen Sie Prompt-Dateien als *.md im Prompts-Verzeichnis hinzu.

  • Die Profil-ID ist der Dateiname ohne Erweiterung.

    • Beispiel: prompts/cybersec.md -> prompt_profile: "cybersec"

  • Starten Sie eine Sitzung mit register_plan und optionalem prompt_profile.

  • Das ausgewählte Profil wird in der Sitzung gespeichert und für jeden review_code_chunk-Aufruf in dieser Sitzung wiederverwendet.

  • Die Ausgabe von review_code_chunk enthält:

    • active_prompt_profile

    • active_prompt_title

    • active_prompt_headings

Verwenden Sie Hilfsprogramme:

  • list_prompt_profiles, um verfügbare Profile anzuzeigen.

  • get_prompt_profile, um den vollständigen Prompt-Inhalt für ein Profil zu lesen.

Beispiel für register_plan-Payload mit Spezialisierungsprofil:

{
  "project_path": "/absolute/path/to/repo",
  "prompt_profile": "cybersec",
  "steps": [
    "Review auth and secrets handling",
    "Check unsafe execution paths"
  ]
}

LLM-Auto-Installationsanleitung

Dieser Abschnitt ist für autonome LLM-Installationsprogramme und MCP-Harnesses geschrieben.

Kanonischer Serverstart

node /absolute/path/to/codeviewer-mcp/dist/index.js

Idempotente Installation/Aktualisierung (bash)

set -euo pipefail
INSTALL_ROOT="${HOME}/mcp-servers"
SERVER_DIR="${INSTALL_ROOT}/codeviewer-mcp"

mkdir -p "${INSTALL_ROOT}"
if [ ! -d "${SERVER_DIR}/.git" ]; then
  git clone https://github.com/Master0fFate/codeviewer-mcp.git "${SERVER_DIR}"
else
  git -C "${SERVER_DIR}" pull --ff-only
fi

cd "${SERVER_DIR}"
pnpm install
pnpm build

Idempotente Installation/Aktualisierung (PowerShell)

$InstallRoot = Join-Path $HOME "mcp-servers"
$ServerDir = Join-Path $InstallRoot "codeviewer-mcp"

New-Item -ItemType Directory -Path $InstallRoot -Force | Out-Null
if (-not (Test-Path (Join-Path $ServerDir ".git"))) {
  git clone https://github.com/Master0fFate/codeviewer-mcp.git $ServerDir
} else {
  git -C $ServerDir pull --ff-only
}

Set-Location $ServerDir
pnpm install
pnpm build

Harness-Installation (Claude Code, VS Code Copilot, OpenCode, generisches MCP)

Verwenden Sie in jedem Harness dieselben STDIO-Startwerte.

Kanonischer Serverblock:

{
  "name": "codeviewer-mcp",
  "transport": "stdio",
  "command": "node",
  "args": ["/absolute/path/to/codeviewer-mcp/dist/index.js"],
  "env": {
    "MCP_PROJECT_PATH": "/absolute/path/to/target/repo",
    "MCP_REVIEWER_DB_PATH": "/absolute/path/to/target/repo/.codeviewer-mcp.sqlite",
    "LOG_LEVEL": "info"
  }
}

Claude Code / Claude Desktop

  1. Öffnen Sie die Claude MCP-Konfiguration.

  2. Fügen Sie codeviewer-mcp unter mcpServers mit den kanonischen Befehls-/Argument-/Umgebungswerten hinzu.

  3. Starten Sie Claude neu.

  4. Überprüfen Sie, ob die Tools erkennbar sind.

Beispiel:

{
  "mcpServers": {
    "codeviewer-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/codeviewer-mcp/dist/index.js"],
      "env": {
        "MCP_PROJECT_PATH": "/absolute/path/to/repo"
      }
    }
  }
}

VS Code Copilot (MCP)

  1. Öffnen Sie die VS Code MCP-Serververwaltung (UI oder JSON-Einstellungen, je nach Version).

  2. Registrieren Sie einen lokalen STDIO-MCP-Server namens codeviewer-mcp.

  3. Setzen Sie den Befehl node, verweisen Sie die Argumente auf das erstellte dist/index.js und setzen Sie MCP_PROJECT_PATH.

  4. Laden Sie das VS Code-Fenster neu, falls dies von Ihrer Erweiterungsversion gefordert wird.

  5. Bestätigen Sie die Tool-Erkennung in der Copilot Chat MCP-Toolliste.

Wenn Ihre Version JSON-Einstellungen unterstützt, ordnen Sie den kanonischen Serverblock Ihrem MCP-Einstellungsschema zu.

OpenCode

  1. Öffnen Sie die OpenCode MCP-Konfiguration.

  2. Fügen Sie einen lokalen STDIO-Server namens codeviewer-mcp hinzu.

  3. Verwenden Sie node + erstelltes dist/index.js.

  4. Setzen Sie MCP_PROJECT_PATH und optionale DB-/Log-Umgebungsvariablen.

  5. Starten Sie OpenCode neu und überprüfen Sie, ob die Tools erscheinen.

Generische MCP-Clients

Jeder Client, der lokale STDIO-MCP-Server unterstützt, kann den obigen kanonischen Block verwenden. Wenn Feldnamen abweichen, ordnen Sie dieselben Werte Ihrem Client-Schema zu.

Verifizierungs-Checkliste

  • [ ] Server startet ohne Prozessfehler

  • [ ] Client meldet, dass die MCP-Verbindung hergestellt wurde

  • [ ] Tools sichtbar: register_plan, review_code_chunk, cleanup_expired_sessions, cleanup_session, list_sessions, list_indexing_errors, list_prompt_profiles, get_prompt_profile, health_check

  • [ ] register_plan gibt eine gültige session_id zurück

  • [ ] review_code_chunk gibt eine strukturierte Urteilsausgabe zurück

  • [ ] health_check meldet einen gesunden Datenbank-/Sitzungsstatus

Entwicklung und Validierung

pnpm test
pnpm build

Sicherheitshinweise

  • Pfad-Containment-Prüfungen verhindern das Entweichen aus dem konfigurierten Projektstammverzeichnis, einschließlich symbolischer Link-basierter Ausbrüche.

  • Die Authentifizierung ist optional (MCP_AUTH_TOKEN) und sollte in geteilten Umgebungen aktiviert werden.

  • Sitzungen laufen automatisch basierend auf MCP_SESSION_TTL_HOURS ab.

  • SQLite ist mit WAL-Modus und aktivierten Fremdschlüsseln konfiguriert.

Repository-Struktur

  • /src/index.ts - Prozesseinstiegspunkt und STDIO-Transport

  • /src/server.ts - MCP-Server und Tool-Registrierung

  • /src/schemas.ts - Zod-Tool-Vertragsschemata

  • /src/state.ts - SQLite-Zustandsspeicher und Sitzungslebenszyklus

  • /src/ast.ts - AST-Indizierung und Kontextlokalisierung

  • /src/preflight.ts - Statische Preflight-Prüfungen

  • /src/reviewer.ts - Review-Entscheidung und Ausgabegestaltung

  • /src/logger.ts - Strukturiertes Logging

  • /tests - Vitest-Testsuite

Lizenz

GNU v3

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A code review tool server based on Model Context Protocol (MCP), providing multi-dimensional code review and scoring functions.
    4
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server providing 29 tools across 5 layers for semantic TypeScript/JavaScript code intelligence, enabling AI agents to find references, trace impacts, guard APIs, and explain errors without text-search false positives.
    6 npm
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server for automated refactoring of Java and TypeScript/JavaScript codebases.
    16
    4
    -