About memoir
memoir is an MCP server that stores structured session journals for AI agents, helping work continue across sessions without repeating failed attempts. It is for teams or developers using MCP clients and records attempts, blockers, decisions, and handoffs in a local SQLite database.
Key features
- 01Log attempts, blockers, and decisions
- 02Create sessions automatically
- 03Generate a structured handoff
- 04Query session history and blockers
- 05Keep configurable rolling session history
Use cases
- 01Hand off project context to a later session
- 02Avoid repeating failed approaches
- 03Track unresolved blockers across sessions
MCP support
Provides MCP clients with tools to write session records and retrieve handoffs, history, and blockers. Data is stored in a local SQLite file without external services.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y memoir-mcpMEMOIR_MAX_CONTENTMax characters for content fieldsMEMOIR_MAX_OUTCOMEMax characters for outcome/resolution fieldsMEMOIR_MAX_ENTRIESMax entries per sessionMEMOIR_MAX_SESSIONSMax sessions per project (rolling)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEmemoir-mcp
Structured session journals for AI agents. Persistent memory across sessions -- no more repeating dead ends.
When a session ends, all reasoning is lost -- what was tried, what failed, what's blocked. The next session starts from scratch and repeats the same mistakes. memoir logs it all and hands it off so the next session picks up where the last one left off.
Works with any MCP client: Claude Code, Cursor, Codex, Windsurf, and more.
Install
Claude Code
claude mcp add memoir -s user -- npx -y memoir-mcp
Other MCP clients
npx -y memoir-mcp
How it works
- Automatic project detection -- identifies the project by its git root, so logs stay scoped without any configuration.
- Implicit sessions -- a session is created automatically on first log. No setup step.
- Rolling retention -- keeps the last 20 sessions per project (configurable). Old sessions are pruned automatically.
Tools
Write
| Tool | Description |
|---|---|
log_attempt | Record something that was tried and its outcome. |
log_blocker | Flag something that's stuck and why. |
resolve_blocker | Mark a blocker as resolved with what fixed it. |
log_decision | Record a design or architecture choice and its rationale. |
end_session | Close the current session with an optional summary. |
Read
| Tool | Description |
|---|---|
get_handoff | Structured summary of the last session -- what was attempted, what's blocked, what was decided. |
get_history | Query past sessions (default: last 3, max 20). |
get_blockers | List unresolved (or resolved) blockers across all sessions. |
Storage
Single SQLite file at ~/.memoir/memoir.db. No API keys, no external services.
Configuration
All limits are configurable via environment variables:
| Variable | Default | Description |
|---|---|---|
MEMOIR_MAX_CONTENT | 500 | Max characters for content fields |
MEMOIR_MAX_OUTCOME | 300 | Max characters for outcome/resolution fields |
MEMOIR_MAX_ENTRIES | 50 | Max entries per session |
MEMOIR_MAX_SESSIONS | 20 | Max sessions per project (rolling) |
Example with custom limits:
claude mcp add memoir -s user -e MEMOIR_MAX_CONTENT=1000 -e MEMOIR_MAX_ENTRIES=100 -- npx -y memoir-mcp
Handoff output uses a compact format to keep context window usage low.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.