全能文档解析服务doc-mcp-server

项目概述

doc-mcp-server 是一个基于 MCP (Model Context Protocol) 的文档读取服务,专为解决 trae 读取各种文档格式而创建。该服务提供了统一的接口,支持读取 Word、Excel、PowerPoint、PDF 文档以及图片 OCR 识别,确保 trae 能够正确处理和分析各种格式的文档内容。

核心功能

  • Word 文档读取:支持读取 .docx 格式文档内容
  • Excel 表格读取:支持读取 .xlsx 格式表格数据
  • PowerPoint 读取:支持读取 .pptx 格式演示文稿内容
  • PDF 文档读取:支持提取 PDF 文档中的文本内容
  • 图片 OCR 识别:支持识别图片中的文字内容

技术栈

  • 后端语言:Python 3.11
  • 核心框架:MCP (Model Context Protocol)
  • 文档处理库 :
    • python-docx (Word 处理)
    • pandas + openpyxl (Excel 处理)
    • python-pptx (PowerPoint 处理)
    • pdfplumber (PDF 处理)
    • pytesseract + Pillow (OCR 处理)
  • 容器化:Docker + docker-compose

环境要求

  • Python 3.11+ (直接运行)
  • Docker (容器化部署)
  • tesseract-ocr (OCR 功能需要)

安装与部署

方法一:直接运行

  1. 克隆项目到本地

  2. 进入 src 目录

  3. 安装依赖:

    bash 复制代码
    pip install -r requirements.txt
  4. 安装 tesseract-ocr(OCR 功能需要):

    • Windows: 下载并安装 tesseract-ocr
    • Ubuntu/Debian: apt-get install tesseract-ocr
    • macOS: brew install tesseract
  5. 启动服务:

    bash 复制代码
    python server.py

方法二:Docker 部署

  1. 克隆项目到本地

  2. 进入 src 目录

  3. 构建并启动容器:

    bash 复制代码
    docker-compose up -d

项目结构

复制代码
doc-mcp-server/
├── src/
│   ├── Dockerfile          # Docker 构建文件
│   ├── docker-compose.yml  # Docker 编排配置
│   ├── requirements.txt    # Python 依赖项
│   └── server.py           # 主服务代码
├── LICENSE                 # 许可证文件
└── README.md               # 项目文档

使用方法

调用 MCP 服务

服务启动后,可以通过 MCP 协议调用以下工具:

  1. 读取 Word 文档:

    • 工具名:read_word
    • 参数:file_bytes (bytes) - Word 文档的二进制数据
    • 返回:文档文本内容
  2. 读取 PDF 文档:

    • 工具名:read_pdf
    • 参数:file_bytes (bytes) - PDF 文档的二进制数据
    • 返回:文档文本内容
  3. 读取 Excel 表格:

    • 工具名:read_excel
    • 参数:file_bytes (bytes) - Excel 文档的二进制数据
    • 返回:表格数据的字符串表示
  4. 读取 PowerPoint 演示文稿:

    • 工具名:read_ppt
    • 参数:file_bytes (bytes) - PowerPoint 文档的二进制数据
    • 返回:演示文稿文本内容
  5. 图片 OCR 识别:

    • 工具名:ocr_image
    • 参数:file_bytes (bytes) - 图片的二进制数据
    • 返回:识别的文本内容

示例代码

python 复制代码
# 示例:使用 MCP 客户端调用 read_word 工具
from mcp.client import MCPClient

client = MCPClient("http://localhost:8000")

# 读取本地 Word 文档
with open("example.docx", "rb") as f:
    file_bytes = f.read()

result = client.call("read_word", file_bytes=file_bytes)
print(result)

配置说明

Docker 配置

  • Dockerfile:基于 Python 3.11-slim 镜像,安装 tesseract-ocr 和项目依赖
  • docker-compose.yml:定义了 doc-mcp 服务,设置为自动重启

依赖项配置

项目依赖项在 requirements.txt 文件中定义,包括:

  • mcp
  • python-docx
  • pandas
  • openpyxl
  • python-pptx
  • pdfplumber
  • pytesseract
  • pillow

本地 MCP 配置

在本地开发和测试环境中,可以使用以下 MCP 配置信息:

json 复制代码
{
  "mcpServers": {
    "document-reader": {
      "command": "C:\\ProgramData\\anaconda3\\envs\\docmcp\\python.exe",
      "args": [
        "C:\\codes\\doc-mcp-server\\src\\server.py"
      ]
    }
  }
}

此配置适用于本地开发和测试环境,使用 Anaconda 环境中的 Python 解释器运行服务。确保路径引用准确无误,根据实际安装位置进行调整。

常见问题解答

  1. OCR 功能无法使用

    • 确保已安装 tesseract-ocr
    • Docker 部署已自动安装 tesseract-ocr
  2. 服务启动失败

    • 检查 Python 版本是否为 3.11+
    • 检查依赖项是否正确安装
  3. 文档读取失败

    • 确保文档格式正确
    • 检查文件大小是否合理

贡献指南

欢迎提交 Issue 和 Pull Request 来改进这个项目。贡献前请确保:

  1. 代码风格一致
  2. 添加必要的测试
  3. 更新相关文档

维护者

许可证

MIT License

相关推荐
强哥聊算力2 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
IT_Octopus4 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148115 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
CCblandy6 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
空空dream6 小时前
03 | 离线部署 FastAPI + Ollama(qwen2:0.5b):从 Docker 联调到 Kubernetes 验收
docker·ai·kubernetes·fastapi
秋饼7 小时前
Spring AI 2.0 结构化输出企业级实战:从 BeanOutputConverter 源码到生产级解析容错
java·ai·技术分享·后端开发
Cc.Y7 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究7 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
Smoothcloud润云7 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
goehou7 小时前
Prompt 注入实战:直接注入、间接注入和四道防线(附测试样例)
安全·ai·llm·agent·prompt注入