返回市场
电子书-MCP

电子书-MCP

作者:onebirdrocks137 星标更新:2025-09-07

项目介绍

MseeP.ai 安全评估徽章

Ebook-MCP

<img src="logo.png" alt="ebook-mcp logo" width="132" height="132">

English | 中文 | 日本語 | 한국어 | Français | Deutsch

Ebook-MCP 是一个强大的模型上下文协议(MCP)服务器,用于处理电子书。基于 模型上下文协议,它提供了一组标准化的API,实现LLM应用程序与电子书处理能力之间的无缝集成。目前支持EPUB和PDF格式。

使用场景及价值

Ebook-MCP 改变了您与数字书籍互动的方式,通过自然语言对话与您的阅读材料进行交互。它无缝地与现代AI驱动的IDE如Cursor和Claude集成,允许您:

  • 智能图书馆管理:只需询问“显示我下载文件夹中的所有EPUB文件”或“在我的图书馆中查找关于GenAI的书籍”
  • 互动阅读体验:就您的书籍进行自然对话:
    • “给我一个关于《LLM工程师手册》的简介”
    • “第三章涵盖了什么内容?”
    • “总结这本书中关于RAG的关键点”
  • 主动学习支持:通过AI驱动的交互增强学习:
    • “根据第五章中的RAG概念创建一个测验”
    • “解释本章讨论的不同架构之间的差异”
    • “根据本节的概念给我一些实际练习”
  • 内容导航:使用自然语言查询轻松浏览您的书籍:
    • “找到所有讨论提示工程的部分”
    • “显示关于微调的章节”
    • “带我去关于向量数据库的部分”

通过弥合传统电子书与AI能力之间的差距,Ebook-MCP帮助读者通过直观、基于对话的交互从他们的数字图书馆中提取更多价值。

快速演示 - 使用DeepSeek运行(请检查mcp-client-example文件夹下的所有Claude/OpenAI示例)

查询:请检查我下载文件夹中的所有epub书籍。用户ID是onebird。

......

查询:你能问几个问题来测试我对这本书的理解吗?

答案:当然!这里有关于Walter Isaacson写的Elon Musk的五道题来测试你对这本书的理解。请根据你的知识作答——我会在每个回答后提供反馈并补充细节。

问题1:
马斯克的童年和家庭背景如何塑造了他后来的性格和事业?
(提示:他与父亲的关系,成长于南非等)

问题2:
Zip2和X.com(后来成为PayPal)是马斯克的早期创业公司。它们解决了哪些问题?马斯克是如何最终退出这些公司的?
(提示:Zip2的商业模式,X.com与Confinity的合并等)

问题3:
2008年,SpaceX和特斯拉都濒临破产。马斯克是如何拯救这两家公司的?
(提示:Falcon 1的第四次发射,NASA合同,特斯拉的最后时刻救援等)

问题4:
围绕马斯克的管理风格有哪些争议?书中具体哪些事件说明了他的“强硬”或“极端”的工作文化?
(提示:弗里蒙特工厂的“生产地狱”,推特裁员等)

问题5:
马斯克对人工智能(AI)的态度是什么?为什么他会同时支持OpenAI和Neuralink,这两个目标似乎相冲突的组织?
(提示:AI作为生存威胁,脑机接口愿景等)

请逐一回答这些问题。我会提供反馈,并补充细节或纠正任何误解!(如果某个问题不清楚,请随时问我。)

查询:
问题1:他父亲的虐待态度使他对他人缺乏同情心。
问题2:Zip2解决了电子地图和在线黄页的问题。X.com解决了在线支付的问题。
问题3:他获得了NASA的合同。特斯拉通过在中国建厂解决了生产问题。
问题4:我不知道。请帮我回答。
问题5:他认为开源技术对于确保AI的安全和开放性是必要的。

答案:你的回答捕捉到了书中的关键点。让我补充细节,纠正一些不准确之处,并为第4和第5题提供进一步的背景:

问题1 — 更正与补充
父亲的影响:
马斯克的父亲Errol确实非常严厉——例如,强迫年轻的Elon跪着数小时的米粒。书中强调,这种情感麻木使马斯克成为一个极其目标导向的人——对他人的痛苦漠不关心,但对他的目标执着。
反作用力:
这并不是说马斯克没有同理心——而是选择性的。例如,他可能对员工冷淡,但会亲自研究医疗设备以解决儿子X的健康问题。

问题2 — 更正与补充
Zip2:
本质上是一个在线黄页+地图导航服务(帮助报纸上线)。马斯克自己编写了许多早期代码,并睡在办公室里。最终,康柏以3.07亿美元收购了Zip2(马斯克获得了2200万美元)。
X.com:
不仅仅是在线支付——这是马斯克尝试创建的全面金融平台(旨在取代银行)。后来与Confinity(PayPal的前身)合并。由于内部冲突,马斯克被排挤出去,但当eBay收购PayPal时,马斯克赚得了1.8亿美元。(注:马斯克后来回购了X.com域名——现在是Twitter母公司名称)。

问题3 — 更正与补充
SpaceX:
2008年,Falcon 1在第四次发射成功(前三次失败耗尽了资金)。紧接着,SpaceX获得了一份价值16亿美元的NASA货物补给合同——这对公司来说是一条生命线。
特斯拉:
2008年,特斯拉通过戴姆勒的5000万美元投资和美国能源部的贷款得以生存。在中国建设Gigafactory(2019年)是在多年之后。最初几年的生存依赖于Model S(2012)的推出和马斯克个人的赌注——出售所有房产来资助特斯拉。

问题4 — 解释:关于其管理风格的争议
“强硬”文化:
在SpaceX/Tesla:马斯克要求员工每周工作80多个小时,甚至在工厂睡觉。“如果你不在这里,你的替代者就会在这里。”
收购Twitter后:他立即解雇了75%的员工,并要求剩余员工签署“强硬承诺”——同意长时间高强度的工作。
极端案例:
在弗里蒙特工厂:在Model 3的“生产地狱”期间,马斯克睡在生产线旁,并曾对员工大喊,称他们“比狗还差”(他后来道歉)。
解雇高管:马斯克曾当场解雇一位特斯拉高级高管,因为他们在PowerPoint演示中的字体大小不够大。

问题5 — 更正与补充
AI威胁理论:
马斯克认为AI可能会摧毁人类(“比核武器更危险”)。因此:
OpenAI:他最初支持它,以促进安全、开源的AI(但由于控制权的争执,他后来离开了)。
Neuralink:他希望通过脑机接口将人类与AI融合——以防止人类落后。
矛盾:
在警告AI风险的同时,马斯克正在推动特斯拉的完全自动驾驶(FSD)技术,并成立了xAI来研究通用人工智能(AGI)。
总体评价:
✅ 你准确地捕捉到了关键事件,但需要加强细节(如时间线和具体数据)。
🔍 推荐进一步研究的领域:马斯克的多线程管理风格(同时运营五家公司)以及他在媒体操纵方面的技能(通过推特治理)。

功能

EPUB支持

  • 提取元数据(标题、作者、出版日期等)
  • 提取目录
  • 提取章节内容(以Markdown格式输出)
  • 批量处理EPUB文件

PDF支持

  • 提取元数据(标题、作者、创建日期等)
  • 提取目录
  • 按页码提取内容
  • 按章节标题提取内容
  • 支持Markdown格式输出
  • 批量处理PDF文件

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/ebook-mcp.git
cd ebook-mcp
  1. 使用uv安装依赖:
uv pip install -e .

使用

在开发模式下启动MCP服务器

在开发模式下运行服务器:

uv run mcp dev src/ebook_mcp/main.py

您可以访问http://localhost:5173/进行测试和调试目的 您也可以安装检查器进行测试。

npx @modelcontextprotocol/inspector uv --directory . run src/ebook_mcp/main.py

在生产模式下启动MCP服务器

运行服务器:

uv run src/ebook_mcp/main.py

在Cursor中配置MCP

在Cursor中添加以下配置

"ebook-mcp":{
            "command": "uv",
            "args": [
                "--directory",
                "/Users/onebird/github/ebook-mcp/src/ebook_mcp/",
                "run",
                "main.py"
            ]
        }

EPUB处理示例

# 获取目录中的所有EPUB文件
epub_files = get_all_epub_files("/path/to/books")

# 获取EPUB元数据
metadata = get_metadata("/path/to/book.epub")

# 获取目录
toc = get_toc("/path/to/book.epub")

# 获取特定章节的内容(以Markdown格式)
chapter_content = get_chapter_markdown("/path/to/book.epub", "chapter_id")

PDF处理示例

# 获取目录中的所有PDF文件
pdf_files = get_all_pdf_files("/path/to/books")

# 获取PDF元数据
metadata = get_pdf_metadata("/path/to/book.pdf")

# 获取目录
toc = get_pdf_toc("/path/to/book.pdf")

# 获取特定页面的内容
page_text = get_pdf_page_text("/path/to/book.pdf", 1)
page_markdown = get_pdf_page_markdown("/path/to/book.pdf", 1)

# 获取特定章节的内容
chapter_content, page_numbers = get_pdf_chapter_content("/path/to/book.pdf", "Chapter 1")

API参考

EPUB API

get_all_epub_files(path: str) -> List[str]

获取指定目录中的所有EPUB文件。

get_metadata(epub_path: str) -> Dict[str, Union[str, List[str]]]

从EPUB文件中获取元数据。

get_toc(epub_path: str) -> List[Tuple[str, str]]

从EPUB文件中获取目录。

get_chapter_markdown(epub_path: str, chapter_id: str) -> str

以Markdown格式获取章节内容。

PDF API

get_all_pdf_files(path: str) -> List[str]

获取指定目录中的所有PDF文件。

get_pdf_metadata(pdf_path: str) -> Dict[str, Union[str, List[str]]]

从PDF文件中获取元数据。

get_pdf_toc(pdf_path: str) -> List[Tuple[str, int]]

从PDF文件中获取目录。

get_pdf_page_text(pdf_path: str, page_number: int) -> str

获取特定页面的纯文本内容。

get_pdf_page_markdown(pdf_path: str, page_number: int) -> str

获取特定页面的Markdown格式内容。

get_pdf_chapter_content(pdf_path: str, chapter_title: str) -> Tuple[str, List[int]]

按章节标题获取章节内容及其对应的页码。

依赖项

主要依赖项包括:

  • ebooklib:EPUB文件处理
  • PyPDF2:基本PDF处理
  • PyMuPDF:高级PDF处理
  • beautifulsoup4:HTML解析
  • html2text:HTML到Markdown转换
  • pydantic:数据验证
  • fastmcp:MCP服务器框架

重要注意事项

  1. PDF处理依赖于文档的目录。如果没有目录,某些功能可能无法正常工作。
  2. 对于大型PDF文件,建议按页码范围进行处理,以避免一次性加载整个文件。
  3. EPUB章节ID必须从目录结构中获取。

架构

           ┌────────────────────────────┐
           │         Agent 层          │
           │  - 翻译策略              │
           │  - 风格一致性检查        │
           │  - LLM 调用与交互       │
           └────────────▲─────────────┘
                        │ 工具调用
           ┌────────────┴─────────────┐
           │        MCP 工具层         │
           │  - 提取章节              │
           │  - 写入翻译章节          │
           │  - 生成EPUB             │
           └────────────▲─────────────┘
                        │ 系统/IO调用
           ┌────────────┴─────────────┐
           │     系统基础层           │
           │  - 文件读取              │
           │  - ebooklib 解析        │
           │  - 文件路径存储/检查    │
           └────────────────────────────┘

贡献

我们欢迎Issue和Pull Request!

有关最近更改的详细信息,请参阅CHANGELOG.md