overleaf-claude-mcp
overleaf-claude-mcp
Verbinde Claude mit deinem Overleaf-Konto. Claude kann deine Projekte auflisten, eines auswählen, das LaTeX und die Abbildungen lesen, Dateien bearbeiten, kompilieren und das PDF zurückholen.
Overleaf hat im kostenlosen Tarif keine öffentliche API: Die Git-Bridge und die Dropbox-Synchronisierung sind Premium-Funktionen. Dieser Server spricht daher dieselben internen HTTP- und Socket-Endpunkte, die auch die Overleaf-Web-App verwendet, authentifiziert mit einer Browser-Sitzung, die du einmalig erstellst. Jeder Endpunkt wurde aus Overleafs eigenem JavaScript-Bundle ausgelesen und anschließend gegen ein echtes Konto getestet. Siehe Verifizierte Endpunkte.
Tutorial
Was du brauchst
Node 20 oder neuer (
node -v)Chrome oder Edge installiert
Ein Overleaf-Konto, der kostenlose Tarif reicht
Claude Code (
claude --version) oder Claude Desktop
Schritt 1: Setup ausführen
Führe in diesem Ordner unter Windows aus:
setup.cmdUnter macOS oder Linux:
./setup.shDas Setup führt fünf Schritte aus und gibt jeden einzelnen aus:
Installiert Abhängigkeiten
Baut nach
dist/Prüft, ob eine funktionierende Overleaf-Sitzung vorhanden ist. Wenn nicht, öffnet sich ein Browserfenster mit der Overleaf-Anmeldeseite
Liest eines deiner echten Projekte zurück, um zu beweisen, dass die Verbindung funktioniert
Bietet an, den Server bei Claude Code zu registrieren
Schritt 2: Anmelden, wenn sich der Browser öffnet
Das Browserfenster ist ein echtes Chrome. Melde dich so an, wie du es normalerweise tust, einschließlich 2FA. Nichts gibt dein Passwort für dich ein, und dein Passwort wird nie gelesen oder gespeichert.
Sobald du auf deiner Projektliste landest, schließt sich das Fenster von selbst und das Setup wird fortgesetzt. Deine Sitzungscookies werden unter ~/.overleaf-claude-mcp/session.json gespeichert.
Diese Datei entspricht vollem Zugriff auf dein Overleaf-Konto. Sie ist gitignored und wird mit 0600-Berechtigungen geschrieben. Teile sie nicht und committe sie nicht.
Schritt 3: Das Setup den Server registrieren lassen
Bei Schritt 5 erhältst du eine Eingabeaufforderung:
Register this server with Claude Code now? [y/N]Antworte mit y. Das führt aus:
claude mcp add overleaf -- node C:/CoolYEAH/overleaf-claude-mcp/dist/index.jsWenn du es übersprungen hast oder einen anderen Client verwendest, registriere von Hand. Führe für Claude Code den obigen Befehl aus. Bearbeite für Claude Desktop %APPDATA%\Claude\claude_desktop_config.json unter Windows oder ~/Library/Application Support/Claude/claude_desktop_config.json unter macOS:
{
"mcpServers": {
"overleaf": {
"command": "node",
"args": ["C:/CoolYEAH/overleaf-claude-mcp/dist/index.js"]
}
}
}Schritt 4: Claude neu starten
MCP-Server werden nur beim Start erkannt. Beende und öffne Claude Code oder Claude Desktop erneut.
Bestätige, dass es geladen wurde:
claude mcp listDu solltest overleaf als verbunden aufgelistet sehen. In einer Claude-Code-Sitzung zeigt /mcp dasselbe.
Schritt 5: Verwenden
Frag einfach in normaler Sprache. Claude wählt die Werkzeuge selbst aus.
List my Overleaf projectsSelect the Efficient Reasoning projectRead sections/methodology.texIn sections/results.tex, change "Table 1" to "Table~\ref{tab:main}"Compile it and tell me what the LaTeX errors areShow me figures/fig1.pngSave the compiled PDF to C:/tmp/paper.pdfWähle ein Projekt einmal aus, und es bleibt gespeichert. Die Auswahl wird in ~/.overleaf-claude-mcp/state.json gespeichert und übersteht Neustarts, sodass jede spätere Anfrage für dieses Projekt gilt, bis du wechselst. Um in einer Anfrage ohne Wechsel an einem anderen Projekt zu arbeiten, nenne es: „lies main.tex aus meiner Abschlussarbeit“.
Related MCP server: claudeleaf
So löst du es aus
Es gibt keinen Slash-Befehl und nichts einzutippen. Claude liest die Werkzeugbeschreibungen und ruft sie auf, wenn deine Anfrage passt. Overleaf oder ein bereits ausgewähltes Projekt oder eine bereits ausgewählte Datei zu erwähnen, reicht aus.
Wenn Claude nicht zu den Werkzeugen greift, sind die üblichen Ursachen: Du hast nach der Registrierung nicht neu gestartet, oder es ist noch kein Projekt ausgewählt. Frage „Welches Overleaf-Projekt ist ausgewählt?“, um das zu prüfen.
Werkzeuge
Werkzeug | Zweck |
| Projekte auflisten, das ausgewählte markieren |
| Aktives Projekt nach ID oder Name auswählen |
| Anzeigen, welches Projekt ausgewählt ist |
| Vollständiger Datei- und Ordnerbaum |
| Eine LaTeX- oder andere Textdatei lesen |
| Eine Abbildung inline anzeigen |
| Beliebige Datei, einschließlich PDFs, lokal speichern |
| Regex-Suche über das gesamte Projekt |
| Textdatei erstellen oder überschreiben |
| Exakte Zeichenfolgenersetzung in einer Datei |
| Lokale Datei wie eine Abbildung hochladen |
| Ordner und fehlende übergeordnete Ordner erstellen |
| Datei oder Ordner umbenennen |
| Datei oder Ordner verschieben |
| Eintrag löschen, erfordert |
| Serverseitige Kompilierung |
| Kompilieren und geparste LaTeX-Fehler zurückgeben |
| Kompilieren und das PDF speichern |
| Kompilierte Wortanzahl |
overleaf_select_project akzeptiert eine Projekt-ID oder einen beliebigen Teil eines Projektnamens. Wenn der Name auf mehr als ein Projekt zutrifft, werden die Kandidaten aufgelistet, statt zu raten. overleaf_delete weigert sich auszuführen, es sei denn, confirm ist true, sodass Claude nicht versehentlich eine Datei löschen kann.
Fehlerbehebung
„Keine Overleaf-Sitzung unter ...“ — Du hast dich noch nicht angemeldet, oder die Sitzung ist abgelaufen. Führe npm run login oder erneut setup.cmd aus.
Claude sieht die Werkzeuge nicht — Du hast Claude nach der Registrierung nicht neu gestartet. Prüfe claude mcp list.
Ein Werkzeug schlägt plötzlich fehl — Overleaf hat möglicherweise einen Endpunkt geändert. Führe npm run recon aus, das jeden Endpunkt schreibgeschützt testet und dir genau sagt, welcher Aufruf fehlgeschlagen ist.
Prüfe dein Setup vom Terminal aus, ohne Claude:
npm run read -- "Efficient Reasoning"Gibt den Dateibaum und alle Abschnittsüberschriften des passenden Projekts aus. Füge einen Pfad hinzu, um eine einzelne Datei auszugeben:
npm run read -- "Efficient Reasoning" sections/methodology.texFühre das Setup jederzeit erneut aus. Es verwendet eine funktionierende Sitzung erneut und verifiziert die Verbindung erneut, sodass es gleichzeitig als Gesundheitscheck dient.
So funktioniert es
Der Dateibaum stammt aus Overleafs Socket-Verbindung, da dies die einzige Quelle ist, die Entitäts-IDs enthält, und IDs sind das, was Schreibvorgänge benötigen. Der Handshake ist GET /socket.io/1/?projectId=<id>, was socket.io-0.9-Framing ist; der Server sendet dann joinProjectResponse mit dem gesamten Projekt einschließlich rootFolder, Dokument-IDs und Datei-Hashes. Der Baum wird für OVERLEAF_TREE_TTL_MS (Standard 15s) zwischengespeichert und nach jedem Schreibvorgang ungültig gemacht.
Textdateien werden pro Dokument gelesen, sodass ein Lesevorgang immer den aktuellen Zustand widerspiegelt. overleaf_grep liest stattdessen das Projektarchiv, sodass eine Suche über das gesamte Projekt eine Anfrage kostet statt eine pro Datei.
Schreibvorgänge laufen über den Upload-Endpunkt. Das Hochladen über einen vorhandenen Namen ist eine Aktualisierung an Ort und Stelle: Die Entitäts-ID bleibt erhalten, sodass der Overleaf-Verlauf und alle anderen im Dokument weiterhin funktionieren. Fehlende übergeordnete Ordner werden zuerst erstellt.
Verifizierte Endpunkte
Live gegen ein echtes Konto bestätigt, nicht angenommen:
Operation | Aufruf | Hinweise |
Projektliste |
|
|
CSRF |
|
|
Neues Projekt |
| gibt |
Dateibaum |
|
|
Nur Pfade |
| günstig, keine IDs |
Dokument lesen |
| Klartext |
Binärdatei lesen |
| Hash stammt aus dem Baum |
Archiv |
| für grep verwendet |
Erstellen oder Überschreiben |
| multipart, Feld |
Dokument oder Ordner erstellen |
| Body |
Umbenennen |
| 204 |
Verschieben |
| 204, Body |
Löschen |
| 204 |
Kompilieren |
| gibt |
Wortanzahl |
|
:type ist doc, file oder folder.
Skripte
Befehl | Funktion |
| Vollständiges Setup von Grund auf |
| Dasselbe, vorausgesetzt Abhängigkeiten sind installiert |
| Nur erneut authentifizieren |
| Projekt vom Terminal aus untersuchen |
| Schreibgeschützter Test jedes Endpunkts |
| End-to-End-Schreibtest in einem Wegwerfprojekt |
| Nach |
npm run smoke erstellt ein Projekt namens claude-mcp-smoketest und testet dann Schreiben, Überschreiben, Bild-Upload, Umbenennen, Verschieben, Löschen und Kompilieren. Es hinterlässt das Projekt in deinem Konto, damit du es untersuchen kannst. Entsorge es, wenn du fertig bist.
Konfiguration
Alles optional. Siehe .env.example.
Variable | Standard |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Grenzen
Keines davon ist eine unterstützte API, und Overleaf kann sie jederzeit ändern. Verwende sie nur mit deinem eigenen Konto. Echtzeit-Zusammenarbeit ist nicht implementiert: Schreibvorgänge ersetzen ein ganzes Dokument, statt Operationen auf Zeichenebene zu senden. Vermeide es daher, in eine Datei zu schreiben, während jemand anderes darin tippt.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceEnables editing Overleaf projects from Claude, with tools to list, read, edit, and sync files via Git.MIT
- Alicense-qualityCmaintenanceEnables Claude and AI agents to read and edit Overleaf documents in real time, with support for project listing, document manipulation, LaTeX compilation, and live collaboration.1038MIT
- Alicense-qualityBmaintenanceConnects Claude/ChatGPT to Overleaf projects via the Git integration, enabling read, edit, write, and file management through natural language commands.2AGPL 3.0
- Alicense-qualityBmaintenanceEnables AI agents to read, edit, and compile LaTeX documents in Overleaf projects with tracked changes via the Model Context Protocol.1MIT
Related MCP Connectors
Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.
Read, edit, publish, and preview your pepita websites from Claude.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MarvelCollin/overleaf-claude-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server