Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Mibayy/token-savior

PYPI · TOKEN-SAVIOR-RECALL

Structural codebase MCP server with persistent memory: navigate by symbol, recall across sessions.

−2 this week 81 Trust /100

Last scanned (22 hours ago)

Scores higher than 82% of PyPI servers

Category Developer Tools

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 33 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability75
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 6320 tokens (~91/item across 69 items; 69 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage94
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 81% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "memory_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Nov 26 −3
    • Stability: pass → 0.83 functional
  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 29 Oct 26 +1
    • Stability: 0.97 → pass security
  • 28 Oct 26 +14
    • Malware scan: unverified → pass ▲ security
    • Stability: pass → 0.97 functional
  • 27 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 26 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/token-savior-recall@4.13.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend Known build tool hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 33 packages
Packages resolved 33
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 69 exposed · ~6,320 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_field_to_model ~130

Add a field to a model/class/interface. Supports .prisma, .py (dataclass, SQLAlchemy), .ts/.tsx.

NameTypeReqDescription
afterstring–Insert after the line containing this string.
field_namestringyesName of the new field.
field_typestringyesType of the field (e.g. 'String', 'DateTime?', 'number').
file_pathstring–Optional file path to disambiguate.
modelstringyesModel/class/interface name.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

analyze_config ~99

Audit config files (.env/.yaml/.toml/.json): duplicates, secrets, orphans.

NameTypeReqDescription
checksarray–Checks to run
file_pathstring–Specific config file
max_issuesinteger–Cap total issues shown (default 10, 0 = unlimited). Raise for full audit.
projectstring–Project name/path (default: active).
severitystring–Severity filter

No output schema declared.

No examples provided.

analyze_docker ~45

Audit Dockerfiles: base images, stages, exposed ports, ENV/ARG, cross-ref with config files.

NameTypeReqDescription
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

build_commit_summary ~68

Compact commit/review narrative with stats, hotspots, suggested type.

NameTypeReqDescription
changed_filesarrayyes–
max_filesinteger–Default 20.
max_symbols_per_fileinteger–Default 20.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

capture_aggregate ~88

Aggregate over a capture: stats|count_lines|unique_lines|extract:<re>|count:<re>.

NameTypeReqDescription
idintegeryes–
patternstring–Regex when transform is 'extract' or 'count' without inline regex.
transformstring–stats (default) | count_lines | unique_lines | extract | count | extract:<regex> | count:<regex>

No output schema declared.

No examples provided.

capture_get ~71

Read a capture (range: head/tail/all/preview/line:N-M).

NameTypeReqDescription
idintegeryesCapture id (from search/list).
max_bytesinteger–Cap returned content size.
rangestring–head | tail | all | preview | line:start-end (default preview).

No output schema declared.

No examples provided.

capture_list ~53

List recent captures (newest first).

NameTypeReqDescription
limitinteger–Max rows (default 50).
project_rootstring––
session_idstring––
tool_namestring––

No output schema declared.

No examples provided.

capture_purge ~51

Delete captures by age/session/project (filter required).

NameTypeReqDescription
older_than_secinteger–Delete captures older than this many seconds.
project_rootstring––
session_idstring––

No output schema declared.

No examples provided.

capture_put ~127

Sandbox a verbose tool output to FTS5 store; returns id + preview.

NameTypeReqDescription
args_summarystring–Short human description of the call (URL, command, query).
metaobject–Free-form metadata stored alongside the capture.
outputstringyesFull raw output to capture.
project_rootstring–Optional active project root.
session_idstring–Optional session id to scope retrieval.
tool_namestringyesLogical tool name (e.g. 'Bash', 'WebFetch', 'mcp__playwright__snapshot').

No output schema declared.

No examples provided.

capture_search ~85

BM25 search across sandboxed tool outputs. Returns id, snippet, bytes.

NameTypeReqDescription
limitinteger–Max rows (default 20).
project_rootstring––
querystringyesFTS5 query (terms ANDed by default).
session_idstring––
tool_namestring–Restrict to a single source tool.

No output schema declared.

No examples provided.

checkpoint ~134

Unified checkpoint CRUD. op = create | list (default) | restore | delete | prune | compare.

NameTypeReqDescription
checkpoint_idstring–For op=restore/delete/compare: checkpoint identifier.
file_pathsarray–For op=create: project files to snapshot.
keep_lastinteger–For op=prune: how many recent checkpoints to keep (default 10).
max_filesinteger–For op=compare: max files compared (default 20).
opstring–Operation to perform (default 'list').
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

corpus_build ~70

Build a thematic corpus from observations filtered by type / tags / symbol.

NameTypeReqDescription
filter_symbolstring––
filter_tagsarray––
filter_typestring––
namestringyesUnique per project.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

corpus_query ~68

Format all observations of a named corpus as markdown context + a question, ready for answering.

NameTypeReqDescription
namestringyesCorpus name previously built via corpus_build.
projectstring–Project name/path (default: active).
questionstringyesQuestion to answer with the corpus context.

No output schema declared.

No examples provided.

detect_breaking_changes ~75

Breaking API changes vs a git ref: removed funcs/params, added required params, signature changes.

NameTypeReqDescription
projectstring–Project name/path (default: active).
since_refstring–Git ref to compare against (default: "HEAD~1"). Can be a commit SHA, branch, or tag.

No output schema declared.

No examples provided.

discover_project_actions ~42

Detect conventional project actions from build files (tests, lint, build, run) without executing.

NameTypeReqDescription
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

edit_lines_in_symbol ~137

Exact string-replace inside an indexed symbol's body (like Edit but symbol-scoped, no Read first needed).

NameTypeReqDescription
file_pathstring–Optional file path to disambiguate symbols.
new_stringstringyesReplacement text.
old_stringstringyesExact text to find inside the symbol body (must be unique within the symbol unless replace_all=true).
projectstring–Project name/path (default: active).
replace_allboolean–If true, replace every occurrence in the symbol body (default false).
symbol_namestringyesFunction/method/class name to edit inside.

No output schema declared.

No examples provided.

find_dead_code ~76

Project-wide audit of unreferenced functions/classes (zero callers, excludes entry points, tests, route handlers).

NameTypeReqDescription
max_resultsinteger–Maximum number of dead symbols to report (default: 20). Header always shows true total; raise for full audit.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

find_hotspots ~103

Rank functions by hotspot kind. complexity (all langs) | allocation (Java) | performance (Java).

NameTypeReqDescription
kindstring–Hotspot category (default 'complexity').
max_resultsinteger–Maximum number of functions to report (default: 20).
min_scorenumber–Minimum score to include (default: 0 for complexity, 1 for Java kinds).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

find_impacted_test_files ~63

Infer pytest files likely impacted by changed files or symbols.

NameTypeReqDescription
changed_filesarray––
max_testsinteger–Default 20.
projectstring–Project name/path (default: active).
symbol_namesarray––

No output schema declared.

No examples provided.

find_import_cycles ~66

Detect import cycles (strongly-connected components) in the file-level import graph (Tarjan's).

NameTypeReqDescription
max_cyclesinteger–Maximum number of cycles to return (default 20, 0 = unlimited).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

find_semantic_duplicates ~190

Find duplicate functions. method='ast' (fast, hash-based, catches copy-paste) or 'embedding' (Nomic cosine, catches conceptual clones, tagged sim=min..mean per cluster).

NameTypeReqDescription
max_groupsinteger–Max duplicate groups to return (default 10). Raise for full audit.
methodstring–ast (default, fast, exact) or embedding (slower, catches conceptual clones). Embedding reuses the symbol_vectors index from search_codebase(semantic=True) — first call triggers a ~2min reindex.
min_linesinteger–Skip functions shorter than this (default 2). Applies to method='ast'.
min_similaritynumber–Cosine threshold for method='embedding' (default 0.90). Lower = more recall + more noise.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

find_symbol ~186

Locate a symbol: file, line, signature, minimal preview. Searches functions and classes by default — pass kinds=["variable"] for module globals, constants, and class attributes. A miss reports which kinds were searched.

NameTypeReqDescription
compressboolean–Compact rows (default true).
hintsboolean–Add a `_hints` key with next-step tool calls (default true).
kindsarray–Symbol kinds to search. Default: function+class (plus variable when TOKEN_SAVIOR_VARIABLES=search).
levelinteger–0 full, 1 no preview, 2 minimal.
namestring––
namesarray–Batch mode: list of names (max 10). Returns {name: result} dict. Mutually exclusive with 'name'.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_call_chain ~99

Shortest dependency path between two symbols (BFS through the dep graph).

NameTypeReqDescription
from_namestringyesStarting symbol name.
levelinteger–Per-hop verbosity: 0=full (source_preview), 1=sig+file, 2=minimal name+file+line. Default 2.
projectstring–Project name/path (default: active).
to_namestringyesTarget symbol name.

No output schema declared.

No examples provided.

get_change_impact ~82

Impact analysis: direct + transitive dependents of a symbol.

NameTypeReqDescription
max_directinteger–0=all.
max_total_charsinteger–Default 50000.
max_transitiveinteger–0=all.
namestringyes–
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_changed_symbols ~74

Symbol-level summary of worktree changes (or HEAD vs ref).

NameTypeReqDescription
max_filesinteger–Default 20.
max_symbols_per_fileinteger–Default 20.
projectstring–Project name/path (default: active).
refstring–Compare base (omit=worktree).

No output schema declared.

No examples provided.

get_class_source ~135

Fetch a class source body (including methods).

NameTypeReqDescription
file_pathstring––
force_fullboolean–Bypass symbol cache.
hintsboolean–Append a one-line get_full_context hint (default true).
levelinteger––
max_linesinteger–Cap lines (0=all, level=0 only).
namestring––
namesarray–Batch mode: list of names (max 10). Returns {name: result} dict. Mutually exclusive with 'name'.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_classes ~116

List classes (name, lines, methods, bases, file).

NameTypeReqDescription
compressboolean–Compact rows (default true).
file_pathstring–Filter to file (omit=all).
hintsboolean–Append a `_hints` entry with next-step tool calls (default true).
max_resultsinteger–Default 100. 0=unlimited. Truncated results carry a trailing `_truncated` marker with total count.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_db_schema ~107

Condensed SQL-migration snapshot: tables (cols, types, nullability, defaults), PKs, FKs, indexes, RLS policies.

NameTypeReqDescription
dialectstring–SQL dialect -- currently only 'postgres' is implemented.
migrations_dirstring–Relative or absolute path to the migrations directory (default: auto-detect).
projectstring–Project name/path (default: active).
tablesarray–Optional filter: only return these table names.

No output schema declared.

No examples provided.

get_dependencies ~104

Outgoing deps of a symbol: what X calls/uses (downstream).

NameTypeReqDescription
compressboolean–Compact rows (default true).
depthinteger–Transitive BFS depth (default 1).
max_resultsinteger–Default 100. 0=unlimited. Truncated results carry a trailing `_truncated` marker with total count.
namestringyes–
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_dependents ~80

Incoming deps: who calls/uses X, direct references only.

NameTypeReqDescription
compressboolean–Compact rows (default true).
max_resultsinteger–0=all.
max_total_charsinteger–Default 50000.
namestringyes–
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_edit_context ~72

Pre-edit bundle: source + direct deps + callers + same-file siblings + impacted tests.

NameTypeReqDescription
max_callersinteger–Default 10.
max_depsinteger–Default 10.
namestringyes–
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_entry_points ~61

Score functions by likelihood of being execution entry points: routes, handlers, main, exported APIs.

NameTypeReqDescription
max_resultsinteger–Maximum number of entry points to return (default 20).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_env_usage ~87

Cross-reference an env var across code, .env files, and workflow configs. Shows where it's defined, read, written.

NameTypeReqDescription
max_resultsinteger–Max results (0 = all, default 0).
projectstring–Project name/path (default: active).
var_namestringyesEnvironment variable name (e.g. HELLOASSO_CLIENT_ID).

No output schema declared.

No examples provided.

get_feature_files ~61

Files matching a feature keyword + traced imports, classified by role (core, test, config).

NameTypeReqDescription
keywordstringyes–
max_resultsinteger–0=all.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_file_dependencies ~71

Files imported by this file (outgoing file-level import edges).

NameTypeReqDescription
file_pathstringyesRelative path to the file.
max_resultsinteger–Maximum number of results to return (0 = unlimited, default 0).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_file_dependents ~71

Files that import this file (incoming file-level import edges).

NameTypeReqDescription
file_pathstringyesRelative path to the file.
max_resultsinteger–Maximum number of results to return (0 = unlimited, default 0).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_full_context ~172

Symbol bundle: location + source + deps/dependents (depth=1) or + change_impact (depth=2).

NameTypeReqDescription
depthinteger–0=symbol+source, 1=+deps/dependents (default), 2=+change_impact.
max_linesinteger–Cap source lines (default 200).
modestring–compact (default): source head 80 lines + deps/dependents as names only. full: raw payload.
namestring–Symbol name (function, method, class).
namesarray–Batch mode: list of names (max 10). Returns {name: result} dict. Mutually exclusive with 'name'.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_function_source ~145

Fetch a function/method source body.

NameTypeReqDescription
file_pathstring––
force_fullboolean–Bypass symbol cache.
hintsboolean–Append a one-line get_full_context hint (default true).
levelinteger––
max_linesinteger–Cap lines (0=all, level=0 only).
namestring–Function or method (e.g. 'MyClass.method').
namesarray–Batch mode: list of names (max 10). Returns {name: result} dict. Mutually exclusive with 'name'.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_functions ~118

List functions in a file (file_path=...) or across the project.

NameTypeReqDescription
compressboolean–Compact rows (default true).
file_pathstring–Filter to file (omit=all).
hintsboolean–Append a `_hints` entry with next-step tool calls (default true).
max_resultsinteger–Default 100. 0=unlimited. Truncated results carry a trailing `_truncated` marker with total count.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_git_status ~41

Structured git status: branch, ahead/behind, staged, unstaged, untracked.

NameTypeReqDescription
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_imports ~91

List imports (module, names, line).

NameTypeReqDescription
compressboolean–Compact rows (default true).
file_pathstring–Filter to file (omit=all).
max_resultsinteger–Default 100. 0=unlimited. Truncated results carry a trailing `_truncated` marker with total count.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_project_summary ~38

Project overview: file count, packages, top classes/functions, infra dirs.

NameTypeReqDescription
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_routes ~64

Detect API routes and pages in a Next.js App Router project: path, file, HTTP methods, type.

NameTypeReqDescription
max_resultsinteger–Max routes to return (0 = all, default 0).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_stats ~116

Unified stats dispatcher. category = usage (default) | session_budget | tca | dcp | linucb | warmstart | leiden | speculation | lattice.

NameTypeReqDescription
budget_tokensinteger–For category=session_budget: soft budget cap (default 200000).
categorystring–Which stats subsystem to report (default 'usage').
context_typestring–For category=lattice: filter to one context (navigation/edit/review/unknown).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

get_structure_summary ~67

Structure of one file (functions, classes, imports, line counts), or project-wide if file omitted.

NameTypeReqDescription
file_pathstring–Relative path to a file in the project. Omit for project-level summary.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

insert_near_symbol ~73

Insert content before or after an indexed symbol.

NameTypeReqDescription
contentstringyes–
file_pathstring––
positionstring–'before' or 'after' (default after).
projectstring–Project name/path (default: active).
symbol_namestringyes–

No output schema declared.

No examples provided.

list_files ~69

List indexed files, optionally filtered by glob.

NameTypeReqDescription
max_resultsinteger–Maximum number of results to return (0 = unlimited, default 0).
patternstring–Glob pattern to filter files (uses fnmatch).
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

list_projects ~17

List all registered workspace projects with index status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

memory_admin ~100

Single dispatch for all memory admin / maintenance ops (status, doctor, dedup_sweep, distill, roi_gc, consistency, vector_reindex, etc.).

NameTypeReqDescription
dry_runboolean–Preview-only mode for sweeps/garbage collectors.
limitinteger–Pagination/limit (where applicable).
opstringyesWhich memory-admin sub-operation to run.
project_rootstring–Filter by project (where applicable).

No output schema declared.

No examples provided.

memory_delete ~45

Soft-delete an observation by ID (sets archived=1).

NameTypeReqDescription
idintegeryesObservation ID to archive.
projectstring–Project name/path (default: active).

No output schema declared.

No examples provided.

Install

How do I install the io.github.Mibayy/token-savior MCP server?

io.github.Mibayy/token-savior runs locally as a PyPI package, launched with uvx token-savior-recall. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · token-savior-recall

# add to Claude Code
claude mcp add mibayy-token-savior -- uvx token-savior-recall
Common questions

What is the io.github.Mibayy/token-savior MCP server?

io.github.Mibayy/token-savior is an MCP server listed in the public MCP registry as io.github.Mibayy/token-savior. Structural codebase MCP server with persistent memory: navigate by symbol, recall across sessions. This page covers its PyPI package (token-savior-recall).

Is the io.github.Mibayy/token-savior MCP server safe to use?

io.github.Mibayy/token-savior scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Mibayy/token-savior MCP server expose?

io.github.Mibayy/token-savior exposes 69 tools: list_projects, switch_project, get_git_status, get_changed_symbols, build_commit_summary, and 64 more. Their descriptions and schemas cost roughly 6,320 tokens of context every time the server is loaded.

Is the io.github.Mibayy/token-savior MCP server still maintained?

io.github.Mibayy/token-savior is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Mibayy/token-savior MCP server under?

io.github.Mibayy/token-savior declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the io.github.Mibayy/token-savior MCP server?

VerifyMCP ran 16 checks on io.github.Mibayy/token-savior, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.