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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.

View all MCP Connectors

Latest Blog Posts

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/sschmitt-cg/scrivener-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server