claude-session-continuity-mcp
claude-session-continuity-mcp (v1.13.0)
为 Claude Code 提供无需重新解释的会话连续性 — 自动上下文捕获 + 语义搜索 + 自动错误→解决方案流水线
问题所在
每一个新的 Claude Code 会话:
"This is a Next.js 15 project with App Router..."
"We decided to use Server Actions because..."
"Last time we were working on the auth system..."
"The build command is pnpm build..."每次都要花费 5 分钟来设置上下文。每一次都是如此。
解决方案
全自动。 Claude Hooks 无需手动调用即可处理一切:
# Session start → Auto-loads relevant context + recent session history
# When asking → Auto-injects relevant memories/solutions
# During conversation → Tracks active files + auto-injects error solutions
# On compact → Structured handover context for continuity
# On exit → Extracts commits, decisions, error-fix pairs from transcript← Auto-output on session start:
# my-app - Session Resumed
📍 **State**: Implementing signup form
## Recent Sessions
### 2026-02-28
**Work**: Completed OAuth integration with Google provider
**Commits**: feat: add OAuth callback handler; fix: redirect URI config
**Decisions**: Use Server Actions instead of API routes
### 2026-02-27
**Work**: Set up authentication foundation
**Next**: Implement signup form validation
## Directives
- 🔴 Always use Zod for form validation
- 📎 Prefer Server Components by default
## Key Memories
- 🎯 Decided on App Router, using Server Actions
- ⚠️ OAuth redirect_uri mismatch → check env file零手动操作。上下文如影随形。
快速开始
一键安装
npm install claude-session-continuity-mcp就是这样! 安装后脚本会自动:
在
~/.claude.json中注册 MCP 服务器在
~/.claude/settings.json中安装 Claude Hooks
安装内容
MCP 服务器 (位于 ~/.claude.json 中):
{
"mcpServers": {
"project-manager": {
"command": "npx",
"args": ["claude-session-continuity-mcp"]
}
}
}Claude Hooks (位于 ~/.claude/settings.json 中):
{
"hooks": {
"SessionStart": [{ "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-session-start" }] }],
"UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-user-prompt" }] }],
"PostToolUse": [{ "matcher": "Edit", "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-post-tool" }] }, { "matcher": "Write", "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-post-tool" }] }],
"PreCompact": [{ "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-pre-compact" }] }],
"Stop": [{ "hooks": [{ "type": "command", "command": "npm exec -- claude-hook-session-end" }] }]
}
}注意 (v1.5.0+): 通过 5 个钩子实现全生命周期覆盖。使用 npm exec --,它会优先查找本地的 node_modules/.bin。
已安装的钩子 (v1.5.0+)
钩子 | 命令 | 功能 |
|
| 会话开始时自动加载项目上下文 |
|
| 自动注入相关记忆 + 过去参考搜索 |
|
| 跟踪活跃文件 (编辑、写入) + 自动注入错误解决方案 (Bash) |
|
| 在压缩前构建结构化的交接上下文 |
|
| 从记录中提取提交、决策、错误修复对 |
手动管理钩子
# Check hook status
npx claude-session-hooks status
# Reinstall hooks
npx claude-session-hooks install
# Remove hooks
npx claude-session-hooks uninstall3. 重启 Claude Code
安装完成后,重启 Claude Code 以激活钩子。
特性
特性 | 描述 |
🤖 零手动操作 | Claude Hooks 自动化所有上下文捕获/加载 |
🎯 仅高质量记忆 | (v1.10.0) 仅记录决策、学习、错误 — 无文件变更噪音 |
🧠 语义搜索 | multilingual-e5-small 嵌入 (94+ 种语言,384d) |
🌍 多语言支持 | 韩语/英语/日语 + 跨语言搜索 (英→韩,韩→英) |
🔗 Git 集成 | 从记录中自动提取提交信息 |
🕸️ 知识图谱 | 记忆关系 (解决、导致、扩展...) |
📊 记忆分类 | 5 种类型:观察、决策、学习、错误、模式 |
✅ 集成验证 | 一键执行构建/测试/Lint |
📋 任务管理 | 基于优先级的任务管理 |
🔧 自动错误→解决方案 | (v1.12.0) Bash 错误自动检测 → 注入过往解决方案;会话结束自动记录错误修复对 |
💰 Token 效率 | (v1.11.0) 从 UserPromptSubmit 中移除了 loadContext (每会话节省 24-60K tokens) |
📑 渐进式披露 | (v1.11.0) memory_search 先返回索引,memory_get 获取完整内容 |
⏳ 时间衰减 | (v1.11.0) 具有类型特定半衰期的记忆评分,以确保相关性 |
📝 结构化交接 | (v1.10.0) PreCompact 保存工作摘要、活跃文件、待办事项 |
🚪 智能会话结束 | (v1.10.0) 从记录中提取提交、决策、错误修复对 |
🗑️ 自动噪音清理 | (v1.10.0) 自动删除陈旧的观察记忆 (3天以上) |
🔍 过往参考检测 | (v1.8.0) "上次 X 是怎么做的?" 自动搜索数据库 |
📝 用户指令提取 | (v1.8.0) 从提示词中自动提取 "总是/从不" 规则 |
Claude Hooks - 自动上下文系统
工作原理
SessionStart 钩子 (npx claude-hook-session-start):
自动检测项目:Monorepo (
apps/project-name/) 或单项目 (package.json根文件夹名)从
.claude/sessions.db加载上下文注入:当前状态、3 个最近的会话(包含提交/决策)、指令、待办任务、过滤后的关键记忆
自动清理陈旧的噪音记忆 (3天以上自动跟踪,14天以上自动压缩)
UserPromptSubmit 钩子 (npx claude-hook-user-prompt):
在每次提交提示词时运行
(v1.11.0) 不再调用 loadContext() — 每会话节省 24-60K tokens
注入相关上下文 (过滤:仅限决策、学习、错误)
PostToolUse 钩子 (npx claude-hook-post-tool):
跟踪热点文件路径并更新
active_context.recent_files(v1.12.0) 自动检测 Bash 错误 → 搜索解决方案数据库 → 将过往解决方案注入上下文
不再创建观察记忆 (v1.10.0 — 消除了
[File Change]噪音)
PreCompact 钩子 (npx claude-hook-pre-compact):
构建结构化的交接上下文:工作摘要、活跃文件、待办动作、关键事实、最近错误
不再存储自动压缩记忆 (v1.10.0)
Stop 钩子 (npx claude-hook-session-end):
从 JSONL 记录中提取提交信息 (
git commit -m模式)提取错误修复对 (3 条消息内的错误 → 解决方案)
(v1.12.0) 自动将错误→修复对记录到解决方案表以供将来重用
提取决策 ("因为"、"而不是"、"选择" 模式)
(v1.11.0) 单次遍历记录解析 (4 次 JSONL 读取 → 1 次)
将结构化元数据存储在
sessions.issues列中 (JSON 格式)
输出示例 (会话开始)
# my-app - Session Resumed
📍 **State**: Implementing signup form
🚧 **Blocker**: OAuth callback URL issue
## Recent Sessions
### 2026-02-28
**Work**: Completed OAuth integration
**Commits**: feat: add OAuth handler; fix: redirect config
**Decisions**: Use Server Actions over API routes
**Next**: Implement form validation
## Directives
- 🔴 Always use Zod for validation
## Pending Tasks
- 🔄 [P8] Implement form validation
- ⏳ [P5] Add error handling
## Key Memories
- 🎯 Decided on App Router, using Server Actions
- ⚠️ OAuth redirect_uri mismatch → check env file钩子管理
# Check status
npx claude-session-hooks status
# Reinstall
npx claude-session-hooks install
# Remove
npx claude-session-hooks uninstall
# Temporarily disable
export MCP_HOOKS_DISABLED=true过往参考检测 (v1.8.0)
当您询问过往工作时,UserPromptSubmit 钩子会自动搜索数据库:
You: "저번에 인앱결제 어떻게 했어?"
→ Hook detects "저번에" + extracts keyword "인앱결제"
→ Searches sessions, memories (FTS5), and solutions
→ Injects matching results into context automatically支持的模式 (韩语和英语):
模式 | 示例 |
저번에/전에/이전에 ... 어떻게 | "上次 CORS 错误是怎么解决的?" |
~했던/만들었던/해결했던 | "修改过的登录逻辑" |
지난 세션/작업에서 | "上个会话中的支付实现" |
last time/before/previously | "上次我们是怎么处理认证的?" |
did we/did I ... before | "我们之前修复过数据库迁移吗?" |
remember when/recall when | "还记得我们设置 CI 的时候吗?" |
输出示例:
## Related Past Work (auto-detected from your question)
### Sessions
- [2/14] 카카오 로그인 앱키 수정, 인앱결제 IAP 플로우 수정
### Memories
- 🎯 [decision] 테스트: 인앱결제 상품 등록 완료
### Solutions
- **IAP_BILLING_ERROR**: StoreKit 2 migration으로 해결为什么使用 npm exec? (v1.4.3+)
旧版本使用绝对路径或 npx:
// v1.3.x - absolute paths (broke on multi-project)
"command": "node \"/path/to/project-a/node_modules/.../session-start.js\""
// v1.4.0-1.4.2 - npx (required global install or hit npm registry)
"command": "npx claude-hook-session-start"现在我们使用 npm exec --:
"command": "npm exec -- claude-hook-session-start"npm exec -- 会优先查找本地 node_modules/.bin,然后回退到全局。无需访问 npm 注册表即可同时支持本地和全局安装。
工具 (v5 API) - 25 个专注工具
1. 会话生命周期 (4) ⭐
// Start of session - auto-loads context
session_start({ project: "my-app", compact: true })
// End of session - auto-saves context
session_end({
project: "my-app",
summary: "Completed auth flow",
modifiedFiles: ["src/auth.ts", "src/login/page.tsx"]
})
// View session history
session_history({ project: "my-app", limit: 5 })
// Semantic search past sessions
search_sessions({ query: "auth work", project: "my-app" })2. 项目管理 (4)
// Get project status with task stats
project_status({ project: "my-app" })
// Initialize new project
project_init({ project: "my-app" })
// Analyze project tech stack
project_analyze({ project: "my-app" })
// List all projects
list_projects()3. 任务管理 (4)
// Add a task
task_add({ project: "my-app", title: "Implement signup", priority: 8 })
// Update task status
task_update({ taskId: 1, status: "done" })
// List tasks
task_list({ project: "my-app", status: "pending" })
// Suggest tasks from TODO comments
task_suggest({ project: "my-app" })4. 解决方案存档 (3)
// Record an error solution
solution_record({
errorSignature: "TypeError: Cannot read property 'id'",
solution: "Use optional chaining: user?.id"
})
// Find similar solutions (keyword or semantic)
solution_find({ query: "TypeError property", semantic: true })
// AI-powered solution suggestion
solution_suggest({ errorMessage: "Cannot read property 'email'" })5. 验证 (3)
// Run build
verify_build({ project: "my-app" })
// Run tests
verify_test({ project: "my-app" })
// Run all (build + test + lint)
verify_all({ project: "my-app" })6. 记忆系统 (5)
// Store a classified memory
memory_store({
content: "State management with Riverpod makes testing easier",
type: "learning", // observation, decision, learning, error, pattern
project: "my-app",
tags: ["flutter", "state-management"],
importance: 8,
relatedTo: 23 // Connect to existing memory
})
// Search memories — returns index (id, type, tags, score) for token efficiency
memory_search({
query: "state management test",
type: "learning",
semantic: true, // Use embedding similarity
limit: 10
})
// Get full memory content by ID (v1.11.0)
memory_get({ memoryId: 23 })
// Find related memories (graph + semantic)
memory_related({
memoryId: 23,
includeGraph: true,
includeSemantic: true
})
// Get memory statistics
memory_stats({ project: "my-app" })7. 知识图谱 (2)
// Connect two memories with a typed relation
graph_connect({
sourceId: 23,
targetId: 25,
relation: "solves", // related_to, causes, solves, depends_on, contradicts, extends, example_of
strength: 0.9
})
// Explore knowledge graph
graph_explore({
memoryId: 23,
depth: 2,
relation: "all", // or specific relation type
direction: "both" // outgoing, incoming, both
})记忆类型
类型 | 描述 | 使用场景 |
| 代码库中发现的模式、结构 | "所有屏幕都分离在 features/ 文件夹中" |
| 架构、库的选择 | "决定使用 SharedPreferences 进行缓存" |
| 新知识、最佳实践 | "Riverpod 更适合测试" |
| 发生的错误及解决方案 | "Provider.read() 不会重建 → 使用 watch()" |
| 重复的代码模式、约定 | "避免滥用 late 关键字" |
关系类型
关系 | 描述 | 示例 |
| 一般关系 | A 和 B 相关 |
| A 导致 B | 缓存决策 → 文件夹结构变更 |
| A 解决 B | Riverpod 学习 → Provider Bug 修复 |
| A 依赖 B | 文件夹结构 → 缓存决策 |
| A 与 B 冲突 | 两个设计决策冲突 |
| A 扩展 B | late 模式 → 扩展到 Riverpod 学习 |
| A 是 B 的示例 | 特定代码是模式的示例 |
数据存储
SQLite 数据库位于 ~/.claude/sessions.db:
表 | 用途 |
| 分类记忆 (观察、决策、学习、错误、模式) |
| 全文搜索索引 (FTS5) |
| 知识图谱关系 |
| 语义搜索向量 (multilingual-e5-small, 384d) |
| 固定项目信息 (技术栈、决策) |
| 当前工作状态 |
| 任务积压 |
| 错误解决方案存档 |
| 会话历史 |
环境变量
变量 | 默认值 | 描述 |
| - | 工作区根路径 (必需) |
|
| 禁用 Claude Hooks |
|
| 日志级别 (debug/info/warn/error) |
| - | 可选的日志文件路径 |
开发
# Clone
git clone https://github.com/leesgit/claude-session-continuity-mcp.git
cd claude-session-continuity-mcp
# Install
npm install
# Build
npm run build
# Test
npm test
# Test with coverage
npm run test:coverage性能
指标 | 值 |
上下文加载 (缓存) | <5ms |
记忆搜索 (FTS) | ~10ms |
语义搜索 | ~50ms |
构建验证 | 取决于项目 |
路线图
[x] v2 API (15 个专注工具)
[x] v4 API (24 个工具 - 记忆 + 图谱)
[x] v5 Claude Hooks (自动捕获)
[x] 带有类型关系的知识图谱
[x] 记忆分类 (6 种类型)
[x] 语义搜索 (嵌入)
[x] 多语言模式检测 (韩/英/日)
[x] Git 提交集成
[x] 111 个测试 (6 个测试套件)
[x] GitHub Actions CI/CD
[x] 多语言语义搜索 (v1.6.0 - multilingual-e5-small)
[x] 跨语言搜索 英↔韩 (v1.6.0)
[x] 解决方案语义搜索 (v1.6.0)
[x] 修复钩子设置文件路径 (v1.6.1 - settings.json,而非 settings.local.json)
[x] 自动迁移旧版钩子 (v1.6.1)
[x] 修复 PostToolUse 匹配器格式为字符串 (v1.6.3)
[x] 修复新钩子格式的 README 文档 (v1.6.4)
[x] 空会话跳过和技术栈保存改进 (v1.7.1)
[x] UserPromptSubmit 钩子中的过往参考自动检测 (v1.8.0)
[x] 用户指令提取 ("总是/从不" 规则) (v1.8.0)
[x] 记忆质量大修 — 不再有
[File Change]噪音 (v1.10.0)[x] PreCompact 中的结构化交接上下文 (v1.10.0)
[x] 智能会话结束:从记录中提取提交/决策/错误修复 (v1.10.0)
[x] 自动噪音清理 (3天以上观察,14天以上自动压缩) (v1.10.0)
[x] 带有结构化元数据的 3 个最近会话显示 (v1.10.0)
[x] Token 效率 — 从 UserPromptSubmit 中移除 loadContext,每会话节省 24-60K tokens (v1.11.0)
[x] 单次遍历记录解析,4 次 JSONL 读取 → 1 次 (v1.11.0)
[x] 具有类型特定半衰期的记忆评分时间衰减 (v1.11.0)
[x] 渐进式披露 — memory_search 返回索引,memory_get 获取完整内容 (v1.11.0)
[x] 通过 Jaccard 相似度进行记忆整合 (v1.11.0)
[x] 自动错误→解决方案流水线 — PostToolUse 检测 Bash 错误,注入过往解决方案 (v1.12.0)
[x] SessionEnd 自动将错误→修复对记录到解决方案表 (v1.12.0)
[x] 具有当前项目优先级的跨项目解决方案搜索 (v1.12.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/leesgit/claude-session-continuity-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server