{"name":"io.github.Digital-Threads/token-pilot","slug":"digital-threads-token-pilot","title":null,"description":"Save up to 80% tokens when AI reads code via AST-aware structural reading","url":"https://mcp.market/server/digital-threads-token-pilot","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":36,"stars":5,"forks":2,"downloads_week":546,"last_push_at":"2026-09-13T12:14:45.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Digital-Threads/token-pilot","website":null,"version":"0.52.1","remotes":[],"packages":[{"registryType":"npm","identifier":"token-pilot","version":"0.52.1","transport":{"type":"stdio"}}],"tools":[{"name":"call_tree","description":"Recursive depth-N call hierarchy for a function. Shows who calls who transitively — complements find_usages (flat one-level refs) by revealing full chains from leaf helpers to entry points. Use for debugging, refactor impact, and verifying reachability.","write_action":false,"price_micros":0,"input_schema":null},{"name":"code_audit","description":"Find code quality issues: TODO/FIXME comments, deprecated symbols, structural code patterns (bare except:, print() calls). Use for project-wide audits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"explore","description":"One-shot ranked context + call/inheritance graph blast-radius for a query. Returns ranked symbols, the source heads of the top-ranked files, graph neighbours (callers + subclasses — the blast radius), and related test files in a single compact block. Use INSTEAD OF separate find_usages + read_symbol + call_tree when you need to understand an area fast — cheaper than chaining those three.","write_action":false,"price_micros":0,"input_schema":null},{"name":"explore_area","description":"One-call exploration of a directory: outline (all symbols), imports (external deps + who imports this area), tests (matching test files), recent git changes. Use INSTEAD OF separate outline + related_files + git log calls. Default since v0.30.0 returns only outline+changes — telemetry showed the all-4 default producing negative token reduction for small areas. Opt into imports/tests explicitly via","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_unused","description":"Find dead code — functions, classes, and variables with no references across the project. Use for cleanup and refactoring.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_usages","description":"Use INSTEAD OF Grep for finding symbol references. Semantic search — groups by: definitions, imports, usages. Supports scope, kind, limit, lang filters. Use context_lines to include surrounding code. HINT: for very short / generic symbols (≤4 chars like `id`, `err`, `Cmd`, `db`) Grep is usually cheaper than find_usages — the semantic grouping doesn't pay off when the symbol resolves ambiguously ac","write_action":false,"price_micros":0,"input_schema":null},{"name":"module_info","description":"Analyze module dependencies, dependents, public API, and unused deps. Use for architecture understanding and dependency cleanup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"module_route","description":"Show the transitive dependency path(s) between two modules — how module A reaches module B through the import graph. Use to answer 'how does X depend on Y?', trace coupling, or generate a dependency diagram. format='mermaid'/'dot' emits a diagram; default text lists the hops.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outline","description":"Use INSTEAD OF listing dir + reading each file. One call returns all symbols (classes, functions, methods, routes) for every code file in a directory. Supports recursive with max_depth.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_overview","description":"START HERE for unfamiliar codebases. Shows project type, architecture, framework detection, quality tools, CI, directory map. Use include filter for specific sections.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_diff","description":"Use INSTEAD OF re-reading whole file after edits. Shows only changed hunks. REQUIRES: call smart_read or read_for_edit BEFORE editing to create baseline snapshot.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_for_edit","description":"Use INSTEAD OF Read when preparing an EDIT. Returns exact RAW code around a symbol or line — copy directly as old_string for Edit tool. Supports batch: pass \"symbols\" array to get multiple edit contexts in one call. Unlike read_symbols (for reading/understanding), this returns unformatted code optimized for copy-paste into Edit. Optional: include_callers, include_tests, include_changes for enriche","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_range","description":"Read a specific line range from a file. Use when you know exact lines — lighter than reading the whole file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_section","description":"Read a specific section from Markdown, YAML, JSON, or CSV files. Markdown: by heading name. YAML/JSON: by top-level key. CSV: by row range (rows:1-50). Much cheaper than reading the whole file. DOCS/DATA ONLY — `heading` is required; this does NOT read code by line/symbol. For source files use read_range (line range) or read_symbol (one symbol).","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_symbol","description":"Read source code of ONE specific function/method/class — INSTEAD OF reading the whole file. Supports Class.method syntax.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_symbols","description":"Batch read MULTIPLE symbols from ONE file — saves N-1 round-trips vs calling read_symbol N times. BEST FIT: 3–8 symbols in one file when you need their bodies. For 1–2 symbols use read_symbol (simpler). If you'd request ≥70% of the file's symbols, the handler refuses and points you to smart_read — that's cheaper than a large batch. For edit preparation use read_for_edit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"related_files","description":"Show ranked import graph for a file: imports, importers, and tests scored by relevance (test adjacency, import closeness, recent changes, path proximity). Files ranked into HIGH VALUE / MEDIUM / LOW to prioritize reading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_analytics","description":"Show token savings report: calls, tokens saved, per-tool breakdown, top files, cache hits. Use verbose=true for full breakdown (per-intent, decision insights, savings by category).","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_budget","description":"META / info-only: reports Read-hook pressure for this session (suppressed tokens, reference budget, burn fraction, effective denyThreshold). Does NOT save tokens itself — this is diagnostic, use to decide when to tighten before a big read. NOTE: burnFraction measures hook activity, not actual context-window occupancy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_snapshot","description":"Capture current session state as a compact markdown block (<200 tokens). Call before compaction, when switching direction, or periodically in long sessions. Model provides the facts, tool formats them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_diff","description":"Use INSTEAD OF raw git diff. Shows changed files with AST symbol mapping — which functions/classes were modified/added/removed. Small diffs include hunks, large diffs show summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_log","description":"Use INSTEAD OF raw git log. Structured commit history with category detection (feat/fix/refactor/docs), file stats, author breakdown. Filters by path and ref. HEADS UP: two verification runs measured this tool at ~39% token reduction (borderline — vs 95-99% for outline/smart_diff). Cumulative data being gathered — tool may be dropped or redesigned in v0.30.0 if numbers don't improve. Prefer scopin","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_read","description":"Use INSTEAD OF Read/cat for code files. Returns code structure (classes, functions, methods with signatures and line ranges) — 60-80% fewer tokens than raw content. Use read_symbol() to drill into specific code.","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_read_many","description":"Batch smart_read for multiple files at once — INSTEAD OF calling Read on each file. Returns structure for each file. Max 20 files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_summary","description":"Run tests and return structured summary: total/passed/failed/skipped + failure details. 200 lines of raw output → 10-15 lines. Supports vitest, jest, pytest, phpunit, go test, cargo test.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-19T20:05:27.039Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:05:27.235Z","components":{"code":{"score":15,"max":25,"notes":["236 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …ok\": \"node scripts/bench-hook.mjs\", \"postinstall\": \"node scripts/postinstall.mjs\", \"li…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"token-pilot","version":"0.52.1","found":true,"license":"MIT","hasInstallScripts":true,"dependencyCount":3,"publishedAt":"2026-09-13T12:13:51.905Z","repositoryUrl":"git+https://github.com/Digital-Threads/token-pilot.git","weeklyDownloads":546}],"repo":{"found":true,"owner":"Digital-Threads","repo":"token-pilot","archived":false,"pushedAt":"2026-09-13T12:14:45Z","stars":5,"forks":2,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/66318631?v=4","ownerCreatedAt":"2020-06-02T14:24:16Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/66318631?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":5,"forks":2,"downloadsWeek":546,"license":"MIT","lastPushAt":"2026-09-13T12:14:45.000Z","score":36}}}},"grade_history":[],"reviews":[]}