语义图RAG工具

一个用于分析和查询代码库语义图的工具,支持通过Neo4j存储和检索代码节点关系。

  • by sc-agentic
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 sc-agentic/scg-mcp

使用说明

语义图RAG

项目选择

以下所有命令均接受 --project <name> 标记以选择要分析的代码库。
可用项目定义见 src/config.py.

项目 数据目录 代码目录
glide data/glide code/glide-4.5.0
private_repo data/private_repo code/private_repo

默认项目为 private_repo。您可以通过三种方式覆盖它:

# 1. CLI flag (highest priority)
uv run python -m src.bootstrap --project glide

# 2. Environment variable
export SCG_PROJECT=glide
uv run python -m src.bootstrap

# 3. Change DEFAULT_PROJECT in src/config.py

添加新项目

  1. 将语义图数据放入 data/<name>/
  2. 将源代码放在 code/<name>/
  3. 向添加条目 PROJECTS dict in src/config.py

快速开始

docker-compose up -d                                # Start Neo4j
uv run python -m src.bootstrap --project glide      # Build embeddings & upload to Neo4j

npx @modelcontextprotocol/inspector uv run python -m src.mcp_server --project glide  # Start MCP Inspector

查询

MATCH (n:CodeNode)-[r:CALL|TYPE]->(m:CodeNode)
WHERE n.id CONTAINS "DiskCache"
RETURN n, r, m LIMIT 50

显式节点

MATCH (n:CodeNode) WHERE n.kind IS NOT NULL RETURN n LIMIT 5

隐式节点

MATCH (n:Node) WHERE n.kind IS NULL RETURN n LIMIT 5

计数节点

MATCH (n) RETURN count(n)

显示节点和直接关系

MATCH (n)
WITH n LIMIT 200
MATCH (n)-[r]-(m)
RETURN n, r, m

MCP检查员

npx @modelcontextprotocol/inspector uv run python -m src.mcp_server --project glide