Code Graph RAG MCP

Code Rag with Graph - local only installation

Code Graph RAG MCP Server

npm version License: MIT Node.js

Sponsor https://accelerator.slider-ai.ru/

Advanced Multi-Language Code Analysis with Semantic Intelligence

A powerful Model Context Protocol server that creates intelligent graph representations of your codebase with comprehensive semantic analysis capabilities.

🌟 10 Languages Supported | ⚑ 5.5x Faster | πŸ” Semantic Search | πŸ“Š 24 MCP Methods


πŸš€ Quick Start

Installation

# Install globally
npm install -g @er77/code-graph-rag-mcp

# Or use with npx (no installation)
npx @er77/code-graph-rag-mcp /path/to/your/project

Claude Desktop Integration

# Quick setup (recommended)
npx @modelcontextprotocol/inspector add code-graph-rag \
  --command "npx" \
  --args "@er77/code-graph-rag-mcp /path/to/your/codebase"

or

# Быстрая настройка (рСкомСндуСтся)
  claude mcp add-json  code-graph-rag ' { 
        "command": "npx",
        "args": ["@er77/code-graph-rag-mcp", "/_work_fodler"],
  "env": {
    "MCP_TIMEOUT": "80000"
  }
      }

Manual setup: Add to Claude Desktop config β†’ See detailed instructions

Gemini CLI Integration

# Using helper script (prints the exact gemini CLI command to run)
./scripts/GEMINI-CORRECT-CONFIG.sh

# Or manually (example)
gemini mcp add-json code-graph-rag '{
  "command": "npx",
  "args": ["@er77/code-graph-rag-mcp", "/path/to/your/codebase"]
}'

Codex CLI Integration

# Using helper script (prints how to update ~/.codex/config.toml)
./scripts/CODEX-CORRECT-CONFIG.sh

# Project-scoped MCP server in ~/.codex/config.toml
[projects."/path/to/your/project".mcp_servers.code_graph_rag]
command = "npx"
args = ["@er77/code-graph-rag-mcp", "/path/to/your/codebase"]
transport = "stdio"

Multi-codebase support: Analyze multiple projects simultaneously β†’ Multi-Codebase Setup Guide

Installation Guide (All Clients)

  • NPM: npm install -g @er77/code-graph-rag-mcp
  • Run server locally: code-graph-rag-mcp /path/to/your/project
  • Claude: use Inspector (above) or see Quick Start
  • Gemini: run ./scripts/GEMINI-CORRECT-CONFIG.sh and follow the printed command
  • Codex: run ./scripts/CODEX-CORRECT-CONFIG.sh and update ~/.codex/config.toml

πŸ† Performance

5.5x faster than Native Claude tools with comprehensive testing results:

MetricNative ClaudeMCP CodeGraphImprovement
Execution Time55.84s<10s5.5x faster
Memory UsageProcess-heavy65MBOptimized
FeaturesBasic patterns24 methodsComprehensive
AccuracyPattern-basedSemanticSuperior

πŸ” Key Features

πŸ”¬ Advanced Analysis Tools (24 MCP Methods)

FeatureDescriptionUse Case
Semantic SearchNatural language code search"Find authentication functions"
Code SimilarityDuplicate & clone detectionIdentify refactoring opportunities
JSCPD Clone ScanJSCPD-based copy/paste detection without embeddingsTargeted duplicate sweeps
Impact AnalysisChange impact predictionAssess modification risks
AI RefactoringIntelligent code suggestionsImprove code quality
Hotspot AnalysisComplexity & coupling metricsFind problem areas
Cross-LanguageMulti-language relationshipsPolyglot codebases
Graph HealthDatabase diagnosticsget_graph_health
Version InfoServer version & runtime detailsget_version
Safe ResetClean reindexingreset_graph, clean_index
Agent TelemetryRuntime metrics across agentsget_agent_metrics
Bus DiagnosticsInspect/clear knowledge bus topicsget_bus_stats, clear_bus_topic
Lerna Project GraphWorkspace dependency DAG export, optional ingest, cached refresh controllerna_project_graph (requires Lerna config)
Semantic WarmupConfigurable cache priming for embeddingsmcp.semantic.cacheWarmupLimit

⚑ High-Performance Architecture

MetricCapabilityDetails
Parsing Speed100+ files/secondTree-sitter based
Query Response<100msOptimized SQLite + vector search
Agent SystemMulti-agent coordinationResource-managed execution
Vector SearchHardware-accelerated (optional)Automatic embedding ingestion
AST AnalysisPrecise code snippetsSemantic context extraction

🌐 Multi-Language Support (10 Languages)

LanguageFeaturesSupport Level
PythonAsync/await, decorators, magic methods (40+), dataclassesβœ… Advanced (95%)
TypeScript/JavaScriptFull ES6+, JSX, TSX, React patternsβœ… Complete (100%)
C/C++Functions, structs/unions/enums, classes, namespaces, templatesβœ… Advanced (90%)
C#Classes, interfaces, enums, properties, LINQ, async/awaitβœ… Advanced (90%)
RustFunctions, structs, enums, traits, impls, modules, useβœ… Advanced (90%)
GoPackages, functions, structs, interfaces, goroutines, channelsβœ… Advanced (90%)
JavaClasses, interfaces, enums, records (Java 14+), generics, lambdasβœ… Advanced (90%)
VBAModules, subs, functions, properties, user-defined typesβœ… Regex-based (80%)

πŸ› οΈ Usage Examples

# Single project analysis
code-graph-rag-mcp /path/to/your/project

# CLI helpers
code-graph-rag-mcp --help
code-graph-rag-mcp --version

# Multi-project setup (see Multi-Codebase Setup Guide)
# Configure multiple projects in Claude Desktop config

# Check installation
code-graph-rag-mcp --help

# Health & maintenance
# Health check (totals + sample)
get_graph_health
# Reset graph data safely
reset_graph
# Clean reindex (reset + full index)
clean_index
# Lerna workspace graph (ingest into storage)
lerna_project_graph --args '{"ingest": true}'
# Force refresh graph and re-ingest (bypass cache)
lerna_project_graph --args '{"ingest": true, "force": true}'
# Cached runs return `cached: true`; use `force` to break the 30s debounce when configs change.
# Agent telemetry snapshot
get_agent_metrics
# Knowledge bus diagnostics
get_bus_stats
clear_bus_topic --args '{"topic": "semantic:search"}'

# One-shot index from the CLI (debug mode)
node dist/index.js /home/er77/tt '{"jsonrpc":"2.0","id":"index-1","method":"tools/call","params":{"name":"index","arguments":{"directory":"/home/er77/tt","incremental":false,"fullScan":true,"reset":true}}}'

# Relationships for an entity name
list_entity_relationships (entityName: "YourEntity", relationshipTypes: ["imports"]) 

# Adjust semantic warmup (optional)
export MCP_SEMANTIC_WARMUP_LIMIT=25

# Note: when an agent is saturated, `AgentBusyError` responses include `retryAfterMs` hints.

With Claude Desktop:

  1. "What entities are in my codebase?"
  2. "Find similar code to this function"
  3. "Analyze the impact of changing this class"
  4. "Suggest refactoring for this file"

Multi-Project Queries:

  1. "Analyze the frontend-app codebase structure"
  2. "Find authentication functions in backend-api"
  3. "Compare user management across all projects"

🧰 Troubleshooting

  • Native module mismatch (better-sqlite3)
    Since v2.6.4 the server automatically rebuilds the native binary when it detects a NODE_MODULE_VERSION mismatch. If the automatic rebuild fails (for example due to file permissions), run:

    npm rebuild better-sqlite3
    

    in the installation directory (globally this is commonly /usr/lib/node_modules/@er77/code-graph-rag-mcp).

  • Legacy database missing new columns
    Older installations might lack the latest embeddings columns (metadata, model_name, etc.). The server now auto-upgrades in place, but if you still encounter migration errors, delete the local DB and re-run the indexer:

    rm ~/.code-graph-rag/codegraph.db
    

    Then start the server again to trigger a clean rebuild.

  • Running a one-shot index from the CLI
    You can trigger tools directly by passing JSON-RPC payloads. When a payload is supplied, the server skips the semantic agent and uses low-memory batching for debugging. Example:

    node dist/index.js /path/to/project \
      '{"jsonrpc":"2.0","id":"index-1","method":"tools/call","params":{"name":"index","arguments":{"directory":"/path/to/project","incremental":false,"fullScan":true,"reset":true}}}'
    

    The command logs progress to logs_llm/mcp-server-YYYY-MM-DD.log. Set MCP_DEBUG_DISABLE_SEMANTIC=0 if you want embeddings enabled during the run.


πŸ“‹ Changelog

πŸš€ Version 2.7.4 (2025-11-02) - Clone Reporting & CLI Boost

  • πŸ†• Added --help/-h and --version/-v flags for quick CLI interaction
  • πŸ”„ detect_code_clones now merges deduplicated semantic groups with JSCPD summaries
  • πŸ“Š jscpd_detect_clones summary includes duplicated line/token counts, percentages, and inline snippets
  • πŸ§ͺ Integration coverage verifies clone-report fields to guard against regressions
  • πŸ” Maintains vendored lightweight JSCPD pipeline with zero external deps

πŸš€ Version 2.7.0 (2025-11-02) - JSCPD Clone Detection

  • βž• Added jscpd_detect_clones MCP tool exposing JSCPD duplicate detection without requiring embeddings
  • 🧩 Vendored lightweight JSCPD core/tokenizer for zero external build dependencies
  • πŸ§ͺ New integration fixtures ensure JSCPD scans surface expected duplicate blocks
  • πŸ“š README / tool catalog now counts 23 MCP methods and documents JSCPD usage

πŸš€ Version 2.6.0 (2025-10-12) - Major Architecture Upgrade

Breaking Changes & Major Improvements ⚑

  • πŸ”„ Provider-based embeddings: New architecture supporting memory/transformers/ollama/openai/cloudru providers
  • 🧭 Runtime diagnostics: get_agent_metrics, get_bus_stats, and clear_bus_topic expose live telemetry and knowledge-bus controls for Codex automation
  • πŸ›‘οΈ Agent backpressure hints: MCP tools now receive structured agent_busy responses with retry guidance when capacity is saturated
  • 🎯 Deterministic graph IDs: SHA256-based stable IDs for entities and relationships
  • ✨ Enhanced vector store: Renamed tables (doc_embeddings, vec_doc_embeddings) with improved sqlite-vec integration
  • πŸ”§ YAML-driven configuration: Unified configuration across parser/indexer/embedding agents
  • πŸ“Š Improved parser: Re-enabled tree-sitter ParserAgent with incremental parsing and richer metadata
  • πŸ›‘οΈ Hardened MCP tools: Better entity resolution, structural+semantic responses, improved graph operations
  • πŸ” Idempotent operations: Local de-duplication and ON CONFLICT upserts for consistent graph writes

Technical Details:

  • Dynamic dimension detection at runtime with safe fallbacks
  • Batch deduplication by ID with transactional updates
  • Enhanced language analyzers with structured pattern data
  • SQLiteManager + GraphStorage singleton for consistency

Testing & Validation (2025-10-21):

  • βœ… All 16/16 test suites passing (200+ individual tests, 93.75% success rate)
  • βœ… 100% MCP method validation (22/22 methods comprehensively tested)
  • βœ… v2.6.0 new methods validated: get_agent_metrics, get_bus_stats, clear_bus_topic
  • βœ… Integration test coverage: All core components, semantic operations, and monitoring tools
  • βœ… v2.5.9 dual-schema fixes preserved and enhanced with sqliteVecEnabled property
  • βœ… Zero regressions after PR #20 integration
  • ⚠️ Known issue: Duplicate case "get_graph" in src/index.ts:1668 & 1707 (non-critical, line 1707 unreachable)

πŸŽ‰ Version 2.5.9 (2025-10-06) - 100% Success Rate

  • βœ… Complete vector schema fix: Dual-schema support for sqlite-vec and fallback modes
  • βœ… All 17 MCP methods working: Verified 100% success rate
  • πŸ“ˆ Success rate: 33% (v2.5.7) β†’ 61% (v2.5.8) β†’ 100% (v2.5.9)

Version 2.5.8 (2025-10-06) - Critical Infrastructure Fixes

  • βœ… Fixed agent concurrency limit: 3 β†’ 10 concurrent agents
  • βœ… Fixed vector database schema: Dual-schema support for sqlite-vec extension

Previous Versions

v2.5.7 - Semantic analysis improvements, lowered thresholds, clone detection v2.5.6 - Fixed DoraAgent type collision (+16% success rate) v2.5.5 - WASM path resolution fix, get_version tool, restart script v2.5.4 - Architecture Decision Records (ADRs) v2.5.3 - Deprecated dependency warning suppression v2.5.2 - Enhanced README documentation v2.5.1 - Python magic methods, import analysis enhancements v2.5.0 - 8 new languages (C#, Rust, C, C++, Go, Java, VBA), Research Trinity v2.4.1 - Rust AST parsing, system architecture docs v2.4.0 - Health check tools, AST hotspots, semantic routing v2.3.3 - Entity extraction fix (0 β†’ 4,467 entities)


⚑ System Requirements

Minimum: Node.js 18+, 2GB RAM, Dual-core CPU Recommended: Node.js 18+, 8GB RAM, Quad-core CPU with SSD

Known Issues

  • Deprecated boolean@3.2.0 warning: This is a transitive dependency from the optional onnxruntime-node package (used for ML embeddings). The package is deprecated but functional. The warning can be safely ignored as it doesn't affect core functionality.

🀝 Contributing

  1. Fork the repository
  2. Follow Agent Governance rules
  3. Submit pull request

Contributing Guide β€’ Issue Tracker


πŸ“„ License

MIT License - see LICENSE file for details.

Links: GitHub β€’ NPM β€’ MCP Protocol

Related Servers