{"name":"io.github.writerslogic/scrivener-mcp","slug":"writerslogic-scrivener-mcp","title":null,"description":"MCP server for Scrivener: read, write, analyze, and search your manuscripts with AI assistants.","url":"https://mcp.market/server/writerslogic-scrivener-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":42,"stars":61,"forks":20,"downloads_week":104,"last_push_at":"2026-09-21T13:14:44.000Z","license":"AGPL-3.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/writerslogic/scrivener-mcp","website":null,"version":"0.12.0","remotes":[],"packages":[{"registryType":"npm","identifier":"scrivener-mcp","version":"0.12.0","transport":{"type":"stdio"}}],"tools":[{"name":"add_relationship","description":"Record a typed, directed relationship between two story entities (e.g. a character","write_action":false,"price_micros":0,"input_schema":null},{"name":"advanced","description":"Async job queue and batch operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"analysis","description":"Analyze writing quality, enhance prose, check consistency, track goals, tune writing preferences","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_document","description":"Analyze the writing quality of a single document and return a summary of readability, pacing,","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_writing_style","description":"Analyze the prose style of one or more text samples — sentence variety, tone, voice,","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_vector_store","description":"Build search index","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_job","description":"Cancel a queued or running background job by its type and id. Returns whether the","write_action":true,"price_micros":0,"input_schema":null},{"name":"character_network","description":"THE default tool for \"map my characters\" / \"how do my characters connect\": returns the full","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_consistency","description":"Scan the whole project for continuity problems and return the issues found: character","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_plot_consistency","description":"Scan a set of documents for plot-level inconsistencies — timeline conflicts, contradicted","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_project","description":"Close the currently open project, flush any pending memory/auto-save state, and clear the","write_action":false,"price_micros":0,"input_schema":null},{"name":"collect_feedback","description":"Record feedback on an AI operation (e.g. \"enhance_content\") so it feeds the insights returned","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_snapshot","description":"Compare a document snapshot against the current document text, or against another snapshot","write_action":false,"price_micros":0,"input_schema":null},{"name":"compilation","description":"Compile manuscripts, export, statistics","write_action":false,"price_micros":0,"input_schema":null},{"name":"compile_documents","description":"Compile the project's documents into a single continuous manuscript in the requested format","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_document","description":"Create a new text document or folder in the binder and return its new id. Optionally set the","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_snapshot","description":"Take a Scrivener-native snapshot of a document's current content, restorable from Scrivener's","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_document","description":"Move a document to the project trash. This is reversible: the document can be listed with","write_action":true,"price_micros":0,"input_schema":null},{"name":"detect_open_project","description":"Detect which Scrivener project the user currently has open in the desktop Scrivener app, so","write_action":false,"price_micros":0,"input_schema":null},{"name":"discover_connections","description":"Surface previously unrecorded relationships across the project by analyzing entity","write_action":false,"price_micros":0,"input_schema":null},{"name":"discover_projects","description":"Scan common locations (Documents, Desktop, and iCloud Mobile Documents) for Scrivener","write_action":false,"price_micros":0,"input_schema":null},{"name":"documents","description":"Read, write, create, delete, move, and rename documents","write_action":false,"price_micros":0,"input_schema":null},{"name":"enhance_content","description":"Produce an AI-improved version of a document's text for a chosen goal (fix grammar, refine","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_project","description":"Export the whole project to a publishing/interchange format. Markdown, HTML, and JSON","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_analogies","description":"Find analogies (A:B :: C:?)","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_mentions","description":"Find every occurrence of a specific name or term (a character, place, or keyword) across all","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_orphaned_entities","description":"List registered characters and locations that no document actually mentions — entities added","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_relationships","description":"Query the story graph for entities related to a given entity, returning the connected","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_content","description":"Generate new prose from a natural-language prompt and return the generated text, optionally","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_marketing_materials","description":"Generate a publishing/marketing artifact from the manuscript — a synopsis, query letter,","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_compile_settings","description":"Return the project's compile-format definitions (from Settings/compile.xml) and its","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_document_info","description":"Return metadata for a single document without its body text: title, type, word count,","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_entity_references","description":"Trace the reference graph between documents and registered characters/locations, in either","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_job_status","description":"Look up the status and progress of a background job previously started by","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_manuscript_briefing","description":"One \"where am I?\" snapshot of the whole manuscript: total word count against the project draft","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_queue_stats","description":"Get job queue statistics","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_statistics","description":"Return project-wide statistics: total word and document counts, plus title and author. Use","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_structure","description":"Return the binder hierarchy of the open project: its folders and documents in tree order,","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_writing_goals","description":"List writing goals with computed progress: percent complete, words remaining, and whether each","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_writing_preferences","description":"Return the current author writing preferences plus feedback insights: how much feedback has","write_action":false,"price_micros":0,"input_schema":null},{"name":"hhm_dream","description":"Creative concept recombination","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_skills","description":"List the available skills (tool groups) — project, documents, search, analysis,","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_snapshots","description":"List the snapshots Scrivener has saved of a project's documents (from the .scriv","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_trash","description":"List all documents currently in the project trash, with their ids and titles. Use this to","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory","description":"Store and recall persistent project facts (characters, world, plot, style)","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_document","description":"Move a document or folder to a different parent folder in the binder, optionally at a specific","write_action":false,"price_micros":0,"input_schema":null},{"name":"multi_agent_analysis","description":"Multi-agent analysis","write_action":false,"price_micros":0,"input_schema":null},{"name":"open_project","description":"Open a Scrivener project and make it the active project for this session. Every document,","write_action":false,"price_micros":0,"input_schema":null},{"name":"project","description":"Open, browse, save, close, and verify Scrivener projects","write_action":false,"price_micros":0,"input_schema":null},{"name":"queue_document_analysis","description":"Enqueue a background NLP analysis of one document (readability, entities, sentiment) and","write_action":false,"price_micros":0,"input_schema":null},{"name":"queue_project_analysis","description":"Enqueue a background batch analysis across many documents at once and return a job id","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_annotations","description":"Return the inline comments and footnotes attached to a document, grouped by type. Use this","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_document","description":"Read the text of a single document. By default returns plain text; set format to \"formatted\"","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_snapshot","description":"Return the text of a single document snapshot. Pass the documentId and the snapshotId from","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall","description":"Read back the project's persistent memory: stored characters, world-building, plot threads,","write_action":false,"price_micros":0,"input_schema":null},{"name":"refresh_project","description":"Reload the open project from disk, discarding the in-memory cache. Use this when the project","write_action":false,"price_micros":0,"input_schema":null},{"name":"relationships","description":"Entity relationships, character networks, story graph","write_action":false,"price_micros":0,"input_schema":null},{"name":"remember","description":"Store or update a fact in the project's persistent memory so later tools and sessions stay","write_action":false,"price_micros":0,"input_schema":null},{"name":"restore_document","description":"Restore a trashed document back into the binder, optionally into a specific target folder","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Search the open project and return matching documents with relevance-ranked snippets. By","write_action":false,"price_micros":0,"input_schema":null},{"name":"semantic_search","description":"Find passages by meaning rather than exact words, using embeddings over the project, and","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_writing_goal","description":"Create or replace the active word-count goal for a cadence (daily, weekly, or whole project),","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_writing_preferences","description":"Set the author writing preferences that shape AI writing output (enhance_content and other","write_action":false,"price_micros":0,"input_schema":null},{"name":"store_chapter_order","description":"Store chapter sequence","write_action":true,"price_micros":0,"input_schema":null},{"name":"suggest_connections","description":"Suggest characters or locations a document might be missing: entities it does not mention","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_improvements","description":"Generate AI writing suggestions for a prompt or a specific document — ideas for revision,","write_action":false,"price_micros":0,"input_schema":null},{"name":"sync_to_neo4j","description":"Sync relationships to Neo4j","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_document","description":"Update a document's title and/or its metadata (synopsis, notes, label, status, and custom","write_action":true,"price_micros":0,"input_schema":null},{"name":"use_skill","description":"Activate a skill so its tools become available to call. Returns the activated skill's tool","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_project_integrity","description":"Scan the open project for structural problems and return a read-only report: binder entries","write_action":false,"price_micros":0,"input_schema":null},{"name":"write_document","description":"Replace a document's text with new content, preserving the surrounding Scrivener formatting","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-24T21:42:19.821Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:42:19.806Z","components":{"code":{"score":15,"max":25,"notes":["289 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …\"test -n \\\"$CI\\\" || npm run build\", \"postinstall\": \"node scripts/postinstall.cjs\", \"un…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"scrivener-mcp","version":"0.12.0","found":true,"license":"AGPL-3.0-only","hasInstallScripts":true,"dependencyCount":23,"publishedAt":"2026-07-25T19:59:54.002Z","repositoryUrl":"git+https://github.com/writerslogic/scrivener-mcp.git","weeklyDownloads":104}],"repo":{"found":true,"owner":"writerslogic","repo":"scrivener-mcp","archived":false,"pushedAt":"2026-09-21T13:14:44Z","stars":61,"forks":20,"openIssues":11,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/257062916?v=4","ownerCreatedAt":"2026-01-25T05:40:48Z","license":"AGPL-3.0"},"icon":{"url":null,"source":"none"},"presence":{"stars":61,"forks":20,"downloadsWeek":104,"license":"AGPL-3.0","lastPushAt":"2026-09-21T13:14:44.000Z","score":42}}}},"grade_history":[],"reviews":[]}