Structured session journals for AI agents. Persistent memory across sessions.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y memoir-mcp
MCP client config
{
"mcpServers": {
"memoir": {
"command": "npx",
"args": [
"-y",
"memoir-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.
claude mcp add memoir -s user -- npx -y memoir-mcp
npx -y memoir-mcp
| 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. |
| 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. |
Single SQLite file at ~/.memoir/memoir.db. No API keys, no external services.
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.
MIT