Skip to content

.Net: Feature: Mimir as a Semantic Kernel memory connector (offline, encrypted, single-binary, cross-platform) #14098

@tcconnally

Description

@tcconnally

Feature request: Mimir as a Semantic Kernel memory connector

Problem

Semantic Kernel's memory system (ISemanticTextMemory, IMemoryStore) currently supports vector DBs (Azure AI Search, Chroma, Pinecone, Qdrant, etc.) but lacks an offline, single-binary, zero-infrastructure option for local development, desktop apps, and edge deployments.

Proposed solution

Add Mimir as an IMemoryStore implementation — a single Rust binary (~8MB) with embedded SQLite + FTS5 + vector search + AES-256 encryption.

Mimir is an MIT-licensed, MCP-native persistent memory engine for AI agents. Single Rust binary (~8MB), zero runtime dependencies.

Key features:

  • 29 MCP tools — full memory lifecycle: remember, recall (FTS5), search (semantic), forget, decay, embed, cohere, vault export/import, journal, timeline
  • Hybrid search — BM25 (FTS5) + dense embeddings + Reciprocal Rank Fusion
  • AES-256-GCM encryption at rest
  • Confidence decay — Ebbinghaus-based, auto-archives stale memories
  • Web dashboard for browsing/editing memories
  • Single binary — no Docker, Postgres, or cloud required
  • MIT licensed — no restrictions

Why Mimir for Semantic Kernel

  1. IMemoryStore interface maps cleanly to Mimir's CRUD operations
  2. Hybrid search (BM25 + vectors) gives better retrieval than pure vector search alone
  3. Offline-first — no Azure/AWS/GCP dependency. Works on dev laptops, factory floors, IoT
  4. Encryption at rest — enterprise requirement that most other memory stores don't meet
  5. MCP-native — Semantic Kernel supports MCP plugins; Mimir tools are immediately available
  6. .NET-friendly — Mimir is invoked as a subprocess via MCP stdio, language-agnostic

Integration (Python example)

from semantic_kernel.memory import SemanticTextMemory
from mimir_memory_store import MimirMemoryStore  # IMemoryStore implementation

store = MimirMemoryStore(db_path="./kernel_memory.db")
memory = SemanticTextMemory(storage=store, embeddings_generator=embedding_service)

await memory.save_information("user", "prefers dark mode", "pref-001")
results = await memory.search("user", "mode preference")  # Survives restarts

Status

Would a PR implementing Mimir as an IMemoryStore connector be welcome?

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETIssue or Pull requests regarding .NET codepythonPull requests for the Python Semantic Kerneltriage

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions