Skip to main content
Glama
sschmitt-cg

scrivener-mcp

by sschmitt-cg

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 install

Umgebungsvariablen

Variable

Beschreibung

SCRIV_DIR

Pfad zu einem Verzeichnis, das .scriv-Pakete enthält. Ermöglicht list_projects, open_project und create_project.

SCRIV_PATH

Pfad zu einem einzelnen .scriv-Paket. Öffnet es sofort beim Start.

SCRIV_PLATFORM

mac (Standard) oder windows. Steuert das RTF-Format, das beim Schreiben von Dokumentinhalten verwendet wird.

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 start

Konfiguration von Claude Desktop

Bearbeiten Sie die Konfigurationsdatei von Claude Desktop:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %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

list_projects

Listet alle .scriv-Pakete in SCRIV_DIR auf.

open_project(name)

Öffnet ein Projekt anhand des Namens und macht es für alle Dokument-Tools aktiv.

create_project(name, ...)

Erstellt ein neues Projekt und öffnet es. Siehe unten.

Dokument-Tools (erfordern ein geöffnetes Projekt)

Tool

Beschreibung

get_outline

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.

list_documents

Gibt den Binder als flache Liste mit Tiefenindikatoren zurück. Nützlich, um UUIDs zu erhalten.

get_document(uuid)

Gibt Metadaten und Klartextinhalt für ein einzelnes Dokument zurück.

add_document(...)

Fügt dem Binder ein neues Dokument oder einen neuen Ordner hinzu.

move_document(uuid, newParentUuid)

Verschiebt ein Binder-Element in einen anderen übergeordneten Ordner.

write_document(uuid, content)

Schreibt neuen Klartextinhalt in ein Dokument (wird als RTF gespeichert).

update_metadata(uuid, changes)

Aktualisiert Titel, Synopsis, Label, Status oder die Einbindung in die Kompilierung.

search_documents(query)

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

name

string

Projektname (wird zum Namen des .scriv-Pakets).

labels

array

Label-Definitionen. Jedes ist ein String oder {name, color}. Farben: red, orange, yellow, green, blue, purple, pink, cyan.

statuses

array

Statusnamen. Standard: To Do, In Progress, First Draft, Revised Draft, Done.

manuscript

array

Binder-Elemente im Entwurfs-Ordner (Manuscript).

research

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.

  • label und status müssen mit den Namen übereinstimmen, die in den labels- und statuses-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:

  1. 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.

  2. Bauen Sie die Struktur mit add_document auf — 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.

  3. Strukturieren Sie mit move_document um — Verschieben Sie Elemente zwischen übergeordneten Ordnern, um die Erzählung neu zu strukturieren, ohne Inhalte oder Metadaten zu verlieren.

  4. Schreiben Sie Prosa mit write_document — Sobald die Struktur vereinbart ist, füllen Sie die Szenen mit Inhalten.

  5. 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_document und move_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_project erneut auf, um ein Projekt neu zu laden, das in Scrivener geändert wurde, während der Server lief.

  • write_document generiert minimales RTF, das mit Scrivener 3 kompatibel ist. Nicht-ASCII-Zeichen werden als Unicode maskiert.

  • Label- und Status-IDs sind über list_documents auffindbar — labelId/statusId sind die rohen IDs, label/status sind die aufgelösten Namen.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A lightweight MCP server that bridges AI agents and macOS, enabling automation of file navigation, application control, UI interaction, browser automation, and system operations.
    203
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Open-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.
    83
    MIT