Token导航 LogoToken导航TokenDH.com
Code Graph Rag MCP logo
开发工具未说明官方级别未说明来源级核验

Code Graph Rag MCP

MCP Server

一个基于Graph-RAG架构的强大C++代码分析服务器,提供语义搜索、崩溃转储分析和Web UI配置功能。

工具数

6

提示词数

0

GitHub Stars

1

资源数

0
代码分析PythonClaude搜索ClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gpowala

提供方

gpowala

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

C++图形RAG MCP服务器

一个强大的模型上下文协议(MCP)服务器,用于使用Graph RAG架构分析大型C++代码库。具有语义搜索、崩溃转储分析和用于配置的web UI。

特性

  • 图形RAG架构:将语义搜索(RAG)与关系图相结合
  • 碰撞倾倒分析:解析堆栈跟踪并立即找到有问题的代码
  • 树保姆解析:准确的C++解析,理解语法
  • 增量索引:智能变化检测和高效更新
  • pg矢量存储:快速矢量相似性搜索
  • Web UI仪表板:配置目录并监视索引状态
  • Docker+Podman:适用于两个容器运行时

快速开始

先决条件

  • Docker(20.x+)或Podman(4.x+)
  • 4GB+RAM(建议大型代码库使用8GB)
  • 5GB可用磁盘空间

1.配置环境

# Copy example config
cp env.example .env

# Edit .env to set your source code path
# Windows example: HOST_PATH=C:/Projects
# Linux example: HOST_PATH=/home/user/projects

2.构建和启动

使用Docker:

# Build images
docker-compose build

# Start services
docker-compose up -d

# View logs
docker-compose logs -f mcp-server

使用Podman:

# Build images
podman-compose build

# Start services
podman-compose up -d

# View logs
podman-compose logs -f mcp-server

3.配置目录

打开web UI http://localhost:8000 致:

  1. 浏览已装载的目录
  2. 选择要索引的文件夹
  3. 监控索引进度
  4. 测试搜索

4.连接到克劳德桌面/VS代码

添加到MCP客户端配置中:

克劳德桌面 (%APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "cpp-codebase": {
      "url": "http://localhost:8000/mcp/v1"
    }
  }
}

VS Code (MCP扩展设置):

{
  "mcp.servers": {
    "cpp-codebase": "http://localhost:8000/mcp/v1"
  }
}

网页用户界面

仪表板位于 http://localhost:8000 提供:

特性描述
索引状态查看索引文件、找到的实体、进度
目录浏览器导航并选择要索引的目录
快速搜索测试语义搜索查询
重新索引按钮手动触发重新索引

可用的MCP工具

搜索代码

在代码库中进行语义搜索。

"Find database connection patterns"
"Show mutex locking implementations"

find_symbol

精确的符号查找和用法。

"Find ConnectionPool::acquire"
"Where is DatabaseManager defined?"

跟踪依赖关系

依赖关系的图遍历。

"What does AuthManager depend on?"
"Show me everything that calls validateUser"

get_text

AI代理的全面上下文。

"Get context about the payment processing module"

分析调试文本

从Visual Studio分析崩溃转储。

Provide: file path, line number, exception info, call stack

查找代码位置

导航到特定文件和行。

"Show me database_connection.cpp line 95"

配置

环境变量

变量默认值描述
HOST_PATH./example_code安装路径 /host
MONITORED_PATHS(空)索引的逗号分隔路径
MCP_PORT8000API和web UI的端口
DB_NAMEcpp_codebasePostgreSQL数据库名称
DB_USERpostgres数据库用户
DB_PASSWORDpostgres数据库密码
EMBEDDING_MODELall-MiniLM-L6-v2句子转换模型

数据载体安装

以只读方式挂载源代码:

volumes:
  # Mount entire drive (Windows)
  - C:/:/host:ro
  
  # Mount specific directory (Linux)
  - /home/user/projects:/host:ro

然后使用web UI选择特定的子目录。

建筑

┌─────────────────────────────────────────────────────────────┐
│                    Container Network                         │
│  ┌─────────────────────┐    ┌─────────────────────────────┐ │
│  │  PostgreSQL 18      │    │  MCP Server                 │ │
│  │  + pgvector         │◄───│  + FastAPI                  │ │
│  │  (pg18-trixie)      │    │  + Web UI                   │ │
│  │  Port: 5432         │    │  Port: 8000                 │ │
│  └─────────────────────┘    └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

命令参考

码头工人

# Start
docker-compose up -d

# Stop
docker-compose down

# View logs
docker-compose logs -f mcp-server

# Rebuild after code changes
docker-compose build --no-cache

# Reset database (deletes all indexed data)
docker-compose down -v
docker-compose up -d

# Check status
docker-compose ps

# Enter container shell
docker-compose exec mcp-server bash

波德曼

# Start
podman-compose up -d

# Stop
podman-compose down

# View logs
podman-compose logs -f mcp-server

# Rebuild
podman-compose build --no-cache

# Reset database
podman-compose down -v
podman-compose up -d

API终点

# Check health
curl http://localhost:8000/api/status

# List MCP tools
curl http://localhost:8000/mcp/v1/tools

# Search code
curl -X POST http://localhost:8000/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "database connection"}'

# Get directories
curl http://localhost:8000/api/directories

# Browse directory
curl "http://localhost:8000/api/browse?path=/host"

故障排除

服务器无法启动

# Check logs
docker-compose logs mcp-server

# Common issues:
# - PostgreSQL not ready: Wait 30 seconds
# - Port in use: Change MCP_PORT in .env
# - Out of memory: Increase Docker memory limit

没有文件索引

# Verify mount
docker-compose exec mcp-server ls -la /host

# Check configured paths
curl http://localhost:8000/api/directories

索引速度慢

# Use faster embedding model
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2

# Check database size
docker-compose exec postgres psql -U postgres -d cpp_codebase \
  -c "SELECT pg_size_pretty(pg_database_size('cpp_codebase'));"

Linux上的权限被拒绝

# Add user to docker group
sudo usermod -aG docker $USER

# Or use podman (rootless by default)
podman-compose up -d

性能提示

代码库大小RAM首次索引时间
10K LOC4GB约30秒
100K LOC4GB约5分钟
1M LOC8GB约45分钟
3M+LOC16GB约2小时

适用于大型代码库

  1. 从单个模块开始进行测试
  2. 使用快速嵌入模型(默认)
  3. 通过web UI仅索引所需的目录
  4. 考虑使用SSD作为数据库卷

项目结构

cpp-graph-rag-mcp/
├── server.py              # Main MCP server (FastAPI)
├── parser.py              # Tree-sitter C++ parser
├── indexer.py             # Code indexer
├── crash_analyzer.py      # Crash dump analysis
├── vs_context_analyzer.py # VS debugging integration
├── config_manager.py      # Configuration persistence
├── requirements.txt       # Python dependencies
├── Dockerfile             # Container build
├── docker-compose.yml     # Multi-container setup
├── env.example            # Configuration template
├── static/                # Web UI files
│   ├── index.html
│   ├── styles.css
│   └── app.js
├── example_code/          # Sample C++ for testing
└── docs/                  # Documentation

安全说明

  • 默认情况下,服务器仅在本地主机上运行
  • 代码以只读方式装载
  • 生产时应更改数据库密码
  • 没有数据离开您的机器(本地嵌入)

许可证

MIT许可证-免费使用和修改。

贡献

需要改进的关键领域:

  • 模板专业化处理
  • 宏观扩张跟踪
  • 多语言支持
  • 可视化依赖关系图查看器

目录标签

目录标签

代码分析PythonClaude搜索本地部署语义搜索崩溃分析Graph-RAGC++

支持客户端

ClaudeVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP