Skip to main content
Glama
jherard-fr

cursor-chats-bridge

by jherard-fr

cursor-chats-bridge

Eine schreibgeschützte Brücke, mit der Claude Code in Echtzeit und sitzungsübergreifend sehen kann, was Sie in Cursor tun.

platform: windows license: MIT

Wenn Sie Claude Code und Cursor parallel verwenden – zum Beispiel: agentengesteuerte Bearbeitungen in Cursor während der Planung/Prüfung mit Claude –, bindet diese Skill die lokale Chat-Datenbank von Cursor als MCP-Server in Claude ein. Zudem protokolliert sie neue Nachrichten alle 5 Minuten, sodass Claude Fragen beantworten kann wie "Was hat Cursor heute Morgen gemacht?", selbst wenn Claude nicht lief.

Designbedingt schreibgeschützt. Ändert niemals die Daten von Cursor.


Was Sie erhalten

Nach der Installation erhält Claude Code sieben Tools (alle mit dem Präfix mcp__cursor-chats__):

Tool

Was es tut

list_workspaces

Listet jeden Cursor-Arbeitsbereich auf, der in Ihrem Chat-Verlauf gefunden wurde, mit Hash-IDs und Pfaden.

list_chats

Listet Cursor-Chats auf, optional gefiltert nach Arbeitsbereichs-ID, Pfad-Teilzeichenfolge oder automatisch über Claudes cwd.

get_chat

Ruft die Nachrichten eines bestimmten Chats ab (über Composer-UUID).

get_active_chat

Komfortfunktion: Ruft die Live-Nachrichten des aktuell geöffneten Cursor-Chats für einen Arbeitsbereich ab.

search_chats

Teilzeichenfolgensuche in Chat-Namen, Untertiteln und Nachrichtentexten.

get_journal

Liest das reine Anhangs-Journal neuer Nachrichten, die vom Hintergrund-Poller erfasst wurden.

get_journal_summary

Aggregierte Statistiken über ein Zeitfenster: Nachrichten nach Rolle, betroffene Konversationen, aktuelle Textausschnitte.

Zusätzlich gibt es eine geplante Windows-Aufgabe ClaudeCursorChatPoller, die alle 5 Minuten läuft, neue Nachrichten im aktiven Chat jedes Arbeitsbereichs erkennt und sie an ein JSON-Lines-Journal unter ~/.claude/mcp/cursor-chats/journal.ndjson anhängt.

Related MCP server: cursor-history-mcp

Warum es existiert

Die Chat-Daten von Cursor liegen lokal in einem SQLite-KV-Speicher (%APPDATA%\Cursor\User\globalStorage\state.vscdb), jedoch mit zwei lästigen Einschränkungen:

  1. Nur der aktuell geöffnete Chat pro Arbeitsbereich speichert seine Nachrichten lokal – ältere Chats werden in die Cloud von Cursor archiviert, wobei nur Metadaten zurückbleiben.

  2. Es gibt keine öffentliche API.

Daher reicht eine Live-MCP-Abfrage allein nicht aus: Wenn Sie um 15:00 Uhr fragen "Was hat Cursor heute Morgen gemacht?", sind die relevanten Nachrichten möglicherweise bereits archiviert. Der Poller löst dies, indem er Nachrichten erfasst, sobald sie erscheinen, mit Arbeitsbereichs-Tagging, damit verschiedene Claude-Projekte sauber filtern können.

Architektur

┌──────────────────────────────────────────────────────────────────┐
│  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

Für tiefere Interna (SQLite-Schlüsselmuster, Arbeitsbereichsidentifikation, Grenzfälle), siehe references/architecture.md.

Anforderungen

  • Windows 10 / 11 (Linux/macOS noch nicht unterstützt – verwendet schtasks und den Windows-Cursor-Pfad)

  • Python 3.10+ mit verfügbarem pythonw.exe (stiller Ausführer für die geplante Aufgabe)

  • Claude Code CLI im PATH (claude --version sollte funktionieren)

  • Cursor installiert und mindestens einmal geöffnet (die SQLite wird beim ersten Start erstellt)

Das Installationsprogramm prüft all dies und bricht bei fehlenden Komponenten mit umsetzbaren Fehlermeldungen ab.

Installation

Als Claude Code Skill (empfohlen)

  1. Legen Sie den Ordner in Ihr Claude Code Skills-Verzeichnis:

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

    Unter Windows: C:\Users\<Sie>\.claude\skills\cursor-chats-bridge\.

  2. Starten Sie Claude Code neu (oder öffnen Sie einfach eine neue Sitzung).

  3. Fragen Sie Claude etwas wie "install the cursor-chats bridge" oder "set up the Claude-Cursor connection" – die Skill-Beschreibung ist darauf abgestimmt, bei diesen Formulierungen auszulösen.

  4. Claude liest SKILL.md, führt scripts/install.ps1 aus und meldet das Ergebnis.

  5. Starten Sie Claude Desktop neu (vollständiges Beenden über die Taskleiste), um den MCP-Server zu laden.

Manuelle Installation (kein Claude erforderlich)

Wenn Sie den agentischen Schritt lieber überspringen möchten:

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

Das Skript:

  1. Überprüft Voraussetzungen (Python, pythonw.exe, claude CLI, Cursor SQLite-Pfad)

  2. Kopiert server.py und poller.py nach ~/.claude/mcp/cursor-chats/

  3. Installiert das Python-Paket mcp via pip, falls es fehlt

  4. Entfernt jede vorherige cursor-chats MCP-Registrierung und fügt sie dann hinzu (Standard-Scope: local)

  5. Erstellt / aktualisiert die geplante Aufgabe ClaudeCursorChatPoller (alle 5 Min., lautlos via pythonw.exe)

  6. Führt den Poller einmal aus, um den Snapshot/das Journal zu initialisieren

Ein erneutes Ausführen ist sicher: Jeder Schritt verwendet Force-Overwrite-Semantik. Zustandsdateien (active_snapshot.json, journal.ndjson) bleiben erhalten.

Installations-Flags

Flag

Effekt

-Quiet

Unterdrückt die Fortschrittsausgabe.

-NoTask

Überspringt das Erstellen der geplanten Aufgabe (einmalige Verwendung / Debugging).

-Scope local|user|project

MCP-Registrierungs-Scope. Standard local (nur aktuelles Projekt). Verwenden Sie user für global. Verwenden Sie nicht project – das würde in .mcp.json schreiben, was für Commits vorgesehen ist.

Überprüfung

Nach der Installation + Claude-Neustart:

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

Beide sollten Einträge zeigen; die Zeile claude mcp list sollte ✓ Connected für cursor-chats melden.

In einer Claude-Sitzung können Sie dann fragen:

"List my Cursor workspaces." "What's the latest message from my Cursor agent?" "Summarize what I did with Cursor this morning."

Wie Claude es verwendet (typische Muster)

Das MCP pollt nicht von selbst – Claude ruft die Tools auf, wenn es sinnvoll ist. Der Hintergrund-Poller (separater Prozess) übernimmt die kontinuierliche Erfassung, sodass Journal-Abfragen beantworten können, "was passiert ist, während Sie nicht zugeschaut haben", ohne eine Live-Konversation offen halten zu müssen.

Beispiele:

  • Aufnahme – "continue what I was doing with Cursor" → Claude ruft get_active_chat auf, um die Live-Konversation abzurufen, fasst sie zusammen und fragt, wo übernommen werden soll.

  • Zusammenfassung – "recap of my Cursor activity since 9 AM" → Claude ruft get_journal_summary(window_minutes=N) auf und führt Sie durch die Änderungen.

  • Gegenprüfung – "is what Cursor is suggesting consistent with our plan?" → Claude liest die neuesten Cursor-Nachrichten, vergleicht sie mit seinem eigenen Kontext und markiert Diskrepanzen.

  • Suche – "where did I discuss the SQL backfill with Cursor?" → Claude ruft search_chats("backfill") auf und geht dann mit get_chat tiefer in einen Treffer.

Datenschutz & Sicherheit

  • Schreibschutz durch SQLite-Erzwingung (mode=ro,immutable=1). Selbst ein fehlerhaftes Skript kann die Daten von Cursor nicht ändern.

  • Alle Daten bleiben lokal. Das Journal und die Snapshots liegen unter ~/.claude/, geschützt durch Windows-ACLs auf Benutzerprofil-Ebene. Es wird nichts hochgeladen.

  • Anmeldeinformationen-Hinweis. Ihre Cursor-Chats können eingefügte API-Schlüssel, Passwörter usw. enthalten. Das Journal speichert den Nachrichtentext wortwörtlich. Wenn das ein Problem darstellt, seien Sie wählerisch bei dem, was Sie in Cursor einfügen, oder filtern Sie das Journal nachträglich.

  • MCP-Scope. Standard local bedeutet, dass die Brücke nur in dem Projekt aktiv ist, in dem Sie das Installationsprogramm ausgeführt haben. Verwenden Sie -Scope user, um es global zu machen.

Deinstallation

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

Entfernt die geplante Aufgabe, hebt die Registrierung des MCP bei Claude auf und löscht standardmäßig ~/.claude/mcp/cursor-chats/. Übergeben Sie -KeepData, um active_snapshot.json und journal.ndjson zu behalten.

Grenzen & bekannte Probleme

  • Nur Windows. macOS/Linux-Varianten sind machbar (Cron statt schtasks, ~/Library/Application Support/Cursor/... Pfad unter macOS), aber noch nicht implementiert.

  • Cursor-Schema-Abhängigkeit. Die Brücke liest undokumentierte Cursor-Interna. Wenn Cursor cursorDiskKV umbenennt oder die Composer-JSON-Form zwischen Versionen ändert, benötigen die Skripte möglicherweise einen Ein-Zeilen-Patch. Prüfen Sie poller.log, wenn das Journal nicht mehr wächst.

  • Nur aktiver Chat. Ältere / archivierte Chats liefern nur Metadaten. Live-Nachrichten existieren nur für den aktuell geöffneten Chat pro Arbeitsbereich.

  • Kein Backfill. Der Poller überspringt historische Nachrichten beim ersten Erscheinen eines Arbeitsbereichs (würde sonst das Journal fluten). Nur zukünftige Nachrichten werden erfasst.

  • Cursor muss geöffnet sein, damit neue Nachrichten in der SQLite landen. Wenn Cursor geschlossen ist, läuft der Poller zwar sauber weiter, schreibt aber keine neuen Einträge.

Projektlayout

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)

Mitwirken

Pull Requests sind willkommen – besonders für:

  • macOS / Linux-Unterstützung (Cron + Library/Application Support-Pfade)

  • Schema-Resilienz: Hilfsprogramme, um Cursor-Versionsänderungen frühzeitig zu erkennen

  • Optionale Journal-Rotation / Komprimierung

  • Besseres Auslösen der Skill bei nicht-französischen Abfragen

Lizenz

MIT – tun Sie, was Sie wollen, keine Garantie. Siehe LICENSE.

Haftungsausschluss

Dies ist ein Drittanbieter-Tool, das nicht mit Anthropic oder Cursor verbunden ist. Es liest die lokalen Daten von Cursor auf inoffiziellem Weg und kann bei zukünftigen Cursor-Versionen kaputtgehen. Verwenden Sie es nach eigenem Ermessen, insbesondere auf Maschinen, auf denen Sie sensible Daten verarbeiten.

Maintenance

ActivityInactive
ResponsivenessNo issues

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