使用说明
代码图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.
使用克劳德桌面:
- “我的代码库中有哪些实体?”
- “查找与此函数类似的代码”
- “分析更改此类的影响”
- “建议对此文件进行重构”
多项目查询:
- “分析前端应用程序代码库结构”
- “在后端api中查找身份验证函数”
- “比较所有项目的用户管理”
🧰 故障排除
-
本机模块不匹配(
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.SetMCP_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_clonesMCP工具暴露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嵌入)。该软件包已弃用,但功能正常。该警告可以安全地忽略,因为它不会影响核心功能。
🤝 贡献
- 分叉存储库
- 跟随 代理治理 规则
- 提交拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
