Server data from the Official MCP Registry
File-first, local-first MCP memory for AI coding assistants: Markdown + YAML, no vector DB.
File-first, local-first MCP memory for AI coding assistants: Markdown + YAML, no vector DB.
Memory Fabric is a well-structured MCP server for local file-based memory management with strong security fundamentals. The codebase demonstrates proper secret redaction, input validation, and sensible permission scoping. Minor code quality observations around broad exception handling and LLM provider credential exposure via environment variables are present but do not represent critical vulnerabilities. Permissions align with the project's stated purpose as a developer tool. Package verification found 1 issue.
4 files analyzed · 6 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-elvirafa-memory-fabric": {
"args": [
"memory-fabric"
],
"command": "uvx"
}
}
}From the project's GitHub README.
File-first, local-first memory layer for MCP-compatible AI coding assistants.
Memory Fabric gives AI tools like Claude Code, Cursor, and GitHub Copilot a consistent, project-aware context layer without locking you into one model, editor, cloud provider, or operating system.
Memory is stored as human-readable Markdown with YAML frontmatter. No vector database. No cloud account. No embeddings required.
rg, git hooks, or Dreaming configuredv0.5.0 — live on PyPI. Core CLI and MCP tools work end-to-end.
Requires Python ≥ 3.11.
pipx install memory-fabric # CLI only
pipx install "memory-fabric[mcp]" # CLI + MCP server
Or with plain pip (inside a virtual environment):
pip install memory-fabric # CLI only
pip install "memory-fabric[mcp]" # CLI + MCP server
Zero-install one-off run (requires uv):
uvx --from "memory-fabric[mcp]" memory-fabric-mcp # starts the MCP server on stdio
# CLI only
pipx install "git+https://github.com/elViRafa/agentic-memory.git"
# CLI + MCP server
pipx install "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git"
Or with plain pip (inside a virtual environment):
pip install "git+https://github.com/elViRafa/agentic-memory.git" # CLI only
pip install "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git" # + MCP
Because Memory Fabric is in active development, we recommend upgrading regularly:
Upgrade the Package:
# If installed via pipx:
pipx upgrade memory-fabric
# If installed in a virtual environment via pip:
pip install --upgrade "memory-fabric[mcp]"
# If installed from GitHub (pre-release):
pipx install --force "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git"
Restart MCP Clients:
After upgrading, restart your IDE (Cursor, VS Code) or assistant process (Claude Code) to ensure the client reloads the updated memory-fabric-mcp server.
Refresh Local Projects (Optional): If you have projects initialized with older versions of Memory Fabric, navigate to the project directory and run:
ai-memory init --install-hooks
This will safely refresh starter templates and local git hook integration to the latest format without overwriting your existing memory markdown files.
Or clone and install in editable mode for local development:
git clone https://github.com/elViRafa/agentic-memory.git
cd agentic-memory
pip install -e . # CLI only
pip install -e ".[mcp]" # CLI + MCP server
ai-memory init
Creates .ai-memory/ in the current directory with starter sections and a .gitignore.
ai-memory doctor
ai-memory eval
ai-memory eval --json
eval scores whether memories are useful for coding assistants. It checks section coverage, starter-template content, summary quality, metadata, retrieval readiness, and likely secrets.
If .ai-memory/ exists, reports are saved under ignored local files:
.ai-memory/evals/latest.json
.ai-memory/evals/latest.md
.ai-memory/evals/<timestamp>-memory.json
.ai-memory/evals/<timestamp>-memory.md
If .ai-memory/ does not exist yet, eval prints a pre-init report only and creates no files.
ai-memory query "authentication"
ai-memory dream --mode light
ai-memory dream --mode deep
Dreaming creates a snapshot before maintenance. You can evaluate whether a Dreaming run improved memory quality:
ai-memory eval --dream latest
ai-memory dream --mode light --eval
Dream eval compares the pre-dream snapshot to current memory and reports score delta, changed files, improvements, and regressions.
One command per client. Safe to re-run: merges with your existing config, never overwrites it, and backs up the original file if it can't be parsed.
These call uvx --from "memory-fabric[mcp]" memory-fabric-mcp under the hood — same
canonical invocation as ai-memory install, just without the CLI step. Requires
uv.
| Client | Command |
|---|---|
| Claude Code | ai-memory install --client claude-code |
| Claude Desktop | ai-memory install --client claude-desktop |
| VS Code | ai-memory install --client vscode |
| Cursor | ai-memory install --client cursor |
| Windsurf | ai-memory install --client windsurf |
| Codex | ai-memory install --client codex |
| Antigravity | ai-memory install --client antigravity |
| Gemini CLI | ai-memory install --client gemini-cli |
| Cline | ai-memory install --client cline |
| All detected clients | ai-memory install --client all |
Add --project to write project-scoped config instead of the global/user config
(where the client supports it). Add --dry-run to preview the change as a unified
diff without writing anything. Add --uninstall to remove only the memory-fabric
entry, leaving everything else in the file untouched.
| Tool | Description |
|---|---|
initialize_memory_fabric_tool | Create .ai-memory/ scaffolding in a project |
read_combined_context_tool | Load Tier 0 directives + prioritized memory within token budget |
read_section_tool | Read a single memory section by name |
keyword_search_tool | Search memory with ripgrep or Python fallback |
write_local_memory_tool | Append or replace a section with secret scanning |
propose_memory_patch_tool | Preview proposed memory changes without applying |
dream_tool | Run memory maintenance / consolidation (--mode light |
prepare_dream_payload_tool | Prepare candidate snapshot and return consolidation prompt for client-driven dreaming |
apply_dream_results_tool | Apply LLM consolidated JSON output to candidate snapshot and save changes |
evaluate_memory_fabric_tool | Evaluate local memory quality |
evaluate_dream_quality_tool | Evaluate a Dreaming run against a snapshot |
write_memory_store_tool | Write a memory file to a semantic store path (e.g. architecture/decisions/auth) |
read_memory_store_tool | Read a single memory-store file by its semantic path |
list_memory_store_tool | List files in the memory store, optionally filtered by prefix/tags |
delete_memory_store_tool | Remove a memory-store file by its semantic path |
Registering the MCP server is necessary but not sufficient — AI agents will not use its tools unless explicitly instructed to do so.
Memory Fabric provides an automated Agentic Architecture to handle this for you.
When you run ai-memory init in your project, the CLI automatically deploys a complete suite of agent instruction files tailored for every major AI tool:
| Target | File(s) Created |
|---|---|
| Gemini CLI / Codex / Antigravity | AGENTS.md |
| Grok (TUI / Build / Agent harness) | AGENTS.md (primary project rules); full docs + MCP registration in ~/.grok/config.toml or .mcp.json; see also .grok/docs/user-guide/13-memory-fabric.md when installed for the client |
| Cursor IDE | .cursor/rules/memory-fabric.mdc |
| Windsurf IDE | .windsurf/rules/memory-fabric.md |
| Cline / Generic IDE Agents | .agents/rules/memory-store.md, .agents/rules/dreaming.md |
| Claude Code | CLAUDE.md (created or appended) |
| GitHub Copilot | .github/copilot-instructions.md (created or appended) |
All these files are generated from two canonical content blocks inside the Memory Fabric Python package. Running ai-memory sync-agents regenerates every platform file from these templates, guaranteeing perfect consistency. If you used ai-memory init --install-hooks, a pre-commit git hook runs this sync automatically on every commit.
For full details on the architecture, see AGENTIC_ARCHITECTURE.md.
Without these instruction files, agents will often explain they "don't use MCP tools automatically," or worse, they will write memory markdown files directly using native file-system tools—bypassing secret scanning, token budgeting, and background Dreaming management.
By simply running ai-memory init, you get zero-configuration, plug-and-play capability across the entire agent ecosystem.
You can use a single installed instance of Memory Fabric across all your coding projects:
Scaffold the target project: Navigate to your target project's root folder and initialize it:
cd /path/to/other-project
ai-memory init --install-hooks
This automatically creates .ai-memory/, deploys the Agentic Architecture rule files, sets up .gitignore, and installs the git post-commit hooks.
Global MCP Configuration:
Verify your AI assistant's configuration points to your globally installed memory-fabric-mcp executable. The MCP tools automatically parse and use the active project's path passed by the assistant as the cwd argument, enabling a single global MCP server registration to support all your local workspaces.
.ai-memory/
|-- index.md
|-- architecture.md
|-- schemas.md
|-- decisions.md
|-- debt.md
|-- ubiquitous-language.md
|-- framework-rules.md
|-- evals/ # ignored local quality reports
|-- snapshots/ # ignored rollback baselines
|-- private/ # ignored personal notes
`-- .gitignore
All shared memory files use YAML frontmatter:
---
section: architecture
summary: "One-line fallback used when the file exceeds the token budget."
priority: high
tags: [api, auth]
schema_version: "1.3"
last_updated: 2026-06-01T12:00:00-04:00
---
Your memory content here.
Developer-level preferences that apply across all projects are stored at:
| Platform | Path |
|---|---|
| Windows | %APPDATA%\memory-fabric\global\ |
| macOS | ~/Library/Application Support/memory-fabric/global/ |
| Linux | $XDG_CONFIG_HOME/memory-fabric/global/ |
global/directives.md is Tier 0: it is always loaded fully, bypassing token budgeting.
ai-memory [--cwd <path>] [--json] [--debug-llm] <command>
Commands:
init Create .ai-memory/ scaffolding
status Show memory status
doctor Validate memory files and environment
install Configure an MCP client to use memory-fabric (--client <name|all>)
eval Score memory quality or Dreaming quality
dream Run memory maintenance (--mode light|deep)
query Search memory
store CRUD operations on semantic memory store
sync-global Preview local-to-global promotions
rollback Restore from a snapshot
Eval examples:
ai-memory eval
ai-memory eval --json
ai-memory eval --llm-review
ai-memory eval --dream latest
ai-memory eval --dream memory-20260601T140000_0400
Optional LLM review is never enabled by default. When requested, deterministic local scores remain the source of truth; LLM notes are secondary and inputs are sanitized before review.
Memory Fabric uses Large Language Models (LLMs) to perform semantic memory consolidation (Dreaming) and qualitative evaluation. You can configure this in two ways: via direct environment variables or via zero-config MCP Sampling.
When an operation requires an LLM, Memory Fabric resolves the provider in the following order:
MEMORY_FABRIC_LLM_PROVIDER is set in the environment along with the corresponding API keys.MCP Sampling allows Memory Fabric to run semantic Dreaming and evaluations without configuring any local API keys or provider environment variables. Instead, it uses the host client's (e.g. Claude Code) native LLM connection.
dream_tool or evaluate_memory_fabric_tool via MCP, the Memory Fabric server checks if the client session supports sampling capabilities.create_message request back to the client.GEMINI_API_KEY, OPENAI_API_KEY, or ANTHROPIC_API_KEY to the background MCP server process.[!IMPORTANT] CLI Limitation: MCP Sampling relies on an active client-server session. Since the standalone terminal CLI (
ai-memory) runs outside of an MCP client, runningai-memory dreamfrom the command line cannot use MCP Sampling. To use LLM-based consolidation via the CLI, you must configure a direct LLM provider.
In some sequential/blocking MCP client environments (like IDE extensions or agentic loops), executing a nested MCP Sampling request (create_message) while the client is waiting for a tool response can lead to a JSON-RPC deadlock or execution timeouts.
To completely avoid this re-entrancy issue, Memory Fabric provides a client-driven split-tool dreaming protocol:
prepare_dream_payload_tool. This returns a consolidation_prompt and a candidate_store ID, but performs no blocking LLM reasoning.consolidation_prompt and captures the raw JSON output.apply_dream_results_tool(candidate_store=..., llm_response=...). Memory Fabric parses the response, applies the consolidated changes to the candidate folder, and saves the new memory states.To use the CLI with LLMs, or to bypass MCP Sampling with a specific provider, set the following environment variables:
| Provider | Environment Variables | Notes |
|---|---|---|
| Gemini | MEMORY_FABRIC_LLM_PROVIDER=geminiGEMINI_API_KEY=your_key | Defaults to gemini-2.5-flash |
| OpenAI | MEMORY_FABRIC_LLM_PROVIDER=openaiOPENAI_API_KEY=your_keyOPENAI_MODEL=gpt-4o-mini (opt)OPENAI_API_BASE=... (opt) | Can connect to custom local/remote OpenAI-compatible endpoints |
| Anthropic | MEMORY_FABRIC_LLM_PROVIDER=anthropicANTHROPIC_API_KEY=your_key | Defaults to claude-3-5-haiku-20241022 |
| Ollama | MEMORY_FABRIC_LLM_PROVIDER=ollamaOLLAMA_HOST=... (opt)OLLAMA_MODEL=gemma2 (opt) | Offline, local reasoning |
If you want to view the exact prompts sent and responses received by the LLM providers (Gemini, OpenAI, Anthropic, Ollama), you can enable LLM debug logging.
Via the CLI: Pass the --debug-llm global flag before the subcommand:
ai-memory --debug-llm dream --mode deep
This automatically prints logs to sys.stderr and appends them to a file named llm_debug.log (in .ai-memory/llm_debug.log if the directory exists, otherwise in the current working directory).
Via Environment Variables: Set the MEMORY_FABRIC_LLM_DEBUG variable in your environment:
stderr: Output prompts and raw JSON responses only to sys.stderr.1 or true: Output to sys.stderr and write to the default llm_debug.log file./path/to/log.txt (or any other custom value): Append logs to a custom file path.To protect your credentials and API keys, headers like Authorization and x-api-key are automatically redacted as [REDACTED] in the debug logs.
Every write path runs secret detection before saving. Detected secrets are replaced with [REDACTED_SECRET] and returned in the redactions field of the response. File locking prevents concurrent write corruption.
Eval scans existing memories for likely secrets but does not rewrite existing files. It reports what needs manual review.
mcp >= 1.0.0 (optional, required for MCP server only)rg (optional; ripgrep speeds up keyword search, Python fallback used when absent)MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.