trace-mcp 1.14.0 → 1.15.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 CHANGED
@@ -1,6 +1,12 @@
1
- # trace-mcp
1
+ <p align="center">
2
+ <img src="packages/app/build/icon-256.png" alt="trace-mcp logo" width="128" />
3
+ </p>
2
4
 
3
- **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.**
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 embeddings | ✅ graph + FTS5 | ✅ | ❌ requires cloud API | ❌ requires local embeddings | ❌ requires local embeddings | ❌ requires local embeddings |
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, coverage gaps
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** — symbol explanation, test suggestions, change review, semantic search (optional)
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
- │ + optional: embeddings · summaries
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 |