mimry
MIMRY’s MCP server lets agents query a local code index to find task-relevant files and lines, inspect relationships, and improve ranking with feedback.
Check MIMRY initialization and index freshness, optionally re-hashing every file.
Run a task preflight to get readiness context and the files/lines to read first.
Search/rank files for a query, with pagination, language/path filters, semantic search, and bounded live-source snippets.
Find graph-aware related files through imports/calls.
Search indexed symbols by name and traverse callers or callees up to a chosen depth.
Find relationship paths between two files, symbols, or queries.
Analyze change impact: callers, importers, referencing files, and tests to run for a target or working-tree changes.
Explain why a file or symbol ranked for a task.
Record local feedback (opened, changed, ignored, missed, suggested files, outcome, verification) to improve future rankings.
Integrates with Amp as an MCP server, providing local repository memory, ranked files, context packs, and a code relationship graph to help coding agents find relevant files and navigate tasks.
Integrates with Hermes as an MCP server, offering local repo memory, ranked files, context packs, and code relationship graph for coding agent workflows.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mimry what files should I read first to fix the login redirect bug?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MIMRY is a command-line tool that tells AI coding agents which files, and which lines in them, to read for a task. It parses a repository into symbols and a dependency graph, keeps the index on your machine, and ranks the files that matter for a task described in plain words. The index is deterministic: the same code gives the same graph, rankings and context pack on Windows, Linux and macOS, and no LLM is involved in building it. Agents call it from the shell or through its MCP server.
Installation
Get started in four steps.
Install uv, the tool that installs MIMRY. Pick the command for your system. macOS or Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows, in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Then open a new terminal. Already have uv? Skip this step. For other ways to install uv, see the uv installation guide.
Install MIMRY.
uv tool install mimryMIMRY needs Python 3.11 or newer on Windows, Linux or macOS. uv downloads a suitable Python itself if none is installed. If the shell says
mimryis not found, runuv tool update-shell, then open a new terminal.Connect your agent. This is what makes the agent use MIMRY on its own. Claude Code users pick one of these two, not both:
/plugin marketplace add jbacalso24/mimry /plugin install mimry@mimryor run
mimry install --platform claude-code. Other agents: runmimry install --platform <name>, see Supported agents.mimry install --platform claude-codealso adds MIMRY's hooks, which steer the agent to MIMRY and do nothing in folders MIMRY has not set up. Add--no-hooksto leave them out. With--project,--always-onalso adds MIMRY's rules to the agent's always-read file.Check it works. In a repository, run
mimry preflight "<a task in your own words>". The first run builds the index and downloads the tree-sitter grammars it needs, once per user. If something looks off, runmimry doctor.
To upgrade, runmimry upgrade.
On Windows, mimry upgrade refuses while MIMRY servers run, and mimry upgrade --stop-servers stops them first.
Related MCP server: mcp-vector-memory
Other ways to install
These replace steps 1 and 2, or add an optional feature.
npx skills, for other agents, skill only
Embeddings, for search by meaning
Quick start
Run mimry preflight in your repository with a task description.
The first run builds the index.
mimry preflight "Fix session cookie not refreshed when SESSION_REFRESH_EACH_REQUEST is set"Output on the Flask repository:
Start with
1 src/flask/sessions.py
name matches · path matches · connected to other matches
read first: lines 202-206 (get_cookie_secure), 233-247 (should_set_cookie)
2 src/flask/ctx.py
name matches · connected to other matches
read first: lines 154-206 (copy_current_request_context), 395-403 (session)
3 src/flask/testing.py
name matches · connected to other matches
read first: lines 135-183 (session_transaction), 193-202 (_request_from_builder_args)The same result is written to .mimry/mimry-out/context/latest.md as a context pack for the agent, with the matched symbols, related files and the project's test commands.
Prompt hook: Name the files for each task. Token savings: See the tokens MIMRY saved.
Features
Ranked lookup. Ranks files and names the lines to read first in each.
Code graph. Parses 41 languages with tree-sitter.
Deterministic. Same code, same results on every machine (how).
Documents. Indexes Markdown, PDF, Word, Excel and PowerPoint.
Incremental. Re-reads only the files that changed.
Feedback. Ranks files that helped on similar tasks higher.
MCP server. Exposes every lookup as an MCP tool.
Local. No LLM, API key or telemetry.
Supported languages
MIMRY parses these with tree-sitter.
Area | File types | What MIMRY reads |
Programming |
| Symbols, imports, calls |
Stylesheets |
| Selectors, variables, mixins |
Markup |
| Element ids and components |
SQL |
| Tables and the objects that use them |
Data |
| Keys and names, never values |
Build files |
| Tasks, commands, entry points |
Documents |
| Headings, pages, sheets, slides |
Every extension is in docs/languages.md.
Supported agents
mimry install --platform <name> installs a skill that teaches the agent when to use MIMRY, and registers the MCP server where the agent supports it.
Agent | Platform name | Skill | MCP server |
Claude Code |
| ✅ | ✅ |
Codex |
| ✅ | ✅ |
GitHub Copilot CLI |
| ✅ | ✅ |
GitHub Copilot in VS Code |
| ✅ | ✅ |
Gemini CLI |
| ✅ | ✅ |
OpenCode |
| ✅ | ✅ |
Kiro |
| ✅ | ✅ |
Cursor |
| ✅ | ✅ |
Amp |
| ✅ | ✅ |
Devin |
| ✅ | ✅ |
Factory Droid |
| ✅ | ✅ |
Kimi |
| ✅ | ✅ |
Kilo Code |
| ✅ | |
Antigravity, CodeBuddy, Hermes, OpenClaw, Trae | see | ✅ | |
Trae CN |
| ✅ | |
Aider, Pi Agent | see | ✅ | none |
Agent Skills |
| ✅ | none |
Windsurf |
| ✅ | |
Cline |
| ✅ | |
Roo Code |
| ✅ | |
Zed |
| ✅ | ✅, or printed to paste in when its settings file has comments |
JetBrains Junie |
| ✅ | ✅ |
Grok Build |
| ✅ | not yet |
✅ means mimry install sets it up, and manual means you add the MCP server by hand.
none means the agent has no MCP support, so the skill alone covers it.
not yet means mimry install does not register an MCP server for the agent yet.
Each agent's files, the install options and manual MCP setup are in docs/agents.md.
Usage
mimry preflight "<task>" # list the files and lines to read first, and write a context pack
mimry find "<query>" # rank files for a query
mimry symbol <name> # find where a function, class or heading is defined
mimry callers <name> # list the functions that call a function, from the graph
mimry callees <name> # list the functions a function calls, from the graph
mimry related "<query>" # list files connected through imports and calls
mimry explain "<task>" # show the key files and symbols, and how they connect
mimry why <file> --query "<task>" # explain why a file ranked
mimry feedback ... # record which files helped
mimry status # check whether the index is current
mimry doctor # diagnose the install and the indexSee docs/commands.md for every command and option. When something misbehaves, see docs/troubleshooting.md.
Configuration
A mimry.toml at the repository root controls which files are indexed.
Commit it so everyone on the team gets the same index.
The options and examples are in docs/configuration.md.
Benchmarks
These numbers come from a scripted retrieval benchmark, not from complete agent sessions. Measured with MIMRY 0.9.0 on 44 merged pull requests from 6 open-source projects, the set rerun for every release:
How the agent reads files | Tokens saved with MIMRY | Tasks located, MIMRY / grep |
The line ranges MIMRY names first | 71.4% | 32 / 28 |
Whole files | 51.0% | 33 / 28 |
| 48.6% | 31 / 27 |
Method, SWE-bench results and a worked example: docs/benchmarks.md.
How it works
MIMRY parses each file into symbols and edges, ranks files against a task, and re-reads only the files that changed. The three steps are described in docs/how-it-works.md.
Privacy
Indexing and search run locally. Credential files are skipped. The details, including how secrets are redacted, are in docs/privacy.md.
Contributing
Bug reports and pull requests are welcome. See CONTRIBUTING.md for setup and checks. MIMRY is in public alpha, and its interfaces may change before 1.0.
Thanks to everyone who has contributed:
License
Available Tools
9 toolsmimry_feedbackC
Record local agent usage feedback for future ranking.
Inputs: query (required), root, notes, missed, +7 more. Returns: object
mimry_findC
Search files, optionally with bounded live-source snippets.
Pass offset=0 on page one.
Inputs: query (required), root, limit, offset, +9 more. Returns: object
mimry_impactA
What a change touches: callers, importers, referencing files and tests to run.
target is a symbol name (file picks one when several share it, and line picks by the line it starts on or spans) or a repo-relative file path. changed=True uses the working tree against HEAD instead. depth is 1 to 5, how many calls back to follow.
Inputs: file, line, root, depth, +2 more. Returns: object
mimry_pathC
Find a relationship path between two files/symbols/queries.
Inputs: source (required), target (required), root. Returns: object
mimry_preflightD
Fast readiness check and task context, matching CLI preflight.
Inputs: query (required), root, semantic, force_refresh. Returns: object
mimry_statusB
Return MIMRY initialization and index freshness for a root.
Freshness trusts unchanged file metadata, like git; verify
re-hashes every file.
Inputs: root, verify. Returns: object
mimry_symbolA
Search indexed symbols by name, falling back to file names.
Set relations to "callers" (what calls the symbol) or "callees" (what it calls), with depth 1 to 3 for how many calls away to follow. file picks one symbol when several share the name, and file may end in ":N" to pick by line; line picks the symbol that starts on that line, or else spans it. Without relations this only searches.
Inputs: name (required), file, line, root, +2 more. Returns: object
mimry_whyC
Explain why a file or symbol ranked for a task query.
Inputs: query (required), surface (required), root, limit. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools target clearly distinct operations: symbol search, file search, change impact, path finding, status, and feedback. However, mimry_find (search files) and mimry_related (related files by graph ranking) can be confused since both take a query and return files, and mimry_status vs mimry_preflight both read as readiness checks. The descriptions do differentiate them, but the boundaries are slightly soft.
Every tool follows the same mimry_ prefix with a single concise snake_case noun/verb, e.g. mimry_find, mimry_symbol, mimry_impact, mimry_path. The pattern is completely predictable and readable throughout.
Nine tools sit comfortably in the well-scoped range for a code-graph intelligence server. Each maps to a distinct query type (search, relations, impact, path, ranking, status, feedback) with no filler.
The surface covers search (find, symbol), graph relationships (related, impact, path, why), freshness (status, preflight), and feedback, giving strong end-to-end graph-query coverage. A minor gap is the absence of an explicit index/init or reindex operation, since freshness verification seems confined to status.
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Related MCP Servers
- AlicenseAqualityBmaintenanceSelf-hosted semantic code search for AI coding agents. Indexes many repositories at once with tree-sitter AST chunking, local llama.cpp embeddings and Qdrant, so Claude Code, Cursor, Codex and any MCP client can find code by meaning, trace usages and callers, and read the git history behind each chunk. No API keys, and your code never leaves your machine.21834MIT
- AlicenseNot gradedqualityCmaintenanceGives multiple AI coding agents a shared, persistent memory by indexing your code and documentation into a vector database with AST-aware chunking and hybrid semantic/keyword search. Agents can search across projects and store, update, or forget decisions, conventions and lessons learned, all self-hosted with local embeddings.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to maintain persistent memory across repositories by indexing local files into a semantic graph and providing ranked, verified search results without LLM token costs.3 npmMIT
- AlicenseAqualityBmaintenanceEnables AI coding agents to share a persistent, local-first memory of architectural decisions, conventions, bug root causes, and session handoffs, searchable via full-text ranking, so context carries across tools and sessions without any cloud dependency.213639 npm2MIT