scrivener-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_projectsA | Find Scrivener projects on your computer. Searches common locations (Documents, Dropbox, iCloud, etc.) for .scriv folders. Use this to discover available projects, then use open_project to load one. Args: search_path: Optional specific folder to search. If not provided, searches common locations like Documents, Dropbox, iCloud. Returns: List of found Scrivener projects with their paths. |
| open_projectB | Open a Scrivener project. Args: path: Path to the .scriv folder Returns: Confirmation message with project info |
| list_binderA | List the binder structure of the Scrivener project. Shows the hierarchical structure of folders and documents, similar to Scrivener's binder sidebar. Args: folder_path: Optional path to a specific folder to list (e.g., "Neon Syn/Book One"). If not provided, lists the entire binder. Returns: Tree representation of the binder structure with: - š for folders - š for documents - ā for items marked "Include in Compile" |
| read_documentA | Read the content of a specific document. Args: identifier: Can be one of: - Document title (e.g., "Chapter 1") - Full path (e.g., "Neon Syn/Book One/Chapter 01/01") - UUID (e.g., "BA3D0D3E-0BC5-4E4F-AEB4-D7203A5215C4") Returns: The plain text content of the document, with metadata header showing title, path, and word count. |
| search_projectA | Search for text across all documents in the project. Args: query: Text or regex pattern to search for case_sensitive: Whether to match case (default: False) Returns: List of matching documents with excerpts showing the matching lines. |
| get_word_countsA | Get word count statistics for the project or a specific folder. Args: folder_path: Optional path to a specific folder. If not provided, shows stats for the entire manuscript (Draft folder). Returns: Word count breakdown by folder/chapter. |
| read_chapterA | Read a specific chapter or section of the manuscript. Reads all documents within the specified chapter/folder, in binder order. ā ļø For large projects, always read one chapter at a time to avoid timeouts. Use scan_project first to see available chapters. Args: chapter: Chapter name or path (e.g., "Chapter 01", "Book One/Chapter 05") include_titles: Whether to include document/folder titles as headings Returns: The chapter text with all its scenes/documents. |
| get_synopsisA | Get the synopsis (short summary) of a document. In Scrivener, the synopsis is a brief description shown on index cards in corkboard view. Useful for understanding scene/chapter summaries. Args: identifier: Document title, path, or UUID Returns: The synopsis text, or a message if no synopsis exists. |
| write_synopsisA | Write the synopsis (index card text) for a document. The project must be CLOSED in Scrivener, otherwise this fails. Overwrites any existing synopsis. No snapshot is taken. Args: identifier: Document title, path, or UUID synopsis: The synopsis text to write Returns: Confirmation message, or an error description. |
| get_notesA | Get the document notes (inspector notes) for a document. In Scrivener, document notes appear in the inspector panel and contain author notes, research, reminders, etc. Args: identifier: Document title, path, or UUID Returns: The notes text, or a message if no notes exist. |
| scan_projectA | Scan the project and return a structured overview for analysis. Returns chapter titles, word counts, synopses (if any), and opening lines. This gives you enough context to understand the whole project without loading every document into memory. Use this to get a bird's eye view, then use read_document or read_chapter(chapter="...") to dive deeper into specific sections. Args: folder_path: Optional path to scan a specific folder (e.g., "Book One"). If not provided, scans the entire Draft/Manuscript folder. Returns: Structured overview with chapter summaries, word counts, and opening lines. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Tools are mostly distinct: read_document and read_chapter overlap somewhat (one reads a single document, the other an entire chapter), but descriptions clarify the difference. scan_project also overlaps with get_word_counts and list_binder, yet it provides a unique high-level overview, reducing confusion.
All tool names follow a consistent verb_noun pattern (open_project, list_binder, read_document, get_synopsis, etc.). While verbs vary (open, list, read, get, search, scan), the structure is uniform and predictable.
With 11 tools, the server is well-scoped for a Scrivener project interaction tool. Each tool covers a meaningful aspect of browsing, reading, searching, and managing project metadata without unnecessary bloat.
The tool set strongly favors reading and analysis, with only write_synopsis as a write operation. It lacks document editing, creation, deletion, or renaming, which are significant gaps for a writing application. Core read/search/scan workflows are covered, but the write surface is very limited.