
Dense Knowledge
io.github.Lucky44k由 GitHub 账号 Lucky44k 发布v1.2.0更新于 Nov 3, 2026
Local-first MCP memory server for persistent LLM knowledge with BM25 retrieval.
概览
本地优先的 MCP 记忆服务器,把研究资料存成可移植的 .mmp 文件,并用 BM25 检索,无需数据库或嵌入模型。
- 可以做什么
- 列出、创建并打开知识包,读取元数据、来源、图例与索引
- 用 BM25 搜索知识包,返回排序后的候选 ID 而不含正文
- 按需读取选定的正文块,可限定上下文预算
- 追加结构化条目、以新条目取代旧条目并保留历史、把条目标记为废弃
- 校验结构、语言、出处与引用
- 适用场景
- 适合希望助手在本机跨会话保存结构化研究笔记,并希望先用索引做低成本检索、而不是整篇加载文档的场景。适用于 LM Studio、Claude Desktop、Cursor、VS Code 等本地 stdio 客户端。
- 运行要求
- 作为本地 stdio 进程运行,通过 uvx 从 PyPI 包 dense-knowledge-mcp 启动,因此需要安装 uv。未声明账号、API 密钥或环境变量。知识默认存放在系统默认数据目录,可用 --root 或 MMP_ROOT 指定其他路径。
安装
在 SourceWeft 中
- 打开 控制台中的 Dense Knowledge,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Dense Knowledge
[PyPI] [Python] [CI] [License: MIT]
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.
It works with LM Studio, Claude Desktop, Cursor, VS Code, and other clients that support local stdio Model Context Protocol servers.
Why Dense Knowledge?
- Selective context: index first, body blocks only on demand.
- Local and portable: plain ASCII-in-UTF-8 files that can be copied, inspected, diffed, and backed up.
- No vector infrastructure: deterministic BM25 search with abbreviation and synonym expansion.
- Append-only history: updates supersede older entries instead of erasing them.
- Explicit provenance: established and contested claims carry source IDs; unsourced inferences are marked as hypotheses.
- Safer retrieval: stored text is wrapped as untrusted data and screened for common prompt-injection contamination.
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.
Quick start
Install uv, then
place this server definition in your MCP client:
uvx downloads the published package when needed. Dense Knowledge uses the
platform's default data directory unless --root is supplied:
Configuration differs slightly between clients. Ready-to-copy instructions are available for:
To install the command-line tools permanently:
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.
See it work
The CLI exposes the same storage operations as the MCP server:
Typical search output contains candidates, not full bodies:
The client chooses relevant IDs and calls mmp_read only for those blocks.
This preserves the distinction between cheap orientation and detailed context.
MCP tools
The server exposes nine tools:
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.
Storage
The default knowledge directory follows the operating system:
- Linux:
~/.local/share/mmp/memory - macOS:
~/Library/Application Support/mmp/memory - Windows:
%LOCALAPPDATA%\mmp\memory
The user configuration is stored separately:
- Linux:
~/.config/mmp/config.toml - macOS:
~/Library/Application Support/mmp/config.toml - Windows:
%APPDATA%\mmp\config.toml
MMP_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.
Writing knowledge
Models send structured objects to mmp_write; they never need to generate raw
MMP syntax. A minimal entry looks like:
Important validation rules:
- summaries contain 3–15 English words;
- tags are a JSON array, never one comma-separated string;
- entries with status
ForCrequire sources; - unsourced entries use status
Hand cannot containfact:ornum:lines; - contested entries use status
Cand include at least onectr:line; - block content is ASCII English and uses the eight defined line prefixes.
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.
Safety model
MMP content is reference data, never instruction. Read responses use an explicit untrusted envelope:
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.
Project status
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.
Development
Contributions are welcome. See CONTRIBUTING.md for the workflow and SECURITY.md for private vulnerability reports.
Licensed under the MIT License.
来源:README.md,提交 018a17a
工具
0版本历史
1- v1.2.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分