Mnemosyne

Mnemosyne

Provides persistent, graph-based memory for AI agents via MCP, enabling semantic search, wikilink traversal, reminders, and injection protection.

Category
Visit Server

README

🧠 Palimpsest

The Context Engine for AI Agents β€” Give your AI agents persistent, observable, compliant memory.

All memories are plain markdown files you own. Search by meaning, traverse relationships, schedule reminders, and protect against poisoned data.

Python PostgreSQL License


⚠️ Rebrand Notice

This project was formerly known as Mnemosyne. We rebranded to Palimpsest in July 2026 to avoid confusion with an unrelated project that adopted the same name.

Why Palimpsest? A palimpsest is a manuscript on which later writing has been superimposed on earlier writing β€” yet traces of the original remain. It's the perfect metaphor for layered, persistent, evolving memory.


What is Palimpsest?

Palimpsest is a production-grade memory platform for AI agents. Unlike simple chat history or RAG, it gives agents:

  • Long-term persistent memory β€” survives restarts, works across sessions
  • Semantic search β€” find ideas by meaning, not just keywords
  • Graph memory β€” notes link via [[wiki-links]], traverse relationships
  • Security gates β€” injection detection, contradiction flagging, near-duplicate checks
  • Prospective memory β€” "remind me in 3 days" β€” and it actually happens
  • Sleep consolidation β€” nightly maintenance: archive stale, merge duplicates
  • MCP server β€” Claude Code, Cursor, any MCP client can read/write memory
  • Observability β€” audit trails, contamination detection, memory health dashboard
  • Compliance β€” GDPR Article 17, EU AI Act ready

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Your Question                              β”‚
β”‚  "What did we decide about API rate limit?" β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Palimpsest Memory Platform               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Semantic β”‚ β”‚ Keyword  β”‚ β”‚  Graph   β”‚   β”‚
β”‚  β”‚ Search   β”‚ β”‚ Search   β”‚ β”‚ Search   β”‚   β”‚
β”‚  β”‚(pgvector)β”‚ β”‚(tsvector)β”‚ β”‚(wikilinksβ”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜   β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                    β”‚                       β”‚
β”‚            β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚            β”‚ RRF Merge      β”‚             β”‚
β”‚            β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                    β”‚                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Markdown Vault (source of truth)     β”‚ β”‚
β”‚  β”‚ ~/Palimpsest/vault/*.md             β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Quick Start

# Clone the platform
git clone https://github.com/M4F-S/palimpsest
cd palimpsest

# Install (SQLite works out of the box)
pip install -e ".[dev]"

# Or with PostgreSQL + pgvector for production:
docker run -d --name palimpsest-pg -p 15432:5432 \
  -e POSTGRES_USER=palimpsest \
  -e POSTGRES_PASSWORD=palimpsest_secret \
  -e POSTGRES_DB=palimpsest \
  ankane/pgvector:latest
from palimpsest import UnifiedMemorySystem

memory = UnifiedMemorySystem()

# Save a memory
memory.remember(
    title="API Rate Limit Decision",
    content="100 req/min with burst to 200. Alert if p95 > 200ms.",
    tags=["api", "decision"],
    salience=0.9
)

# Search by meaning
results = memory.recall("rate limiting policy", mode="hybrid", top_k=5)

# Schedule a reminder
memory.remind_me("Review API metrics", "2026-07-07T09:00:00", recurring="weekly")

# Run nightly maintenance
memory.consolidate()

Kimi Skill

For the Kimi AI skill (minimal installable version):

πŸ‘‰ github.com/M4F-S/kimi-palimpsest-skill

The skill repo contains only the essential files for Kimi integration: SKILL.md, palimpsest/ package, and tests.

Documentation

Document Purpose
PLATFORM_BUILDER_BRIEF.md Architecture and design decisions
SETUP.md Installation and configuration guide
PALIMPSEST_V3_REBUILD_PLAN.md V3 roadmap and rebuild strategy
PALIMPSEST_STRATEGIC_DECISIONS.md Strategic decisions log
RESEARCH_*.md Research reports and competitive analysis
TEST_REPORT.md Test coverage and results
CHANGELOG.md Version history
CONTRIBUTING.md Contribution guidelines

Environment Variables

Variable Default Purpose
MEMORY_DB_DSN (none) PostgreSQL connection string
MEMORY_SQLITE_PATH ~/.palimpsest/palimpsest.db SQLite database path
MEMORY_VAULT_PATH ~/Documents/Kimi/Workspaces/Palimpsest/vault Markdown vault directory
EMBEDDING_MODEL all-MiniLM-L6-v2 Sentence-transformers model
OLLAMA_URL http://localhost:11434 Ollama server for embeddings

License

Apache 2.0

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured