claude-session-continuity-mcp
claude-session-continuity-mcp (v1.13.0)
Continuidad de sesión sin re-explicación para Claude Code — Captura automática de contexto + búsqueda semántica + pipeline automático de error→solución
El problema
Cada nueva sesión de 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 minutos configurando el contexto. Cada. Vez.
La solución
Totalmente automática. Los Claude Hooks se encargan de todo sin llamadas manuales:
# 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 fileCero trabajo manual. El contexto te sigue.
Inicio rápido
Instalación con un comando
npm install claude-session-continuity-mcp¡Eso es todo! El script postinstall automáticamente:
Registra el servidor MCP en
~/.claude.jsonInstala los Claude Hooks en
~/.claude/settings.json
Qué se instala
Servidor MCP (en ~/.claude.json):
{
"mcpServers": {
"project-manager": {
"command": "npx",
"args": ["claude-session-continuity-mcp"]
}
}
}Claude Hooks (en ~/.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" }] }]
}
}Nota (v1.5.0+): Cobertura completa del ciclo de vida con 5 hooks. Utiliza npm exec -- que busca primero en node_modules/.bin local.
Hooks instalados (v1.5.0+)
Hook | Comando | Función |
|
| Carga automáticamente el contexto del proyecto al iniciar la sesión |
|
| Inyecta automáticamente memorias relevantes + búsqueda de referencias pasadas |
|
| Rastrea archivos activos (Edit, Write) + inyecta automáticamente soluciones a errores (Bash) |
|
| Contexto de entrega estructurado antes de la compresión |
|
| Extrae commits, decisiones y pares error-solución de la transcripción |
Gestión manual de hooks
# Check hook status
npx claude-session-hooks status
# Reinstall hooks
npx claude-session-hooks install
# Remove hooks
npx claude-session-hooks uninstall3. Reiniciar Claude Code
Después de la instalación, reinicia Claude Code para activar los hooks.
Características
Característica | Descripción |
🤖 Cero trabajo manual | Los Claude Hooks automatizan toda la captura/carga de contexto |
🎯 Solo memoria de calidad | (v1.10.0) Solo decisiones, aprendizajes, errores — sin ruido de cambios de archivo |
🧠 Búsqueda semántica | Embeddings multilingual-e5-small (94+ idiomas, 384d) |
🌍 Multilingüe | Coreano/Inglés/Japonés + búsqueda entre idiomas (EN→KR, KR→EN) |
🔗 Integración con Git | Mensajes de commit extraídos automáticamente de las transcripciones |
🕸️ Grafo de conocimiento | Relaciones de memoria (resuelve, causa, extiende...) |
📊 Clasificación de memoria | 5 tipos: observación, decisión, aprendizaje, error, patrón |
✅ Verificación integrada | Ejecución de build/test/lint con un clic |
📋 Gestión de tareas | Gestión de tareas basada en prioridades |
🔧 Auto Error→Solución | (v1.12.0) Detección automática de errores Bash → inyecta soluciones pasadas; el fin de sesión registra automáticamente pares error-solución |
💰 Eficiencia de tokens | (v1.11.0) Se eliminó loadContext de UserPromptSubmit (ahorra 24-60K tokens/sesión) |
📑 Divulgación progresiva | (v1.11.0) memory_search devuelve primero el índice, memory_get para el contenido completo |
⏳ Decaimiento temporal | (v1.11.0) Puntuación de memoria con vidas medias específicas por tipo para relevancia |
📝 Entrega estructurada | (v1.10.0) PreCompact guarda resumen de trabajo, archivos activos, acciones pendientes |
🚪 Fin de sesión inteligente | (v1.10.0) Extrae commits, decisiones, pares error-solución de la transcripción |
🗑️ Limpieza automática de ruido | (v1.10.0) Elimina automáticamente memorias de observación obsoletas (3d+) |
🔍 Detección de referencias pasadas | (v1.8.0) "¿Cómo hicimos X la última vez?" busca automáticamente en la BD |
📝 Extracción de directivas de usuario | (v1.8.0) Extrae automáticamente reglas "siempre/nunca" de los prompts |
Claude Hooks - Sistema de contexto automático
Cómo funciona
Hook SessionStart (npx claude-hook-session-start):
Detecta automáticamente el proyecto: monorepo (
apps/project-name/) o proyecto único (nombre de la carpeta raízpackage.json)Carga el contexto desde
.claude/sessions.dbInyecta: Estado actual, 3 sesiones recientes con commits/decisiones, directivas, tareas pendientes, memorias clave filtradas
Limpia automáticamente memorias de ruido obsoletas (3d+ rastreo automático, 14d+ compactación automática)
Hook UserPromptSubmit (npx claude-hook-user-prompt):
Se ejecuta en cada envío de prompt
(v1.11.0) Ya no llama a loadContext() — ahorra 24-60K tokens/sesión
Inyecta contexto relevante (filtrado: solo decisiones, aprendizajes, errores)
Hook PostToolUse (npx claude-hook-post-tool):
Rastrea rutas de archivos activos y actualiza
active_context.recent_files(v1.12.0) Detecta automáticamente errores Bash → busca en la BD de soluciones → inyecta soluciones pasadas en el contexto
Ya no crea memorias de observación (v1.10.0 — elimina el ruido de
[File Change])
Hook PreCompact (npx claude-hook-pre-compact):
Construye un contexto de entrega estructurado: resumen de trabajo, archivo activo, acción pendiente, hechos clave, errores recientes
Ya no almacena memorias de auto-compactación (v1.10.0)
Hook Stop (npx claude-hook-session-end):
Extrae mensajes de commit de la transcripción JSONL (patrones
git commit -m)Extrae pares error-solución (error → resolución en 3 mensajes)
(v1.12.0) Registra automáticamente pares error→solución en la tabla de soluciones para reutilización futura
Extrae decisiones (patrones "porque", "en lugar de", "elegí")
(v1.11.0) Análisis de transcripción de una sola pasada (4 lecturas JSONL → 1)
Almacena metadatos estructurados en la columna
sessions.issuescomo JSON
Ejemplo de salida (Inicio de sesión)
# 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 fileGestión de hooks
# 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=trueDetección de referencias pasadas (v1.8.0)
Cuando preguntas sobre trabajo pasado, el hook UserPromptSubmit busca automáticamente en la base de datos:
You: "저번에 인앱결제 어떻게 했어?"
→ Hook detects "저번에" + extracts keyword "인앱결제"
→ Searches sessions, memories (FTS5), and solutions
→ Injects matching results into context automaticallyPatrones soportados (Coreano e Inglés):
Patrón | Ejemplo |
저번에/전에/이전에 ... 어떻게 | "¿Cómo solucionamos el error de CORS la última vez?" |
~했던/만들었던/해결했던 | "Lógica de inicio de sesión que modificamos" |
지난 세션/작업에서 | "Implementación de pagos en la sesión pasada" |
last time/before/previously | "¿Cómo manejamos la autenticación la última vez?" |
did we/did I ... before | "¿Arreglamos la migración de la base de datos antes?" |
remember when/recall when | "¿Recuerdas cuando configuramos CI?" |
Ejemplo de salida:
## Related Past Work (auto-detected from your question)
### Sessions
- [2/14] 카카오 로그인 앱키 수정, 인앱결제 IAP 플로우 수정
### Memories
- 🎯 [decision] 테스트: 인앱결제 상품 등록 완료
### Solutions
- **IAP_BILLING_ERROR**: StoreKit 2 migration으로 해결¿Por qué npm exec? (v1.4.3+)
Las versiones anteriores usaban rutas absolutas o 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"Ahora usamos npm exec --:
"command": "npm exec -- claude-hook-session-start"npm exec -- busca primero en node_modules/.bin local, y luego recurre al global. Funciona tanto con instalación local como global sin acceder al registro de npm.
Herramientas (API v5) - 25 herramientas enfocadas
1. Ciclo de vida de sesión (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. Gestión de proyectos (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. Gestión de tareas (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. Archivo de soluciones (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. Verificación (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. Sistema de memoria (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. Grafo de conocimiento (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
})Tipos de memoria
Tipo | Descripción | Caso de uso |
| Patrones, estructuras encontradas en el código | "Todas las pantallas están separadas en la carpeta features/" |
| Arquitectura, elecciones de librerías | "Decidimos usar SharedPreferences para caché" |
| Nuevo conocimiento, mejores prácticas | "Riverpod es mejor para pruebas" |
| Errores ocurridos y soluciones | "Provider.read() no reconstruye → usar watch()" |
| Patrones de código recurrentes, convenciones | "Evitar el abuso de la palabra clave late" |
Tipos de relación
Relación | Descripción | Ejemplo |
| Relación general | A y B están relacionados |
| A causa B | Decisión de caché → cambio en estructura de carpetas |
| A resuelve B | Aprendizaje de Riverpod → corrección de error de Provider |
| A depende de B | Estructura de carpetas → decisión de caché |
| A contradice B | Dos decisiones de diseño entran en conflicto |
| A extiende B | Patrón late → extendido al aprendizaje de Riverpod |
| A es ejemplo de B | Código específico es ejemplo de patrón |
Almacenamiento de datos
Base de datos SQLite en ~/.claude/sessions.db:
Tabla | Propósito |
| Memorias clasificadas (observación, decisión, aprendizaje, error, patrón) |
| Índice de búsqueda de texto completo (FTS5) |
| Relaciones del grafo de conocimiento |
| Vectores de búsqueda semántica (multilingual-e5-small, 384d) |
| Información fija del proyecto (stack tecnológico, decisiones) |
| Estado actual del trabajo |
| Backlog de tareas |
| Archivo de soluciones de errores |
| Historial de sesiones |
Variables de entorno
Variable | Predeterminado | Descripción |
| - | Ruta raíz del espacio de trabajo (requerido) |
|
| Deshabilitar Claude Hooks |
|
| Nivel de registro (debug/info/warn/error) |
| - | Ruta de registro en archivo opcional |
Desarrollo
# 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:coverageRendimiento
Métrica | Valor |
Carga de contexto (caché) | <5ms |
Búsqueda de memoria (FTS) | ~10ms |
Búsqueda semántica | ~50ms |
Verificación de build | Dependiente del proyecto |
Hoja de ruta
[x] API v2 (15 herramientas enfocadas)
[x] API v4 (24 herramientas - memoria + grafo)
[x] Claude Hooks v5 (captura automática)
[x] Grafo de conocimiento con relaciones tipadas
[x] Clasificación de memoria (6 tipos)
[x] Búsqueda semántica (embeddings)
[x] Detección de patrones multilingües (KO/EN/JA)
[x] Integración de commits de Git
[x] 111 pruebas (6 suites de prueba)
[x] CI/CD de GitHub Actions
[x] Búsqueda semántica multilingüe (v1.6.0 - multilingual-e5-small)
[x] Búsqueda entre idiomas EN↔KR (v1.6.0)
[x] Búsqueda semántica de soluciones (v1.6.0)
[x] Corregir ruta del archivo de configuración de hooks (v1.6.1 - settings.json, no settings.local.json)
[x] Migración automática de hooks heredados (v1.6.1)
[x] Corregir formato de matcher de PostToolUse a string (v1.6.3)
[x] Corregir documentación del README para el nuevo formato de hook (v1.6.4)
[x] Mejoras en el salto de sesión vacía y guardado de techStack (v1.7.1)
[x] Detección automática de referencias pasadas en el hook UserPromptSubmit (v1.8.0)
[x] Extracción de directivas de usuario (reglas "siempre/nunca") (v1.8.0)
[x] Revisión de calidad de memoria — no más ruido de
[File Change](v1.10.0)[x] Contexto de entrega estructurado en PreCompact (v1.10.0)
[x] Fin de sesión inteligente: extracción de commit/decisión/error-solución de la transcripción (v1.10.0)
[x] Limpieza automática de ruido (observaciones 3d+, auto-compactación 14d+) (v1.10.0)
[x] Visualización de 3 sesiones recientes con metadatos estructurados (v1.10.0)
[x] Eficiencia de tokens — eliminar loadContext de UserPromptSubmit, ahorra
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