Scrivener MCP Server

MCP server for Scrivener - Read, write, analyze, and search manuscripts with semantic search, character/plot tracking, writing analysis, and content

Local serverstdioTypeScript

What is the Scrivener MCP server?

Scrivener MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. MCP server for Scrivener - Read, write, analyze, and search manuscripts with semantic search, character/plot tracking, writing analysis, and content enhancement. Works with Claude, ChatGPT, and other AI assistants.

What you get

Setting it up

Installation goes through your MCP client rather than a global install: point it at scrivener-setup on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

What the assistant can call

Once Scrivener is connected, these are the calls the assistant has available:

  • open_project — Open a .scriv project (accepts .scriv folders or .scrivx files) and make it active
  • discover_projects — Scan common locations for Scrivener projects when you don't know the path
  • detect_open_project — Detect the project currently open in the Scrivener app (macOS) so you don't need a path
  • get_structure — Browse the binder hierarchy (folders, documents, word counts)
  • refresh_project — Reload from disk after external edits
  • close_project — Close the active project and flush pending changes
  • verify_project_integrity — Read-only scan for structural problems (missing/duplicate UUIDs, unreadable content)
  • get_compile_settings — Read the project's compile formats and taxonomy -- labels/statuses (with colors), collections, section types
  • get_manuscript_briefing — One "where am I?" snapshot: words vs. target (% to goal), document/status/label counts, longest/shortest documents
  • list_snapshots — List Scrivener snapshots (title, date) for one document or the whole project
  • read_snapshot — Read a snapshot's text as plain text, with word count
  • compare_snapshot — Diff a snapshot against the current document (or another snapshot): paragraphs added/removed and net word change

Configuration and credentials

You will need 3 environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Node.js 18+ - Scrivener 3 project files (.scriv) - macOS, Windows, or Linux - Optional: Anthropic or OpenAI API key for AI-powered features (OpenAI required for semantic/embedding features) - Optional: Neo4j for character relationship graphs

Before you rely on it

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Scrivener.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the scrivener mcp server does with a few real requests.

Choosing this one

This sits in the browser automation group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Scrivener's toolset — open_project, discover_projects, detect_open_project and 11 more — is a fair guide to whether it matches your workflow. It is maintained by davidcondrey; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Scrivener's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Available tools

ToolWhat it does
open_projectOpen a .scriv project (accepts .scriv folders or .scrivx files) and make it active
discover_projectsScan common locations for Scrivener projects when you don't know the path
detect_open_projectDetect the project currently open in the Scrivener app (macOS) so you don't need a path
get_structureBrowse the binder hierarchy (folders, documents, word counts)
refresh_projectReload from disk after external edits
close_projectClose the active project and flush pending changes
verify_project_integrityRead-only scan for structural problems (missing/duplicate UUIDs, unreadable content)
get_compile_settingsRead the project's compile formats and taxonomy -- labels/statuses (with colors), collections, section types
get_manuscript_briefingOne "where am I?" snapshot: words vs. target (% to goal), document/status/label counts, longest/shortest documents
list_snapshotsList Scrivener snapshots (title, date) for one document or the whole project
read_snapshotRead a snapshot's text as plain text, with word count
compare_snapshotDiff a snapshot against the current document (or another snapshot): paragraphs added/removed and net word change
create_snapshotTake a Scrivener-native snapshot of a document (restorable from Scrivener's own Snapshots browser) before editing
get_document_infoMetadata for one document (title, type, word count, synopsis, label, status)

How to install the Scrivener MCP server

{
  "mcpServers": {
    "scrivener": {
      "command": "npx",
      "args": ["-y", "scrivener-setup"],
      "env": {
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value",
        "OPENROUTER_API_KEY": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Node.js 18+ - Scrivener 3 project files (.scriv) - macOS, Windows, or Linux - Optional: Anthropic or OpenAI API key for AI-powered features (OpenAI required for semantic/embedding features) - Optional: Neo4j for character relationship graphs
VariableDescriptionRequired
ANTHROPIC_API_KEYCredential the server authenticates with.Yes
OPENAI_API_KEYCredential the server authenticates with.Yes
OPENROUTER_API_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use Scrivener to open project.
  • Use Scrivener to discover projects.
  • Use Scrivener to detect open project.

Frequently asked questions

It connects Scrivener to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (open_project, discover_projects, detect_open_project, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Scrivener directly.