代码语义分析服务

一个支持多语言的代码语义分析工具,提供代码搜索、相似性检测、影响分析等功能,适用于复杂代码库的分析和优化。

  • by DexwoxBusiness
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 DexwoxBusiness/aelus-aether-mcp

使用说明

代码图RAG MCP服务器

赞助商https://accelerator.slider-ai.ru/

基于语义智能的高级多语言代码分析

一个强大的 模型上下文协议 服务器,用于创建具有全面语义分析功能的代码库的智能图表示。

🌟 支持10种语言 | ⚡ 5.5倍更快 | 🔍 语义搜索 | 📊 24种MCP方法


🚀 快速开始

安装

# 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桌面集成

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

或

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

手动设置:添加到Claude桌面配置→ 请参阅详细说明

Gemini CLI集成

# 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集成

# 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"

多代码库支持:同时分析多个项目→ 多代码库设置指南

安装指南(所有客户端)

  • NPM: npm install -g @er77/code-graph-rag-mcp
  • 在本地运行服务器: code-graph-rag-mcp /path/to/your/project
  • 克劳德:使用检查器(如上)或查看 快速开始
  • 双子座:奔跑 ./scripts/GEMINI-CORRECT-CONFIG.sh 并按照打印的命令进行操作
  • Codex:运行 ./scripts/CODEX-CORRECT-CONFIG.sh 并更新 ~/.codex/config.toml

🏆 演出

比原生Claude工具快5.5倍 具有全面的测试结果:

指标 克劳德原住民 MCP代码图 改进
执行时间 55.84s <10s 速度提高5.5倍
内存使用情况 进程繁重 65MB 优化
特点 基本模式 24种方法 全面的
准确性 基于模式 语义 优越的

🔍 主要特点

🔬 高级分析工具(24种MCP方法)

功能 描述 用例
语义搜索 自然语言代码搜索 “查找身份验证功能”
代码相似性 重复和克隆检测 识别重构机会
JSCPD克隆扫描 基于JSCPD的复制/粘贴检测,无需嵌入 有针对性的重复扫描
影响分析 变更影响预测 评估修改风险
人工智能重构 智能代码建议 提高代码质量
热点分析法 复杂性和耦合度量 查找问题区域
跨语言 多语言关系 多语言代码库
图形运行状况 数据库诊断 get_graph_health
版本信息 服务器版本和运行时详细信息 get_version
安全重置 彻底重新索引 reset_graph, clean_index
代理遥测 跨代理的运行时指标 get_agent_metrics
总线诊断 检查/清除知识总线主题 get_bus_stats, clear_bus_topic
Lerna项目图 工作区依赖关系DAG导出、可选摄取、缓存刷新控制 lerna_project_graph (需要Lerna配置)
语义热身 用于嵌入的可配置缓存启动 mcp.semantic.cacheWarmupLimit

⚡ 高性能架构

度量 能力 详细信息
解析速度 100+文件/秒 基于树保姆
查询响应 <100ms 优化SQLite+矢量搜索
代理系统 多代理协调 资源管理执行
矢量搜索 硬件加速(可选) 自动嵌入摄取
AST分析 精确的代码片段 语义上下文提取

🌐 多语言支持(10种语言)

语言 功能 支持级别
python Async/await、装饰器、魔术方法(40+)、数据类 ✅ 高级(95%)
Types/JavaScript 完整的ES6+、JSX、TSX、React模式 ✅ 完成(100%)
C/C++ 函数、结构/联合体/枚举、类、命名空间、模板 ✅ 高级(90%)
C 类、接口、枚举、属性、LINQ、async/await ✅ 高级(90%)
锈 函数、结构、枚举、特征、impls、模块、use ✅ 高级(90%)
去 包、函数、结构、接口、goroutines、通道 ✅ 高级(90%)
Java 类、接口、枚举、记录(Java 14+)、泛型、lambdas ✅ 高级(90%)
VBA 模块、子、函数、属性、用户定义类型 ✅ 基于正则表达式(80%)

🛠️ 用法示例

# 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.

使用克劳德桌面:

  1. “我的代码库中有哪些实体?”
  2. “查找与此函数类似的代码”
  3. “分析更改此类的影响”
  4. “建议对此文件进行重构”

多项目查询:

  1. “分析前端应用程序代码库结构”
  2. “在后端api中查找身份验证函数”
  3. “比较所有项目的用户管理”

🧰 故障排除

  • 本机模块不匹配(better-sqlite3)
    从v2.6.4开始,当服务器检测到 NODE_MODULE_VERSION 不匹配。如果自动重建失败(例如由于文件权限),请运行:

    npm rebuild better-sqlite3
    

    在安装目录中(在全局范围内,这通常是 /usr/lib/node_modules/@er77/code-graph-rag-mcp).

  • 旧数据库缺少新列
    较旧的安装可能缺少最新的 embeddings 列(metadata, model_name等等)。服务器现在自动升级到位,但如果仍然遇到迁移错误,请删除本地数据库并重新运行索引器:

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

    然后再次启动服务器以触发干净重建。

  • 从CLI运行一次性索引
    您可以通过传递JSON-RPC有效载荷直接触发工具。当提供有效负载时,服务器跳过语义代理,并使用低内存批处理进行调试。例子:

    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}}}'
    

    该命令将进度记录到 logs_llm/mcp-server-YYYY-MM-DD.log.Set MCP_DEBUG_DISABLE_SEMANTIC=0 如果你想在运行期间启用嵌入。


📋 更新日志

🚀 版本2.7.4(2025-11-02)- 克隆报告和CLI增强

  • 🆕 添加 --help/-h 和 --version/-v 用于快速CLI交互的标志
  • 🔄 detect_code_clones 现在将重复数据消除的语义组与JSCPD摘要合并
  • 📊 jscpd_detect_clones 摘要包括重复的行/标记计数、百分比和内联片段
  • 🧪 集成覆盖率验证克隆报告字段以防止回归
  • 🔁 维护供应商提供的轻量级JSCPD管道,无外部缺陷

🚀 版本2.7.0(2025-11-02)- JSCPD克隆检测

  • ➕ 添加 jscpd_detect_clones MCP工具暴露JSCPD重复检测,无需嵌入
  • 🧩 提供轻量级JSCPD内核/令牌化器,实现零外部构建依赖
  • 🧪 新的集成夹具确保JSCPD扫描表面预期的重复块
  • 📚 README/工具目录现在统计了23种MCP方法和JSCPD使用文档

🚀 版本2.6.0(2025-10-12)- 主要架构升级

重大变革和重大改进 ⚡

  • 🔄 基于提供者的嵌入:支持内存/变压器/ollama/openai/cloudru提供商的新架构
  • 🧭 运行时诊断: get_agent_metrics, get_bus_stats,以及 clear_bus_topic 为Codex自动化提供实时遥测和知识总线控制
  • 🛡️ 代理背压提示:MCP工具现在接收结构化 agent_busy 容量饱和时带有重试指导的响应
  • 🎯 确定性图ID:实体和关系的基于SHA256的稳定ID
  • ✨ 增强的矢量存储:重命名的表(doc_embeddings, vec_doc_embeddings)改进了sqlite-vec集成
  • 🔧 YAML驱动配置:跨解析器/索引器/嵌入代理的统一配置
  • 📊 改进的解析器:通过增量解析和更丰富的元数据重新启用树型ParserAgent
  • 🛡️ 硬化MCP工具:更好的实体解析、结构+语义响应、改进的图形操作
  • 🔁 临时行动:本地重复数据消除和ON CONFLICT故障,可实现一致的图形写入

技术细节:

  • 具有安全回退的运行时动态维度检测
  • 通过事务更新按ID进行批量重复数据删除
  • 具有结构化模式数据的增强型语言分析器
  • SQLiteManager+GraphStorage单例实现一致性

测试与验证(2025-10-21):

  • ✅ 所有16/16个测试套件均通过(200多个单独测试,成功率93.75%)
  • ✅ 100%MCP方法验证(22/22方法全面测试)
  • ✅ v2.6.0新方法已验证: get_agent_metrics, get_bus_stats, clear_bus_topic
  • ✅ 集成测试覆盖率:所有核心组件、语义操作和监控工具
  • ✅ v2.5.9保留并增强了双模式修复 sqliteVecEnabled 财产
  • ✅ PR#20整合后零回归
  • ⚠️ 已知问题:重复 case "get_graph" 在src/index.ts:1668&1707中(非关键,无法访问1707行)

🎉 版本2.5.9(2025-10-06)- 100%成功率

  • ✅ 完整的矢量模式修复:sqlite-vec和回退模式的双模式支持
  • ✅ 所有17种MCP方法都有效:验证成功率100%
  • 📈 成功率:33%(v2.5.7)→ 61% (v2.5.8)→ 100%(v2.5.9)

版本2.5.8(2025-10-06)-关键基础设施修复

  • ✅ 固定代理并发限制: 3 → 10 并发代理
  • ✅ 固定向量数据库模式:sqlite-vec扩展的双模式支持

先前版本

Click to expand version history (2.5.7 - 2.3.3)

v2.5.7 -语义分析改进、阈值降低、克隆检测 v2.5.6 -修复了DoraAgent类型冲突(成功率+16%) v2.5.5 -WASM路径分辨率修复, get_version 工具,重新启动脚本 v2.5.4 -架构决策记录(ADR) v2.5.3 -弃用的依赖警告抑制 v2.5.2 -增强的README文档 v2.5.1 -Python魔术方法,导入分析增强 v2.5.0 -8种新语言(C#、Rust、C、C++、Go、Java、VBA),三一研究院 v2.4.1 -Rust-AST解析,系统架构文档 v2.4.0 -健康检查工具、AST热点、语义路由 v2.3.3 -实体提取修复(0→4467个实体)


⚡ 系统要求

最小:Node.js 18+,2GB RAM,双核CPU 推荐:Node.js 18+,8GB RAM,带SSD的四核CPU

已知问题

  • 已弃用 boolean@3.2.0 警告:这是可选项的传递依赖项 onnxruntime-node 包(用于ML嵌入)。该软件包已弃用,但功能正常。该警告可以安全地忽略,因为它不会影响核心功能。

🤝 贡献

  1. 分叉存储库
  2. 跟随 代理治理 规则
  3. 提交拉取请求

贡献指南 • 问题追踪器


📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

链接: GitHub • NPM • MCP协议