Scrivener MCP server
io.github.writerslogic/scrivener-mcp·v0.12.0·71 starsMCP server for Scrivener: read, write, analyze, and search your manuscripts with AI assistants.
71 stars280 downloads/wk
Reviews
Write oneNobody has reviewed Scrivener yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Scrivener tools (71, 8 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_relationshipRecord a typed, directed relationship between two story entities (e.g. a character
advancedAsync job queue and batch operations
analysisAnalyze writing quality, enhance prose, check consistency, track goals, tune writing preferences
analyze_documentAnalyze the writing quality of a single document and return a summary of readability, pacing,
analyze_writing_styleAnalyze the prose style of one or more text samples — sentence variety, tone, voice,
build_vector_storeBuild search index
cancel_jobwrite actionCancel a queued or running background job by its type and id. Returns whether the
character_networkTHE default tool for "map my characters" / "how do my characters connect": returns the full
check_consistencyScan the whole project for continuity problems and return the issues found: character
check_plot_consistencyScan a set of documents for plot-level inconsistencies — timeline conflicts, contradicted
close_projectClose the currently open project, flush any pending memory/auto-save state, and clear the
collect_feedbackRecord feedback on an AI operation (e.g. "enhance_content") so it feeds the insights returned
compare_snapshotCompare a document snapshot against the current document text, or against another snapshot
compilationCompile manuscripts, export, statistics
compile_documentsCompile the project's documents into a single continuous manuscript in the requested format
create_documentwrite actionCreate a new text document or folder in the binder and return its new id. Optionally set the
create_snapshotwrite actionTake a Scrivener-native snapshot of a document's current content, restorable from Scrivener's
delete_documentwrite actionMove a document to the project trash. This is reversible: the document can be listed with
detect_open_projectDetect which Scrivener project the user currently has open in the desktop Scrivener app, so
discover_connectionsSurface previously unrecorded relationships across the project by analyzing entity
discover_projectsScan common locations (Documents, Desktop, and iCloud Mobile Documents) for Scrivener
documentsRead, write, create, delete, move, and rename documents
enhance_contentProduce an AI-improved version of a document's text for a chosen goal (fix grammar, refine
export_projectExport the whole project to a publishing/interchange format. Markdown, HTML, and JSON
find_analogiesFind analogies (A:B :: C:?)
find_mentionsFind every occurrence of a specific name or term (a character, place, or keyword) across all
find_orphaned_entitiesList registered characters and locations that no document actually mentions — entities added
find_relationshipsQuery the story graph for entities related to a given entity, returning the connected
generate_contentGenerate new prose from a natural-language prompt and return the generated text, optionally
generate_marketing_materialsGenerate a publishing/marketing artifact from the manuscript — a synopsis, query letter,
get_compile_settingsReturn the project's compile-format definitions (from Settings/compile.xml) and its
get_document_infoReturn metadata for a single document without its body text: title, type, word count,
get_entity_referencesTrace the reference graph between documents and registered characters/locations, in either
get_job_statusLook up the status and progress of a background job previously started by
get_manuscript_briefingOne "where am I?" snapshot of the whole manuscript: total word count against the project draft
get_queue_statsGet job queue statistics
get_statisticsReturn project-wide statistics: total word and document counts, plus title and author. Use
get_structureReturn the binder hierarchy of the open project: its folders and documents in tree order,
get_writing_goalsList writing goals with computed progress: percent complete, words remaining, and whether each
get_writing_preferencesReturn the current author writing preferences plus feedback insights: how much feedback has
hhm_dreamCreative concept recombination
list_skillsList the available skills (tool groups) — project, documents, search, analysis,
list_snapshotsList the snapshots Scrivener has saved of a project's documents (from the .scriv
list_trashList all documents currently in the project trash, with their ids and titles. Use this to
memoryStore and recall persistent project facts (characters, world, plot, style)
move_documentMove a document or folder to a different parent folder in the binder, optionally at a specific
multi_agent_analysisMulti-agent analysis
open_projectOpen a Scrivener project and make it the active project for this session. Every document,
projectOpen, browse, save, close, and verify Scrivener projects
queue_document_analysisEnqueue a background NLP analysis of one document (readability, entities, sentiment) and
queue_project_analysisEnqueue a background batch analysis across many documents at once and return a job id
read_annotationsReturn the inline comments and footnotes attached to a document, grouped by type. Use this
read_documentRead the text of a single document. By default returns plain text; set format to "formatted"
read_snapshotReturn the text of a single document snapshot. Pass the documentId and the snapshotId from
recallRead back the project's persistent memory: stored characters, world-building, plot threads,
refresh_projectReload the open project from disk, discarding the in-memory cache. Use this when the project
relationshipsEntity relationships, character networks, story graph
rememberStore or update a fact in the project's persistent memory so later tools and sessions stay
restore_documentRestore a trashed document back into the binder, optionally into a specific target folder
searchSearch the open project and return matching documents with relevance-ranked snippets. By
semantic_searchFind passages by meaning rather than exact words, using embeddings over the project, and
set_writing_goalwrite actionCreate or replace the active word-count goal for a cadence (daily, weekly, or whole project),
set_writing_preferencesSet the author writing preferences that shape AI writing output (enhance_content and other
store_chapter_orderwrite actionStore chapter sequence
suggest_connectionsSuggest characters or locations a document might be missing: entities it does not mention
suggest_improvementsGenerate AI writing suggestions for a prompt or a specific document — ideas for revision,
sync_to_neo4jSync relationships to Neo4j
update_documentwrite actionUpdate a document's title and/or its metadata (synopsis, notes, label, status, and custom
use_skillActivate a skill so its tools become available to call. Returns the activated skill's tool
verify_project_integrityScan the open project for structural problems and return a read-only report: binder entries
write_documentwrite actionReplace a document's text with new content, preserving the surrounding Scrivener formatting
Public scan report
scanner v0.1.10 · 2026-11-06 · same rubric, same numbers if you re-run it
- Code scan289 source files scanned15/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Findings (2)
- mediumnpm install lifecycle script present
install.script - mediumnpm install lifecycle script present
install.scriptpackage.json: …"test -n \"$CI\" || npm run build", "postinstall": "node scripts/postinstall.cjs", "un…
How Scrivener compares
Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 75/100
- higher than 45% of 3,443 Web search servers
- Tools
- 71
- the typical Web search server has 5
- Tools that change things
- 11%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 71
- more than 93% of 1,781 Web search servers
- Downloads a week
- 280
- more than 75% of 994 Web search servers with a package
What its tools let an agent do: 55 read · 7 create · 7 change · 2 delete
Install Scrivener in Claude Code, Cursor or VS Code
Runs npx -y scrivener-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add scrivener-mcp -- npx -y scrivener-mcp
What the publisher says
From the Scrivener repository's README, as published. We do not edit it. Read it on GitHub
<!-- repo-header:start -->
Scrivener MCP
The definitive MCP server for Scrivener — connect your novels, screenplays, and manuscripts to Claude, ChatGPT, and any AI assistant. 53 tools: document management, writing analysis, content enhancement, offline semantic search, and character/plot tracking.
<!-- repo-header:end -->
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 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.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Scrivener: common questions
- Is Scrivener MCP server safe?
- Mostly: it is graded B (75/100). Read the Scrivener safety report
- How do I install Scrivener?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Scrivener need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Scrivener maintained?
- The last commit was 12 days ago (2026-11-03). The latest release is v0.12.0.
- What can I use instead of Scrivener?
- Servers from other publishers that do the same job: Reddit Buddy MCP server and Gdelt MCP server.
- How does Scrivener compare with other Web search MCP servers?
- safety score 75/100 (higher than 45% of 3,443 Web search servers); tools 71 (the typical Web search server has 5); tools that change things 11% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Scrivener
Same job from other publishers: the closest match first, then the best rated.
- Reddit BuddySearch, browse, and analyze Reddit; optional posting. Needs existing approved Reddit API access.not reviewedEstablishedA
- GdeltSearch and analyze global news coverage and US TV transcripts via the GDELT Project APIs.not reviewedGrowingA