MCP.so
Sign In

Token Pilot

@Digital-Threads

About Token Pilot

Save 60-80% tokens when AI reads code — MCP server for token-efficient code navigation with AST-aware structural reading

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "token-pilot": {
      "command": "npx",
      "args": [
        "-y",
        "token-pilot"
      ]
    }
  }
}

Tools

25

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.

Read source code of ONE specific function/method/class — INSTEAD OF reading the whole file. Supports Class.method syntax.

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.

Read a specific line range from a file. Use when you know exact lines — lighter than reading the whole file.

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).

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.

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 enriched context.

Batch smart_read for multiple files at once — INSTEAD OF calling Read on each file. Returns structure for each file. Max 20 files.

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 across thousands of files.

START HERE for unfamiliar codebases. Shows project type, architecture, framework detection, quality tools, CI, directory map. Use include filter for specific sections.

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.

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.

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).

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.

Find dead code — functions, classes, and variables with no references across the project. Use for cleanup and refactoring.

Find code quality issues: TODO/FIXME comments, deprecated symbols, structural code patterns (bare except:, print() calls). Use for project-wide audits.

Analyze module dependencies, dependents, public API, and unused deps. Use for architecture understanding and dependency cleanup.

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.

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.

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 `include` when you need them.

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.

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 scoping with `path` or `count` to tighten savings.

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.

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.

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.

Overview

What is Token Pilot?

Token Pilot reduces context consumption in AI coding assistants by up to 90% without changing how you work. It provides MCP tools, PreToolUse hooks, and tp-* subagents to replace heavy file reads with structural summaries, symbol lookups, and token-efficient alternatives. Designed for users of Claude Code, Cursor, Codex CLI, Gemini CLI, and Cline.

How to use Token Pilot?

Run npx -y token-pilot init to create or merge the .mcp.json configuration. Restart your AI assistant to activate. For Claude Code, install via the plugin marketplace with claude plugin marketplace add https://github.com/Digital-Threads/token-pilot then claude plugin install token-pilot@token-pilot.

Key features of Token Pilot

  • 23 MCP tools for structural reads, symbol search, git analysis, session analytics
  • PreToolUse hooks intercept heavy Read, Grep, Bash calls and redirect to efficient alternatives
  • 25 tp-* subagents (Claude Code only) with MCP-first behavior and budget enforcement
  • Three enforcement modes: advisory, deny (default), strict
  • Supports TypeScript, JavaScript, Python, Go, Rust, Java, Kotlin, C#, C/C++, PHP, Ruby
  • Benchmarks show 92% average token savings across four public repos

Use cases of Token Pilot

  • Load a 15-line outline instead of a 500-line file when you only need structure
  • Find a specific function by name (read_symbol) without reading the whole module
  • Block unbounded Grep calls and rewrite them as token-efficient searches
  • Analyze git history with smart_log capped to 20 commits instead of thousands of lines
  • Delegate debugging or PR review to a tp-* subagent with a strict token budget

FAQ from Token Pilot

What token savings does Token Pilot deliver?

Up to 90% on average. Benchmarks on four open-source repos (token-pilot, express, fastify, flask) showed 92% input token reduction for files ≥50 lines. Full sessions gain additional savings from session cache, read_symbol, and read_for_edit.

Which AI assistants are supported?

Full support (tools + hooks + subagents): Claude Code. Tools and hooks supported on Cursor, Codex CLI, Gemini CLI, Cline (VS Code). Subagents are Claude Code only. Manual config snippets for each client are in the installation guide.

How do I update Token Pilot?

For Claude Code: claude plugin update token-pilot. For other clients: npx -y token-pilot init always pulls the latest; restart your client. If installed globally, run `npm i -g token-pilot

Frequently asked questions

What token savings does Token Pilot deliver?

Up to 90% on average. Benchmarks on four open-source repos (token-pilot, express, fastify, flask) showed 92% input token reduction for files ≥50 lines. Full sessions gain additional savings from session cache, `read_symbol`, and `read_for_edit`.

Which AI assistants are supported?

Full support (tools + hooks + subagents): Claude Code. Tools and hooks supported on Cursor, Codex CLI, Gemini CLI, Cline (VS Code). Subagents are Claude Code only. Manual config snippets for each client are in the installation guide.

How do I update Token Pilot?

For Claude Code: `claude plugin update token-pilot`. For other clients: `npx -y token-pilot init` always pulls the latest; restart your client. If installed globally, run `npm i -g token-pilot

Comments

More Developer Tools MCP servers