使用说明
弥米尔
在挪威神话中,米米尔是智慧的守护者——当众神需要知道之前发生了什么时,他们会咨询智慧。
弥米尔 是一个MCP(模型上下文协议)服务器,允许AI编码代理相互共享会话上下文。它读取由Claude Code、Codex CLI和Gemini CLI编写的现有会话文件,将其解析为结构化数据,并将其作为MCP工具公开。
没有存储。没有LLM电话。只是智能解析您的代理已经写入磁盘的内容。
为什么
默认情况下,Claude Code、Codex和Gemini是独立工作的。每次会话开始时都很冷,不知道另一个代理做了什么。Mimir弥合了这一差距——特工可以打电话 get_project_context 或 search_sessions 了解前几次会议中发生了什么(横跨 全部 代理)在开始工作之前,以标记为界的块浏览大型成绩单,并为下一个代理留下交接笔记。
工具
发现和聚合
list_sessions
列出给定项目路径和可选代理筛选器的可用会话。
{
"project_path": "/home/user/myproject",
"agent": "claude-code" // optional: "claude-code" | "codex" | "gemini"
}
search_sessions
按内容、触摸的文件、代理和/或时间搜索项目的会话。提供的每个过滤器都必须匹配。返回具有匹配的方面的匹配会话(prompt / content / file)以及一个简短的片段。
{
"project_path": "/home/user/myproject",
"query": "auth refactor", // optional: substring in prompts/transcript
"file": "src/auth.rs", // optional: sessions that touched this file
"agent": "codex", // optional
"since": "2026-06-01T00:00:00Z", // optional: RFC3339, modified at/after
"limit": 20 // optional
}
get_project_context
项目最近工作的汇总、跨代理摘要——最近的会话、接触的文件、出现的错误和交接说明。调用工具 开始 有一项任务需要完成。
{
"project_path": "/home/user/myproject",
"agent": "claude-code", // optional
"limit": 10 // optional: how many recent sessions to aggregate
}
会话详细信息
get_session_summary
将会话解析为结构化数据——初始提示、修改的文件、工具调用、错误和最终状态。 默认情况下压缩: 完整的成绩单(raw_turns)除非你要求,否则省略,因为它可能很大。
{
"session_id": "abc123",
"agent": "claude-code",
"project_path": "/home/user/myproject", // required for claude-code
"include_raw_turns": false, // optional: include the full transcript
"chunk_size": 6000 // optional: attach a chunk manifest for this token budget
}
当 chunk_size 已设置,响应包括 chunk_manifest (total_chunks, total_tokens, content_hash)这样你就可以翻阅成绩单了。
get_session_chunk
取一块成绩单。块边界是以下函数的纯函数 (transcript, chunk_size),因此块是稳定的,可以取出 任何订单 (例如,最后一块先)。通过 expected_hash 从清单中得知会话是否在分页过程中更改(stale: true).代币按以下方式计算 tiktoken (cl100kbase);整个转弯被压缩到预算范围内,一个超大转弯被分成 partial 碎片。
{
"session_id": "abc123",
"agent": "claude-code",
"project_path": "/home/user/myproject",
"chunk_size": 6000,
"index": 0,
"expected_hash": "<content_hash from manifest>" // optional
}
get_session_stats
会话的定量统计数据——回合计数(总/用户/助理)、总和每次工具调用计数、接触的文件、错误和总令牌。通过 tool 获取一个命令的确切调用计数(例如,有多少个) Bash 呼叫)。
{
"session_id": "abc123",
"agent": "claude-code",
"project_path": "/home/user/myproject",
"tool": "Bash" // optional: exact call count for this tool
}
交接笔记
笔记就是其中之一 可写的 surface——一个代理留给下一个代理的持久上下文。它们存储在一个小型SQLite数据库中 ~/.mimir/mimir.db,按项目路径键控。
leave_note
{
"project_path": "/home/user/myproject",
"content": "Auth refactor half-done — token validation still TODO in src/auth.rs",
"session_id": "abc123", // optional
"agent": "claude-code", // optional
"author": "claude" // optional
}
get_notes
{
"project_path": "/home/user/myproject",
"limit": 50 // optional
}
资源
除了工具,Mimir还将会话和笔记作为MCP公开 资源,因此具有资源选择器的客户端可以直接浏览和附加它们,并订阅实时更新。
resources/list--所有代理/项目的每个会话,以及每个项目的笔记资源。resources/templates/list--通告URI形状:mimir://session/{agent}/{session_id}?project={project_path}mimir://notes/{project_path}
resources/read--以JSON格式返回紧凑的会话摘要(或项目注释)。URI是稳定的,因此客户端可以直接读取其中的任何一个。resources/subscribe--得到一个notifications/resources/updated当会话文件(或笔记数据库)发生变化时。Mimir在后台通过内容哈希轮询订阅的资源。
会话文件位置
| 代理 | 路径 |
|---|---|
| 克劳德代码 | ~/.claude/projects/<encoded-path>/<uuid>.jsonl |
| 食品法典委员会 | ~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<date>-<uuid>.jsonl |
| 双子座 | ~/.gemini/tmp/<project-alias>/chats/session-<date>-<uuid>.json |
安装
curl -fsSL https://raw.githubusercontent.com/iamngoni/mimir/master/install.sh | sh
或者,如果你安装了Rust:
cargo install --git https://github.com/iamngoni/mimir
MCP配置
克劳德代码
claude mcp add mimir --transport stdio -- mimir
或手动输入 ~/.claude.json:
{
"mcpServers": {
"mimir": {
"type": "stdio",
"command": "mimir",
"args": []
}
}
}
法典
codex mcp add mimir -- mimir
或手动输入 ~/.codex/config.toml:
[mcp_servers.mimir]
command = "mimir"
args = []
Gemini CLI
手动添加到 ~/.gemini/settings.json:
{
"mcpServers": {
"mimir": {
"command": "mimir",
"args": []
}
}
}
存储
Mimir读取代理会话日志(它从不向其写入)。Mimir本身存储的唯一数据是 交接记录,在SQLite数据库中 ~/.mimir/mimir.db,首先创建 leave_note.
技术栈
- 生锈+
rmcp(MCP-SDK) serde_json用于JSONL/JSON解析walkdir用于会话发现tiktoken-rs(cl100k_base)用于转录令牌计数/分块sha2用于块漂移检测+资源变化检测rusqlite(捆绑SQLite)用于交接笔记- 工具 和 资源(包括订阅);仅限stdio传输
许可证
麻省理工学院