cursor-chats-bridge
cursor-chats-bridge
Мост «только для чтения», позволяющий Claude Code видеть, что вы делаете в Cursor — в режиме реального времени и между сессиями.
Если вы используете Claude Code и Cursor параллельно — например: редактирование с помощью агента в Cursor во время планирования/аудита с Claude — этот навык подключает локальную базу данных чатов Cursor к Claude в качестве MCP-сервера, а также ведет журнал новых сообщений каждые 5 минут, чтобы Claude мог отвечать на вопросы вроде «что Cursor делал сегодня утром?», даже когда Claude не был запущен.
Разработан как «только для чтения». Никогда не изменяет данные Cursor.
Что вы получаете
После установки Claude Code получает семь инструментов (все с префиксом mcp__cursor-chats__):
Инструмент | Что он делает |
| Список всех рабочих областей Cursor, обнаруженных в истории чатов, с хеш-идентификаторами и путями. |
| Список чатов Cursor, опционально отфильтрованный по ID рабочей области, подстроке пути или автоматически по |
| Получение сообщений конкретного чата (по UUID композитора). |
| Удобство: получение текущих сообщений открытого чата Cursor для рабочей области. |
| Поиск по подстроке в названиях чатов, подзаголовках и тексте сообщений. |
| Чтение журнала новых сообщений, захваченных фоновым опросчиком (только добавление). |
| Агрегированная статистика за временной интервал: сообщения по ролям, затронутые диалоги, недавние фрагменты текста. |
Плюс запланированная задача Windows ClaudeCursorChatPoller, которая запускается каждые 5 минут, обнаруживает новые сообщения в активном чате каждой рабочей области и добавляет их в журнал JSON-lines по пути ~/.claude/mcp/cursor-chats/journal.ndjson.
Related MCP server: cursor-history-mcp
Зачем это нужно
Данные чатов Cursor хранятся локально в SQLite KV-хранилище (%APPDATA%\Cursor\User\globalStorage\state.vscdb), но с двумя досадными ограничениями:
Только текущий открытый чат для каждой рабочей области сохраняет свои сообщения локально — старые чаты архивируются в облако Cursor, оставляя только метаданные.
Нет публичного API.
Поэтому одного «живого» MCP-запроса недостаточно: если вы спросите «что Cursor делал сегодня утром?» в 15:00, соответствующие сообщения могут быть уже заархивированы. Опросчик решает эту проблему, захватывая сообщения по мере их появления, с тегированием рабочих областей, чтобы разные проекты Claude могли корректно фильтровать данные.
Архитектура
┌──────────────────────────────────────────────────────────────────┐
│ 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 CodeБолее подробную информацию о внутренних механизмах (шаблоны ключей SQLite, идентификация рабочих областей, граничные случаи) см. в references/architecture.md.
Требования
Windows 10 / 11 (Linux/macOS пока не поддерживаются — используются
schtasksи путь Cursor в Windows)Python 3.10+ с доступным
pythonw.exe(фоновый запуск для запланированной задачи)Claude Code CLI в
PATH(командаclaude --versionдолжна работать)Cursor установлен и запущен хотя бы один раз (SQLite создается при первом запуске)
Установщик проверяет все эти условия и немедленно сообщает об ошибках, если чего-то не хватает.
Установка
Как навык Claude Code (рекомендуется)
Поместите папку в директорию навыков Claude Code:
~/.claude/skills/cursor-chats-bridge/В Windows:
C:\Users\<вы>\.claude\skills\cursor-chats-bridge\.Перезапустите Claude Code (или просто откройте новую сессию).
Спросите Claude что-то вроде «install the cursor-chats bridge» или «set up the Claude-Cursor connection» — описание навыка настроено на срабатывание по этим фразам.
Claude прочитает
SKILL.md, запуститscripts/install.ps1и сообщит о результате.Перезапустите Claude Desktop (полностью завершите работу через системный трей), чтобы загрузить MCP-сервер.
Ручная установка (без Claude)
Если вы предпочитаете пропустить агентский шаг:
powershell -ExecutionPolicy Bypass -File "C:\Users\<you>\.claude\skills\cursor-chats-bridge\scripts\install.ps1"Скрипт:
Проверяет предварительные требования (Python,
pythonw.exe,claudeCLI, путь к SQLite Cursor)Копирует
server.pyиpoller.pyв~/.claude/mcp/cursor-chats/Устанавливает пакет Python
mcpчерез pip, если он отсутствуетУдаляет любую предыдущую регистрацию MCP
cursor-chats, затем добавляет её (область по умолчанию:local)Создает/обновляет запланированную задачу
ClaudeCursorChatPoller(каждые 5 минут, без вывода окна черезpythonw.exe)Запускает опросчик один раз для создания снимка/журнала
Повторный запуск безопасен: каждый шаг использует семантику принудительной перезаписи. Файлы состояния (active_snapshot.json, journal.ndjson) сохраняются.
Флаги установщика
Флаг | Эффект |
| Подавить вывод хода выполнения. |
| Пропустить создание запланированной задачи (для разового использования / отладки). |
| Область регистрации MCP. По умолчанию |
Проверка
После установки и перезапуска Claude:
claude mcp list
schtasks /Query /TN ClaudeCursorChatPoller /FO LISTОбе команды должны показать записи; строка claude mcp list должна сообщать ✓ Connected для cursor-chats.
В сессии Claude вы можете спросить:
«List my Cursor workspaces.» «What's the latest message from my Cursor agent?» «Summarize what I did with Cursor this morning.»
Как Claude использует это (типичные паттерны)
MCP не опрашивает данные самостоятельно — Claude вызывает инструменты, когда это необходимо. Фоновый опросчик (отдельный процесс) обеспечивает непрерывный захват, поэтому запросы к журналу позволяют ответить на вопрос «что произошло, пока ты не смотрел», не поддерживая активный диалог.
Примеры:
Продолжение работы — «continue what I was doing with Cursor» → Claude вызывает
get_active_chatдля получения текущего диалога, делает резюме и спрашивает, с чего продолжить.Резюме — «recap of my Cursor activity since 9 AM» → Claude вызывает
get_journal_summary(window_minutes=N)и рассказывает, что изменилось.Сверка — «is what Cursor is suggesting consistent with our plan?» → Claude читает последние сообщения Cursor, сравнивает их со своим контекстом и отмечает несоответствия.
Поиск — «where did I discuss the SQL backfill with Cursor?» → Claude вызывает
search_chats("backfill"), а затем углубляется в результат с помощьюget_chat.
Конфиденциальность и безопасность
Только для чтения через SQLite (
mode=ro,immutable=1). Даже ошибочный скрипт не может изменить данные Cursor.Все данные остаются локальными. Журнал и снимки находятся в
~/.claude/, защищены списками контроля доступа Windows на уровне профиля пользователя. Ничего не загружается в сеть.Предупреждение о учетных данных. Ваши чаты Cursor могут содержать вставленные API-ключи, пароли и т.д. Журнал хранит текст сообщений дословно. Если это вызывает беспокойство, будьте избирательны в том, что вставляете в Cursor, или фильтруйте журнал постфактум.
Область MCP. По умолчанию
localозначает, что мост активен только в проекте, где вы запустили установщик. Используйте-Scope user, чтобы сделать его глобальным.
Удаление
powershell -ExecutionPolicy Bypass -File "<skill-dir>\scripts\uninstall.ps1"Удаляет запланированную задачу, отменяет регистрацию MCP в Claude и по умолчанию удаляет ~/.claude/mcp/cursor-chats/. Передайте -KeepData, чтобы сохранить active_snapshot.json и journal.ndjson.
Ограничения и известные проблемы
Только Windows. Варианты для macOS/Linux возможны (cron вместо
schtasks, путь~/Library/Application Support/Cursor/...на macOS), но пока не реализованы.Зависимость от схемы Cursor. Мост читает недокументированные внутренние структуры Cursor. Если Cursor переименует
cursorDiskKVили изменит структуру JSON композитора между версиями, скриптам может потребоваться патч. Проверяйтеpoller.log, если журнал перестает расти.Только активный чат. Старые/архивированные чаты предоставляют только метаданные. «Живые» сообщения существуют только для текущего открытого чата в каждой рабочей области.
Нет заполнения истории. Опросчик пропускает исторические сообщения при первом обнаружении рабочей области (иначе это переполнило бы журнал). Захватываются только будущие сообщения.
Cursor должен быть открыт, чтобы новые сообщения попали в SQLite. Если Cursor закрыт, опросчик продолжает работать корректно, но не записывает новых данных.
Структура проекта
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)Участие в разработке
Pull-реквесты приветствуются — особенно для:
Поддержки macOS / Linux (cron + пути Library/Application Support)
Устойчивости к изменениям схемы: помощники для раннего обнаружения изменений версии Cursor
Опциональной ротации / сжатия журнала
Улучшения триггеров навыка для запросов не на французском языке
Лицензия
MIT — делайте что хотите, без гарантий. См. LICENSE.
Отказ от ответственности
Это сторонний инструмент, не связанный с Anthropic или Cursor. Он читает локальные данные Cursor неофициальными способами и может перестать работать с будущими версиями Cursor. Используйте на свой страх и риск, особенно на машинах, где вы работаете с конфиденциальными данными.
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