token-savior
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORKSPACE_ROOTS | No | Comma-separated list of absolute paths to project roots to index. | |
| TOKEN_SAVIOR_CLIENT | No | Optional identifier for the client (e.g., 'claude-code', 'cursor', 'windsurf', 'cline', 'hermes') used to attribute savings in the live dashboard. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projects | List all registered workspace projects with their index status. |
| switch_project | Switch the active project. Subsequent tool calls without explicit project target this project. |
| get_git_status | Return a structured git status summary for the active project: branch, ahead/behind, staged, unstaged, and untracked files. |
| get_changed_symbols | Return a compact symbol-oriented summary of current worktree changes, avoiding large textual diffs. |
| get_changed_symbols_since_ref | Return a compact symbol-oriented summary of git changes since a given ref, avoiding large textual diffs. |
| summarize_patch_by_symbol | Summarize a set of changed files as symbol-level entries for compact review instead of textual diffs. |
| build_commit_summary | Build a compact commit/review summary from changed files using symbol-level structure instead of textual diffs. |
| create_checkpoint | Create a compact checkpoint for a bounded set of files before a workflow mutation. |
| list_checkpoints | List available checkpoints for the active project. |
| delete_checkpoint | Delete a specific checkpoint. |
| prune_checkpoints | Keep only the newest N checkpoints and delete older ones. |
| restore_checkpoint | Restore files from a previously created checkpoint. |
| compare_checkpoint_by_symbol | Compare a checkpoint against current files at symbol level, returning added/removed/changed symbols without a textual diff. |
| replace_symbol_source | Replace an indexed symbol's full source block directly, without sending a file-wide patch. |
| insert_near_symbol | Insert content immediately before or after an indexed symbol, avoiding a file-wide edit payload. |
| find_impacted_test_files | Infer a compact set of likely impacted pytest files from changed files or symbols. |
| run_impacted_tests | Run only the inferred impacted pytest files and return a compact summary instead of full logs. |
| apply_symbol_change_and_validate | Replace a symbol, reindex the file, and run only the inferred impacted tests as one compact workflow. |
| apply_symbol_change_validate_with_rollback | Replace a symbol, validate impacted tests, and restore the previous file automatically if validation fails. |
| discover_project_actions | Detect conventional project actions from build files (tests, lint, build, run) without executing them. |
| run_project_action | Run a previously discovered project action by id with bounded output and timeout. |
| get_project_summary | High-level overview of the project: file count, packages, top classes/functions. |
| list_files | List indexed files. Optional glob pattern to filter (e.g. '.py', 'src/**/.ts'). |
| get_structure_summary | Structure summary for a file (functions, classes, imports, line counts) or the whole project if no file specified. |
| get_function_source | Get the full source code of a function or method by name. Uses the symbol table to locate the file automatically. |
| get_class_source | Get the full source code of a class by name. Uses the symbol table to locate the file automatically. |
| get_functions | List all functions (with name, lines, params, file). Filter to a specific file or get all project functions. |
| get_classes | List all classes (with name, lines, methods, bases, file). Filter to a specific file or get all project classes. |
| get_imports | List all imports (with module, names, line). Filter to a specific file or get all project imports. |
| find_symbol | Find where a symbol (function, method, class) is defined. Returns file path, line range, type, signature, and a source preview (~20 lines). |
| get_dependencies | What does this symbol call/use? Returns list of symbols referenced by the named function or class. |
| get_dependents | What calls/uses this symbol? Returns list of symbols that reference the named function or class. |
| get_change_impact | Analyze the impact of changing a symbol. Returns direct dependents and transitive (cascading) dependents. |
| get_call_chain | Find the shortest dependency path between two symbols (BFS through the dependency graph). |
| get_edit_context | All-in-one context for editing a symbol. Returns the symbol source, its direct dependencies (what it calls), and its callers (who uses it) in a single response. Saves 3 separate tool calls. |
| get_file_dependencies | List files that this file imports from (file-level import graph). |
| get_file_dependents | List files that import from this file (reverse import graph). |
| search_codebase | Regex search across all indexed files. Returns up to 100 matches with file, line number, and content. |
| reindex | Re-index the entire project. Use after making significant file changes to refresh the structural index. |
| set_project_root | Add a new project root to the workspace and switch to it. Triggers a full reindex of the new root. After calling this, all other tools operate on the new project by default. |
| get_feature_files | Find all files related to a feature keyword, then trace imports to build the complete feature map. Example: get_feature_files('contrat') returns all routes, components, lib, types connected to contracts. Each file is classified by role. |
| get_usage_stats | Session efficiency stats: tool calls, characters returned vs total source, estimated token savings. |
| get_routes | Detect all API routes and pages in a Next.js App Router project. Returns route path, file, HTTP methods, and type (api/page/layout). |
| get_env_usage | Cross-reference an environment variable across all code, .env files, and workflow configs. Shows where it's defined, read, and written. |
| get_components | Detect React components in .tsx/.jsx files. Identifies pages, layouts, and named components by convention (uppercase name or default export). |
| analyze_config | Analyze config files for issues: duplicate keys, hardcoded secrets, and orphan entries. Checks can be filtered via the 'checks' parameter. |
| find_dead_code | Find unreferenced functions and classes in the codebase. Detects symbols with zero callers, excluding entry points (main, tests, route handlers, etc.). |
| find_hotspots | Rank functions by complexity score (line count, branching, nesting depth, parameter count). Helps identify code that needs refactoring. |
| detect_breaking_changes | Detect breaking API changes between the current code and a git ref. Finds removed functions, removed parameters, added required parameters, and signature changes. |
| find_cross_project_deps | Detect dependencies between indexed projects. Shows which projects import packages from other indexed projects and shared external dependencies. |
| analyze_docker | Analyze Dockerfiles in the project: base images, stages, exposed ports, ENV/ARG vars, and cross-reference with config files. Flags issues like 'latest' tags and missing env vars. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mibayy/token-savior'
If you have feedback or need assistance with the MCP directory API, please join our Discord server