MeMCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MeMCPWhat do we know about the launch delay and who owns it?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MeMCP

Local temporal memory for AI agents, served over MCP.
Why
Agents forget everything between sessions, and plain vector memory cannot answer "who managed whom, as of when" or "has this kind of slip happened before". MeMCP keeps a dated timeline in markdown you own, indexes it on your machine, and exposes it to any MCP client.
Related MCP server: exomem
Features
Markdown vault is the source of truth; Postgres, BM25 and Chroma are rebuildable indexes.
Hybrid search (semantic + lexical + entity + severity, fused with RRF) over events, threads and transcripts.
Entities with aliases and relationships that have validity dates (
managesuntil a date).Patterns and advice with check-in dates and confidence decay: "what is overdue?"
Approval-gated writes:
memory_draft-> your approval ->memory_commit->memory_sync.Optional code graph (symbols and call edges) over your own repo.
Fully local: local Postgres, local embeddings, no hosted service. 45 tools over stdio.
Quickstart
Requires Docker, uv and Python 3.11 (uv fetches it).
git clone https://github.com/haitham72/MeMCP && cd MeMCP
uv tool install . --python 3.11
export PGPASSWORD=choose-a-password # PowerShell: $env:PGPASSWORD="choose-a-password"
docker compose up -d db
memcp sync --vault examples/sample_vault
memcp doctorThat loads the synthetic "Fjord Labs" vault (a slipping launch, a vendor outage, a pricing reversal, a manager handover, an overdue advice item). The compose file maps Postgres to host port 5433; set PGPORT if you change it. The first search downloads a small embedding model; MODEL_TIER=S keeps it light, and a TF-IDF fallback works fully offline.
To use your own vault, run memcp init in the project where your agent works. It scaffolds ./memory, a .env and the client config.
Connect a client
Use an absolute vault path. PGPASSWORD must be visible to the server process.
Claude Code:
claude mcp add memcp -e PGPASSWORD=$PGPASSWORD -- memcp serve --vault /abs/path/to/examples/sample_vaultClaude Desktop (claude_desktop_config.json) and Cursor (.cursor/mcp.json) use the same shape:
{
"mcpServers": {
"memcp": {
"command": "memcp",
"args": ["serve", "--vault", "/abs/path/to/examples/sample_vault"],
"env": { "PGPASSWORD": "choose-a-password" }
}
}
}memcp init --client claude-code|cursor|codex writes this for you.
Example session
A real stdio MCP session against the synced sample vault, driven by a short script (no LLM in the loop). Output is verbatim, only the JSON-RPC framing is summarised.
initialize -> serverInfo: {"name": "memcp", "version": "0.1.0"}
tools/list -> 45 tools
>>> tools/call pg_advice_due {"days": 7}
=== Advice Entries Due / Past Due ===
Distrust the first vendor status update (vendor_outage) — check-in: 2026-07-05, confidence: 0.80, status: pending
Re-lock scope after every addition (launch_delay) — check-in: 2026-04-01, confidence: 5.20, status: active
Run the failover drill monthly (vendor_outage) — check-in: 2026-10-03, confidence: 6.65, status: active
>>> tools/call pg_hybrid_search {"query": "launch slip after scope sign-off", "limit": 3}
=== Hybrid Search (RRF): 'launch slip after scope sign-off' ===
1. [rrf=0.016393] Scope creep after sign-off / launch_delay/high (2026-03-10)
signals: semantic#1 lexical- entity- severity-
Three features land after the freeze despite the January promise. Classic P1: scope creep after sign-off, see [[pricing_change]] for the pricing fallout.
2. [rrf=0.015885] Launch delayed to September / launch_delay/high (2026-05-19)
signals: semantic#4 lexical- entity- severity#5
Official: the launch is delayed to September. The two-week slip from February never got recovered.
3. [rrf=0.015385] Launch slips two weeks / launch_delay/medium (2026-02-20)
signals: semantic#5 lexical- entity- severity-
The launch slips two weeks after the migration runs long. Any further delay pushes us into the pricing review window.
>>> tools/call get_pattern {"name": "P1"}
## P1 — Scope creep after sign-off
**Entity:** `Tomas`
**Verdict:** Tomas agrees to post-freeze additions to avoid conflict, then pays for them in schedule slips.
Commitments made at sign-off decay within weeks unless Alex re-locks them.
**Confidence:** High
**Status:** Active
**Links:** [P3]
--- Linked pattern (P3) ---
## P3 — Decision by silence
**Entity:** `Alex Morgan`
**Verdict:** Unanswered proposals are decided by whoever acts first, not by Alex. Silence reads as consent.
**Confidence:** Medium
**Status:** Active
**Links:** [P1]
>>> tools/call relationship_chart {}
=== Relationship Chart (manages, from entity_relationships) ===
Tomas
└ Dana
└ MarcusArchitecture
flowchart LR
MD[Markdown vault] --> SYNC[memcp sync]
SYNC --> PG[(Postgres + pgvector)]
SYNC --> BM25[BM25]
SYNC --> CHROMA[Chroma]
PG --> MCP[MCP server]
BM25 --> MCP
CHROMA --> MCP
MCP --> AGENT[Agent]
AGENT -- draft, approve, commit --> MDMarkdown is the source of truth. Delete the database and rebuild it from the vault.
Nothing leaves your machine.
The agent asks before it writes.
Tools
45 tools in five families (full reference):
Family | Examples |
Remember |
|
Recall |
|
Connect |
|
Reflect |
|
Code |
|
Configuration
All settings are environment variables (or a .env); see docs/configuration.md.
Variable | Default | Purpose |
|
| Vault directory |
| empty | Owner entity ( |
|
| Postgres location |
|
| Postgres database and user |
| none | Postgres password (required) |
| empty | Full DSN, overrides the |
|
| Embedding model: |
Development
uv venv --python 3.11 && uv pip install -e ".[dev]"
export PGPASSWORD=memcp MEMCP_TEST_DSN=postgresql://memcp:memcp@localhost:5433/memcp_test
python -m pytest tests/ -qTests that need Postgres are skipped when it is unreachable. CI runs the full suite against pgvector/pgvector:pg16. See CONTRIBUTING.md, docs/troubleshooting.md and docs/comparison.md (an honest comparison with mem0, Zep/Graphiti, Letta and basic-memory).
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Persistent memory for AI agents. EU-hosted, privacy-first, hybrid recall, contradiction detection.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceLocal-first, file-based memory layer for AI agents — one shared Markdown vault across Claude, Codex, Gemini, Cursor and any MCP client. Provides read/write memory tools with an audit trail, per-agent trust levels, and Git sync; no cloud and no lock-in.2MIT
- AlicenseNot gradedqualityCmaintenanceDurable memory with sources, proof, history, and review for MCP-capable agents. It turns a Markdown/Obsidian vault into a local knowledge substrate, enabling agents to store, search, and retrieve governed knowledge.26,367 PyPI9AGPL 3.0
- AlicenseBqualityBmaintenanceEnables AI agents to maintain a local, event-sourced long-term memory with semantic retrieval, decision confidence checks, and proactive recalls, ensuring data never leaves the machine.233MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to capture, structure, remember, and retrieve source-backed memory as local Markdown files, with reviewable writes and no cloud dependency.218MIT