| name | tsa-deps |
| version | 2.0.0 |
| description | Dependency / import graph analysis. Answer "what does this file import",
"what imports this module", "what's the project's import topology",
"show me the sitemap" without reading every file's import block.
Use when:
- "What does file X depend on" / "what imports module Y"
- "Is module Z a leaf or a hub in the import graph"
- "Show me the project sitemap" (which files glue what together)
- "Are there circular imports"
- Planning a module extraction: who'd you break
Replaces: grep-for-import-statements + manual graph walking
(~5k tokens for non-trivial repos) with 1 MCP call (~500 tokens).
|
| allowed-tools | ["mcp__tree-sitter-analyzer__health","mcp__tree-sitter-analyzer__structure","Bash","Read"] |
tsa-deps — Imports & module topology
Tool routing
| Question | Tool |
|---|
| One file's direct deps | health action=deps |
| Project-wide import graph (who imports whom) | health action=imports |
| Project topology (entry points, hubs) | structure action=sitemap |
Procedure
File-level deps
health action=deps file_path="tree_sitter_analyzer/ast_cache.py" mode="file_deps"
mode options:
summary — project-wide dependency summary (alias: full)
file_deps — one file's graph (requires file_path)
blast_radius — impact set for a file (alias: blast; requires file_path)
cycles — circular dependencies
Import graph (project-level)
health action=imports language="python" limit=50
Use to find:
- Hubs (many things import this) — high blast radius if changed
- Leaves (no one imports this) — possibly dead, or a CLI entry point
- Cycles — circular imports needing breaking
Sitemap
structure action=sitemap
Useful as a "first look" right after tsa-landing.
CLI equivalents
uv run tree-sitter-analyzer <file> --dependencies file_deps
uv run tree-sitter-analyzer --dependencies summary
uv run tree-sitter-analyzer --import-graph --import-graph-mode summary
uv run tree-sitter-analyzer --codegraph-sitemap
Anti-patterns
- DON'T grep for
^import / ^from to build a graph — incomplete (misses
conditional / lazy imports captured by the AST)
- DON'T worry about leaves at the start — they're often legitimate (CLI mains,
examples). Focus on hubs.
- DON'T extract a hub module without first checking its
imported_by list
— you'll break dozens of callers.