loading…
Search for a command to run...
loading…
A multi-format MCP server that enables reading and generating Office, PDF, text, EPUB, and presentation documents. It provides unified tools for document proces
A multi-format MCP server that enables reading and generating Office, PDF, text, EPUB, and presentation documents. It provides unified tools for document processing and creation through AI assistants.
MCP(模型上下文协议)文档读取器 - 一个支持读取与生成 Office、PDF、文本、EPUB 和演示文档的多格式 MCP 服务。
.doc 和 .ppt用户指南 · API 参考 · 贡献指南 · 更新日志 · 许可证
graph TB
A[AI Assistant / User<br/>AI 助手 / 用户] -->|Call MCP tools<br/>调用 MCP 工具| B[MCP Document Reader<br/>MCP 文档读取器]
B -->|Read<br/>读取| C[Document Readers<br/>文档读取器]
B -->|Generate<br/>生成| D[Document Writers<br/>文档生成器]
C -->|TXT / CSV / MD| E[Text-based Readers<br/>文本类读取器]
C -->|DOC / DOCX| F[Word Readers<br/>Word 读取器]
C -->|PPT / PPTX| G[Presentation Readers<br/>演示读取器]
C -->|PDF / EPUB / Excel| H[Structured Readers<br/>结构化读取器]
D -->|write_word_document| I[DOCX Builder<br/>DOCX 生成器]
D -->|write_presentation| J[PPTX Builder<br/>PPTX 生成器]
I -->|Optional conversion<br/>可选转换| K[LibreOffice -> DOC]
J -->|Optional conversion<br/>可选转换| L[LibreOffice -> PPT]
E --> M[Return text / metadata<br/>返回文本 / 元数据]
F --> M
G --> M
H --> M
K --> M
L --> M
M --> A
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#f0f0f0
style D fill:#e8f5e9
style E fill:#e8f5e9
style F fill:#e8f5e9
style G fill:#e8f5e9
style H fill:#fff9c4
| 能力 | 格式 | 扩展名 | 说明 |
|---|---|---|---|
| 读取 | 文本 | .txt |
支持多编码文本提取 |
| 读取 | CSV | .csv |
归一化为制表符分隔文本 |
| 读取 | Markdown | .md, .markdown |
直接提取 Markdown 文本 |
| 读取 | Word | .doc, .docx |
.doc 通过命令 / LibreOffice 回退读取 |
| 读取 | .pdf |
提取文本 | |
| 读取 | PowerPoint | .ppt, .pptx |
.pptx 原生解析,.ppt 回退读取 |
| 读取 | EPUB | .epub |
基于 spine 顺序提取章节 |
| 读取 | Excel | .xlsx, .xls |
提取工作表和单元格内容 |
| 生成 | Word | .docx |
原生生成,支持段落和表格 |
| 生成 | Word | .doc |
通过 docx -> doc 的 LibreOffice 转换生成 |
| 生成 | PowerPoint | .pptx |
原生生成,支持标题、正文、要点、表格 |
| 生成 | PowerPoint | .ppt |
通过 pptx -> ppt 的 LibreOffice 转换生成 |
pip install mcp-documents-reader
如果需要 PowerPoint 生成功能,请确保运行环境中可用 python-pptx。
如果需要导出旧格式 .doc 或 .ppt,请安装 LibreOffice,并确保 soffice 或 libreoffice 已加入 PATH。
git clone https://github.com/xt765/mcp_documents_reader.git
cd mcp_documents_reader
pip install -e .
本服务器提供以下工具:
read_document使用统一接口读取任何支持的文档类型。
参数:
filename (string, 必填): 文档文件路径,支持绝对路径或相对路径。extract_document_images提取 DOCX 文件中的嵌入图片,并返回结构化 JSON 元数据。
参数:
filename (string, 必填): DOCX 文件路径。output_dir (string, 可选): 导出图片的目录。write_word_document生成 .docx Word 文档,或通过 LibreOffice 转换导出 .doc。
参数:
filename (string, 必填): 输出路径,后缀必须为 .docx 或 .doc。title (string, 可选): 文档标题。paragraphs (string 数组, 可选): 按顺序写入的段落。tables (object 数组, 可选): 表格定义,支持 title、headers、rows。write_presentation生成 .pptx 演示文稿,或通过 LibreOffice 转换导出 .ppt。
参数:
filename (string, 必填): 输出路径,后缀必须为 .pptx 或 .ppt。title (string, 可选): 标题页标题。subtitle (string, 可选): 标题页副标题。slides (object 数组, 可选): 幻灯片定义,支持 title、paragraphs、bullets、table。将以下内容添加到您的 MCP 配置文件中:
选项 1:使用 PyPI (推荐)
{
"mcpServers": {
"mcp-document-reader": {
"command": "uvx",
"args": [
"mcp-documents-reader"
]
}
}
}
选项 2:使用 GitHub 仓库
{
"mcpServers": {
"mcp-document-reader": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/xt765/mcp_documents_reader",
"mcp_documents_reader"
]
}
}
}
选项 3:使用 Gitee 仓库(国内访问更快)
{
"mcpServers": {
"mcp-document-reader": {
"command": "uvx",
"args": [
"--from",
"git+https://gitee.com/xt765/mcp_documents_reader",
"mcp_documents_reader"
]
}
}
}
配置完成后,AI 助手可以直接调用以下工具:
# 读取 DOCX 文件
read_document(filename="example.docx")
# 读取演示文稿
read_document(filename="example.pptx")
# 生成 DOCX 报告
write_word_document(
filename="report.docx",
title="周报",
paragraphs=["本周总结", "下周计划"],
tables=[
{
"title": "指标表",
"headers": ["名称", "数值"],
"rows": [["线索", 42], ["成交", 8]],
}
],
)
# 生成 PPTX 汇报
write_presentation(
filename="briefing.pptx",
title="季度汇报",
subtitle="Q2",
slides=[
{
"title": "亮点",
"paragraphs": ["概述段落"],
"bullets": ["重点 A", "重点 B"],
}
],
)
from mcp_documents_reader import DocumentReaderFactory
# 使用工厂类(推荐)
reader = DocumentReaderFactory.get_reader("document.pdf")
content = reader.read("/path/to/document.pdf")
# 检查格式是否支持
if DocumentReaderFactory.is_supported("file.xlsx"):
reader = DocumentReaderFactory.get_reader("file.xlsx")
content = reader.read("/path/to/file.xlsx")
读取任何支持的文档类型。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| filename | string | ✅ | 文档文件路径,支持绝对路径或相对路径 |
提取 DOCX 文件中的嵌入图片。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| filename | string | ✅ | DOCX 文件路径 |
| output_dir | string | ❌ | 可选的图片导出目录 |
直接生成 DOCX,或通过 LibreOffice 转换导出 DOC。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| filename | string | ✅ | 输出路径,后缀必须为 .docx 或 .doc |
| title | string | ❌ | 可选文档标题 |
| paragraphs | string[] | ❌ | 按顺序写入的段落 |
| tables | object[] | ❌ | 表格定义,支持 title、headers、rows |
直接生成 PPTX,或通过 LibreOffice 转换导出 PPT。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| filename | string | ✅ | 输出路径,后缀必须为 .pptx 或 .ppt |
| title | string | ❌ | 标题页标题 |
| subtitle | string | ❌ | 标题页副标题 |
| slides | object[] | ❌ | 幻灯片定义,支持 title、paragraphs、bullets、table |
mcp >= 1.26.0 - MCP 协议实现python-docx >= 1.2.0 - DOCX 读取和 Word 文档生成python-pptx >= 0.6.23 - PowerPoint 文档生成pypdf >= 6.8.0 - PDF 文件读取(替代 PyPDF2)openpyxl >= 3.1.5 - Excel 文件读取LibreOffice - 如果要导出旧格式 .doc 或 .ppt,则必须安装antiword / catppt - 旧格式 .doc / .ppt 读取时的可选辅助命令pytest >= 8.0.0 - 测试框架pytest-asyncio >= 0.24.0 - 异步测试支持pytest-cov >= 6.0.0 - 覆盖率报告basedpyright >= 0.28.0 - 类型检查ruff >= 0.8.0 - 代码检查和格式化本项目以 MIT License 协议开源。
本项目基于优秀的开源项目 xt765/mcp_documents_reader 进行二次开发,并在其基础上做了进一步增强。
我们当前主要新增和增强了以下能力:
非常感谢原仓库作者提供的基础能力与开源工作。
欢迎提交 Issue 和 Pull Request!
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcp-document-reader": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also