Mimir's Vault
An Obsidian-compatible memory graph and context management MCP server that lets AI agents navigate project architecture and relationships via wikilinks before scanning raw code, reducing token waste.
README
<div align="center">
<img src="assets/readme/hero.svg" alt="Mímir's Vault Banner" width="100%" />
<p align="center"> <b>ᚱ • ᚢ • ᛖ • ᛋ • ᚨ • ᛗ • ᛟ • ᛚ</b><br> <i>"Just as Odin drank from Mímir's Well to gain infinite cosmic wisdom,<br> AI agents require targeted knowledge—not a chaotic ocean of raw files."</i> </p>
Key Pillars • System Architecture • Installation • MCP Client Setup • Tool Reference • Agent Workflow Guide
</div>
The Problem: Wandering AI Coding Agents
When AI coding agents (Claude Code, Cursor, Antigravity) work on complex software repositories, they frequently suffer from Context Inflation & Wandering:
- They blindly grep directories, re-scan full codebases, and load 30+ unrelated files into memory.
- They waste thousands of LLM tokens, increase execution latency, and lose track of core architectural rules.
The Solution: Mímir's Vault Memory Graph
Mímir's Vault (Mimirs_Vault) is a high-performance Model Context Protocol (MCP) server built in Python (FastMCP).
It maintains a human-readable, interlinked Obsidian-Wikilink memory graph inside ./.context/ for any software repository.
AI agents follow the Memory-First Scanning Rule:
- Inspect
.context/overview.mdviaget_root_node. - Follow Obsidian wikilinks (
[[modules/auth]]). - Inspect only the targeted source code files mapped in that module note.
- Edit zero unnecessary files.
Key Pillars
| Rune | Pillar | Rationale |
|---|---|---|
| ᛗ | Memory-First Protocol | Mandates AI agents to consult .context/overview.md before reading project source code. |
| ᛟ | Obsidian-Wikilink Graph | Interlinked notes ([[modules/auth]]) viewable natively in Obsidian, VS Code, and Foam graph visualizers. |
| ⚡ | Zero Token Waste | Reduces context consumption by up to 80%, eliminating agent codebase wandering. |
| ⚔️ | Surgical Node Updates | Tools to append, update, and log Architectural Decision Records (ADRs) without clobbering existing notes. |
| ᛚ | Human & Agent Shared Memory | Clean Markdown files (.context/) readable by both human developers and LLMs alike. |
System Architecture
<div align="center"> <img src="assets/readme/architecture.svg" alt="Mímir's Vault Architecture Flowchart" width="100%" /> </div>
<your-project-root>/
└── .context/ <-- Memory Graph Root (Ignored in .gitignore)
├── overview.md <-- ROOT NODE (Scope, File Structure Map, [[modules/*]] index)
├── decisions.md <-- Architectural Decision Records (ADRs)
└── modules/ <-- LINKED MODULE NODES
├── auth.md <-- Module Note (Scope, Mapped Source Files)
├── database.md <-- Module Note
└── ui/ <-- Submodule Directory
└── components.md <-- Submodule Note ([[modules/ui/components]])
Installation
Prerequisites
- Python 3.10+
1. Clone the Repository & Initialize Environment
# Clone repository
git clone https://github.com/GopikChenth/Mimir-s_Vault.git
cd "Mimir-s_Vault"
# Create virtual environment & install dependencies
python3 -m venv .venv
.venv/bin/pip install "fastmcp>=3.4.0" "mcp>=1.2.0" "pydantic>=2.0.0"
2. Verify Installation & Test Graph Engine
.venv/bin/python test_graph.py
Expected Result:
ALL TESTS PASSED SUCCESSFULLY!
MCP Client Setup
Add Mimirs_Vault to your preferred AI Client configuration:
Google Antigravity IDE (agy.json / Settings) or Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"Mimirs_Vault": {
"command": "<path-to-repo>/.venv/bin/python",
"args": [
"<path-to-repo>/main.py"
]
}
}
}
Note: Replace
<path-to-repo>with the absolute path where you clonedMimir-s_Vault(e.g./home/user/projects/Mimir-s_VaultorC:/Projects/Mimir-s_Vault).
Cursor IDE
- Open Cursor Settings → Features → MCP Servers.
- Click + Add New MCP Server.
- Name:
Mimirs_Vault - Type:
command - Command:
<path-to-repo>/.venv/bin/python "<path-to-repo>/main.py"
MCP Tool Reference
Mimirs_Vault exposes 7 core tools for AI agent navigation:
| Tool | Signature | Purpose |
|---|---|---|
get_root_node |
(workspace_path: str = ".") |
Fetches .context/overview.md (Project Scope, Master File Structure Map, [[modules/*]] index). |
navigate_node |
(node_path: str, workspace_path: str = ".") |
Traverses a wikilink node (e.g. modules/auth, decisions). Returns content & mapped source files. |
search_nodes |
(query: str, workspace_path: str = ".") |
Performs keyword and topic search across all .context/ markdown notes. |
init_context_graph |
(project_name, description, scope, workspace_path) |
Bootstraps .context/ folder with starter overview.md and decisions.md. |
create_module_node |
(module_name, scope, source_files, parent_node) |
Creates a module note and registers [[modules/name]] in the parent node. |
update_node |
(node_path, content, section_heading, mode) |
Surgically appends or replaces content under a specific section heading. |
log_decision |
(title, context, decision, consequences) |
Appends an Architectural Decision Record (ADR) in .context/decisions.md. |
System Prompts & Resources
MCP Prompts
memory_first_workflow: Instructs AI agents: "Consultget_root_nodefirst. Read ONLY the target source files mapped in module wikilinks."bootstrap_project_context: Guides AI to auto-scan an un-documented repository and build.context/notes.
MCP Resources
context://root— Direct read of.context/overview.md.context://decisions— Direct read of.context/decisions.md.
Agent Workflow Guide
1. Bootstrapping a New Repository
In any project workspace, prompt your AI agent:
"Run the
bootstrap_project_contextprompt to initialize the memory graph for this repository."
The AI will call init_context_graph and create_module_node to build your project's .context/ tree.
2. Daily Task Execution
When asking your AI agent to implement a feature:
"Implement user authentication with JWT. Check the memory graph first."
The AI will:
- Call
get_root_nodeto inspect.context/overview.md. - Follow
[[modules/auth]]to extract mapped file paths (src/auth/service.py). - Inspect & edit only
src/auth/service.py(zero token waste).
3. Logging Architecture Decisions
"Log an architectural decision that we switched to RS256 JWT signing."
The AI calls log_decision, appending ADR-002 to .context/decisions.md.
Visualizing Your Memory Graph in 3D
Because all nodes use standard Obsidian Wikilink syntax ([[modules/auth]]), open your repository's .context/ directory in:
- Obsidian
- VS Code Foam Extension
Enjoy an interactive, 3D visual graph of your codebase's architectural memory!
<div align="center">
ᛗ Built with Wisdom for AI-First Engineering ᛗ
Crafted with Python FastMCP • Report Issue • Submit Request
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.