Skip to main content
Glama
jherard-fr

cursor-chats-bridge

by jherard-fr

cursor-chats-bridge

Claude CodeがCursorでの作業内容をリアルタイムかつセッションをまたいで確認できるようにする読み取り専用ブリッジです。

platform: windows license: MIT

Claude CodeとCursorを並行して使用している場合(例:Claudeで計画や監査を行いながら、Cursorでエージェント主導の編集を行うなど)、このスキルはCursorのローカルチャットデータベースをMCPサーバーとしてClaudeに接続します。さらに、5分ごとに新しいメッセージをジャーナルに記録するため、Claudeが起動していなかった時間帯の「今朝Cursorで何をしていたか?」といった質問にも回答できるようになります。

設計上、読み取り専用です。Cursorのデータを変更することはありません。


機能

インストールすると、Claude Codeで7つのツール(すべて mcp__cursor-chats__ プレフィックス付き)が利用可能になります:

ツール

説明

list_workspaces

チャット履歴全体で見つかったすべてのCursorワークスペースを、ハッシュIDとパスとともに一覧表示します。

list_workspaces

Cursorのチャットを一覧表示します。ワークスペースID、パスのサブ文字列、またはClaudeの cwd を介した自動フィルタリングが可能です。

get_chat

特定のチャット(composer UUIDによる)のメッセージを取得します。

get_active_chat

利便性ツール:ワークスペースで現在開いているCursorチャットのライブメッセージを取得します。

search_chats

チャット名、サブタイトル、メッセージテキスト全体をサブ文字列で検索します。

get_journal

バックグラウンドポーラーによってキャプチャされた、追記専用の新しいメッセージジャーナルを読み取ります。

get_journal_summary

時間枠ごとの統計を集計します:ロール別のメッセージ数、触れられた会話、最近のテキストスニペットなど。

さらに、Windowsのタスクスケジューラ ClaudeCursorChatPoller が5分ごとに実行され、各ワークスペースのアクティブなチャット内の新しいメッセージを検出し、 ~/.claude/mcp/cursor-chats/journal.ndjson にJSONライン形式で追記します。

Related MCP server: cursor-history-mcp

存在理由

CursorのチャットデータはローカルのSQLite KVストア(%APPDATA%\Cursor\User\globalStorage\state.vscdb)に保存されていますが、2つの厄介な制約があります:

  1. ワークスペースごとに現在開いているチャットのみがローカルにメッセージを保持し、古いチャットはCursorのクラウドにアーカイブされ、メタデータのみが残ります。

  2. 公開APIが存在しません。

そのため、ライブのMCPクエリだけでは不十分です。午後3時に「今朝Cursorで何をした?」と尋ねても、関連するメッセージはすでにアーカイブされている可能性があるからです。ポーラーはメッセージが表示された瞬間にキャプチャすることでこれを解決し、ワークスペースタグを付与することで、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およびWindows版Cursorのパスを使用するため)

  • Python 3.10+ (pythonw.exe が利用可能であること。タスクスケジューラ用のサイレント実行用)

  • Claude Code CLI が PATH にあること(claude --version が動作すること)

  • Cursor がインストールされ、少なくとも一度起動されていること(SQLiteは初回起動時に作成されます)

インストーラーはこれらすべてをチェックし、不足している場合はアクション可能なエラーを即座に報告します。

インストール

Claude Codeスキルとして(推奨)

  1. フォルダをClaude Codeのスキルディレクトリに配置します:

    ~/.claude/skills/cursor-chats-bridge/

    Windowsの場合: C:\Users\<ユーザー名>\.claude\skills\cursor-chats-bridge\

  2. Claude Codeを再起動します(または新しいセッションを開きます)。

  3. Claudeに「install the cursor-chats bridge」や「set up the Claude-Cursor connection」のように話しかけます。スキル説明はこれらのフレーズでトリガーされるように調整されています。

  4. Claudeが SKILL.md を読み込み、 scripts/install.ps1 を実行して結果を報告します。

  5. Claude Desktopを再起動(システムトレイから完全に終了)して、MCPサーバーを読み込みます。

手動インストール(Claude不要)

エージェントによる手順をスキップしたい場合:

powershell -ExecutionPolicy Bypass -File "C:\Users\<you>\.claude\skills\cursor-chats-bridge\scripts\install.ps1"

スクリプトの動作:

  1. 前提条件(Python、pythonw.exe、claude CLI、Cursor SQLiteパス)を確認します。

  2. server.py と poller.py を ~/.claude/mcp/cursor-chats/ にコピーします。

  3. 不足している場合はpip経由でPythonの mcp パッケージをインストールします。

  4. 以前の cursor-chats MCP登録があれば削除し、新しく追加します(デフォルトスコープ: local)。

  5. ClaudeCursorChatPoller タスクスケジューラを作成/更新します(5分ごと、pythonw.exe でサイレント実行)。

  6. ポーラーを一度実行して、スナップショット/ジャーナルのシードを作成します。

再実行は安全です。すべてのステップで強制上書きセマンティクスが使用されます。状態ファイル(active_snapshot.json、journal.ndjson)は保持されます。

インストーラーフラグ

フラグ

効果

-Quiet

進捗出力を抑制します。

-NoTask

タスクスケジューラの作成をスキップします(一度限りの使用やデバッグ用)。

-Scope local|user|project

MCP登録スコープ。デフォルトは local(現在のプロジェクトのみ)。グローバルにするには user を使用してください。 project は使用しないでください。コミットされることを意図した .mcp.json に書き込まれてしまいます。

検証

インストールとClaudeの再起動後:

claude mcp list
schtasks /Query /TN ClaudeCursorChatPoller /FO LIST

両方にエントリが表示されるはずです。claude mcp list 行は cursor-chats に対して ✓ Connected と報告されるはずです。

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が必要と判断したときにツールを呼び出します。バックグラウンドポーラー(別プロセス)が継続的なキャプチャを処理するため、ジャーナルクエリはライブの会話を開いたままにしなくても「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 ACLによって保護されています。外部へのアップロードは一切行われません。

  • 認証情報の注意点。 Cursorのチャットには、貼り付けたAPIキーやパスワードなどが含まれている可能性があります。ジャーナルはメッセージテキストをそのまま保存します。懸念がある場合は、Cursorに貼り付ける内容を慎重に選ぶか、ジャーナルを事後的にフィルタリングしてください。

  • MCPスコープ。 デフォルトの local は、インストーラーを実行したプロジェクトでのみブリッジがアクティブになることを意味します。グローバルにするには -Scope user を使用してください。

アンインストール

powershell -ExecutionPolicy Bypass -File "<skill-dir>\scripts\uninstall.ps1"

タスクスケジューラを削除し、ClaudeからMCPの登録を解除し、デフォルトで ~/.claude/mcp/cursor-chats/ を削除します。active_snapshot.json と journal.ndjson を保持したい場合は -KeepData を渡してください。

制限と既知の問題

  • Windowsのみ。 macOS/Linux版も可能ですが(schtasksの代わりにcron、macOSでは ~/Library/Application Support/Cursor/... パス)、未実装です。

  • Cursorスキーマへの依存。 このブリッジは非公開のCursor内部構造を読み取ります。Cursorが cursorDiskKV をリネームしたり、バージョン間でcomposerのJSON構造を変更したりした場合、スクリプトにパッチが必要になる可能性があります。ジャーナルが成長しなくなった場合は poller.log を確認してください。

  • アクティブチャットのみ。 古い/アーカイブされたチャットはメタデータのみを提供します。ライブメッセージは、ワークスペースごとに現在開いているチャットに対してのみ存在します。

  • バックフィルなし。 ポーラーはワークスペースを初めて認識した際の過去のメッセージをスキップします(ジャーナルが溢れるのを防ぐため)。将来のメッセージのみがキャプチャされます。

  • Cursorが開いている必要があります。 新しいメッセージがSQLiteに記録されるにはCursorが開いている必要があります。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)

貢献

プルリクエストを歓迎します。特に以下のような貢献を募集しています:

  • macOS / Linuxサポート(cron + Library/Application Supportパス)

  • スキーマ耐性:Cursorのバージョン変更を早期に検出するヘルパー

  • ジャーナルのローテーション / 圧縮機能

  • 非フランス語のクエリに対するスキルのトリガー精度の向上

ライセンス

MIT — 保証なしで自由に使用してください。LICENSE を参照してください。

免責事項

これはサードパーティ製のツールであり、AnthropicやCursorとは提携していません。非公式な手段でCursorのローカルデータを読み取るため、将来のCursorのバージョンで動作しなくなる可能性があります。特に機密データを扱うマシンでは、自己責任で使用してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for browsing, searching, exporting, and backing up your Cursor AI chat history directly into Claude via natural language.
    8
    64 npm
    32
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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