In Norse mythology, Mimir is the keeper of wisdom — the one the gods consult when they need to know what has come before.
Mimir is an MCP (Model Context Protocol) server that lets AI coding agents share session context with each other. It reads existing session files written by Claude Code, Codex CLI, and Gemini CLI, parses them into structured data, and exposes them as MCP tools.
No storage. No LLM calls. Just intelligent parsing of what your agents already write to disk.
Claude Code, Codex, and Gemini work in isolation by default. Each session starts cold, with no knowledge of what the other agent did. Mimir bridges that gap — an agent can call list_sessions or get_session_summary to understand what happened in a prior session before picking up work.
List available sessions for a given project path and optional agent filter.
{
"project_path": "/home/user/myproject",
"agent": "claude-code" // optional: "claude-code" | "codex" | "gemini"
}Parse a session file and return structured data about what happened — initial prompt, files modified, tool calls made, errors, and final state.
{
"session_id": "abc123",
"agent": "claude-code"
}| Agent | Path |
|---|---|
| Claude Code | ~/.claude/projects/<encoded-path>/<uuid>.jsonl |
| Codex | ~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<date>-<uuid>.jsonl |
| Gemini | ~/.gemini/tmp/<project-alias>/chats/session-<date>-<uuid>.json |
curl -fsSL https://raw.githubusercontent.com/iamngoni/mimir/master/install.sh | shOr if you have Rust installed:
cargo install --git https://github.com/iamngoni/mimirclaude mcp add mimir --transport stdio -- mimirOr manually in ~/.claude.json:
{
"mcpServers": {
"mimir": {
"type": "stdio",
"command": "mimir",
"args": []
}
}
}codex mcp add mimir -- mimirOr manually in ~/.codex/config.toml:
[mcp_servers.mimir]
command = "mimir"
args = []Manually add to ~/.gemini/settings.json:
{
"mcpServers": {
"mimir": {
"command": "mimir",
"args": []
}
}
}- Rust +
rmcp(MCP SDK) serde_jsonfor JSONL/JSON parsingwalkdirfor session discovery- stdio transport only
MIT