Bun Novel Processor MCP
A Bun-based MCP server designed for processing and segmenting long-form novel text files. It enables AI agents to incrementally read novels, validate chapter drafts, and manage cleaned chapter metadata through standard stdio transport.
README
mcp(Bun + MCP 标准 stdio)
这是一个基于 Bun 的 MCP 基础项目框架,使用标准 stdio 传输协议,适合接入 Claude Desktop / Cursor 等 MCP 客户端。
安装依赖
bun install
启动方式
开发模式(热更新):
bun run dev
标准启动:
bun run start
当前内置工具
read_novel_line:按游标增量读取小说文本get_progress:获取已切分进度(下一章节号/下一游标)validate_chapter_draft:章节草稿质检(提示建议,不拦截)save_chapter:同时保存原文章节与清洗后章节,并写入元信息索引
小说文件放置
默认从 novels 目录读取文本文件:
/Users/tietiezhi/Project/mcp/novels
例如小说名传 斗破苍穹,默认读取:
novels/斗破苍穹.txt
也可通过环境变量覆盖目录:
NOVELS_DIR=/your/path bun run start
工具入参
novel_name:小说名(或.txt文件名)cursor:起始字符索引(首次通常传0)max_lines:本次最多返回行数(可选,默认1,最大20)target_chars:本次目标读取字符数(可选,达到即停止,最大5000)- 返回包含
batch_text与batch_chars,方便智能体直接累计 - 若文本无换行,工具会优先按标点等语义边界切片,必要时再按字符硬切
get_progress:
novel_name:小说名称- 返回
next_chapter_no与next_cursor,用于断点续跑
validate_chapter_draft:
clean_text:待质检章节正文min_chars/max_chars:建议字数范围(默认600/1000)- 返回
issues、in_range、标题/作者/前言/网址检测结果与建议
save_chapter:
novel_name:小说名称chapter_no:章节序号(从 1 开始)start_cursor:章节起始游标end_cursor:章节结束游标chapter_chars:章节字数min_chars:章节最小字数(可选,默认600)max_chars:章节最大字数(可选,默认1000)allow_out_of_range:允许超范围保存(可选,默认true)enforce_clean_guard:启用 clean 文本前部质检(可选,默认false)split_reason:切分理由(可选)raw_text:原始章节正文(未清洗)clean_text:清洗后的章节正文
章节输出目录
默认写入:
/Users/tietiezhi/Project/mcp/chapters/<novel_name>/
文件说明:
0001.raw.txt:原始章节正文(含头部元信息)0001.clean.txt:清洗后章节正文(含头部元信息)index.jsonl:章节索引,每行一条 JSON 元信息
可通过环境变量覆盖:
CHAPTERS_DIR=/your/output/path bun run start
推荐调用流程(智能体)
- 先调用
get_progress获取next_chapter_no与next_cursor。 - 循环调用
read_novel_line(建议结合max_lines+target_chars控制批次)。 - AI 在对话内完成去杂质与章节切分。
- 每章保存前调用
validate_chapter_draft做自检。 - 每章调用
save_chapter写入raw_text与clean_text。 - 重复步骤 2-5,直到
eof=true。
save_chapter 内置一致性校验:
- 章节号必须连续
start_cursor必须等于上一章end_cursorchapter_chars必须等于clean_text.length- 可选开启字数范围限制(
allow_out_of_range=false) - 可选开启 clean 文本前部拦截(
enforce_clean_guard=true)
目录结构
.
├── index.ts # 根入口,启动 MCP 服务
└── src
├── main.ts # stdio transport 启动逻辑
├── server.ts # MCP Server 创建与工具注册
├── config.ts # 服务基础配置(name/version)
├── tools
│ ├── getProgress.ts
│ ├── readNovelLine.ts
│ ├── validateChapterDraft.ts
│ └── saveChapter.ts
└── types
└── tool.ts # 工具返回类型
类型检查
bunx tsc --noEmit
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。