scrivener-mcp
scrivener-mcp
Ein lokaler MCP-Server, der Ihre Scrivener-Projekte für Claude (oder jeden anderen MCP-kompatiblen Client) zugänglich macht. Erstellen Sie neue Projekte von Grund auf, navigieren Sie durch den Binder, lesen und schreiben Sie Dokumentinhalte und aktualisieren Sie Metadaten – alles ohne Scrivener zu öffnen.
Voraussetzungen
Node.js 18 oder neuer
Scrivener 3 unter macOS (
.scriv-Pakete)
Related MCP server: Mac MCP
Einrichtung
cd scrivener-mcp
npm installUmgebungsvariablen
Variable | Beschreibung |
| Pfad zu einem Verzeichnis, das |
| Pfad zu einem einzelnen |
|
|
Mindestens eine der Variablen SCRIV_DIR oder SCRIV_PATH muss gesetzt sein. Beide können gleichzeitig gesetzt werden.
Manuelles Ausführen
# Multi-project mode (recommended)
SCRIV_DIR="/path/to/ScrivenerProjects" npm start
# Single-project mode
SCRIV_PATH="/path/to/MyProject.scriv" npm startKonfiguration von Claude Desktop
Bearbeiten Sie die Konfigurationsdatei von Claude Desktop:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Mac:
{
"mcpServers": {
"scrivener": {
"command": "node",
"args": ["/absolute/path/to/scrivener-mcp/src/index.js"],
"env": {
"SCRIV_DIR": "/Users/you/Writing/ScrivenerProjects"
}
}
}
}Windows:
{
"mcpServers": {
"scrivener": {
"command": "node",
"args": ["C:\\path\\to\\scrivener-mcp\\src\\index.js"],
"env": {
"SCRIV_DIR": "C:\\Users\\you\\Documents\\ScrivenerProjects",
"SCRIV_PLATFORM": "windows"
}
}
}
}Starten Sie Claude Desktop nach dem Speichern neu.
Verfügbare Tools
Projektverwaltung
Tool | Beschreibung |
| Listet alle |
| Öffnet ein Projekt anhand des Namens und macht es für alle Dokument-Tools aktiv. |
| Erstellt ein neues Projekt und öffnet es. Siehe unten. |
Dokument-Tools (erfordern ein geöffnetes Projekt)
Tool | Beschreibung |
| Gibt den vollständigen Binder als verschachtelten Baum mit Synopsen, Labels und Status zurück. Der beste Ausgangspunkt, um die Struktur eines Projekts zu verstehen und daran zu arbeiten. |
| Gibt den Binder als flache Liste mit Tiefenindikatoren zurück. Nützlich, um UUIDs zu erhalten. |
| Gibt Metadaten und Klartextinhalt für ein einzelnes Dokument zurück. |
| Fügt dem Binder ein neues Dokument oder einen neuen Ordner hinzu. |
| Verschiebt ein Binder-Element in einen anderen übergeordneten Ordner. |
| Schreibt neuen Klartextinhalt in ein Dokument (wird als RTF gespeichert). |
| Aktualisiert Titel, Synopsis, Label, Status oder die Einbindung in die Kompilierung. |
| Durchsucht Titel und Synopsen im gesamten Binder. |
Erstellen eines Projekts
create_project akzeptiert eine vollständige Binder-Struktur, sodass Claude ein gesamtes Projekt aus einer Idee in einem einzigen Aufruf erstellen kann.
Parameter
Parameter | Typ | Beschreibung |
| string | Projektname (wird zum Namen des |
| array | Label-Definitionen. Jedes ist ein String oder |
| array | Statusnamen. Standard: To Do, In Progress, First Draft, Revised Draft, Done. |
| array | Binder-Elemente im Entwurfs-Ordner (Manuscript). |
| array | Binder-Elemente im Recherche-Ordner (Research). |
Struktur der Binder-Elemente
{
"title": "Chapter 1",
"type": "Folder",
"synopsis": "Alice finds the letter and confronts Bob.",
"content": "Optional initial body text (Text items only).",
"label": "POV: Alice",
"status": "To Do",
"includeInCompile": true,
"children": [...]
}type:"Folder"für Container (Akte, Teile, Kapitel);"Text"für Dokumente (Szenen, Notizen). Standard ist"Text".synopsis: Der Text der virtuellen Karteikarte — erscheint in Scriveners Korkwand- und Gliederungsansichten. Schreiben Sie eine 1–3-sätzige Zusammenfassung dessen, was passiert oder was dieses Element abdeckt.labelundstatusmüssen mit den Namen übereinstimmen, die in denlabels- undstatuses-Arrays des Projekts definiert sind.
Beispiel
{
"name": "My Novel",
"labels": [
{ "name": "POV: Alice", "color": "blue" },
{ "name": "POV: Bob", "color": "red" }
],
"statuses": ["To Do", "First Draft", "Revised", "Done"],
"manuscript": [
{
"title": "Act One",
"type": "Folder",
"synopsis": "Alice discovers the conspiracy.",
"children": [
{
"title": "Chapter 1",
"type": "Folder",
"synopsis": "A normal Tuesday turns strange.",
"children": [
{
"title": "The Letter",
"type": "Text",
"synopsis": "Alice finds an unsigned letter in her mailbox.",
"label": "POV: Alice",
"status": "To Do"
}
]
}
]
}
],
"research": [
{
"title": "Characters",
"type": "Folder",
"children": [
{
"title": "Alice",
"type": "Text",
"synopsis": "Protagonist. Mid-30s journalist, sceptical but curious."
}
]
}
]
}Kollaborativer Arbeitsablauf
Das beabsichtigte Muster ist, gemeinsam mit Claude an der Struktur und dem Inhalt eines Projekts zu arbeiten und dabei die eigenen Organisationsfunktionen von Scrivener zu nutzen:
Beginnen Sie mit
get_outline— Claude liest die vollständige verschachtelte Struktur mit Synopsen, bevor Änderungen vorgeschlagen oder vorgenommen werden. So versteht die KI die Form der Geschichte.Bauen Sie die Struktur mit
add_documentauf — Fügen Sie Szenen, Kapitel, Akte oder Recherche-Notizen an einer beliebigen Stelle in der Hierarchie hinzu. Fügen Sie immer eine Synopsis hinzu; sie ist das, was auf der Karteikarte in Scriveners Korkwand erscheint.Strukturieren Sie mit
move_documentum — Verschieben Sie Elemente zwischen übergeordneten Ordnern, um die Erzählung neu zu strukturieren, ohne Inhalte oder Metadaten zu verlieren.Schreiben Sie Prosa mit
write_document— Sobald die Struktur vereinbart ist, füllen Sie die Szenen mit Inhalten.Verfolgen Sie den Fortschritt mit
update_metadata— Aktualisieren Sie Labels (z. B. POV, Szenentyp) und Status (z. B. First Draft, Revised), während die Arbeit voranschreitet.
Hinweise
Schließen Sie Scrivener vor dem Schreiben.
write_document,update_metadata,add_documentundmove_documentändern Projektdateien direkt. Wenn Scrivener das Projekt geöffnet hat, überschreibt es die Änderungen beim nächsten automatischen Speichern.Nach dem Bearbeiten in Scrivener neu laden. Rufen Sie
open_projecterneut auf, um ein Projekt neu zu laden, das in Scrivener geändert wurde, während der Server lief.write_documentgeneriert minimales RTF, das mit Scrivener 3 kompatibel ist. Nicht-ASCII-Zeichen werden als Unicode maskiert.Label- und Status-IDs sind über
list_documentsauffindbar —labelId/statusIdsind die rohen IDs,label/statussind die aufgelösten Namen.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
- mcpOAuthco.aistoryhub
Remote MCP server for AIStoryHub: stories, chapters, story bible, Voiceprints, AI generation.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA lightweight MCP server that bridges AI agents and macOS, enabling automation of file navigation, application control, UI interaction, browser automation, and system operations.203MIT
- AlicenseNot gradedqualityAmaintenanceOpen-source, local macOS MCP server for AI agents. Automate background Safari/Chrome tabs, native apps, files and shell with scoped permissions, optional approvals and delegated coding agents.83MIT

datacore-mcpofficial
AlicenseAqualityAmaintenanceMCP server exposing Datacore's knowledge base, GTD, and engram memory to any AI assistant.555 npmMIT- AlicenseAqualityDmaintenanceMCP server that exposes local Python scripts as tools for AI clients (e.g. Claude Desktop), enabling directory tree generation, Excel-to-text conversion, Python code extraction, and text file merging.51MIT