Krusch Context
FreeNot checkedGives IDE agents semantic codebase search, episodic project memory, and steering nuggets across sessions.
About
Gives IDE agents semantic codebase search, episodic project memory, and steering nuggets across sessions.
README
Local MCP server: five tools to store, retrieve, and retire project decisions. SQLite by default.
Node.js 22+ License: MIT MCP: 5 Verbs Storage: SQLite-First Article: What Makes It Special Docs: What Makes It Special HOL Guard Catalog M8ven Score
📖 Read the Systems Deep Dive: Check out the published architecture essay Beyond Flat Vector RAG: What Makes krusch-context-mcp Special on krusch.dev, or the local companion guide in docs/WHAT_MAKES_IT_SPECIAL.md.
Krusch Context MCP gives AI coding agents (Cursor, Claude Code, Windsurf, Antigravity) persistent working memory across sessions. It captures architectural decisions, invariants, lessons, and bug diagnoses, warns on near-duplicate memories, maintains temporal lineage when facts are superseded or invalidated, and audits diffs against active constraints.
🚫 What This Is Not
- Not a codebase AST or Git indexer: Code symbol search, call graphs, and Git DAG traversal belong in krusch-git or your IDE's native search.
- Not a 61-tool cafeteria: Collapsed to strictly 5 canonical verbs (~350 prompt tokens) for boring reliability.
- Not a cloud SaaS platform: Runs 100% locally on your machine with zero external cloud dependencies.
- Not a monolithic domain suite: Legal compliance (krusch-law), document ingestion (krusch-nexus), and contract graphs (krusch-biz) live in separate companion repositories.
⚡ 30-Second Quickstart
Requires Node.js >= 22.0.0. Run once inside your project repository:
npx krusch-context-mcp init
This command will:
- Validate Node >= 22.0.0 and initialize
.agent/context.dbvianode:sqlite. - Clear stale MCP tool schemas from local IDE caches.
- Create your project
.envwith sensible defaults. - Seed initial project context and run a diagnostic health check.
- Print copy-paste JSON configurations for Cursor, Claude Code, and Claude Desktop.
🛠️ The 5-Verb Agent Loop
Krusch Context MCP exposes strictly 5 canonical verbs designed to fit into standard coding workflows:
| Verb | Short Alias | Purpose |
|---|---|---|
krusch_context_retrieve |
retrieve |
Pulls active memories, steering rules, and project state briefings within a strict limit_tokens budget. Returns citations. |
krusch_context_remember |
remember |
Writes episodic facts and steering nuggets. Detects near-duplicates (similarity >= 0.85) and proposes revise(action: 'supersede') without blocking contrasting rules. |
krusch_context_revise |
revise |
Updates stale knowledge (supersede with lineage tracking) or revokes obsolete rules (invalidate with mandatory reason). |
krusch_context_nudge |
nudge |
Pre-commit auditor that checks proposed diffs against active project invariants (max 1–3 findings). Trigger defaults to pre_commit or manual; rejects every_turn. |
krusch_context_health |
health |
Reports storage mode, memory counts by closed taxonomy, and 30-day TTL decay review. |
🤖 Recommended Agent Protocol
Coding agents should interact with memory at specific lifecycle boundaries:
┌─────────────────────────────────────────────────────────────┐
│ 1. SESSION START │
│ Agent calls retrieve(query: '*', include_state: true) │
│ -> Obtains active invariants, recent decisions, blockers │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ 2. DURING WORK │
│ Agent calls remember(content: '...', category: '...') │
│ -> If near-duplicate returned, agent calls revise(...) │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ 3. PRE-COMMIT / PRE-EDIT │
│ Agent calls nudge(trigger: 'pre_commit') │
│ -> Audits code against active invariants (max 3 findings)│
└─────────────────────────────────────────────────────────────┘
🛡️ Safe Memory Writes: Closed Taxonomy & Deduplication
To prevent memory hallucination and database pollution:
- Closed Taxonomy: Every write must use one of 5 categories:
decision: Architectural choices, design directions, trade-offs.invariant: Non-negotiable rules (e.g., "Use node:sqlite, zero native compiles").bug: Solved defects, regressions, and root-cause analyses.lesson: Tactical insights and framework discoveries.blocker: Active dependencies or external obstacles.
- Near-Duplicate Detection: If a proposed memory matches an existing active record ($\ge 0.85$ cosine similarity), the memory is saved with a warning proposing
revise(action: 'supersede', target_id: ...). This protects contrasting rules (e.g., "Allow CORS" vs "Do not allow CORS") while flagging twin facts. - Compulsory Invalidation Reasons: Calling
revise(action: 'invalidate')strictly requires a non-emptyreason. - Focused Audits:
nudgecaps findings at 3 with concrete evidence, rejectingevery_turntriggers to eliminate auditor nagware. - Span-Grounded Provenance & Drift Self-Healing: Passing
provenance: { file, locator, quoted_sentence }toremembercomputes a normalized SHA-256anchor_hashand line range (start_line..end_line). On subsequentretrieve(include_state: true)calls, the engine verifies the span on disk—automatically healing line numbers when code shifts above it, or flagging[DRIFTED]when the underlying code changes.
🧠 Embedding Reality & Offline Mode
- Zero-GPU Default: If neither Ollama nor an API key is present, the engine runs 100% offline using deterministic keyword extraction, recency scoring, and heuristic tag indexing.
- Local Ollama (Optional): Set
OLLAMA_URL="http://127.0.0.1:11434"withEMBED_MODEL="snowflake-arctic-embed2"(8,192-token context,1024dims, ~`664 MBVRAM, asymmetricquery:retrieval via/api/embed; also supportsqwen3-embeddingMRL1024d,nomic-embed-text, and legacybge-large`). - Remote Cloud (Optional): Set
OPENROUTER_API_KEY="sk-..."withEMBED_MODEL="baai/bge-large-en-v1.5"(or any1024-dim OpenRouter embedding model) for zero-local-VRAM embeddings.
🐘 When Do You Need PostgreSQL?
- Use SQLite (Default): Perfect for single developers, local IDE sessions, and projects with thousands of decisions—featuring compact
Float32Arraybinary vector blobs (4 KB/row) and an external-content Porter-stemmedFTS5lexical index. Zero Docker, zero setup. - Use PostgreSQL (
STORAGE_MODE=postgres): Required only when scaling to multi-agent swarms across different machines needing centralized persistence and server-side pgvector HNSW indexing.
🔄 Migration from v1.6 / v1.7
- Tool Aliases: Legacy tool names (
add_memory,search_memory,compile_state,supersede_memory,invalidate_memory,proactive_nudge) are automatically aliased to the 5 verbs with a deprecation notice. - Database Path: v1.7 used
.agent/memory.db. v1.8+ uses.agent/context.db. Runnpx krusch-context-mcp initto migrate. - See docs/MIGRATION.md for the complete mapping table.
🧩 Sibling Architecture
┌─────────────────────────────────────────────────────────────┐
│ AI Coding Agent (Cursor / Claude) │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────┴───────────────┐
▼ ▼
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ krusch-context-mcp (v2.0) │ │ krusch-git (External) │
│ Project Memory & Steering │ │ Codebase RAG & AST Search │
│ (5 Canonical Verbs) │ │ (7 Specialized Tools) │
└──────────────┬──────────────┘ └─────────────────────────────┘
│
▼
┌─────────────────────────────┐
│ .agent/context.db │
│ (node:sqlite, Node ≥22) │
└─────────────────────────────┘
Other specialized tools (krusch-nexus, krusch-law, krusch-biz) run as independent MCP servers in their own repositories.
💻 IDE Configuration
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"krusch-context": {
"command": "npx",
"args": ["-y", "krusch-context-mcp"]
}
}
}
Claude Code
claude mcp add krusch-context -- npx -y krusch-context-mcp
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"krusch-context": {
"command": "npx",
"args": ["-y", "krusch-context-mcp"]
}
}
}
📚 Documentation & Specifications
- Canonical Tool Reference: Generated directly from live schemas (
npm run docs:generate). - Architecture & Failure Modes: 2-page specification covering schemas, indexes, and
v2.0.0multi-scale retrieval invariants. - Setup & Operations Guide: Zero-Docker setup and optional configurations.
- Migration Guide: Step-by-step v1.5 → v1.6 → v1.7 → v1.8 → v1.9.0 → v2.0.0 mapping.
- Episodic Memory Guide: Deep dive into the closed taxonomy and lifecycle.
- Changelog: Version release notes.
- Official ICLR 2026 BEAM Empirical Report: Closed-system full-suite evaluation across all
100conversations (~178.34Mtokens) and2,000/2,000questions (100K,500K,1M,10Msplits) on 96 GB Blackwell G4 (snowflake-arctic-embed28K ctx on SQLite:v2.0.0reaches92.58%Hybrid 8K at100K,42.23%R@10at1M, and55.54%Hybrid 8K [93.00%IE] +48.18%/58.71%E2E QA at10M, beating cloudpast.devon Contradiction Resolution across all 4 splits and on10MMulti-Session Reasoning across both Referees [29.54%/38.33%vs.28.17%]) with5/5zero-leakage verification. - Evaluation Baseline Notes: Preliminary benchmark fixtures and token-budget metrics.
🧪 Testing
# Run full unit & contract test suite (100% SQLite, zero Docker)
npm test
# Check storage and memory health
npm run health
License
MIT © kruschdev
Installing Krusch Context
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/kruschdev/krusch-context-mcpFAQ
Is Krusch Context MCP free?
Yes, Krusch Context MCP is free — one-click install via Unyly at no cost.
Does Krusch Context need an API key?
No, Krusch Context runs without API keys or environment variables.
Is Krusch Context hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Krusch Context in Claude Desktop, Claude Code or Cursor?
Open Krusch Context on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
by UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
by blustAIServer For Power BI
Enables exploring Microsoft Fabric / Power BI workspaces and semantic models, and executing ad-hoc DAX queries.
by Mitsubishi-FusoTemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Compare Krusch Context with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
