# dsh-novel-writer — 网文写作体检 (npm · dsh-novel-writer)

Offline toolkit: 18 tools for Chinese web-novel style, plot-thread and continuity audits.

- Trust score: 76/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-25

## Components

- npm · `dsh-novel-writer`: 76/100 (this document), [markdown](https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer.md), [page](https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer)

## Channel facts

- Registry: `npm`
- Package: `dsh-novel-writer`
- Version: `5.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-25.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 7 of 19 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4297 tokens (~238/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the dsh-novel-writer — 网文写作体检 MCP server?

dsh-novel-writer — 网文写作体检 runs locally as an npm package, launched with npx -y dsh-novel-writer. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add siweina-dsh-novel-writer -- npx -y dsh-novel-writer
```

### Cursor

```json
{
  "mcpServers": {
    "siweina-dsh-novel-writer": {
      "command": "npx",
      "args": [
        "-y",
        "dsh-novel-writer"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "siweina-dsh-novel-writer": {
      "command": "npx",
      "args": [
        "-y",
        "dsh-novel-writer"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add siweina-dsh-novel-writer -- npx -y dsh-novel-writer
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "siweina-dsh-novel-writer": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "dsh-novel-writer"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add siweina-dsh-novel-writer --command npx --arg -y --arg dsh-novel-writer
```

### Hermes

```yaml
mcp_servers:
  siweina-dsh-novel-writer:
    command: "npx"
    args: ["-y", "dsh-novel-writer"]
```

### Netclaw

```json
{
  "McpServers": {
    "siweina-dsh-novel-writer": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "dsh-novel-writer"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add siweina-dsh-novel-writer -t stdio -c npx -a -y dsh-novel-writer
```

### Other

```json
{
  "mcpServers": {
    "siweina-dsh-novel-writer": {
      "command": "npx",
      "args": [
        "-y",
        "dsh-novel-writer"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-25 (score 76, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-22 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-20 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-18 (score 73, +11)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.30 → unverified
- [security improvement] Known CVEs: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → 0.84
- [functional] First check of Schema quality: unverified
- [functional] Package version: 5.0.0 → 5.1.1

### 2026-09-17 (score 62, −10)

- [security regression] Stability: 0.27 → unverified
- [security regression] Known CVEs: pass → unverified
- [security regression] Tool safety: pass → unverified
- [functional regression] Schema quality: 204 → 233
- [functional regression] Capabilities: pass → unverified
- [functional regression] Dependency health: 0.84 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 4.3.0 → 5.0.0
- [functional] Package version: 4.3.0 → 4.3.1

### 2026-09-15 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 71, +15)

- [security improvement] Malware scan: unverified → pass

## MCP tools (18)

### `novel_books` (~57 tokens)

列出小说章节库中的全部作品（novels 文件夹下的子目录），含章节数与总字数。**只读**。

Input parameters:

- `root` (string): 章节库根目录（含 novels 子目录）。

### `novel_chapters` (~87 tokens)

列出某部作品的全部章节：章号、标题、字数、行数、更新时间。**只读**；若存在同章号多文件，列表末尾会给出撞号分组提示。

Input parameters:

- `book` (string, required): 书名（novels 下的子目录名）。
- `root` (string): 章节库根目录。

### `novel_read` (~147 tokens)

阅读某部作品的某个章节，返回带行号的正文（含字数统计）。可用 offset/limit 分段读取长章节。**只读**：不写任何文件、不改动任何数据。

Input parameters:

- `book` (string, required): 书名。
- `chapter` (string, required): 章节标识：章号（如 1 或 01）、文件名（第01章.md）或标题子串。
- `limit` (integer): 最多返回行数。默认 400。
- `offset` (integer): 起始行号，从 1 开始。默认 1。
- `root` (string): 章节库根目录。

### `novel_keywords` (~109 tokens)

统计某部作品（或单个章节）中出现频率较高的关键词：中文相邻二字/三字词组与英文词（novel_keywords 输出不含单字）。

Input parameters:

- `book` (string, required): 书名。
- `chapter` (string): 可选。只统计该章节；省略则统计全书。
- `root` (string): 章节库根目录。
- `top` (integer): 返回的关键词数量。默认 20。

### `novel_new_chapter` (~117 tokens)

为某部作品创建新章节文件（默认自动取下一个章号）。可指定标题与初始正文。

Input parameters:

- `book` (string, required): 书名。
- `chapter` (integer): 可选。显式指定章号；省略则取现有最大章号 + 1。
- `content` (string): 可选。章节初始正文。
- `root` (string): 章节库根目录。
- `title` (string): 可选。章节标题，会写入 Markdown 一级标题。

### `novel_chapter_brief` (~232 tokens)

开写包：一次调用装配出「写这一章需要的一切」——上一章结尾原文（承接口）、本章大纲方向、相关人物卡、待回收伏笔（含埋设距离）、世界观用语规范、六维风格基线、原著锚段与句式骨架、本章禁用清单与开写清单。只读不写盘（仅复用既有分析缓存）。**写新章前应先调它**，而不是逐个工具去翻。

Input parameters:

- `book` (string, required): 书名。
- `budget` (string): 材料档位：compact（默认，各字段按小额截断以省上下文）/ full（锚段与骨架给全）。
- `chapter` (string): 目标章：next（默认，= 当前最大章号 + 1，文件可尚未创建）/ 章号 / 文件名 / 标题子串。
- `root` (string): 章节库根目录。

### `novel_import` (~252 tokens)

批量导入原稿件：扫描文件夹自动识别书名/章号并分组，可复制/移动到 novels/<书名>/ 分类存放（scan 预览 / apply 执行）。

Input parameters:

- `book` (string): apply 时可选：强制把所有（或 files 指定的）文件归入该书名，用于合并异名同书，或把未分类文件指定归属。
- `files` (array): apply 时可选：只处理这些文件（相对 src 的路径）。省略则处理全部扫描到的文件。
- `mode` (string): scan=只分析并返回分组建议（默认，不写盘）；apply=按分组执行导入。
- `move` (boolean): apply 时是否移动原文件（默认 false=复制，源文件保留）。
- `recursive` (boolean): 是否递归扫描子文件夹。默认 true。
- `root` (string): 章节库根目录（含 novels 子目录）。
- `src` (string, required): 待导入的原稿件文件夹路径（可含多本小说的章节文本，支持子文件夹）。

### `novel_sentence_analysis` (~367 tokens)

句式模式分析：统计某部作品（或单章）的句式分布（陈述/环境/心理/对话/疑问/反问/感叹/祈使/省略留白九类）、句式排列规律（转移、高频模板、段首段尾、按章节的压缩节奏序列）、段落结构、句长分布、情感曲线、风格指纹与节奏建议，用于快速掌握作者的写作习惯、主观情感并参考其叙事节奏。【问「这本书是怎么写的」时用它】——它与 novel_style_check（问「我这一章写得像不像」）、novel_style_report（问「这本书是什么风格」）共用同一套引擎与缓存，三者是不同的问题、不是重复的工具。受 UI 开关控制，可先用 novel_sentence_config 查看状态。

Input parameters:

- `book` (string, required): 书名。
- `brief` (boolean): 可选。true=返回精简摘要（brief 字段）。
- `chapter` (string): 可选。只分析该章节；省略则分析全书。
- `curveSegments` (integer): 情感曲线分段数（1-50，默认 20）。
- `fresh` (boolean): true=强制重新分析（忽略缓存）。默认 false。
- `maxSentences` (integer): 采样句数上限（超长文本保护，默认 20000）。
- `root` (string): 章节库根目录。
- `top` (integer): 返回的高频句式模板数量。默认 8。

### `novel_sentence_config` (~632 tokens)

查看或修改句式模式分析的开关状态：enabled（分析功能是否可用）、autoAnalyze（分析作品时是否主动使用）、systemPromptMode（系统提示词档位 off/brief/full）、promptScene（提示词场景 general/writing/revising/auditing/setup，决定完整档下注入哪一套流程）与 leanWorkflow（精简工作流：打开后只按需调用工具，省 token）。

Input parameters:

- `action` (string): get=查看；set=修改。
- `autoAnalyze` (boolean): 分析作品时是否主动使用句式分析。
- `creationProfile` (object): 原创模式设定（worldview/characters/forbidden/mainConflict/genre/extra 字符串键，留空项省略；空对象 {} 清除全部交给模型——宿主不支持 null 类型）。
- `creationProfiles` (object): 按书专属原创设定（键=书名，值=同上结构；空对象 {} 清除全部书的专属设定——宿主不支持 null 类型）。
- `enabled` (boolean): 写作助手功能总开关。
- `features` (object): 功能开关（emotionCaveat=情感净化预警 / genreTheme=题材与流派检测 / webnovelVibe=网文信号 / rawWriting=非净化直白模式 / semanticEmbedding=本地语义增强），如 { emotionCaveat: false }。注意：rawWriting=true 会跳过 UI 的双重确认+承诺输入流程，仅应在用户明确要求时开启。
- `leanWorkflow` (boolean): 精简工作流（默认 false）：true=注入最简提示词（优先于档位与场景），只保留「工具按需调用」一条原则，报告类工具未显式传 brief 时默认走精简输出。适合成本敏感的长篇。
- `promptScene` (string): 提示词场景（仅 full 档生效）：general=通用写作工作流（默认，等价于 4.x 行为） / writing=写新章 / revising=改稿 / auditing=审计（只体检不改稿） / setup=建资料（只维护设定与创作资料）。
- `styleTolerance` (object): 风格基线容差（每维 { low: -20, high: 20 }，low 为负/高为正；空对象 {} 清除恢复推荐——宿主不支持 null 类型，清除一律用空对象）。
- `systemPromptMode` (string): 系统提示词档位：off=不注入 / brief=精简（只说明有这套工具） / full=完整（按场景注入对应流程）。
- `tools` (object): 各工具开关（如 { novel_plot: false }），键必须是 novel_* 工具名。

### `novel_style_check` (~144 tokens)

风格自检：对比某章节与全书其他章节的风格指纹（句式分布/句长/情绪），输出相似度与偏差清单。【问「我这一章写得像不像全书」时用它】——要可执行的改稿待办请接着用 novel_fix_plan，要全书风格画像用 novel_style_report，要看写作手法用 novel_sentence_analysis。

Input parameters:

- `book` (string, required): 书名。
- `chapter` (string, required): 要检查的章节（章号/文件名/标题）。
- `root` (string): 章节库根目录。

### `novel_fix_plan` (~252 tokens)

改稿台：把风格诊断变成按优先级排好的待办清单——每条含原句位置（行号区间 + 原文）、当前值与目标值、可参照的原著锚段、以及改写方向。action=plan 生成清单 / verify 对当前正文复测（看哪些已回到带内）/ mark 标记单项（需 itemId + state）。**只给方向不给句子**：本插件不生成正文。

Input parameters:

- `action` (string): plan=生成待办清单（默认）；verify=对当前正文复测；mark=标记单项（需同时传 itemId 与 state）。
- `book` (string, required): 书名。
- `chapter` (string, required): 要改的章节（章号 / 文件名 / 标题子串）。
- `itemId` (string): mark 时必填：要标记的待办 id（取自 plan 返回的 items[].id）。
- `root` (string): 章节库根目录。
- `state` (string): mark 时必填：done=已处理 / skip=跳过。

### `novel_plot` (~328 tokens)

伏笔/剧情线登记表：维护某部作品的伏笔与剧情钩子（open 待回收 / done 已回收）。

Input parameters:

- `absenceThreshold` (integer): graph 时可选：人物连续缺席多少章算异常（默认 5）。
- `action` (string): list=查看；add=登记新伏笔；update=修改；done=标记已回收；delete=删除；scan=扫描章节文本，自动更新伏笔提及章节；graph=跨章结构视图（伏笔埋设跨度 / 人物连续缺席 / 剧情线活跃度 / 时间线顺序 / 大纲对比），只读不写盘。
- `book` (string, required): 书名。
- `chapter` (string): 可选：伏笔出现的章节。
- `content` (string): add/update 时：伏笔内容描述。
- `id` (string): 伏笔 id（update/done/delete 时需要）。
- `locations` (array): 可选：关联地点（add/update）。
- `note` (string): 可选：备注（如何回收/何时回收）。
- `payoffCondition` (string): 可选：回收条件（add/update）。
- `priority` (string): 可选：优先级（add/update）。
- `relatedCharacters` (array): 可选：关联人物（add/update）。
- `root` (string): 章节库根目录。
- `type` (string): 可选：伏笔类型（add/update）。

### `novel_settings` (~530 tokens)

设定管理（五张表：人物/地点/道具/时间线/世界观用语规范），list/add/update/delete/scan 按 category 维护，detect 自动判断文化基准。

Input parameters:

- `action` (string): list=查看；add=登记；update=修改；delete=删除；scan=扫描章节提取候选；detect=自动判断世界观文化基准（worldview 专用）。
- `alias` (array): character 专用：别名。
- `bannedWords` (array): worldview 专用：禁用词表（如欧式背景禁 上香/老夫）。
- `basis` (string): worldview 专用：判断依据/文化基准说明。
- `book` (string, required): 书名。
- `category` (string): 表类别（character/location/item/timeline/worldview；list/add/update/delete/scan 需要；detect 固定 worldview）。
- `chapter` (string): timeline 专用：对应章节。
- `day` (string): timeline 专用：时间点标识（add 时作为条目名登记；update/delete 用 name=旧标识 定位，改名时同时传 day=新标识）。
- `description` (string): 可选：描述。
- `event` (string): timeline 专用：事件。
- `firstSeen` (string): 可选：首次出现的章节。
- `lastSeen` (string): item 专用：最近出现的章节。
- `name` (string): 条目名（人物名/地名/道具名；timeline 用 day 字段）。
- `notes` (string): 可选：备注。
- `owner` (string): item 专用：当前持有者。
- `recommended` (object): worldview 专用：替代词映射（如 { "上香": "点烛" }）。
- `relationships` (string): character 专用：人际关系。
- `ritual` (string): worldview 专用：仪式规范（如'点烛不烧香'）。
- `root` (string): 章节库根目录。
- `speechStyle` (object): worldview 专用：说话方式规范（title 称谓/honorBad 客套禁词/ritualBadPatterns 仪式禁式/tone 语气·整体为 JSON 对象）。
- `status` (string): item 专用：状态（如 在琉璃处/已遗失）。
- `traits` (string): character 专用：性格/外貌特征。

### `novel_style_report` (~223 tokens)

风格画像报告：聚合 6 维测量数据（指纹/词汇/题材/情感/氛围 12 轴/语义距离）供 AI 判断风格。【问「这本书是什么风格」时用它】——它给的是全书画像而非单章判定（那是 novel_style_check），也不是写作手法拆解（那是 novel_sentence_analysis）。

Input parameters:

- `action` (string): report=生成测量报告（默认）；get=读取已保存的 AI 风格判断
- `aiJudgment` (string): AI 的风格气质判断结论：后插件将测量数据与判断存入 style-reports 供后续使用
- `book` (string, required): 书名（novels 下的子目录名）
- `brief` (boolean): true=返回精简摘要（一句话结论），省略=完整报告。
- `root` (string): 章节库根目录（含 novels 子目录）。

### `novel_summary` (~179 tokens)

章节摘要（模型生成、插件存储）：读摘要回忆剧情、避免重读。add/update/get/list/delete 按章节管理。

Input parameters:

- `action` (string): list=全部摘要（默认）；get=取某章；add=新增/覆盖摘要；update=修改；delete=删除。
- `book` (string, required): 书名。
- `chapter` (string): 章节标识（章号/文件名/标题）。
- `keyEvents` (array): 可选：关键事件列表。
- `keySettings` (array): 可选：本章出现的关键设定/信息。
- `root` (string): 章节库根目录。
- `summary` (string): add/update 时：本章摘要（200-500 字，覆盖剧情走向/关键事件/结尾状态）。

### `novel_continuity_check` (~176 tokens)

连贯性审计：对照设定表扫描全书，输出矛盾候选（数字口径/人物缺场/别名/重复）供修正。

Input parameters:

- `book` (string, required): 书名。
- `chapter` (string): 衔接检查模式：指定章节（章号/文件名/标题），对比其与上一章的开头衔接。
- `ooc` (boolean): OOC 哨兵模式：对比每章角色附近文本情绪值 vs 全书基线，提示偏离。
- `outline` (boolean): 大纲对照模式：对比创作资料剧情大纲方向行与正文关键词重合率，提示可能走偏。
- `root` (string): 章节库根目录。

### `novel_semantic_search` (~128 tokens)

语义检索（本地 embedding，0 token）：自然语言检索全书语义相关段落，无关键词也能命中。

Input parameters:

- `book` (string, required): 书名。
- `query` (string, required): 要检索的语义描述，如「与血统秘密相关的段落」「女主压抑克制的时刻」。自然语言越具体越好。
- `root` (string): 章节库根目录（含 novels 子目录）。
- `top` (integer): 返回条数（默认 5，最大 10）。

### `novel_outline` (~337 tokens)

维护原创小说的创作资料（novels/创作资料/<书名>/）：创作设定/主要人物/次要人物/剧情大纲/钩子记录/创作状态卡的初始化、读取与更新。

Input parameters:

- `action` (string, required): init=初始化创作资料；read=读文件（bible/characters-main/characters-minor/outline/hooks/status）；bible=写入创作设定；character=登记/提升人物；chapter=补大纲方向行；hook=回填某章结尾钩子；status=刷新创作状态卡。
- `body` (string): hook 时：本章结尾钩子（状态/悬念/时间场景）。
- `book` (string, required): 书名（novels/创作资料 下的子目录名）。
- `content` (string): bible（创作设定全文）/ status（状态卡全文）时用。
- `description` (string): character 时：人物简介（目标/动机/弱点/说话方式）。
- `file` (string): read 时指定（bible/characters-main/characters-minor/outline/hooks/status，省略=status）。
- `name` (string): character 时：人物名。
- `number` (number): chapter/hook 时：章节号。
- `role` (string): character 时：main=主要人物 / minor=次要人物。
- `root` (string): 章节库根目录。
- `title` (string): chapter 时：本章标题/方向（一行）。

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer#diagnostics

## Score history

- 2026-09-25: 76
- 2026-09-24: 76
- 2026-09-23: 75
- 2026-09-22: 75
- 2026-09-21: 74
- 2026-09-20: 74
- 2026-09-19: 73
- 2026-09-18: 73
- 2026-09-17: 62
- 2026-09-16: 72
- 2026-09-15: 72
- 2026-09-14: 71
- 2026-09-13: 56
- 2026-09-12: 65
- 2026-09-11: 65
- 2026-09-10: 65
- 2026-09-09: 65
- 2026-09-08: 50

## Common questions

### What is the dsh-novel-writer — 网文写作体检 MCP server?

dsh-novel-writer — 网文写作体检 is an MCP server listed in the public MCP registry as io.github.siweina/dsh-novel-writer. Offline toolkit: 18 tools for Chinese web-novel style, plot-thread and continuity audits. This page covers its npm package (dsh-novel-writer).

### Is the dsh-novel-writer — 网文写作体检 MCP server safe to use?

dsh-novel-writer — 网文写作体检 scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 25 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the dsh-novel-writer — 网文写作体检 MCP server expose?

dsh-novel-writer — 网文写作体检 exposes 18 tools: novel_books, novel_chapters, novel_read, novel_keywords, novel_new_chapter, and 13 more. Their descriptions and schemas cost roughly 4,297 tokens of context every time the server is loaded.

### Is the dsh-novel-writer — 网文写作体检 MCP server still maintained?

dsh-novel-writer — 网文写作体检 is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the dsh-novel-writer — 网文写作体检 MCP server under?

dsh-novel-writer — 网文写作体检 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/dsh-novel-writer
- Socket report: https://socket.dev/npm/package/dsh-novel-writer
- Repository: https://github.com/siweina/dsh-novel-writer
- Changelog RSS feed: https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer.xml
- Changelog JSON feed: https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer.json
- HTML version of this page: https://verifymcp.io/servers/siweina-dsh-novel-writer/dsh-novel-writer
