cursor-chats-bridge
cursor-chats-bridge
Un puente de solo lectura que permite a Claude Code ver lo que estás haciendo en Cursor, en tiempo real y entre sesiones.
Si utilizas Claude Code y Cursor en paralelo (por ejemplo: ediciones dirigidas por agentes en Cursor mientras planificas/auditas con Claude), esta habilidad conecta la base de datos de chat local de Cursor con Claude como un servidor MCP, además de registrar nuevos mensajes cada 5 minutos para que Claude pueda responder preguntas como "¿qué estaba haciendo Cursor esta mañana?" incluso cuando Claude no estaba ejecutándose.
Diseñado como solo lectura. Nunca modifica los datos de Cursor.
Qué obtienes
Una vez instalado, Claude Code obtiene siete herramientas (todas con el prefijo mcp__cursor-chats__):
Herramienta | Qué hace |
| Enumera todos los espacios de trabajo de Cursor vistos en tu historial de chat, con IDs hash y rutas. |
| Enumera los chats de Cursor, opcionalmente filtrados por ID de espacio de trabajo, subcadena de ruta o automáticamente mediante el |
| Obtiene los mensajes de un chat específico (por UUID de compositor). |
| Conveniencia: obtiene los mensajes en vivo del chat de Cursor abierto actualmente para un espacio de trabajo. |
| Búsqueda de subcadenas en nombres de chat, subtítulos y texto de mensajes. |
| Lee el diario de solo adición de nuevos mensajes capturados por el sondeo en segundo plano. |
| Estadísticas agregadas durante un período de tiempo: mensajes por rol, conversaciones tocadas, fragmentos de texto recientes. |
Además de una tarea programada de Windows ClaudeCursorChatPoller que se ejecuta cada 5 minutos, detecta nuevos mensajes en el chat activo de cada espacio de trabajo y los añade a un diario de líneas JSON en ~/.claude/mcp/cursor-chats/journal.ndjson.
Related MCP server: cursor-history-mcp
Por qué existe
Los datos de chat de Cursor residen localmente en un almacén KV de SQLite (%APPDATA%\Cursor\User\globalStorage\state.vscdb), pero con dos limitaciones molestas:
Solo el chat abierto actualmente por espacio de trabajo mantiene sus mensajes almacenados localmente; los chats más antiguos se archivan en la nube de Cursor, dejando solo metadatos.
No hay una API pública.
Por lo tanto, una consulta MCP en vivo por sí sola no es suficiente: si preguntas "¿qué hizo Cursor esta mañana?" a las 3 PM, es posible que los mensajes relevantes ya estén archivados. El sondeo resuelve eso capturando los mensajes a medida que aparecen, con etiquetado de espacio de trabajo para que los diferentes proyectos de Claude puedan filtrar limpiamente.
Arquitectura
┌──────────────────────────────────────────────────────────────────┐
│ Windows Task Scheduler >> pythonw poller.py >> /5 min, 24/7│
└──────────────────────────────────────────────────────────────────┘
│
▼ (read mode=ro,immutable=1)
┌──────────────────────────────────┐
│ Cursor SQLite globalStorage │ ← live, written by Cursor
│ state.vscdb / cursorDiskKV │
└──────────────────┬───────────────┘
│
▼ (append-only)
┌──────────────────────────────────┐
│ ~/.claude/mcp/cursor-chats/ │
│ ├─ active_snapshot.json │
│ ├─ journal.ndjson │
│ └─ poller.log (errors) │
└──────────────────┬───────────────┘
│
▼ (on-demand)
┌──────────────────────────────────┐
│ MCP server (server.py) │
│ exposes 7 tools │
└──────────────────┬───────────────┘
│
▼
Claude CodePara conocer más detalles internos (patrones de claves de SQLite, identificación de espacios de trabajo, casos extremos), consulta references/architecture.md.
Requisitos
Windows 10 / 11 (Linux/macOS aún no compatibles; utiliza
schtasksy la ruta de Cursor en Windows)Python 3.10+ con
pythonw.exedisponible (ejecutor silencioso para la tarea programada)Claude Code CLI en
PATH(claude --versiondebería funcionar)Cursor instalado y abierto al menos una vez (el SQLite se crea en la primera ejecución)
El instalador comprueba todo esto y falla rápidamente con errores accionables si falta algo.
Instalación
Como habilidad de Claude Code (recomendado)
Coloca la carpeta en tu directorio de habilidades de Claude Code:
~/.claude/skills/cursor-chats-bridge/En Windows:
C:\Users\<tú>\.claude\skills\cursor-chats-bridge\.Reinicia Claude Code (o simplemente abre una nueva sesión).
Pregúntale a Claude algo como "instala el puente cursor-chats" o "configura la conexión Claude-Cursor"; la descripción de la habilidad está ajustada para activarse con esas frases.
Claude lee
SKILL.md, ejecutascripts/install.ps1e informa el resultado.Reinicia Claude Desktop (cierre completo desde la bandeja del sistema) para cargar el servidor MCP.
Instalación manual (no se necesita Claude)
Si prefieres omitir el paso agéntico:
powershell -ExecutionPolicy Bypass -File "C:\Users\<you>\.claude\skills\cursor-chats-bridge\scripts\install.ps1"El script:
Verifica los requisitos previos (Python,
pythonw.exe, CLI declaude, ruta de SQLite de Cursor)Copia
server.pyypoller.pya~/.claude/mcp/cursor-chats/Instala el paquete
mcpde Python mediante pip si faltaElimina cualquier registro MCP previo de
cursor-chats, luego lo añade (ámbito predeterminado:local)Crea/actualiza la tarea programada
ClaudeCursorChatPoller(cada 5 min, silenciosa mediantepythonw.exe)Ejecuta el sondeo una vez para sembrar la instantánea/diario
Volver a ejecutar es seguro: cada paso utiliza semántica de sobrescritura forzada. Los archivos de estado (active_snapshot.json, journal.ndjson) se conservan.
Flags del instalador
Flag | Efecto |
| Suprime la salida de progreso. |
| Omite la creación de la tarea programada (uso único / depuración). |
| Ámbito de registro MCP. Predeterminado |
Verificación
Después de la instalación + reinicio de Claude:
claude mcp list
schtasks /Query /TN ClaudeCursorChatPoller /FO LISTAmbos deberían mostrar entradas; la línea claude mcp list debería informar ✓ Connected para cursor-chats.
En una sesión de Claude, puedes preguntar:
"Enumera mis espacios de trabajo de Cursor." "¿Cuál es el último mensaje de mi agente de Cursor?" "Resume lo que hice con Cursor esta mañana."
Cómo lo usa Claude (patrones típicos)
El MCP no sondea por sí solo; Claude llama a las herramientas cuando tiene sentido. El sondeo en segundo plano (proceso separado) maneja la captura continua, por lo que las consultas al diario responden "qué pasó mientras no estabas mirando" sin mantener una conversación en vivo abierta.
Ejemplos:
Continuación — "continúa lo que estaba haciendo con Cursor" → Claude llama a
get_active_chatpara obtener la conversación en vivo, resume y pregunta por dónde continuar.Resumen — "resumen de mi actividad en Cursor desde las 9 AM" → Claude llama a
get_journal_summary(window_minutes=N)y te guía a través de lo que cambió.Verificación cruzada — "¿lo que sugiere Cursor es consistente con nuestro plan?" → Claude lee los últimos mensajes de Cursor, los compara con su propio contexto y señala discrepancias.
Búsqueda — "¿dónde discutí el backfill de SQL con Cursor?" → Claude llama a
search_chats("backfill"), luego profundiza en un resultado conget_chat.
Privacidad y seguridad
Solo lectura mediante cumplimiento de SQLite (
mode=ro,immutable=1). Incluso un script con errores no puede modificar los datos de Cursor.Todos los datos permanecen locales. El diario y las instantáneas están bajo
~/.claude/, protegidos por ACLs de Windows a nivel de perfil de usuario. No se sube nada.Advertencia sobre credenciales. Tus chats de Cursor pueden contener claves API pegadas, contraseñas, etc. El diario almacena el texto del mensaje literalmente. Si eso es una preocupación, sé selectivo con lo que pegas en Cursor o filtra el diario a posteriori.
Ámbito MCP. El valor predeterminado
localsignifica que el puente solo está activo en el proyecto donde ejecutaste el instalador. Usa-Scope userpara hacerlo global.
Desinstalación
powershell -ExecutionPolicy Bypass -File "<skill-dir>\scripts\uninstall.ps1"Elimina la tarea programada, anula el registro del MCP de Claude y elimina ~/.claude/mcp/cursor-chats/ de forma predeterminada. Pasa -KeepData para conservar active_snapshot.json y journal.ndjson.
Límites y problemas conocidos
Solo Windows. Las variantes de macOS/Linux son factibles (cron en lugar de
schtasks, ruta~/Library/Application Support/Cursor/...en macOS) pero aún no están implementadas.Dependencia del esquema de Cursor. El puente lee elementos internos no documentados de Cursor. Si Cursor cambia el nombre de
cursorDiskKVo cambia la forma JSON del compositor entre versiones, es posible que los scripts necesiten un parche de una línea. Revisapoller.logsi el diario deja de crecer.Solo chat activo. Los chats antiguos/archivados solo proporcionan metadatos. Los mensajes en vivo existen solo para el chat abierto actualmente por espacio de trabajo.
Sin relleno histórico. El sondeo omite los mensajes históricos al ver por primera vez un espacio de trabajo (de lo contrario, inundaría el diario). Solo se capturan los mensajes futuros.
Cursor debe estar abierto para que los nuevos mensajes lleguen al SQLite. Si Cursor está cerrado, el sondeo sigue ejecutándose limpiamente pero no escribe nuevas entradas.
Diseño del proyecto
cursor-chats-bridge/
├── SKILL.md # YAML frontmatter + Claude-facing instructions
├── README.md # this file
├── scripts/
│ ├── server.py # MCP server (Python, ~300 lines)
│ ├── poller.py # Background poller (Python, ~180 lines)
│ ├── install.ps1 # Idempotent installer
│ └── uninstall.ps1 # Clean removal
└── references/
└── architecture.md # Deep technical doc (SQLite layout, edge cases)Contribución
Las solicitudes de extracción son bienvenidas, especialmente para:
Soporte para macOS / Linux (cron + rutas de Library/Application Support)
Resiliencia del esquema: ayudantes para detectar cambios de versión de Cursor temprano
Rotación / compresión opcional del diario
Mejor activación de la habilidad en consultas que no sean en francés
Licencia
MIT: haz lo que quieras, sin garantía. Consulta LICENSE.
Descargo de responsabilidad
Esta es una herramienta de terceros, no afiliada a Anthropic o Cursor. Lee los datos locales de Cursor a través de medios no oficiales y puede romperse con futuras versiones de Cursor. Úsala bajo tu propia discreción, especialmente en máquinas donde manejes datos confidenciales.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Python server implementing the Model Context Protocol that exposes tools for querying external APIs, compatible with Claude Desktop and ChatGPT Desktop.-
- AlicenseAqualityAmaintenanceMCP server for browsing, searching, exporting, and backing up your Cursor AI chat history directly into Claude via natural language.864 npm32MIT
- FlicenseNot gradedqualityCmaintenanceA secure, read-only MCP server that empowers Claude Desktop and AI agents to safely query and inspect local SQLite databases.-
- AlicenseNot gradedqualityBmaintenanceMCP server for unified full-text search across chat histories from Claude Code, Codex, Cursor CLI, and Antigravity CLI, using SQLite FTS5. Provides read-only tools to search sessions, list conversations, and retrieve session details.MIT