Skip to main content
Glama

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/ # 输出目录 └── 项目名/ ├── 原文/ # 分割后的原文 └── 改写/ # 改写后的文件

端到端工作流程

  1. 分割小说(Web)

  • 访问首页,上传或选择小说文件

  • 设置分割参数(Token 数、项目名等)

  • 点击“分割”,生成分段文件并保存到 output/项目名/原文/

  1. 创建批量改写任务(Web)

  • 打开“任务管理”页面

  • 选择项目与提示词,批量创建任务(写入 .batch_task/tasks.json

  1. 执行任务(Cursor MCP)

  • 在 Cursor 中调用 run_task 获取待处理任务

  • 按提示词改写内容并写入输出文件

  • 调用 complete_task 标记完成(失败可重试)

  1. 检查与导出

  • 在 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 # 提示词管理界面

📝 注意事项

  1. 工作目录:建议为每个小说项目单独创建工作目录

  2. 编码支持:自动检测 UTF-8、GBK、GB2312、Big5 等编码

  3. Token 计算:使用 OpenAI 的 cl100k_base 编码器,适配 GPT-3.5/GPT-4

  4. 任务状态:任务会自动检测超时和错误,支持重试

  5. 日志记录:所有操作都有详细日志,位于 .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

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/imohuan/novel-segmentation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server