code-graph-context

v2026.09.24

Structural code graph queries via CodeGraphContext MCP (tree-sitter + KuzuDB). Find callers, callees, class hierarchies, dead code, and module dependencies.

GitHub
安装命令
npx skhub add oimiragieo/code-graph-context
Markdown
SKILL.md

CodeGraphContext Skill

Structural code graph queries using the CodeGraphContext MCP server (tree-sitter AST + KuzuDB property graph).

When to Use vs Other Search Tools

NeedTool
Who calls foo()?find_callers (this skill)
What does foo() call?find_callees (this skill)
Class hierarchy / interface implementorsget_class_hierarchy (this skill)
Dead code / unreachable functionsfind_dead_code (this skill)
Module-level import graphget_module_deps (this skill)
Keyword / regex searchpnpm search:code or ripgrep
Semantic / conceptual searchcode-semantic-search skill
AST shape matchingcode-structural-search skill
Compiler-verified definition/referenceslsp-navigator skill

Use this skill when you need relationship traversal across the call graph or import graph, not text matching.

MCP Tool Reference

ToolPurposeKey Parameters
find_callersAll functions/methods that call a symbolsymbol, file?, depth?
find_calleesAll symbols called by a functionsymbol, file?, depth?
get_class_hierarchySuperclasses, subclasses, interfacesclass_name, direction?
find_dead_codeFunctions with no callers in graphscope?, min_confidence?
get_module_depsImport/require dependency graphmodule, direction?, depth?
query_graphRaw Cypher query against KuzuDBcypher, params?

Setup

# Install CodeGraphContext MCP server
npm install -g @codetiger/code-graph-context-mcp

# Index your codebase (run from project root)
code-graph-context index --root . --lang typescript,javascript

Add to .claude/settings.json under mcpServers:

"CodeGraphContext": {
  "command": "code-graph-context-mcp",
  "args": ["--db", ".claude/context/data/code-graph.kuzu"]
}

Usage Pattern

// 1. Find all callers of a function
mcp__CodeGraphContext__find_callers({ symbol: 'shouldUseWorktree', depth: 2 });

// 2. Trace what a function depends on
mcp__CodeGraphContext__find_callees({ symbol: 'routeRequest', file: 'routing-table.cjs' });

// 3. Dead code candidates (low confidence = more results)
mcp__CodeGraphContext__find_dead_code({ scope: 'src/', min_confidence: 0.8 });

// 4. Raw Cypher for custom traversal
mcp__CodeGraphContext__query_graph({
  cypher: 'MATCH (a:Function)-[:CALLS]->(b:Function) WHERE b.name = $name RETURN a',
  params: { name: 'handleAuth' },
});

Integration with Agent-Studio Memory

After graph analysis, record structural findings:

MemoryRecord({
  type: 'pattern',
  content: 'routeRequest has 12 callers — high-risk refactor target',
  area: 'architecture',
});
MemoryRecord({
  type: 'gotcha',
  content: 'worktree-utils dead code: shouldPruneWorktree() never called',
  area: 'cleanup',
});

MCP Server Mode (Dual CLI + MCP)

CodeGraphContext supports two operation modes:

CLI mode (batch indexing, one-shot queries):

code-graph-context index --root . --lang typescript,javascript
code-graph-context query --cypher "MATCH (f:Function) RETURN f.name LIMIT 10"

MCP server mode (live, incremental — recommended for agent use):

npx @codetiger/code-graph-context-mcp --watch --db .claude/context/data/code-graph.kuzu

With --watch, the server monitors file changes and re-indexes incrementally. No manual re-index after refactors.

Neo4j Enterprise Option

For large codebases (>100K nodes), replace KuzuDB with Neo4j:

code-graph-context index --root . --backend neo4j --uri bolt://localhost:7687

Add to settings.json:

"CodeGraphContext": {
  "command": "code-graph-context-mcp",
  "args": ["--backend", "neo4j", "--uri", "bolt://localhost:7687"]
}

Interactive HTML Visualization

Generate a browsable call graph:

code-graph-context visualize --output .claude/context/tmp/call-graph.html

Pre-Indexed Bundles

For CI/CD pipelines, ship a pre-built graph bundle with the repo:

# In CI: build + archive
code-graph-context index --root . --export .claude/context/data/code-graph.bundle.gz

# In agent startup: restore
code-graph-context restore --bundle .claude/context/data/code-graph.bundle.gz

Complexity Analysis

// Find high-complexity functions (cyclomatic > 10)
mcp__CodeGraphContext__query_graph({
  cypher:
    'MATCH (f:Function) WHERE f.complexity > $threshold RETURN f.name, f.file, f.complexity ORDER BY f.complexity DESC',
  params: { threshold: 10 },
});

Anti-Patterns

  • Do not use query_graph raw Cypher before checking if a purpose-built tool covers the need
  • Do not treat find_dead_code results as certain — dynamic dispatch and reflection create false positives
  • With --watch MCP mode, manual re-index is not needed — avoid running index --incremental during active MCP sessions
  • Graph queries do not cross language boundaries (TypeScript ≠ Python in same repo)
  • Do not use KuzuDB for >100K node graphs in production — switch to Neo4j backend

When to Invoke

Skill({ skill: 'code-graph-context' });

Invoke for: impact analysis before refactoring, call chain debugging, dead code audits, module dependency reviews, and architectural dependency mapping.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

未指定

源路径

.claude/skills/code-graph-context

默认分支

main

最新提交

64b580e

Tree SHA

42a1df4