FastMCP Novel Processing Tool
An MCP server for intelligent novel processing that enables precise token-based text segmentation and management of bulk rewriting tasks. It integrates with the Cursor editor to facilitate automated content transformation workflows and prompt management.
README
FastMCP 小说处理工具
基于 FastMCP 的智能小说处理工具,支持小说分割、批量改写任务管理,提供 Web 界面和 MCP 服务双模式。
说明:当前未发布到 PyPI/uvx,请从源码本地运行。
✨ 核心功能
- 📄 智能分割 - 按 Token 数精确分割小说,支持多种编码格式
- 🔄 批量改写 - 创建和管理批量改写任务,支持自动检测和重试
- 📝 提示词管理 - 灵活的提示词配置和管理系统
- 🌐 Web 界面 - 美观友好的可视化操作界面
- 🔌 MCP 集成 - 与 Cursor 编辑器无缝集成
🚀 快速开始(从源码运行)
1. 安装依赖
cd fastmcp
uv sync
如未安装
uv,参考https://github.com/astral-sh/uv。也可直接用系统 Python 运行(建议仍用uv管理依赖)。
2. 启动 Web 界面
# 使用 Python 运行
python app.py --work-dir "<WORK_DIR>"
# 或使用 uv 运行
uv run app.py --work-dir "<WORK_DIR>"
启动后访问:http://127.0.0.1:8298/
(示例:<WORK_DIR> 可设置为 /path/project,<FASTMCP_DIR> 为 项目所在位置)
界面预览(UI)



🔌 MCP 部署(Cursor)
在 Cursor 设置中配置 mcp.json,使用本地源码运行。提供两种方案:
方案 A:使用 uv 运行(推荐)
{
"mcpServers": {
"novel-processor-local": {
"command": "uv",
"args": [
"--directory",
"<FASTMCP_DIR>",
"run",
"main.py",
"--work-dir",
"<WORK_DIR>"
]
}
}
}
方案 B:使用 Python 运行
{
"mcpServers": {
"novel-processor-local": {
"command": "python",
"args": ["<FASTMCP_DIR>\\main.py", "--work-dir", "<WORK_DIR>"]
}
}
}
配置完成后,即可在 Cursor 中调用 MCP 工具进行任务领取、改写与回写。
📖 使用说明
工作目录结构
工作目录会自动创建以下结构:
工作目录/
├── .batch_task/ # 任务管理目录(自动创建)
│ ├── tasks.json # 任务列表
│ ├── logs/ # 日志文件
│ └── prompts/ # 提示词文件
└── output/ # 输出目录
└── 项目名/
├── 原文/ # 分割后的原文
└── 改写/ # 改写后的文件
端到端工作流程
- 分割小说(Web)
- 访问首页,上传或选择小说文件
- 设置分割参数(Token 数、项目名等)
- 点击“分割”,生成分段文件并保存到
output/项目名/原文/
- 创建批量改写任务(Web)
- 打开“任务管理”页面
- 选择项目与提示词,批量创建任务(写入
.batch_task/tasks.json)
- 执行任务(Cursor MCP)
- 在 Cursor 中调用
run_task获取待处理任务 - 按提示词改写内容并写入输出文件
- 调用
complete_task标记完成(失败可重试)
- 检查与导出
- 在 Web“任务管理/日志”查看状态与日志
- 在
output/项目名/改写/获取改写后的最终文本
命令行参数
python app.py [选项]
选项:
--work-dir DIR 工作目录路径(默认:../)
--host HOST 服务器地址(默认:127.0.0.1)
--port PORT 服务器端口(默认:8298)
--batch-task-dir DIR 批处理目录名(默认:.batch_task)
--log-level LEVEL 日志级别(debug/info/warning/error)
🔧 技术栈
- 后端框架:FastMCP + Starlette + Uvicorn
- 前端:Vue.js 3 + TailwindCSS
- 依赖管理:uv
- Token 计算:tiktoken (cl100k_base)
📦 项目结构
fastmcp/
├── main.py # MCP 服务入口
├── app.py # Web 服务入口
├── config.py # 配置文件
├── run-server.bat # Windows 启动脚本(可选,不再作为推荐方式)
├── src/ # 核心代码
│ ├── server.py # MCP 服务器
│ ├── routes.py # Web 路由
│ ├── task_manager.py # 任务管理
│ ├── novel_processor.py # 小说处理
│ ├── workspace_manager.py # 工作区管理
│ └── ...
└── static/ # Web 界面
├── index.html # 小说分割界面
├── tasks.html # 任务管理界面
└── prompt.html # 提示词管理界面
📝 注意事项
- 工作目录:建议为每个小说项目单独创建工作目录
- 编码支持:自动检测 UTF-8、GBK、GB2312、Big5 等编码
- Token 计算:使用 OpenAI 的 cl100k_base 编码器,适配 GPT-3.5/GPT-4
- 任务状态:任务会自动检测超时和错误,支持重试
- 日志记录:所有操作都有详细日志,位于
.batch_task/logs/目录
🛠️ 常见问题
Q: 如何更改默认端口?
A: 使用 --port 参数,如:python app.py --port 8080
Q: 提示词文件应该放在哪里?
A: 放在工作目录的 .batch_task/prompts/ 目录中,支持 .md 和 .txt 格式
Q: 如何查看任务执行日志?
A: 查看工作目录的 .batch_task/logs/ 目录中的日志文件
Q: MCP 服务和 Web 服务可以同时运行吗?
A: 可以,它们使用相同的工作目录和任务文件,数据会自动同步
❓ 为什么选择本项目
直接调用模型 API 处理长文本时,常出现“压缩式回答”(过度缩减、遗漏细节)。本项目通过:
- 分段+批处理流水线:将长篇文本按 Token 精准切分,逐段稳定处理
- 提示词可控:在
.batch_task/prompts/集中管理提示词,保证一致性 - 与 Cursor 深度集成:利用 Cursor 的上下文与智能编辑能力,获得可控且高质量的输出
- 自动化任务编排:状态跟踪、错误重试、日志留存,提升长流程的可靠性
📄 许可证
MIT License
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。