Back to MCP directory
publicPublicdnsLocal runtime

ebook-mcp

Ebook-MCP是一个基于模型上下文协议(MCP)的电子书处理服务器,支持EPUB和PDF格式,提供智能图书管理、交互式阅读体验和学习辅助功能,实现与电子书的自然语言交互。

article

README

🚀 电子书内容处理平台(ebook - MCP)

这是一个用于处理和分析电子书文件的工具平台,支持EPUB和PDF格式。平台可提取元数据、获取目录结构、读取章节内容,还能将内容转换为Markdown格式,并且提供了一个可通过命令运行的服务端框架。

🚀 快速开始

本平台是一个强大的电子书内容处理工具,支持EPUB和PDF两种常见的电子书格式。它能帮助你轻松提取电子书的元数据、目录结构和章节内容,并将其转换为方便编辑和分享的Markdown格式。

✨ 主要特性

EPUB处理功能

  1. 可获取指定目录下的所有EPUB文件。
  2. 能提取EPUB文件的元数据信息,如标题、作者、出版日期等。
  3. 可以读取EPUB文件的目录结构。
  4. 能够获取特定章节的内容并将其转换为Markdown格式。

PDF处理功能

  1. 获取指定目录下的所有PDF文件。
  2. 提取PDF文件的元数据信息。
  3. 读取PDF文件的目录结构。
  4. 获取特定页码的内容,支持纯文本和Markdown格式。
  5. 根据章节标题获取对应内容及其所在的页码范围。

📦 安装指南

关键依赖

  • ebooklib:用于处理EPUB文件的库
  • PyPDF2:基本的PDF处理库
  • PyMuPDF:高级的PDF处理库
  • beautifulsoup4:HTML解析工具
  • html2text:将HTML转换为Markdown格式的工具
  • pydantic:数据验证框架
  • fastmcp:MCP服务器端框架

💻 使用示例

基础用法

# EPUB处理示例
# 获取指定目录下的所有EPUB文件
epub_files = get_all_epub_files("/path/to/books")

# 提取单个EPUB文件的元数据
metadata = get_metadata("/path/to/book.epub")

# 读取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")

# 读取PDF文件的目录结构
toc = get_pdf_toc("/path/to/book.pdf")

# 获取特定页码的内容(纯文本格式)
page_text = get_pdf_page_text("/path/to/book.pdf", 1)

# 获取特定页码的内容(Markdown格式)
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 APIs

| 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文件的目录结构,返回章节标题及其对应的ID。 | | get_chapter_markdown(epub_path: str, chapter_id: str) -> str | 根据章节ID获取对应章节的内容,并将其转换为Markdown格式。 |

PDF APIs

| 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]] | 根据章节标题获取对应内容及其所在的页码范围。 |

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client