dense-knowledge-mcp
Click on "Install 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., "@dense-knowledge-mcpsearch quantum_physics.mmp for Bell inequality"
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.
Dense Knowledge
Dense Knowledge is a small local server for Model Module Protocol (MMP) files. It gives language models a persistent research memory without requiring a database, embeddings, or a hosted service.
An MMP client reads a compact index first and fetches full entries only when they are relevant. The files remain portable, diffable, and usable offline.
The project currently implements the flat MMP/1.0 format. Hierarchical indexes are planned, but are not written yet.
Install
Python 3.11 or newer is required.
Install the published package:
uv tool install dense-knowledge-mcp
mmp setup
mmp doctorTo install from source instead:
git clone https://github.com/Lucky44k/dense-knowledge-mcp.git
cd dense-knowledge-mcp
./scripts/install.sh
mmp setup
mmp doctormmp setup asks where knowledge files should be stored. It can also merge the
server entry into an LM Studio mcp.json. Existing servers are preserved; if an
MMP entry must be replaced, the command requires --force and creates a backup
of the JSON file first.
The non-interactive equivalent is:
mmp setup \
--memory "$HOME/.local/share/mmp/memory" \
--lm-studio-config "/path/to/mcp.json"The selected paths are saved in the user configuration:
Linux:
~/.config/mmp/config.tomlmacOS:
~/Library/Application Support/mmp/config.tomlWindows:
%APPDATA%\mmp\config.toml
MMP_ROOT or the global --root option can override the configured memory
directory for a single process.
Related MCP server: KB-MCP Server
LM Studio
If you prefer to configure LM Studio yourself, the server command is:
mmp-server --root "/absolute/path/to/memory" --transport stdioMinimal client configuration:
{
"mcpServers": {
"mmp": {
"command": "mmp-server",
"args": [
"--root",
"/absolute/path/to/memory",
"--transport",
"stdio"
]
}
}
}Restart the MCP connection after changing the configuration. mmp doctor
checks the installation, memory directory, stored packages, and the configured
LM Studio file.
Command line
Create and inspect a package:
mmp create quantum_physics.mmp "quantum physics"
mmp list
mmp open quantum_physics.mmp
mmp search quantum_physics.mmp "Bell inequality tests"
mmp read quantum_physics.mmp e1Structured entries can be passed inline or read from a JSON file:
mmp write quantum_physics.mmp --rev 0 --from entries.json
mmp validate quantum_physics.mmpAn entry in entries.json looks like this:
[
{
"summary": "Bell inequality separates local realism from quantum predictions",
"tags": ["BI", "nonlocality", "experimental tests"],
"status": "F",
"srcs": [
{
"author_or_venue": "Bell",
"title": "On the Einstein Podolsky Rosen paradox",
"year": "1964",
"identifier": "doi:10.1103/PhysicsPhysiqueFizika.1.195"
}
],
"legend": {
"BI": "Bell inequality"
},
"content": "def: BI = bound on local hidden variable correlations\nfact: quantum predictions -> violation of local realism bound"
}
]Source objects are registered and deduplicated automatically. Existing source
IDs such as "s1" may be reused in later writes.
Important validation rules:
summaries contain 3–15 English words
tags are a JSON array, never one comma-separated string
entries with status
ForCrequire sourcesunsourced entries use status
Hand cannot containfact:ornum:linescontested entries use status
Cand include at least onectr:line
Run mmp --help or mmp <command> --help for the complete CLI reference.
Retrieval and updates
The MCP server exposes nine tools:
mmp_list,mmp_create,mmp_open,mmp_search, andmmp_readmmp_write,mmp_update,mmp_deprecate, andmmp_validate
Search uses BM25 over index metadata with legend expansion and a full-body fallback. Updates never overwrite an entry: the replacement receives a new ID, the previous entry is marked deprecated, and its body remains available.
All writes use optimistic revision numbers and atomic file replacement. A stale revision is reported to the caller, but does not discard an append that can be applied safely.
Safety
Content returned from an MMP file is wrapped as untrusted reference data:
<mmp_data file="..." trust="untrusted">
...
</mmp_data>The server rejects common instruction-like contamination during writes. It
never follows ref: links automatically, and its tool descriptions tell the
client that stored content is data rather than instructions. These measures
reduce prompt-injection risk; they do not make untrusted research material
equivalent to trusted instructions.
Keep personal packages out of source control. The default memory/ directory
is ignored by Git.
Development
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
pytest
ruff check src tests
python -m buildSee CONTRIBUTING.md for contribution notes and SECURITY.md for private vulnerability reports.
Releases follow Semantic Versioning. The package version
is defined in src/mmp/__init__.py; Git tags use the corresponding v1.2.3
form. Release notes are kept in CHANGELOG.md.
Licensed under the MIT License.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lucky44k/dense-knowledge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server