trace-mcp 1.11.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -29
- package/dist/cli.js +11093 -7030
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +28 -0
- package/dist/index.js +8482 -6473
- package/dist/index.js.map +1 -1
- package/hooks/trace-mcp-guard-read.ps1 +140 -0
- package/hooks/trace-mcp-guard.cmd +40 -8
- package/hooks/trace-mcp-guard.sh +60 -12
- package/hooks/trace-mcp-precompact.cmd +9 -1
- package/hooks/trace-mcp-precompact.sh +14 -1
- package/hooks/trace-mcp-worktree.cmd +45 -13
- package/hooks/trace-mcp-worktree.sh +73 -19
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -39,20 +39,20 @@ _Last updated: April 2026. Based on public documentation and GitHub repos. If yo
|
|
|
39
39
|
|
|
40
40
|
Tools that help AI agents read code with fewer tokens — AST parsing, outlines, context packing.
|
|
41
41
|
|
|
42
|
-
| Capability | trace-mcp | Repomix | Context Mode | code-review-graph | jCodeMunch | codebase-memory-mcp |
|
|
43
|
-
|
|
44
|
-
| **GitHub stars** | — | 23K | 6.6K | 5.1K | 1.5K | 1.3K |
|
|
45
|
-
| Tree-sitter AST parsing | ✅ 68 languages | ✅ compress only (~20) | ❌ no code parsing | ✅ | ✅ ~40 languages | ✅ 66 languages |
|
|
46
|
-
| Token-efficient symbol lookup | ✅ outlines, symbols, bundles | ❌ packs entire files | ✅ sandboxed output | ✅ | ✅ core focus | ✅ |
|
|
47
|
-
| Cross-file dependency graph | ✅ directed edge graph | ❌ | ❌ | ✅ knowledge graph | ✅ import graph | ✅ knowledge graph |
|
|
48
|
-
| Framework-aware edges | ✅ 53 integrations (14 frameworks, 7 ORMs, 12 UI libs) | ❌ | ❌ | ❌ |
|
|
49
|
-
| Impact analysis | ✅ reverse dep traversal | ❌ | ❌ | ❌ | ✅ blast radius | ✅ detect_changes |
|
|
50
|
-
| Call graph | ✅ bidirectional | ❌ | ❌ | ❌ | ✅
|
|
51
|
-
| Refactoring tools | ✅ rename, extract, dead code, codemod | ❌ | ❌ | ❌ | ❌ (dead code detect only) | ❌ |
|
|
52
|
-
| Security scanning | ✅ OWASP Top-10, taint | ✅ Secretlint | ❌ | ❌ | ❌ | ❌ |
|
|
53
|
-
| Multi-repo federation | ✅ cross-repo API linking | ✅ remote repos | ❌ | ❌ | ✅ GitHub repos | ❌ |
|
|
54
|
-
| Session memory | ✅ built-in | ❌ | ✅ SQLite journal | ❌ | ✅ index persistence | ✅ persistent graph |
|
|
55
|
-
| Written in | TypeScript | TypeScript | TypeScript | Python | Python | C |
|
|
42
|
+
| Capability | trace-mcp | Repomix | Context Mode | code-review-graph | jCodeMunch | codebase-memory-mcp | cymbal |
|
|
43
|
+
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
44
|
+
| **GitHub stars** | — | 23K | 6.6K | 5.1K | 1.5K | 1.3K | 137 |
|
|
45
|
+
| Tree-sitter AST parsing | ✅ 68 languages | ✅ compress only (~20) | ❌ no code parsing | ✅ | ✅ ~40 languages | ✅ 66 languages | ✅ 22 languages |
|
|
46
|
+
| Token-efficient symbol lookup | ✅ outlines, symbols, bundles | ❌ packs entire files | ✅ sandboxed output | ✅ | ✅ core focus | ✅ | ✅ outline/show/context |
|
|
47
|
+
| Cross-file dependency graph | ✅ directed edge graph | ❌ | ❌ | ✅ knowledge graph | ✅ import graph | ✅ knowledge graph | ✅ refs/importers |
|
|
48
|
+
| Framework-aware edges | ✅ 53 integrations (14 frameworks, 7 ORMs, 12 UI libs) | ❌ | ❌ | ❌ | ✅ 21 frameworks (route/middleware) | partial (REST routes) | ❌ |
|
|
49
|
+
| Impact analysis | ✅ reverse dep traversal + decorator filter | ❌ | ❌ | ❌ | ✅ blast radius + decorator filter | ✅ detect_changes | ✅ impact command |
|
|
50
|
+
| Call graph | ✅ bidirectional, graph-based | ❌ | ❌ | ❌ | ✅ AST-based, bidirectional | ✅ trace_call_path | ✅ refs/importers |
|
|
51
|
+
| Refactoring tools | ✅ rename, extract, dead code, codemod | ❌ | ❌ | ❌ | ❌ (dead code detect only) | ❌ | ❌ |
|
|
52
|
+
| Security scanning | ✅ OWASP Top-10, taint | ✅ Secretlint | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
53
|
+
| Multi-repo federation | ✅ cross-repo API linking | ✅ remote repos | ❌ | ❌ | ✅ GitHub repos | ❌ | ❌ |
|
|
54
|
+
| Session memory | ✅ built-in | ❌ | ✅ SQLite journal | ❌ | ✅ index persistence | ✅ persistent graph | ❌ |
|
|
55
|
+
| Written in | TypeScript | TypeScript | TypeScript | Python | Python | C | Go |
|
|
56
56
|
|
|
57
57
|
### vs. AI session memory
|
|
58
58
|
|
|
@@ -97,20 +97,21 @@ _¹ mcp-local-rag and knowledge-rag are document RAG tools (PDF, DOCX, Markdown)
|
|
|
97
97
|
|
|
98
98
|
### vs. code graph MCP servers
|
|
99
99
|
|
|
100
|
-
| Capability | trace-mcp | code-review-graph | codebase-memory-mcp | SocratiCode | Narsil-MCP | Roam-Code |
|
|
101
|
-
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
100
|
+
| Capability | trace-mcp | Serena | code-review-graph | codebase-memory-mcp | SocratiCode | Narsil-MCP | Roam-Code |
|
|
101
|
+
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
102
|
+
| **GitHub stars** | — | 22.6K | 5.1K | 1.3K | — | — | — |
|
|
103
|
+
| Languages | 68 | ~20 (via LSP) | ~10 | 66 | ~15 | 32 | ~10 |
|
|
104
|
+
| Framework integrations | 53 (14 fw + 7 ORM + 12 UI + 20 other) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
105
|
+
| Cross-language edges | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
106
|
+
| MCP tools | 120+ | ~35 | ~15 | ~20 | ~25 | 90 | 139 |
|
|
107
|
+
| Session memory | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
108
|
+
| CI/PR reports | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
109
|
+
| Multi-repo federation | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
110
|
+
| Security scanning | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
|
|
111
|
+
| Refactoring tools | ✅ | ✅ rename, symbol editing | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
112
|
+
| Architecture governance | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
|
|
113
|
+
| Token savings tracking | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
114
|
+
| Written in | TypeScript | Python | Python | C | TypeScript | Rust | Python |
|
|
114
115
|
|
|
115
116
|
> **Why framework awareness matters:** A graph that knows `UserController` exists but doesn't know it renders `Users/Show.vue` via Inertia is missing the edges that matter most. Framework integrations turn a syntax graph into a **semantic** graph — the agent sees the same connections a developer sees.
|
|
116
117
|
|
|
@@ -120,7 +121,7 @@ _¹ mcp-local-rag and knowledge-rag are document RAG tools (PDF, DOCX, Markdown)
|
|
|
120
121
|
|
|
121
122
|
AI agents burn tokens reading files they don't need. trace-mcp returns **precision context** — only the symbols, edges, and signatures relevant to the query.
|
|
122
123
|
|
|
123
|
-
**Benchmark: trace-mcp's own codebase** (
|
|
124
|
+
**Benchmark: trace-mcp's own codebase** (694 files, 3,831 symbols):
|
|
124
125
|
|
|
125
126
|
```
|
|
126
127
|
Task Without trace-mcp With trace-mcp Reduction
|
|
@@ -146,6 +147,18 @@ Total 572,444 tokens 49,997 tokens 91.3%
|
|
|
146
147
|
|
|
147
148
|
**Composite tasks deliver the biggest wins.** A single `get_task_context` call replaces a chain of ~10 sequential operations (search → get_symbol × 5 → Read × 3 → Grep × 2). That's **one round-trip instead of ten**, with 90%+ token reduction.
|
|
148
149
|
|
|
150
|
+
**Per-task breakdown** — what it actually costs to answer common questions:
|
|
151
|
+
|
|
152
|
+
| Question | Naive approach | trace-mcp tool | Tokens (naive) | Tokens (trace-mcp) | Reduction |
|
|
153
|
+
|---|---|---|---|---|---|
|
|
154
|
+
| "Where is `registerTool` defined?" | Grep all .ts files | `search` | ~12,400 | ~800 | **93%** |
|
|
155
|
+
| "What calls `getDeadCodeV2`?" | Grep + Read 8 files | `get_call_graph` | ~18,200 | ~1,100 | **94%** |
|
|
156
|
+
| "What breaks if I rename `Store`?" | Manual trace across 40+ files | `get_change_impact` | ~62,000 | ~2,400 | **96%** |
|
|
157
|
+
| "Find all tests for `extractOpenAPI`" | Glob + Read 12 test files | `get_tests_for` | ~14,800 | ~650 | **96%** |
|
|
158
|
+
| "Understand the indexing pipeline" | Read 15 source files | `get_task_context` | ~89,000 | ~7,200 | **92%** |
|
|
159
|
+
| "Unused exports in src/tools/" | Read + Grep all files | `get_dead_code` | ~38,000 | ~1,800 | **95%** |
|
|
160
|
+
| "All OpenAPI endpoints in the project" | Find + Read all .yaml/.json | `search` (kind=function, yamlKind=endpoint) | ~22,000 | ~900 | **96%** |
|
|
161
|
+
|
|
149
162
|
<details>
|
|
150
163
|
<summary>Methodology</summary>
|
|
151
164
|
|