Scrivener MCP写作管理服务器

Scrivener MCP是一个连接Scrivener写作项目与AI助手的MCP服务器,提供文档管理、写作分析、内容增强、离线语义搜索及角色情节追踪,适用于小说、剧本和手稿创作。

  • by writerslogic
  • TypeScript
  • 本地部署
  • 69 星标
  • 更新于
在 GitHub 查看 dcondrey/scrivener-mcp

使用说明

Scrivener MCP

MCP server for Scrivener: connect your novels, screenplays, and manuscripts to Claude, ChatGPT, and any AI assistant, with document management, writing analysis, content enhancement, offline semantic search, and character/plot tracking.


Start with the safe first session, then use editorial review and workflows, export presets, or the Windows guide. Compatibility evidence records actual coverage and limits.

Install · Mac App · What You Can Do · All Tools · Guides · Contributing


Scrivener MCP lets your AI assistant open, read, edit, analyze, and search your Scrivener projects directly. No exporting, no copy-pasting text back and forth. Tell it which project to open and start working.

You: Open my novel and analyze the pacing in Chapter 12.

Claude: Opens the .scriv project, reads Chapter 12, runs pacing analysis. The first half moves well, but the middle stalls — a three-page internal monologue starting at paragraph 14 kills the momentum you built in the confrontation scene. Consider cutting it to a paragraph and moving the backstory to Chapter 8.

Works with Claude Desktop, Claude Code, VS Code (Copilot/Continue), Cursor, and any MCP-compatible client. Scrivener 3 on macOS, Windows, and Linux. Listed on the official MCP Registry as io.github.writerslogic/scrivener-mcp.

Install

Mac app: Draftbridge for Scrivener, $4.99

Not a terminal person? Draftbridge for Scrivener is the ready-made Mac app. It finds your AI apps — Claude Desktop, BoltAI, Cursor, VS Code, LM Studio, Raycast, Claude Code — connects Scrivener MCP to each with one click, shows your projects, and repairs the connection after an app update. No Terminal, no Node.js, no settings files. One-time $4.99, up to 3 Macs, signed and notarized by Apple.

The server, setup tool, and Claude Desktop extension here stay free and open source. The app is closed source; the fee buys the notarized build and supports development. See the Mac install guide and FAQ. Report app problems with the mac-app label.

Free: Claude Desktop extension or command line

Prefer to do it yourself? The .mcpb extension (Claude Desktop only) and the terminal setup below do the same job for free.

From a terminal:

Otherwise, from a terminal:

npm install -g scrivener-mcp

Restart Claude Desktop and it's ready. Other clients need one more step:

npx scrivener-setup

This finds Claude Desktop, Claude Code, Cursor, VS Code, LM Studio, BoltAI, and Raycast and configures them for you, then confirms the server starts. No Node.js on your Mac? See the Mac install guide. To set up Claude Code by hand instead: claude mcp add -s user scrivener -- npx scrivener-mcp, then restart it (or run /mcp).

Other ways to install

Smithery

npx -y @smithery/cli install scrivener-mcp --client claude

npx, no install

npx scrivener-mcp

or add it to Claude Desktop's config directly:

{
	"mcpServers": {
		"scrivener": { "command": "npx", "args": ["scrivener-mcp"] }
	}
}

From GitHub

npm install -g writerslogic/scrivener-mcp              # latest main
npm install -g writerslogic/scrivener-mcp#v0.12.0       # a specific release

Homebrew (macOS)

brew install writerslogic/tap/scrivener-mcp

Docker

docker build -t scrivener-mcp https://github.com/writerslogic/scrivener-mcp.git
docker run -i --rm -v /path/to/your/projects:/projects scrivener-mcp

Any other MCP client: point it at npx scrivener-mcp as a stdio server.

Optional: AI-powered features

Document management, deterministic analysis, local passage search, and project memory work with no API key. Provider-assisted interpretation, generation and enhancement use Anthropic, OpenAI or OpenRouter. Set more than one and Claude handles chat by default; override with AI_PROVIDER=openai or AI_PROVIDER=openrouter (OpenRouter defaults to anthropic/claude-sonnet-4.6, change it with OPENROUTER_MODEL). If the active provider fails on an account-level error — bad key, no credit, an outage — the server retries on the next one you've configured. If your MCP client supports sampling, chat-based features can run through the client's own model instead, no separate key needed. Passage retrieval runs locally through Holographic Memory 0.6.4; interpretation and explanations are optional provider features.

Keys are picked up automatically from:

  • ANTHROPIC_API_KEY / OPENAI_API_KEY / OPENROUTER_API_KEY
  • ~/.env or ~/.scrivener-mcp/.env
  • ~/.anthropic/key, ~/.openai/key, ~/.openrouter/key
  • macOS Keychain (anthropic-api-key / openai-api-key / openrouter-api-key)
security add-generic-password -s anthropic-api-key -a anthropic -w sk-ant-your-key-here   # Keychain
export ANTHROPIC_API_KEY="sk-ant-..."                                                      # or export it directly

What You Can Do

Open a project first. The server has no link to the Scrivener app itself and can't see what's open there — say "Open my Scrivener project at ~/Documents/My Novel.scriv", or "Discover my Scrivener projects" if you don't know the path. On macOS, "Use the project I have open in Scrivener" works too (the first time, macOS will ask permission to control Scrivener). Do this once per conversation. If the project is also open and unsaved in Scrivener itself, save or close it there first, or the two can write over each other.

Manage your manuscript. Read chapters, create scenes, reorganize the binder, update synopses — all through conversation. "Create a new scene called 'The Reveal' after Chapter 5, and move the old epilogue to the trash."

Analyze your writing. Readability, pacing, style, dialogue quality, emotional arc — grounded in your actual prose, not generic advice. Ask whether a chapter's pacing is off and get specifics: which paragraphs stall, how the scene compares to your other chapters, filter-word density against your own average.

Enhance your prose. Targeted edits: cut filter words, strengthen verbs, vary sentence structure, add sensory detail, turn telling into showing, tighten dialogue, fix pacing.

Track characters and plot. Character profiles, plot threads, and style guides persist with the project across sessions. Save a profile for a character once; a consistency check months later catches contradictions — dialogue that doesn't sound like them, a limp that disappears for a chapter.

Search by meaning. "Find scenes where the protagonist feels isolated" works even if that word never appears, within the disclosed English story-concept vocabulary. The installed Holographic Memory System combines native BM25 with supplied local concept vectors. Results include exact passages, locations and saved revisions; changed passages are replaced incrementally. Provider interpretation and explanations are optional.

Track relationships. Query how characters, locations, themes, and plot threads connect. No Neo4j required — relationships live in the semantic memory engine and persist with the project; Neo4j adds deeper graph analysis if you have it.

Compile and export. Assemble chapters into one manuscript with your own formatting and structure preserved. Export inline as Markdown, HTML, or JSON, or write a DOCX, EPUB, or PDF to disk.

All Tools

75 tools organized by workflow. To keep token usage low, tools load progressively — project tools at startup, document and search tools once a project is open, the rest on demand. Set SCRIVENER_MCP_EAGER_TOOLS=1 to load everything up front.

Project -- open, browse, manage
Tool What it does
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
create_snapshot Take a Scrivener-native snapshot of a document (restorable from Scrivener's own Snapshots browser) before editing
Documents -- read, write, create, organize
Tool What it does
get_document_info Metadata for one document (title, type, word count, synopsis, label, status)
read_document Read content; format: "formatted" for rich text, offset/limit to page long docs
write_document Replace saved content with revision checks, native snapshots and disclosed formatting risks
review_changes Propose, preview, selectively approve or reject, apply batches, recover and undo saved edits
manuscript_dashboard Interactive binder, scene context, pacing, findings and review; text fallback for other clients
create_document Create a new text document or folder
update_document Change title and/or metadata (synopsis, notes, label, status, custom fields)
move_document Reorganize within the binder
delete_document Move to trash (reversible)
Search -- find content, passages, and mentions
Tool What it does
search Local hybrid passage search; field: "title" for titles, scope: "trash" for trash
semantic_search Local concept-vector passage retrieval, with scores, context and source revisions; no API key
search_passages Local keyword, bounded English concept, or hybrid retrieval with exact quoted evidence
find_mentions Locate every occurrence of a specific name or term, with context
list_trash List trashed documents
restore_document Restore a document from trash
read_annotations Read a document's comments and footnotes
Analysis -- quality, consistency, structure
Tool What it does
analyze_document AI writing analysis; focus with aspects (structure, style, pacing, themes...)
check_consistency Evidence-backed continuity report with source revisions, canon and inferred candidates
continuity_findings Confirm, dismiss, resolve and recheck evidence-bound continuity findings
analyze_writing_style Style-focused analysis
check_plot_consistency Plot-thread consistency check
suggest_improvements AI-generated improvement suggestions
enhance_content Suggest a specific improvement to a document
generate_content Generate new prose from a prompt and context
set_writing_goal Set a word-count goal (daily, weekly, or whole project) with an optional target date
get_writing_goals List goals with progress -- percent complete, words remaining, on-pace status
set_writing_preferences Set author preferences (tone, complexity, length, POV, style guide) that steer AI output
get_writing_preferences Show current preferences plus feedback insights and suggestions
collect_feedback Record a rating/comment on an AI operation to inform those insights
analyze_craft_local Offline readability, grammar, syntax-tension, dialogue, and word-frequency report for one document (narrative-lens, no AI call)
check_continuity_local Offline timeline and world-state continuity pass across the manuscript
analyze_foreshadowing_local Offline setup/payoff tracking across scenes
measure_voice_drift_local Compare a character's earlier vs later dialogue for voice drift
analyze_opening_local Offline hook, clarity, and genre-fit scoring of an opening
check_style_local Line-edit one document for adverbs, filter words, hedges, clichés, passive voice, nominalizations, and personal tics, each with line and column (bluepencil, no AI call)
find_repetition_local Echoes (a word reappearing within a window) and repeated phrases, with both locations
analyze_rhythm_local Sentence-length distribution, monotonous runs, overlong sentences, and repeated openers
analyze_dialogue_tags_local Dialogue ratio and every quoted line's tag classified as plain, showy, adverb-modified, or untagged
manuscript_style_report_local Per-document style density across the manuscript with word-weighted means and outliers

Enhancement types: eliminate-filter-words, strengthen-verbs, vary-sentences, add-sensory-details, show-dont-tell, improve-flow, enhance-descriptions, strengthen-dialogue, fix-pacing, expand, condense, rewrite

Compile & Export -- assemble and ship the manuscript
Tool What it does
compile_documents Combine documents; mode: "structured" compiles the Draft folder with the binder hierarchy as headings and honors "Include in Compile" (no AI), mode: "intelligent" for AI-optimized output
export_project Write the manuscript to disk -- Markdown, HTML, JSON inline, or DOCX, EPUB, PDF as a file
export_manuscript Preflight and export submission DOCX, beta-reader DOCX and validated EPUB presets
get_statistics Project-level word/document/character counts
generate_marketing_materials Draft synopsis, query letter, pitch, and related materials
Memory -- persistent project knowledge
Tool What it does
remember Store information that persists across sessions with the project
manage_series Create, join or leave an explicitly scoped series of selected projects
story_bible Curate shared characters, aliases, locations, world rules and chronology with provenance
recall Retrieve previously stored memory

Project memory travels within each .scriv project. Explicit series memberships and shared facts use the server's persistent registry; see editorial workflows.

Relationships -- entity connections and story graph
Tool What it does
add_relationship Store a relationship between characters, locations, themes, or plot threads
find_relationships Query entities related to a given character/theme/location
discover_connections Find co-occurring entities across the manuscript
character_network The character relationship network
get_entity_references Trace the reference graph in either direction: entities a document mentions (by documentId), or documents mentioning an entity (by entity)
find_orphaned_entities List registered characters/locations that no document actually mentions
suggest_connections Suggest entities a document may be missing, inferred from cross-document co-occurrence

Works without Neo4j -- relationships live in the Holographic Memory System and are available immediately. The document cross-reference tools are fully deterministic (exact whole-word matching, no AI) and need no external services; Neo4j adds advanced graph analysis when connected.

Background Jobs -- long-running analysis
Tool What it does
queue_document_analysis Enqueue an async analysis of one document; returns a job id
queue_project_analysis Enqueue an async analysis of the whole project
get_job_status Poll progress/results for a queued job
editorial_workflow Run chapter review, continuity audit or beta-reader preparation with durable progress and resuming
cancel_job Cancel a queued or running job
Discovery -- explore capabilities
Tool What it does
list_skills List the available tool groups and their tools
use_skill Activate a tool group (most are pre-activated by default)

Guides

Requirements

  • Node.js 22.14+ on the 22 release line, or 23.6+ (Node 24 recommended)
  • Scrivener 3 project files (.scriv)
  • macOS, Windows, or Linux
  • Optional: Anthropic, OpenAI, or OpenRouter API key for provider-backed AI features
  • Optional: Neo4j for persistence and advanced graph queries; core relationship tools work without it

Development

See the compatibility and upgrade policy for runtime checks, protocol contracts, dependency upgrades and the stable release gate.

git clone https://github.com/writerslogic/scrivener-mcp.git
cd scrivener-mcp
npm install
npm run dev          # Development mode with hot reload
npm run build        # Compile TypeScript
npm test             # Run tests
npm run typecheck    # Type checking only

Why This One?

A few Scrivener MCP servers exist. Our column describes the current server; other feature claims come from each project's own docs, published package, and advertised tools, last re-read on 2026-10-22; stars, forks, activity, and published version were refreshed

2026-10-26. "No" means undocumented — not

necessarily impossible through the connected AI client.

Feature scrivener-mcp jiayun TwelveTake Scrivener Assistant ricopicone zaphodsdad
Public MCP tools 75 30 22 38 18 10
Manuscript access read/write read/write read/write read-only; writes sidecar data/metadata read-only by default; opt-in content/notes/synopsis writes read-only
RTF handling formatted reads; fidelity-preserving span writes reads/writes document content reads/writes document content converts RTF to text; manuscript read-only RTF-to-text reads; snapshot-protected content writes converts RTF to text; read-only
Built-in writing analysis readability, pacing, style, emotion, AI critique readability, style, sentiment continuity comparison agent-driven five-point review workflow no dedicated analysis tool no dedicated analysis tool
Content generation/enhancement generation + 12 targeted enhancement types no no brainstorm/draft agent workflow no no
Local semantic retrieval local concept vectors, BM25 and quoted passages no no no no no
Continuity/project memory persistent memory + consistency checks persistent notes + consistency checks mention/description comparison world bible, story state, characters, locations, review history no persistent memory no persistent memory
Relationship tooling persistent relationships, networks, reference graph; optional Neo4j no no human-editable relations data no no
Token optimization progressive skill loading, compact output, paged reads no documented equivalent no documented equivalent no documented equivalent scoped binder/chapter reads scoped overview/read tools
Export / compilation Markdown, HTML, JSON, DOCX, EPUB, PDF compile + whole-draft export PDF saves AI drafts; no manuscript export documented no no
Windows support native CI verified; synthetic projects yes (prebuilt binary) yes not documented not documented yes
Installation npm, Homebrew, Docker, Smithery, or the Draftbridge Mac app crates.io, prebuilt binary, or source npm package (deprecated) MCPB or source source / uv source / pip install -e
License AGPL-3.0 / commercial dual-license MIT MIT MIT not declared MIT
Repository/package status weekly activity; npm 0.13.0 occasional activity removed from npm occasional activity occasional activity; no releases occasional activity; no releases
Community ⭐ 69 · 23 forks ⭐ 7 source repository unavailable ⭐ 1 ⭐ 0 ⭐ 5 · 1 fork

Counts and feature claims can change. Follow the linked projects for their own latest documentation. The table is generated from docs/comparison.yml — edit claims there, not here.

The alternative that isn't an MCP server

Scrivener can also Sync to External Folder, writing each document out as RTF or plain text, which any generic file-access MCP server (like @modelcontextprotocol/server-filesystem) can then read and write.

It's free and works today. What you lose is everything tied to the actual project — binder hierarchy, metadata, labels and status, snapshots, compile settings, RTF formatting — and edits land in the sync folder rather than the project itself, so a bad edit gets reconciled by Scrivener on the next sync instead of caught before it happens. Fine for occasional read-only help with prose; not if you want the structure to survive the round trip.

Contributing

We welcome contributions of all sizes. Check the issue tracker for good first issue labels, or see the contributing guide for development setup.

Areas where help is especially welcome:

  • Test coverage (#18)
  • Windows testing and path handling
  • Scrivener 2 compatibility testing
  • Documentation improvements (#25)

Security

Found a vulnerability? Please report it privately — see SECURITY.md.

License

AGPL-3.0 © WritersLogic, Inc.

Scrivener is a trademark of Literature & Latte Ltd. This project is independent and is not affiliated with, endorsed by, or sponsored by Literature & Latte.

Free for personal use and open-source projects. Commercial license available for proprietary integration. See COMMERCIAL_LICENSE.md for details.


Also from WritersLogic: WritersProof witnesses your keystrokes, pauses, and revisions as you write, then seals that process into tamper-evident, independently verifiable proof you wrote it yourself — AI accusations, settled with evidence instead of your word.

GitHub · npm · Issues · Changelog