Labsco
writerslogic logo

Scrivener MCP

β˜… 30

from writerslogic

Connect Scrivener 3 writing projects to Claude, ChatGPT, and other AI assistants. 60+ tools for manuscript management, writing analysis, semantic search, character/plot memory, and content enhancement.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/writerslogic/scrivener-mcp/main/assets/logo-white.svg"/> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/writerslogic/scrivener-mcp/main/assets/logo-black.svg"/> <img src="https://raw.githubusercontent.com/writerslogic/scrivener-mcp/main/assets/logo-black.svg" alt="Scrivener MCP Logo" width="200"/> </picture> </p> <h1 align="center">Scrivener MCP</h1> <p align="center"> <strong>Connect your Scrivener projects to Claude, ChatGPT, and other AI assistants</strong> </p> <p align="center"> <a href="https://www.npmjs.com/package/scrivener-mcp"> <img src="https://img.shields.io/npm/v/scrivener-mcp.svg" alt="npm version"/> </a> <img src="https://img.shields.io/npm/dm/scrivener-mcp.svg" alt="npm downloads"/> <a href="https://github.com/writerslogic/scrivener-mcp/actions"> <img src="https://github.com/writerslogic/scrivener-mcp/actions/workflows/ci.yml/badge.svg" alt="build"/> </a> <a href="https://github.com/writerslogic/scrivener-mcp/blob/main/LICENSE"> <img src="https://img.shields.io/github/license/writerslogic/scrivener-mcp" alt="license"/> </a> <img src="https://img.shields.io/node/v/scrivener-mcp" alt="node version"/> <a href="https://github.com/writerslogic/scrivener-mcp/issues"> <img src="https://img.shields.io/github/issues/writerslogic/scrivener-mcp" alt="issues"/> </a> <a href="https://github.com/writerslogic/scrivener-mcp/stargazers"> <img src="https://img.shields.io/github/stars/writerslogic/scrivener-mcp" alt="stars"/> </a> <a href="https://mseep.ai/app/writerslogic-scrivener-mcp"> <img src="https://img.shields.io/badge/MseeP-verified-green.svg" alt="MseeP verified"/> </a> <a href="https://glama.ai/mcp/servers/writerslogic/scrivener-mcp"> <img src="https://glama.ai/mcp/servers/writerslogic/scrivener-mcp/badges/score.svg" alt="scrivener-mcp MCP server score"/> </a> </p> <p align="center"> <a href="#install">Install</a> &middot; <a href="#what-you-can-do">What You Can Do</a> &middot; <a href="#all-tools">All Tools</a> &middot; <a href="#guides">Guides</a> &middot; <a href="#contributing">Contributing</a> </p>

Scrivener MCP lets your AI assistant open, read, edit, analyze, and search your Scrivener projects directly. No copy-pasting. No exporting. Just open your novel and start working.

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

Claude: Opens your .scriv project, reads Chapter 12, runs pacing analysis. The first half moves well with short, tense paragraphs. The middle section slows considerably -- the three-page internal monologue starting at paragraph 14 stalls the momentum you built in the confrontation scene. Consider cutting it to a single paragraph and moving the backstory to Chapter 8 where Elena is first introduced.

Works with Claude Desktop, Claude Code, VS Code (Copilot/Continue), Cursor, and any MCP-compatible client. Scrivener 3 on macOS, Windows, and Linux.

What You Can Do

Manage Your Manuscript

Open any Scrivener project and work with it naturally. Read chapters, create new scenes, reorganize the binder, update synopses -- all through conversation.

You: Create a new scene called "The Reveal" after Chapter 5, and move the old epilogue to the trash.

Analyze Your Writing

Get detailed feedback on readability, pacing, style, dialogue quality, and emotional arc. Not generic advice -- analysis grounded in your actual prose.

You: Analyze Chapter 3. Is the pacing too slow?

Claude: Readability is good (Flesch-Kincaid grade 8.2), but pacing flags:

  • 4 consecutive paragraphs of internal monologue (lines 45-78) with no action or dialogue
  • The scene is 3,200 words with only 2 scene breaks -- your other chapters average 4
  • Filter word density is 2x your manuscript average ("felt", "seemed", "noticed") Specific suggestions: ...

Enhance Your Prose

Apply targeted improvements: eliminate filter words, strengthen verbs, vary sentence structure, add sensory details, convert telling to showing, tighten dialogue, adjust pacing.

You: Eliminate the filter words in Chapter 7 and strengthen the verbs.

Track Characters and Plot

Store character profiles, plot threads, and style guides that persist with your project. The AI remembers your characters across sessions.

You: Save a character profile for Marcus: retired detective, cynical but fair, walks with a limp from an old injury, speaks in clipped sentences.

Later...

You: Check if Marcus is consistent across all chapters.

Claude: Found an inconsistency: Marcus walks "briskly" in Chapter 9 (line 34), but his limp is referenced in Chapters 2, 5, and 11. Also, his dialogue in Chapter 4 uses long flowing sentences, which contradicts the "clipped sentences" note in his profile.

Search by Meaning

Find passages by what they're about, not just keyword matching. "Find scenes where the protagonist feels isolated" works even if the word "isolated" never appears. Powered by the Holographic Memory System -- works offline, no API key needed.

You: Find all scenes where Elena and Marcus are alone together.

Track Relationships

Store and query relationships between characters, locations, themes, and plot threads. No Neo4j required -- relationships live in the semantic memory engine and persist with your project.

You: Who is connected to Marcus? What plot threads involve the lighthouse?

Compile and Export

Combine chapters into a single manuscript with configurable formatting, separators, and structure preservation.

All Tools

45 tools organized by workflow. To keep token usage low, tools load progressively -- project tools at startup, document and search tools when you open a project, and the rest on demand (your AI client activates them automatically). Set SCRIVENER_MCP_EAGER_TOOLS=1 to load everything at once.

<details> <summary><strong>Project</strong> -- open, browse, manage</summary>
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
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)
</details> <details> <summary><strong>Documents</strong> -- read, write, create, organize</summary>
ToolWhat it does
get_document_infoMetadata for one document (title, type, word count, synopsis, label, status)
read_documentRead content; format: "formatted" for rich text, offset/limit to page long docs
write_documentReplace a document's content (atomic, with pre-write backup)
create_documentCreate a new text document or folder
update_documentChange title and/or metadata (synopsis, notes, label, status, custom fields)
move_documentReorganize within the binder
delete_documentMove to trash (reversible)
</details> <details> <summary><strong>Search</strong> -- find content, passages, and mentions</summary>
ToolWhat it does
searchKeyword/full-text search; field: "title" for titles, scope: "trash" for trash
semantic_searchFind passages by meaning using embeddings, with similarity scores
find_mentionsLocate every occurrence of a specific name or term, with context
list_trashList trashed documents
restore_documentRestore a document from trash
read_annotationsRead a document's comments and footnotes
</details> <details> <summary><strong>Analysis</strong> -- quality, consistency, structure</summary>
ToolWhat it does
analyze_documentAI writing analysis; focus with aspects (structure, style, pacing, themes...)
check_consistencyProject-wide continuity check; scope for plot, characters, or timeline
analyze_writing_styleStyle-focused analysis
check_plot_consistencyPlot-thread consistency check
suggest_improvementsAI-generated improvement suggestions
enhance_contentSuggest a specific improvement to a document
generate_contentGenerate new prose from a prompt and context
set_writing_goalSet a word-count goal (daily, weekly, or whole project) with an optional target date
get_writing_goalsList goals with progress -- percent complete, words remaining, on-pace status
set_writing_preferencesSet author preferences (tone, complexity, length, POV, style guide) that steer AI output
get_writing_preferencesShow current preferences plus feedback insights and suggestions
collect_feedbackRecord a rating/comment on an AI operation to inform those insights

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

</details> <details> <summary><strong>Compile & Export</strong> -- assemble and ship the manuscript</summary>
ToolWhat it does
compile_documentsCombine documents with formatting; mode: "intelligent" for AI-optimized output
export_projectWrite the manuscript to disk in a target format
get_statisticsProject-level word/document/character counts
generate_marketing_materialsDraft synopsis, query letter, pitch, and related materials
</details> <details> <summary><strong>Memory</strong> -- persistent project knowledge</summary>
ToolWhat it does
rememberStore information that persists across sessions with the project
recallRetrieve previously stored memory

Memory is stored within each .scriv project and travels with it.

</details> <details> <summary><strong>Relationships</strong> -- entity connections and story graph</summary>
ToolWhat it does
add_relationshipStore a relationship between characters, locations, themes, or plot threads
find_relationshipsQuery entities related to a given character/theme/location
discover_connectionsFind co-occurring entities across the manuscript
character_networkThe character relationship network

Works without Neo4j -- relationships live in the Holographic Memory System and are available immediately. Neo4j adds advanced graph analysis when connected.

</details> <details> <summary><strong>Background Jobs</strong> -- long-running analysis</summary>
ToolWhat it does
queue_document_analysisEnqueue an async analysis of one document; returns a job id
queue_project_analysisEnqueue an async analysis of the whole project
get_job_statusPoll progress/results for a queued job
cancel_jobCancel a queued or running job
</details> <details> <summary><strong>Discovery</strong> -- explore capabilities</summary>
ToolWhat it does
list_skillsList the available tool groups and their tools
use_skillActivate a tool group (most are pre-activated by default)
</details>

Guides

Development

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?

Several Scrivener MCP servers exist. Here's how they compare:

<!-- comparison-start -->
Featurescrivener-mcpjiayunzaphodsdadothers
Document read/write60+ tools29 toolsread-onlybasic
RTF / rich text supportyesnonono
Writing analysisreadability, pacing, style, emotionbasic metricsnono
Content enhancement12 types (filter words, verbs, show-don't-tell…)nonono
Semantic search (offline)vector + analogies + dream modenonono
Character consistency checkyesnonono
Character / plot memorypersistent profiles, plot threads, style guidenonono
Relationship graphsHMS triplets + optional Neo4jnonono
Multi-agent analysisroundtable critique with specialised agentsnonono
Story structure analysisyes (requires Neo4j)nonono
Token optimisationprogressive skill loading, compact JSONnonono
Batch document operationsyespartialnono
Export / compilationyes β€” multiple formatsbasicnono
Windows supportfull path handling + .scrivx discoverypartialnono
Install methodnpm Β· Homebrew Β· Docker Β· Smitherymanual clonemanual clonevaries
Published to npmyes (npm i -g scrivener-mcp)nonono
LicenseAGPL-3.0 / commercial dual-licenseMITβ€”varies
Active developmentweeklystaleoccasionalstale
Community⭐ 30 · 13 forks · 29 issues⭐ ?⭐ 4minimal
<!-- comparison-end -->

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)

License

AGPL-3.0 Β© WritersLogic, Inc.

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

<p align="center"> <a href="https://glama.ai/mcp/servers/writerslogic/scrivener-mcp"> <img src="https://glama.ai/mcp/servers/writerslogic/scrivener-mcp/badges/card.svg" alt="scrivener-mcp MCP server"/> </a> </p> <p align="center"> <a href="https://github.com/writerslogic/scrivener-mcp">GitHub</a> &middot; <a href="https://www.npmjs.com/package/scrivener-mcp">npm</a> &middot; <a href="https://github.com/writerslogic/scrivener-mcp/issues">Issues</a> &middot; <a href="./CHANGELOG.md">Changelog</a> </p>