mcpField
S
Scrivener

Scrivener

本地服务
writerslogic.com生产力69今天更新

关于 Scrivener

Scrivener MCP 将 Scrivener 项目连接到 AI 助手,适用于小说、剧本和手稿的写作与管理。它支持文档编辑、写作分析、语义搜索以及角色和情节追踪,并可通过项目持久化相关记忆。

主要功能

  1. 01读取、编辑和整理项目文档
  2. 02分析节奏、风格与可读性
  3. 03按含义搜索段落
  4. 04追踪角色、情节和关系
  5. 05编译并导出手稿
  6. 06持久化项目记忆

适用场景

  1. 01分析章节节奏并定位拖沓段落
  2. 02创建场景并调整活页夹结构
  3. 03查找包含特定情绪的场景
  4. 04检查角色设定与剧情连续性

MCP 相关

作为 MCP 服务,它向兼容客户端提供 Scrivener 项目管理、文档编辑、搜索和分析工具。语义索引在本地运行;语义搜索的查询解释需要配置 AI 提供方。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"scrivener": {
"command": "npx",
"args": [
"-y",
"scrivener-mcp"
]
}
}
}
启动命令npx -y scrivener-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmscrivener-mcp0.12.0

工具

15

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

Scrivener MCP

Scrivener MCP 徽标

Scrivener 的 MCP 服务:将你的小说、剧本和手稿连接到 Claude、ChatGPT 和任何 AI 助手,支持文档管理、写作分析、内容增强、离线语义搜索,以及角色/情节跟踪。


CI CodeQL OpenSSF Scorecard npm License

安装 · Mac 应用 · 你可以做什么 · 所有工具 · 指南 · 参与贡献


Scrivener MCP 可让你的 AI 助手直接打开、阅读、编辑、分析和搜索 Scrivener 项目。无需导出,也不用来回复制粘贴文本。告诉它要打开哪个项目,然后就可以开始工作。

你: 打开我的小说,分析第 12 章的节奏。

Claude: 打开 .scriv 项目,阅读第 12 章,并进行节奏分析。 前半部分进展顺畅,但中段停滞了——从第 14 段开始的一段三页内心独白,破坏了你在对峙场景中营造的势头。可以考虑将其缩减为一段,并把背景故事移到第 8 章。

适用于 Claude Desktop、Claude Code、VS Code(Copilot/Continue)、Cursor,以及任何兼容 MCP 的客户端。支持 macOS、Windows 和 Linux 上的 Scrivener 3。已作为 io.github.writerslogic/scrivener-mcp 收录于 官方 MCP Registry。

安装

Mac 应用:Draftbridge for Scrivener,$4.99

不熟悉终端? Draftbridge for Scrivener 是一款开箱即用的 Mac 应用。它会查找你的 AI 应用——Claude Desktop、BoltAI、Cursor、VS Code、LM Studio、Raycast、Claude Code——一键将 Scrivener MCP 连接到每个应用,显示你的项目,并在应用更新后修复连接。无需终端、Node.js 或设置文件。一次性支付 $4.99,最多支持 3 台 Mac,由 Apple 签名并公证。

Draftbridge 显示已连接的 Claude Desktop 和 BoltAI,以及找到的 Scrivener 项目   Draftbridge 购买窗口

此处的服务、设置工具和 Claude Desktop 扩展仍免费且开源。该应用为闭源;费用用于提供经过公证的构建版本并支持开发。请参阅 Mac 安装指南和 FAQ。报告应用问题时,请使用 mac-app 标签。

免费:Claude Desktop 扩展或命令行

想自己动手?.mcpb 扩展(仅限 Claude Desktop)和下面的终端设置都可以免费完成同样的操作。

在终端中运行:

或者,在终端中运行:

npm install -g scrivener-mcp

重启 Claude Desktop 即可使用。其他客户端还需多执行一步:

npx scrivener-setup

此命令会查找 Claude Desktop、Claude Code、Cursor、VS Code、LM Studio、BoltAI 和 Raycast,并为你配置它们,然后确认服务可以启动。Mac 上没有 Node.js?请参阅 Mac 安装指南。若要手动设置 Claude Code:运行 claude mcp add -s user scrivener -- npx scrivener-mcp,然后重启它(或运行 /mcp)。

其他安装方式

Smithery

npx -y @smithery/cli install scrivener-mcp --client claude

npx,无需安装

npx scrivener-mcp

或者直接将其添加到 Claude Desktop 的配置中:

{
  "mcpServers": {
    "scrivener": { "command": "npx", "args": ["scrivener-mcp"] }
  }
}

从 GitHub 安装

npm install -g writerslogic/scrivener-mcp              # latest main
npm install -g writerslogic/scrivener-mcp#v0.12.0       # a specific release

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

其他 MCP 客户端:将其指向 npx scrivener-mcp,并将其作为 stdio 服务。

可选:AI 驱动的功能

文档管理、确定性分析、关键词搜索和项目记忆无需 API 密钥即可使用。写作分析、生成、优化和语义搜索则需要 API 密钥,可使用 Anthropic、OpenAI 或 OpenRouter。设置多个密钥后,Claude 默认处理聊天;可通过 AI_PROVIDER=openai 或 AI_PROVIDER=openrouter 指定其他服务提供商(OpenRouter 默认使用 anthropic/claude-sonnet-4.6,可通过 OPENROUTER_MODEL 更改)。如果当前服务提供商出现账户级错误(密钥无效、余额不足或服务中断),服务会尝试使用你配置的下一个服务提供商。如果 MCP 客户端支持采样,基于聊天的功能也可以通过客户端自身的模型运行,无需单独的密钥。语义索引始终通过 Holographic Memory System 在本地运行;只有 semantic_search 的查询解析需要服务提供商。

密钥会自动从以下位置读取:

  • ANTHROPIC_API_KEY / OPENAI_API_KEY / OPENROUTER_API_KEY
  • ~/.env 或 ~/.scrivener-mcp/.env
  • ~/.anthropic/key、~/.openai/key、~/.openrouter/key
  • macOS 钥匙串(anthropic-api-key / openai-api-key / openrouter-api-key)
security add-generic-password -s anthropic-api-key -a anthropic -w sk-ant-your-key-here   # Keychain
export ANTHROPIC_API_KEY="sk-ant-..."                                                      # or export it directly
## 你可以做什么

首先打开一个项目。该服务与 Scrivener 应用本身没有关联,也看不到其中打开的内容——请说 “打开我位于 ~/Documents/My Novel.scriv 的 Scrivener 项目”,或者如果你不知道路径,请说 “查找我的 Scrivener 项目”。在 macOS 上,说 “使用我在 Scrivener 中打开的项目” 也可以(首次使用时,macOS 会询问是否允许控制 Scrivener)。每次对话只需执行一次。如果项目也在 Scrivener 中打开且尚未保存,请先在那里保存或关闭,否则两边可能会相互覆盖。

管理你的手稿。 阅读章节、创建场景、重新整理活页夹、更新摘要——都可以通过对话完成。“在第 5 章后创建一个名为‘揭晓真相’的新场景,并把旧的尾声移到废纸篓。”

分析你的写作。 可读性、节奏、风格、对话质量、情感弧线——分析基于你的实际原文,而非泛泛而谈。询问某章的节奏是否不对,就能获得具体分析:哪些段落拖沓、该场景与其他章节相比如何、过滤词密度是否高于你自己的平均值。

润色你的原文。 有针对性地修改:删减过滤词、强化动词、变换句式、添加感官细节、化叙述为描写、精简对话、调整节奏。

追踪角色和情节。 角色档案、情节线索和风格指南会随项目跨会话保存。为某个角色保存一次档案;数月后进行一致性检查时,就能发现矛盾——例如不符合角色特点的对话,或消失了一整章的跛行设定。

按含义搜索。 即使场景中从未出现“孤立”这个词,也可以搜索“找出主人公感到孤立的场景”。索引和相似度评分通过 Holographic Memory System 在本地运行;semantic_search 还需要配置 AI 提供商来解读查询并说明结果。

追踪关系。 查询角色、地点、主题和情节线索之间的关联。无需 Neo4j——关系存储在语义记忆引擎中,并随项目保存;如果你安装了 Neo4j,它还能提供更深入的图分析。

编译和导出。 将章节合并成一份手稿,同时保留你自己的格式和结构。可直接导出为 Markdown、HTML 或 JSON,也可将 DOCX、EPUB 或 PDF 写入磁盘。

所有工具

67 个工具,按工作流组织。为降低令牌用量,工具会逐步加载——启动时加载项目工具,打开项目后加载文档和搜索工具,其余工具按需加载。设置 SCRIVENER_MCP_EAGER_TOOLS=1 即可一次性加载所有工具。

Project -- 打开、浏览、管理 | 工具 | 功能 | |------|-------------| | `open_project` | 打开一个 .scriv 项目(接受 .scriv 文件夹或 .scrivx 文件),并将其设为当前项目 | | `discover_projects` | 在常见位置扫描 Scrivener 项目,适用于不知道项目路径的情况 | | `detect_open_project` | 检测 Scrivener 应用(macOS)中当前打开的项目,无需提供路径 | | `get_structure` | 浏览资料夹层级(文件夹、文档、字数) | | `refresh_project` | 外部编辑后从磁盘重新加载 | | `close_project` | 关闭当前项目并写入待处理的更改 | | `verify_project_integrity` | 以只读方式扫描结构问题(UUID 缺失或重复、内容无法读取) | | `get_compile_settings` | 读取项目的编译格式和分类体系——标签/状态(含颜色)、集合、章节类型 | | `get_manuscript_briefing` | 一份“我现在进展如何?”概览:字数与目标对比(目标完成百分比)、文档/状态/标签数量、最长和最短的文档 | | `list_snapshots` | 列出某个文档或整个项目的 Scrivener 快照(标题、日期) | | `read_snapshot` | 以纯文本形式读取快照内容,并显示字数 | | `compare_snapshot` | 将快照与当前文档(或另一个快照)进行比较:新增/删除的段落和字数净变化 | | `create_snapshot` | 在编辑前创建文档的 Scrivener 原生快照(可从 Scrivener 自带的快照浏览器还原) |
文档 -- 读取、写入、创建、整理
工具功能
get_document_info获取单个文档的元数据(标题、类型、字数、概要、标签、状态)
read_document读取内容;使用 format: "formatted" 获取富文本,使用 offset/limit 分页读取较长文档
write_document替换文档内容(原子操作,写入前备份)
create_document创建新的文本文档或文件夹
update_document更改标题和/或元数据(概要、备注、标签、状态、自定义字段)
move_document在资料夹中重新整理
delete_document移至废纸篓(可撤销)
搜索 -- 查找内容、段落和提及
工具功能
search关键词/全文搜索;使用 field: "title" 搜索标题,使用 scope: "trash" 搜索废纸篓
semantic_search使用本地 HMS 索引和由提供方支持的查询解析,按含义查找段落,并提供相似度评分
find_mentions查找特定名称或术语的所有出现位置,并提供上下文
list_trash列出已移至废纸篓的文档
restore_document从废纸篓还原文档
read_annotations读取文档的评论和脚注
分析 -- 质量、一致性、结构 | 工具 | 功能 | |------|-------------| | `analyze_document` | AI 写作分析;使用 `aspects` 聚焦分析内容(结构、风格、节奏、主题等) | | `check_consistency` | 检查整个项目的连贯性;使用 `scope` 指定情节、角色或时间线 | | `analyze_writing_style` | 专注于风格的分析 | | `check_plot_consistency` | 检查情节线索的一致性 | | `suggest_improvements` | 生成 AI 改进建议 | | `enhance_content` | 为文档提出一项具体的改进建议 | | `generate_content` | 根据提示词和上下文生成新文本 | | `set_writing_goal` | 设置字数目标(日、周或整个项目),并可选择指定目标日期 | | `get_writing_goals` | 列出目标及进度——完成百分比、剩余字数和进度是否符合计划 | | `set_writing_preferences` | 设置作者偏好(语气、复杂度、篇幅、视角、风格指南),以引导 AI 输出 | | `get_writing_preferences` | 显示当前偏好,以及反馈洞察和建议 | | `collect_feedback` | 记录对 AI 操作的评分或评论,为这些洞察提供参考 | | `analyze_craft_local` | 离线生成单篇文档的可读性、语法、句法张力、对话和词频报告(叙事视角,不调用 AI) | | `check_continuity_local` | 离线检查整部手稿的时间线和世界状态是否连贯 | | `analyze_foreshadowing_local` | 离线追踪不同场景中的铺垫与呼应 | | `measure_voice_drift_local` | 比较角色较早和较晚的对话,检查语气是否偏移 | | `analyze_opening_local` | 离线评估开篇的吸引力、清晰度和类型契合度 | | `check_style_local` | 对单篇文档进行逐行编辑,检查副词、过滤词、模糊表达、陈词滥调、被动语态、名词化表达和个人习惯用语,并标出行与列(bluepencil,不调用 AI) | | `find_repetition_local` | 查找回响词(在指定范围内再次出现的词)和重复短语,并标出两处位置 | | `analyze_rhythm_local` | 分析句长分布、单调段落、过长句子和重复的句首 | | `analyze_dialogue_tags_local` | 分析对话占比,并将每句引号内的话语标记分类为普通、花哨、带副词修饰或未标记 | | `manuscript_style_report_local` | 统计整部手稿中各文档的风格密度,计算按词数加权的均值并找出异常值 |

改进类型: eliminate-filter-words、strengthen-verbs、vary-sentences、add-sensory-details、show-dont-tell、improve-flow、enhance-descriptions、strengthen-dialogue、fix-pacing、expand、condense、rewrite

编译与导出 -- 汇编并交付手稿
工具功能
compile_documents合并文档;mode: "structured" 会编译 Draft 文件夹,以 binder 层级作为标题,并遵循“Include in Compile”设置(不使用 AI);mode: "intelligent" 则生成经过 AI 优化的输出
export_project将手稿写入磁盘——可导出为 Markdown、HTML、内嵌 JSON,或作为文件导出为 DOCX、EPUB、PDF
get_statistics统计项目级别的字数、文档数和字符数
generate_marketing_materials起草梗概、投稿信、推介文案及相关材料
记忆 -- 持久保存的项目知识
工具功能
remember存储可在项目的多个会话间保留的信息
recall检索先前存储的记忆

记忆存储在各个 .scriv 项目中,并随项目一同保存。

关系 -- 实体关联与故事图谱 | 工具 | 功能 | |------|-------------| | `add_relationship` | 存储角色、地点、主题或情节线之间的关系 | | `find_relationships` | 查询与指定角色、主题或地点相关的实体 | | `discover_connections` | 查找在手稿中共同出现的实体 | | `character_network` | 角色关系网络 | | `get_entity_references` | 双向追踪引用图:文档提及的实体(按 documentId),或提及某个实体的文档(按 entity) | | `find_orphaned_entities` | 列出已登记但没有任何文档提及的角色/地点 | | `suggest_connections` | 根据跨文档共现情况,推荐某份文档可能缺少的实体 |

无需 Neo4j 即可使用——关系存储在 Holographic Memory System 中,可立即使用。文档交叉引用工具完全确定(精确匹配完整单词,不使用 AI),无需外部服务;连接 Neo4j 后可进行高级图分析。

后台任务 -- 长时间运行的分析
工具功能
queue_document_analysis将单篇文档的异步分析加入队列;返回任务 ID
queue_project_analysis将整个项目的异步分析加入队列
get_job_status轮询已排队任务的进度/结果
cancel_job取消已排队或正在运行的任务
发现 -- 探索功能
工具功能
list_skills列出可用的工具组及其工具
use_skill激活工具组(大多数工具组默认已激活)

指南

要求

  • Node.js 18+
  • Scrivener 3 项目文件(.scriv)
  • macOS、Windows 或 Linux
  • 可选:用于调用服务商提供的 AI 功能的 Anthropic、OpenAI 或 OpenRouter API 密钥
  • 可选:用于持久化和高级图查询的 Neo4j;核心关系工具无需 Neo4j 即可使用

开发

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

为什么选择这个?

目前有几个 Scrivener MCP 服务。以下功能声明来自各项目自己的文档、已发布的软件包和宣传的工具,最近一次重新查阅时间为 2026-10-22;星标数、分支数、活动情况和已发布版本于 2026-10-26 更新。“否”表示文档中未说明——不一定意味着无法通过已连接的 AI 客户端实现。

功能scrivener-mcpjiayunTwelveTakeScrivener Assistantricopiconezaphodsdad
公开的 MCP 工具573022381810
手稿访问读写读写读写只读;写入旁路数据/元数据默认只读;可选择启用内容/笔记/梗概写入只读
RTF 处理格式化读取;保留保真度的片段写入读取/写入文档内容读取/写入文档内容将 RTF 转换为文本;手稿只读将 RTF 转换为文本进行读取;受快照保护的内容写入将 RTF 转换为文本;只读
内置写作分析可读性、节奏、风格、情感、AI 评论可读性、风格、情绪倾向连贯性对比由 Agent 驱动的五点评审工作流无专用分析工具无专用分析工具
内容生成/增强生成 + 12 种针对性增强类型否否头脑风暴/草稿 Agent 工作流否否
本地语义检索HMS 索引和相似度搜索否否否否否
连贯性/项目记忆持久记忆 + 一致性检查持久笔记 + 一致性检查提及/描述对比世界设定集、故事状态、角色、地点、评审历史无持久记忆无持久记忆
关系工具持久关系、关系网络、引用图;可选 Neo4j否否可由人工编辑的关系数据否否
令牌优化渐进式技能加载、紧凑输出、分页读取无文档说明的同类功能无文档说明的同类功能无文档说明的同类功能按范围读取资料夹/章节按范围提供概览/读取工具
导出/编译Markdown、HTML、JSON、DOCX、EPUB、PDF编译 + 导出完整草稿PDF保存 AI 草稿;未见手稿导出的说明否否
Windows 支持是是(预构建二进制文件)是未说明未说明是
安装npm、Homebrew、Docker、Smithery 或 Draftbridge Mac 应用crates.io、预构建二进制文件或源代码npm 软件包(已弃用)MCPB 或源代码源代码 / uv源代码 / pip install -e
许可证AGPL-3.0 / 商业双重许可MITMITMIT未声明MIT
仓库/软件包状态每周更新;npm 0.13.0偶有更新已从 npm 移除偶有更新偶有更新;无发行版偶有更新;无发行版
社区⭐ 69 · 23 个分支⭐ 7源代码仓库不可用⭐ 1⭐ 0⭐ 5 · 1 个分支

数量和功能声明可能会发生变化。请通过链接查看各项目自己的最新文档。此表由 docs/comparison.yml 生成——请在该文件中修改声明,而不是在此处修改。

并非 MCP 服务的替代方案

Scrivener 还可以同步到外部文件夹,将每份文档导出为 RTF 或纯文本,之后任何通用文件访问 MCP 服务(例如 @modelcontextprotocol/server-filesystem)都可以读取和写入这些文件。

它免费,而且现在就能使用。你失去的是所有与实际项目相关的内容——活页夹层级、元数据、标签和状态、快照、编译设置、RTF 格式——并且编辑会落在同步文件夹中,而非项目本身;因此,Scrivener 会在下次同步时调和不当编辑,而不是在编辑发生前将其拦截。这适合偶尔只读地寻求文字方面的帮助;如果你希望结构经得起往返同步,则不适合。

贡献

欢迎各种规模的贡献。请查看 问题跟踪器 中标有 good first issue 的问题,或参阅贡献指南了解开发环境设置。

尤其欢迎在以下方面提供帮助:

  • 测试覆盖率(#18)
  • Windows 测试与路径处理
  • Scrivener 2 兼容性测试
  • 改进文档(#25)

安全

发现漏洞?请私下报告——详见 SECURITY.md。

许可证

AGPL-3.0 © WritersLogic, Inc.

Scrivener 是 Literature & Latte Ltd. 的商标。本项目独立开发,与 Literature & Latte 无关联,也未获得其认可或赞助。

个人使用和开源项目可免费使用。专有集成可申请商业许可证。详情请参阅 COMMERCIAL_LICENSE.md。


WritersLogic 还推出了 WritersProof:它会记录你写作时的击键、停顿和修改,然后将这一过程封存为防篡改、可独立验证的证明,证实作品是你亲自写的——面对 AI 相关指控,用证据而非口头声明来解决。

scrivener-mcp MCP 服务

GitHub · npm · 问题 · 更新日志

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。