Server data from the Official MCP Registry
Local-first MCP memory server for persistent LLM knowledge with BM25 retrieval.
Local-first MCP memory server for persistent LLM knowledge with BM25 retrieval.
Dense Knowledge is a well-architected local-first MCP server with strong security practices. The codebase implements careful input validation, safe file operations with atomic writes, and explicit untrusted data handling. Minor code quality observations (broad exception handling, platform-specific lock behavior) do not materially impact security. Permissions align well with the stated purpose of managing local knowledge files. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.
5 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-lucky44k-dense-knowledge-mcp": {
"args": [
"dense-knowledge-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
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
</mmp_data>
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">
...
</mmp_data>
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.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.