
writerslogic/scrivener-mcp
Developer toolsConnect your Scrivener projects to Claude, ChatGPT, and other AI assistants
Обзор
Connect your Scrivener projects to Claude, ChatGPT, and other AI assistants
README
Scrivener MCP
Connect your Scrivener projects to Claude, ChatGPT, and other AI assistants
Install · 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 copy-pasting. No exporting. Tell your assistant which project to open, 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. Listed on the official MCP Registry as io.github.writerslogic/scrivener-mcp.
Install
Pick the method that works for you. Most auto-configure Claude Desktop on install. Claude Code and other clients need one extra step – see Claude Code below.
npm (recommended)
npm install -g scrivener-mcp
Restart Claude Desktop. Done.
Claude Code
Installing the npm package does not register the server with Claude Code – the install-time auto-config only writes Claude Desktop’s config. After installing, register the server:
npx scrivener-setup
This detects Claude Code (along with Claude Desktop and Cursor) and writes the config for you. To register it manually instead:
claude mcp add -s user scrivener -- npx scrivener-mcp
Then restart Claude Code (or run /mcp to reconnect) and Scrivener MCP appears in the server list. Drop -s user to scope it to the current project instead of all projects.
Smithery
npx -y @smithery/cli install scrivener-mcp --client claude
npx (no install)
Use directly without installing globally:
npx scrivener-mcp
Or add to your Claude Desktop config manually:
{
"mcpServers": {
"scrivener": {
"command": "npx",
"args": ["scrivener-mcp"]
}
}
}
GitHub
Install directly from the repo (latest main):
npm install -g writerslogic/scrivener-mcp
Or a specific release:
npm install -g writerslogic/scrivener-mcp#v0.12.0
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
What You Can Do
First, open a project. The server acts on whatever
.scrivproject you point it at – it has no link to the Scrivener app and can’t see what you have open there. Start a conversation with “Open my Scrivener project at~/Documents/My Novel.scriv” (or “Discover my Scrivener projects” if you don’t know the path), then give your commands. On macOS you can also just say “Use the project I have open in Scrivener” – it detects the open project and opens it (the first time, macOS asks you to allow controlling Scrivener). Do this once at the start of each conversation; the examples below all assume a project is open. If the same project is also open and unsaved in the Scrivener app, save or close it there first to avoid conflicting writes.
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. The project index and similarity scoring run locally through the Holographic Memory System; the current search pipeline also uses your configured AI provider for query interpretation and result explanations, so semantic_search requires a provider.
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. Export the result inline as Markdown, HTML, or JSON, or write a DOCX, EPUB, or PDF file to disk for submission, e-readers, or print.
All Tools
57 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, or calls them directly and the owning skill activates on the fly). Set SCRIVENER_MCP_EAGER_TOOLS=1 to load everything at once.
Guides
- Getting Started – Installation, configuration, your first session
- MCP Client Setup – Copy-paste config for Claude Desktop, Claude Code, Cursor, and VS Code
- Writing with AI – Analysis workflows, enhancement strategies, memory management
- Troubleshooting – Common issues and fixes
- Token Optimization – How the server minimizes context window usage
- Architecture – How the server works, module structure, data flow
- Scrivener Compatibility – Supported Scrivener versions, platforms, and format coverage
- Scrivener File Format – The reverse-engineered
.scrivformat, what we read vs. infer, and safe-modification guidance - Fuzzing – Jazzer.js target and OSS-Fuzz integration details
- Contributing – Development setup, code conventions, adding new tools
Requirements
- Node.js 18+
- 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
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. This comparison is based on each project’s public documentation, published package, and advertised tool surface as of 2026-08-07. “No” means the project does not document that capability; it does not claim the capability is impossible through the connected AI client.
| Feature | scrivener-mcp | jiayun | TwelveTake | Scrivener Assistant | ricopicone | zaphodsdad |
|---|---|---|---|---|---|---|
| Public MCP tools | 57 | 29 | 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 | HMS index and similarity search | 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 | saves AI drafts; no manuscript export documented | no | no | |
| Windows support | yes | yes (prebuilt binary) | yes | not documented | not documented | yes |
| Installation | npm, Homebrew, Docker, Smithery | Cargo or prebuilt binary | 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.12.0 |
weekly activity | discontinued and unmaintained | occasional activity | occasional activity; no releases | occasional activity |
| Community | ⭐ 40 · 14 forks | ⭐ 7 | source repository unavailable | ⭐ 1 | ⭐ 0 | ⭐ 5 · 1 fork |
Counts and feature claims can change. Follow the linked projects for their latest documentation; the maintained comparison source is docs/comparison.yml.
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.
Free for personal use and open-source projects. Commercial license available for proprietary integration. See COMMERCIAL_LICENSE.md for details.
GitHub · npm · Issues · Changelog
Установка
npx scrivener-mcpКонфигурация
{
"mcpServers": {
"scrivener": {
"command": "npx",
"args": ["scrivener-mcp"]
}
}
}