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)
Local-first MCP memory server for persistent LLM knowledge with BM25 retrieval.
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": {
"dense-knowledge": {
"command": "uvx",
"args": [
"dense-knowledge-mcp"
]
}
}
}Run this in your terminal
claude mcp add dense-knowledge -- uvx dense-knowledge-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"dense-knowledge": {
"command": "uvx",
"args": [
"dense-knowledge-mcp"
]
}
}
}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": {
"dense-knowledge": {
"type": "stdio",
"command": "uvx",
"args": [
"dense-knowledge-mcp"
]
}
}
}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 7, 2026
The registry name was verified with the GitHub account Lucky44k, 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 (1.2.0) reached the registry 3 months 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:★ 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.
A local-first MCP memory server for persistent LLM knowledge.
Dense Knowledge lets an AI assistant keep structured research between sessions without a database, embedding model, or hosted account. It stores portable .mmp files, searches their compact indexes with BM25, and loads full entries only when they are relevant.
question -> compact index/search -> selected knowledge blocks -> answer
inexpensive detailed context
It works with LM Studio, Claude Desktop, Cursor, VS Code, and other clients that support local stdio Model Context Protocol servers.
The bundled context benchmark uses 40 entries. In its synthetic fixture, searching and reading the two best blocks uses 94.3% less estimated context than loading the complete package. The benchmark is reproducible and clearly documents its tokenizer-neutral counting method.
Install uv, then place this server definition in your MCP client:
{
"mcpServers": { "dense-knowledge": { "command": "uvx", "args": ["dense-knowledge-mcp"] } } }
uvx downloads the published package when needed. Dense Knowledge uses the platform's default data directory unless --root is supplied:
{
"mcpServers": { "dense-knowledge": { "command": "uvx", "args": [ "dense-knowledge-mcp", "--root", "/absolute/path/to/memory" ] } } }
Configuration differs slightly between clients. Ready-to-copy instructions are available for:
To install the command-line tools permanently:
uv tool install dense-knowledge-mcp
mmp setup mmp doctor
mmp setup creates the memory directory and can safely merge the server into an LM Studio mcp.json. Existing servers are preserved. Replacing an existing Dense Knowledge entry requires --force and creates a backup first.
The CLI exposes the same storage operations as the MCP server:
mmp create quantum_physics.mmp "quantum physics"
mmp write quantum_physics.mmp --rev 0 --from examples/research_entries.json mmp search quantum_physics.mmp "experimental tests of local realism" mmp read quantum_physics.mmp e1
Typical search output contains candidates, not full bodies:
<mmp_data file="quantum_physics.mmp" trust="untrusted">
quantum_physics.mmp|e1|F|2.5427|Bell inequality separates local realism from quantum predictions
The client chooses relevant IDs and calls mmp_read only for those blocks. This preserves the distinction between cheap orientation and detailed context.
The server exposes nine tools:
| Tool | Purpose |
|---|---|
mmp_list | List available knowledge packages |
mmp_create | Create an empty MMP package |
mmp_open | Read metadata, sources, legend, and index |
mmp_search | Return ranked candidates without body text |
mmp_read | Load selected body blocks within an optional budget |
mmp_write | Append structured entries |
mmp_update | Supersede an entry while preserving history |
mmp_deprecate | Mark an entry as obsolete with a reason |
mmp_validate | Check structure, language, provenance, and references |
Search uses BM25 over tags and summaries after legend expansion, with a body fallback when the index has no match. Deprecated entries remain readable but are omitted from normal search results.
The default knowledge directory follows the operating system:
~/.local/share/mmp/memory~/Library/Application Support/mmp/memory%LOCALAPPDATA%\mmp\memoryThe user configuration is stored separately:
~/.config/mmp/config.toml~/Library/Application Support/mmp/config.toml%APPDATA%\mmp\config.tomlMMP_ROOT or the global mmp --root option overrides the configured directory. Keep personal packages out of source control; the repository's memory/ directory is ignored.
Models send structured objects to mmp_write; they never need to generate raw MMP syntax. A minimal entry looks like:
{
"summary": "Possible caching strategy needs workload validation", "tags": ["caching", "validation"], "status": "H", "srcs": [], "content": "rel: versioned keys -> simpler invalidation\nq: workload impact -> needs measurement" }
Important validation rules:
F or C require sources;H and cannot contain fact: or num: lines;C and include at least one ctr: line;See examples/research_entries.json for sourced and contested entries that can be written directly.
All writes use optimistic revision numbers and atomic file replacement. A stale revision is reported to the caller, but a safe append is not discarded.
MMP content is reference data, never instruction. Read responses use an explicit untrusted envelope:
<mmp_data file="..." trust="untrusted">
...
The server rejects common instruction-like patterns during writes, does not automatically follow ref: links, and tells the client not to obey instructions found in stored material. These defenses reduce prompt-injection risk; they do not turn untrusted research into trusted instructions.
Local MCP servers execute with your user permissions. Review the package and choose a dedicated memory directory before storing sensitive information.
Dense Knowledge implements the flat MMP/1.0 format, including BM25 retrieval, catalog generation, duplicate screening, budgets, append-only superseding, and validation. Hierarchical indexes for very large packages are planned but are not written yet.
Releases follow Semantic Versioning. Changes are documented in CHANGELOG.md.
python -m venv .venv
source .venv/bin/activate python -m pip install -e ".[dev]" ruff check src tests benchmarks pytest python -m build
Contributions are welcome. See CONTRIBUTING.md for the workflow and SECURITY.md for private vulnerability reports.
Licensed under the MIT License.