trace-mcp 1.14.1 → 1.15.1
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 +36 -8
- package/dist/cli.js +113279 -61582
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +119 -16
- package/dist/index.js +70421 -23814
- package/dist/index.js.map +1 -1
- package/dist/onnxruntime_binding-6Q6HXASN.node +0 -0
- package/dist/onnxruntime_binding-EKZT2NRK.node +0 -0
- package/dist/onnxruntime_binding-P6S7V3CI.node +0 -0
- package/dist/onnxruntime_binding-PJNNIIUO.node +0 -0
- package/dist/onnxruntime_binding-UN6SPTQK.node +0 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="packages/app/build/icon-256.png" alt="trace-mcp logo" width="128" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">trace-mcp</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Framework-aware code intelligence MCP server — 14 frameworks, 7 ORMs, 12 UI libraries, 20+ other integrations (53 total) across 68 languages. Up to 99% token reduction.</strong>
|
|
9
|
+
</p>
|
|
4
10
|
|
|
5
11
|
> Your AI agent reads `UserController.php` and sees a class.
|
|
6
12
|
> trace-mcp reads it and sees a route → controller → FormRequest → Eloquent model → Inertia render → Vue page → child components — **in one graph.**
|
|
@@ -87,7 +93,7 @@ Tools that generate docs from code or provide embedding-based code search for AI
|
|
|
87
93
|
| Framework-aware context | ✅ routes, models, components | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
88
94
|
| Task-focused context | ✅ `get_task_context` — code subgraph | ❌ packs everything | ❌ | ❌ | ❌ | ❌ |
|
|
89
95
|
| No doc maintenance needed | ✅ derived from code | ✅ repacks on demand | ❌ manual reindex | partial (auto on startup) | ❌ manual ingest | partial (auto-reindex) |
|
|
90
|
-
| Works offline, no
|
|
96
|
+
| Works offline, no API keys | ✅ graph + FTS5 + bundled ONNX embeddings | ✅ | ❌ requires cloud API | ❌ requires local embeddings | ❌ requires local embeddings | ❌ requires local embeddings |
|
|
91
97
|
| Incremental updates | ✅ file watcher, content hash | ❌ full repack | ✅ SHA-256 hashing | ✅ file hash + opt-in watcher | ❌ | ✅ mtime + dedup |
|
|
92
98
|
| Written in | TypeScript | TypeScript | TypeScript | JavaScript | TypeScript | Python |
|
|
93
99
|
|
|
@@ -185,11 +191,11 @@ trace-mcp benchmark /path/to/project
|
|
|
185
191
|
- **Change impact analysis** — reverse dependency traversal across languages
|
|
186
192
|
- **Graph-aware task context** — describe a dev task → get the optimal code subgraph (execution paths, tests, types), adapted to bugfix/feature/refactor intent
|
|
187
193
|
- **CI/PR change impact reports** — automated blast radius, risk scoring, test gap detection, architecture violation checks on every PR
|
|
188
|
-
- **Call graph & DI tree** — bidirectional call graphs, NestJS dependency injection
|
|
194
|
+
- **Call graph & DI tree** — bidirectional call graphs with 4-tier resolution confidence, optional LSP enrichment for compiler-grade accuracy, NestJS dependency injection
|
|
189
195
|
- **ORM model context** — relationships, schema, metadata for 7 ORMs
|
|
190
|
-
- **Dead code & test gap detection** — find untested exports, dead code,
|
|
196
|
+
- **Dead code & test gap detection** — find untested exports/symbols (with "unreached" vs "imported_not_called" classification), dead code, per-symbol test reach in impact analysis
|
|
191
197
|
- **Multi-repo federation** — link graphs across separate repos via API contracts; cross-repo impact analysis
|
|
192
|
-
- **AI-powered analysis** —
|
|
198
|
+
- **AI-powered analysis** — semantic search with zero-config local ONNX embeddings (no API keys needed), plus optional LLM summarization via Ollama/OpenAI
|
|
193
199
|
|
|
194
200
|
### Supported stack
|
|
195
201
|
|
|
@@ -263,6 +269,19 @@ If you prefer manual control, see [Configuration](docs/configuration.md) for all
|
|
|
263
269
|
trace-mcp init --skip-hooks --skip-claude-md --skip-mcp-client
|
|
264
270
|
```
|
|
265
271
|
|
|
272
|
+
### Enabling semantic search
|
|
273
|
+
|
|
274
|
+
Semantic search works out of the box — just enable AI in your config:
|
|
275
|
+
|
|
276
|
+
```jsonc
|
|
277
|
+
// ~/.trace-mcp/.config.json or project/.trace-mcp/.config.json
|
|
278
|
+
{ "ai": { "enabled": true } }
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
The default provider (`onnx`) uses a bundled local model (`Xenova/all-MiniLM-L6-v2`, ~23 MB) — no API keys, no external services, fully offline after first model download. Run `embed_repo` once or just use `search` with `semantic: "on"` and embeddings will be computed on demand.
|
|
282
|
+
|
|
283
|
+
For LLM-powered summarization, switch to `ollama` or `openai` provider — see [AI configuration](docs/configuration.md#ai-configuration).
|
|
284
|
+
|
|
266
285
|
### Indexing details
|
|
267
286
|
|
|
268
287
|
**Automatic:** `trace-mcp serve` starts background indexing immediately and launches a file watcher. The server is ready for tool calls right away — results improve as indexing progresses. If the project isn't registered yet, `serve` auto-registers it.
|
|
@@ -401,9 +420,18 @@ Source files (PHP, TS, Vue, Python, Go, Java, Kotlin, Ruby, HTML, CSS, Blade)
|
|
|
401
420
|
│
|
|
402
421
|
▼
|
|
403
422
|
┌──────────────────────────────────────────┐
|
|
423
|
+
│ Pass 3 — LSP enrichment (opt-in) │
|
|
424
|
+
│ tsserver · pyright · gopls · │
|
|
425
|
+
│ rust-analyzer → compiler-grade │
|
|
426
|
+
│ call resolution, 4-tier confidence │
|
|
427
|
+
└────────────────────┬─────────────────────┘
|
|
428
|
+
│
|
|
429
|
+
▼
|
|
430
|
+
┌──────────────────────────────────────────┐
|
|
404
431
|
│ SQLite (WAL mode) + FTS5 │
|
|
405
432
|
│ nodes · edges · symbols · routes │
|
|
406
|
-
│ +
|
|
433
|
+
│ + embeddings (local ONNX by default) │
|
|
434
|
+
│ + optional: LLM summaries │
|
|
407
435
|
└────────────────────┬─────────────────────┘
|
|
408
436
|
│
|
|
409
437
|
▼
|
|
@@ -543,7 +571,7 @@ The full workflow is in [`.github/workflows/ci.yml`](.github/workflows/ci.yml)
|
|
|
543
571
|
|---|---|
|
|
544
572
|
| **Summary** | Changed files, affected files count, risk level, gap counts |
|
|
545
573
|
| **Blast Radius** | Files transitively affected by changes (depth-2 reverse dependency traversal) |
|
|
546
|
-
| **Test Coverage Gaps** | Affected symbols with no matching test file |
|
|
574
|
+
| **Test Coverage Gaps** | Affected symbols with no matching test file. Per-symbol `hasTestReach` shows whether tests actually reference each specific symbol |
|
|
547
575
|
| **Risk Analysis** | Per-file composite score: 30% complexity + 25% churn + 25% coupling + 20% blast radius |
|
|
548
576
|
| **Architecture Violations** | Layer rule violations involving changed files (auto-detects clean architecture / hexagonal presets) |
|
|
549
577
|
| **Dead Code** | New exports in changed files that nothing imports |
|