Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Architectural decision memory for LLM-native workflows — markdown for humans, a graph for agents.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"mitos": {
"command": "uvx",
"args": [
"mitos-adr"
]
}
}
}Run this in your terminal
claude mcp add mitos -- uvx mitos-adrPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mitos": {
"command": "uvx",
"args": [
"mitos-adr"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"mitos": {
"type": "stdio",
"command": "uvx",
"args": [
"mitos-adr"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account dovahkiin-v, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.20.0) reached the registry 20 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
🔧 Early release — actively developed
When you build software with AI assistants over months, the *reasoning* behind your decisions gets lost. The assistant forgets why you chose one approach, re-suggests options you already rejected, and your design notes drift out of sync with what was actually decided. Mitos is a memory layer for those decisions: it records each decision, the alternatives you ruled out, and how later decisions replace earlier ones — then feeds that history back to your AI assistant in a compact, trustworthy form.
The result: your AI collaborator stays consistent with the calls you've actually made — it stops contradicting a past decision or re-opening a settled question, and your decision record never silently rots.
Under the hood: markdown for humans (decisions.md and its quarterly archives under decisions/archive/ are the source of truth you can always read and grep), a typed graph for the agents (SQLite + a local Qdrant for semantic recall), and an MCP server so agents check precedent before deciding and record decisions as they make them.
Available on PyPI and the MCP Registry.
If you work with an AI coding agent (Claude Code, Cursor, Gemini CLI, …), the easiest path is to let it do the setup. In the project you want mitos in, give your agent:
Read https://github.com/dovahkiin-v/mitos/blob/main/SETUP.md and set up mitos
for this project. When done, run mitos status . from the project directory and report the result.
What your agent will end up doing — the same steps a human follows, all in SETUP.md where you can read them first:
mitos CLI via pipx (from PyPI or this repository);qdrant/qdrant on port 7333, isolated from any Qdrant you already run);mitos set-key) — a Gemini key (required), and an Anthropic key for the conflict-audit layer (strongly recommended); the setup guide tells agents not to handle key values.How much your agent asks along the way is governed by your own agent's settings, not by this prompt.
The same steps by hand — full detail in [SETUP.md](SETUP.md):
pipx install mitos-adrdocker compose up -d from this repo — mitos runs its own instance on :7333, so it never touches a Qdrant you use for other work.claude mcp add --scope user mitos -- mitos serve. One registration serves every project — see SETUP.md for what it costs, for other harnesses, and for why a leftover per-project .mcp.json entry has to go.mitos init from the project root, then mitos set-key --global (one key covers everything; get it at https://aistudio.google.com/app/apikey). Gemini is the tested embedding provider today; a multi-provider abstraction is on the roadmap.mitos status . → READY ✓.mitos status . is the compass throughout: it says exactly what's done, what's missing, and what to do next for that project. With no project named, mitos status answers the other question — what does this machine have — listing every registered project and checking Qdrant.
Every command names its project. There is no default target: mitos init registers the project by name, and from then on each verb takes -p , -p , or -p . from the project root (agents pass the same thing as a project argument). mitos projects lists what's registered, and mitos unregister removes a registration (the workspace stays as it is). That is what lets one install and one MCP server serve every project on the machine without a call ever landing in the wrong corpus.
Mitos is per-project — each project gets its own decision graph and its own Qdrant collections. Day to day, three verbs carry the loop (as MCP tools for agents, with CLI twins):
| Verb | When |
|---|---|
surface_decisions (mitos surface) | *Before* deciding — is there precedent? Every hit carries the alternatives that were already rejected and why. |
record_decision (mitos record) | The moment something is settled — the decision, the rejected paths, and how it relates to prior decisions (supersedes, amends, …). |
query_decisions (mitos query) | Looking something up by meaning (the MCP tool also by exact handle), or searching only the rejected options. |
A few properties worth knowing:
decisions.md, and rotation moves committed entries into decisions/archive/; both are human-readable and greppable, and the graph and the search index are derived from them and can always be rebuilt from them (mitos rebuild).mitos amend-commentary.mitos check -p .) finds decisions that silently contradict each other. The commit gate (mitos hook-install -p .) runs on git commit and holds a commit made after decisions were recorded until a check has been attempted, and --staged checks hand-authored entries still pending in decisions.md — see SETUP.md for the commit gate, the staged gate, and the CI and cron recipes.Explore the rest with mitos --help — the help text doubles as the API reference.
Building software through intensive LLM design reviews produces architectural decisions faster than a person can track. One month of that working style produced close to 900 decision records in a single markdown file — no longer greppable, readable, or manageable by hand. Existing ADR tools are built for human teams logging the occasional decision; mitos is built for a solo developer whose AI assistants generate and consume decisions continuously.
If that's your way of working, project size doesn't matter much — the higher the decision volume, the faster mitos moves from comfort to necessity.
pip install -e '.[test]'
MITOS_NO_LIVE_TESTS=1 pytest -m "not packaging" -n auto # offline suite, parallel (~50s) pytest -m "not packaging" # adds the live tier — serial only pytest -m packaging # real-install check: fresh venv + pip install
-n auto is safe for the offline suite and not for the live tier: the test-collection sweep is session-scoped, so parallel workers delete each other's Qdrant collections and the affected tests degrade to skips rather than failures.
The *_live.py suites and golden Layer B make real Gemini and Anthropic API calls against your own keys, and need Qdrant on :7333. They skip when no key is resolvable, so a fresh clone runs the fast path by default.
Keys resolve from the environment, a repo-root .env, or ~/.config/mitos/.env — so if you already *use* mitos, a test run can pick up your personal key and spend against it. Opt out explicitly:
MITOS_NO_LIVE_TESTS=1 PYTHONPATH=. pytest -m "not packaging"
The canonical decision format lives in mitos/format-spec.md. License: Apache 2.0.