EPUB 解析器 MCP 服务器 📚
   ](<>)
一个基于TypeScript的强大模型上下文协议(MCP)服务器,用于解析EPUB文件并借助人工智能提取内容。该服务器旨在与Claude Desktop等人工智能助手实现无缝集成。
✨ 特点
- 📄(文件或纸张的符号,无具体文字含义,可理解为“文件”或“纸张”) 元数据提取 - 提取EPUB元数据(标题、作者、出版商、语言等)
- 📑 表示“文件夹”或“文件”的图标。 目录 - 解析层次化的目录结构表
- 📖 书籍 文本内容提取 - 从带格式的章节中提取干净文本
- 🔍 看起来像是一个放大镜的符号,通常用于表示搜索、查看细节或观察。在中文中,这个符号本身没有直接的翻译,但可以根据上下文理解为“放大镜”、“搜索”或“查看细节”等意思。例如:“🔍 我们需要使用放大镜来仔细观察这个细节。” 高级搜索 - 在EPUB文件中搜索文本,并可选择区分大小写
- 🌐(表示“互联网”或“全球连接”的符号) 资源访问 - 通过URI模板访问EPUB资源
- 🚀 这个符号本身在中文中没有直接对应的翻译,它通常被用作表示火箭、快速移动或高科技等意象的图形符号。在中文语境下,我们可以简单地将其描述为“火箭”或“飞速前进”的象征,但具体翻译时往往保留原符号以传达其视觉和文化含义。因此,这个符号在中文中可以解释为“🚀(火箭/飞速前进)”。 TypeScript - 使用TypeScript构建,以确保类型安全并提供更好的开发体验
- ⚡(闪电符号,常用于表示速度、活力或电力) 高性能 - 优化了EPUB解析算法
- 🔧 修理工具或扳手的符号(无实际翻译意义,仅为符号表示) MCP标准 - 完全符合模型上下文协议标准
🚀 快速入门
先决条件
- Node.js 18 或更高版本
- npm 或 yarn
安装
方法1:从源码安装
# Clone the repository
git clone https://github.com/your-username/epub-parser-mcp.git
cd epub-parser-mcp
# Install dependencies
npm install
# Build the project
npm run build方法2: 使用npx(推荐用于生产环境)
# 直接使用npx运行,无需安装
npx epub-parser-mcp方法3:全局安装
# 全局安装
npm install -g epub-parser-mcp
# 然后直接运行
epub-parser-mcp🔧 MCP 配置
服务器配置 (Server Config)
以下是完整的MCP服务配置,可用于Claude Desktop或其他MCP客户端:
{
"mcpServers": {
"epub-parser": {
"command": "npx",
"args": ["-y", "epub-parser-mcp"]
}
}
}环境变量配置 (Environment Variables):
{
"env": {
"NODE_ENV": "production"
}
}Claude 桌面配置
在您的Claude桌面配置文件中添加以下内容:
使用npx(推荐):
{
"mcpServers": {
"epub-parser": {
"command": "npx",
"args": ["-y", "epub-parser-mcp"]
}
}
}备选方案:使用node直接运行(如果npx不支持):
{
"mcpServers": {
"epub-parser": {
"command": "node",
"args": ["/path/to/epub-parser-mcp/build/index.js"]
}
}
}注意: Claude Desktop目前支持以 python -m、uv、uvx 或者 npx 开头的命令。在某些环境中,node 命令可能不被支持。
配置文件位置
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS(苹果电脑操作系统):
~/Library/Application Support/Claude/claude_desktop_config.json - Linux(发音类似“林克斯”):
~/.config/Claude/claude_desktop_config.json
配置步骤
- 构建项目 (如尚未构建):
npm run build- 找到您的Claude桌面配置文件 (见上文地点)
- 添加MCP服务器配置 到……的
mcpServers部分;章节
- 重启Claude桌面版 加载新配置
- 验证服务器是否正在运行 通过检查Claude桌面日志
配置验证
配置完成后,您可以通过以下方式验证服务器是否正常工作:
- 检查Claude Desktop日志 对于任何与MCP相关的错误
- 测试工具 通过请求克劳德使用EPUB解析工具
- 验证服务器启动 - 当Claude Desktop启动时,服务器应自动启动
故障排除
常见问题:
- 路径问题确保路径到
build/index.js是正确且可访问的 - Node.js 版本确保已安装 Node.js 18+ 且已将其添加到系统路径 (PATH) 中
- 权限确保构建文件具有适当的执行权限
- 依赖项跑
npm install如果缺少依赖项
错误信息:
- “命令未找到”:请检查 Node.js 的安装和 PATH 设置
- “文件未找到”:请验证构建/index.js的路径
- “权限被拒绝”:检查构建目录的文件权限
高级配置
为了开发,您可以手动运行服务器:
# Build and start the server
npm run build
npm start
# Or run directly
node build/index.js服务器将把连接信息和任何错误输出到控制台。
📖 使用示例
获取EPUB信息
{
"filePath": "/path/to/book.epub"
}提取目录
{
"filePath": "/path/to/book.epub"
}提取文本内容
{
"filePath": "/path/to/book.epub",
"chapterIds": ["chapter-1", "chapter-2"],
"maxLength": 5000
}在EPUB中搜索
{
"filePath": "/path/to/book.epub",
"query": "artificial intelligence",
"caseSensitive": false
}🔧 可用工具
1. epub_info
获取完整的EPUB文件信息,包括元数据和结构。
参数:
filePath(字符串):EPUB 文件的路径
2. epub_toc
解析并显示目录结构表。
参数:
filePath(字符串):EPUB 文件的路径
3. epub_extract_text
从指定章节中提取文本内容。
参数:
filePath(字符串):EPUB 文件的路径chapterIds(数组,可选):要提取的章节ID列表maxLength(数字,可选):最大文本长度限制
4. epub_search
在EPUB文件中搜索文本。
参数:
filePath(字符串):EPUB 文件的路径query(字符串):搜索查询caseSensitive(布尔值,可选):区分大小写的搜索(默认:false)
🌐 资源模板
通过URI访问EPUB资源:
epub://{file}/metadata- 以JSON格式表示的EPUB元数据epub://{file}/toc- 目录结构epub://{file}/chapter/{id}- 具体章节内容
🛠️ 开发
项目结构
epub-parser-mcp/
├── src/
│ ├── index.ts # MCP server implementation
│ ├── epub-parser.ts # EPUB parsing core
│ └── types.ts # TypeScript type definitions
├── build/ # Compiled JavaScript
├── package.json
└── README.md从源代码构建
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start测试
# Run tests (if available)
npm test📊 性能
- 快速解析优化了EPUB容器和内容解析
- 内存高效针对大型EPUB文件的流式处理
- 并发安全支持多个并发请求
🤝 贡献(或:参与贡献)
我们欢迎贡献!请随时提交问题、功能请求或拉取请求。
开发环境设置
- 为仓库创建分支
- 创建一个特性分支:
git checkout -b feature/amazing-feature - 提交您的更改:
git commit -m 'Add amazing feature' - 推送至分支:
git push origin feature/amazing-feature - 打开一个拉取请求
代码风格
- 使用 TypeScript 确保类型安全
- 遵循现有的代码格式
- 添加适当的注释和文档说明
📄 许可证
这个项目遵循GPL许可证 - 详见 许可证 详情见文件。
🙏 致谢
- 用……建造 模型上下文协议软件开发工具包(SDK)
- 使用文本提取技术 再见(口语,常用于英国)
*赋予AI助手阅读和理解EPUB文档的能力*
