Skip to main content

让AI读懂任何复杂文档 - MCP服务器

Project description

📄 Doc MCP Server

让AI读懂任何复杂文档 - 解决AI上下文限制问题的通用MCP服务器

License: MIT Python 3.10+ MCP

English | 中文


🌟 为什么需要这个工具?

当你让AI处理复杂的Excel/PDF/Word文档时,是否遇到过这些问题:

  • ❌ AI只能读取一部分内容就"失忆"了
  • ❌ 合并单元格、复杂表格让AI无法理解
  • ❌ 323行的征信报告,AI读到一半就乱了
  • ❌ 需要反复调试才能准确定位字段

Document Analyzer MCP 专为解决这些痛点而生!

✨ 核心特性

🎯 智能文档分析

  • 自动识别章节结构
  • 处理合并单元格、嵌套表头
  • 生成AI友好的结构化文档

📊 支持多种格式

  • Excel (.xlsx, .xls) - 完整支持
  • 🚧 PDF (.pdf) - 开发中
  • 🚧 Word (.docx) - 开发中

🔍 精确字段定位

  • 字段映射表(字段名 → 坐标)
  • 章节级别读取
  • 支持模糊搜索

⚡ 高效性能

  • 结构化缓存
  • 按需加载
  • 批量操作

🚀 快速开始

安装

# 方式1: 从PyPI安装(即将上线)
pip install doc-mcp-server

# 方式2: 从源码安装
git clone https://github.com/yourusername/doc-mcp-server
cd doc-mcp-server
pip install -e .

配置Claude Desktop

claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "document-analyzer": {
      "command": "python",
      "args": ["-m", "document_analyzer.server"]
    }
  }
}

基础使用

# 在Claude中使用

1. 分析文档
analyze_document(
  file_path="/path/to/your/document.xlsx",
  output_format="json"
)

2. 读取字段
read_field(
  file_path="/path/to/your/document.xlsx",
  field_key="第一部分:信息概要_企业名称"
)

3. 读取章节
read_section(
  file_path="/path/to/your/document.xlsx",
  section_name="第一部分:信息概要"
)

📖 使用示例

示例1: 处理征信报告

用户: "分析这份征信报告的结构"
AI调用: analyze_document(file_path="credit_report.xlsx")

AI返回:
{
  "meta": {
    "format": "excel",
    "total_fields": 68,
    "page_count": 1
  },
  "sections": [
    {"title": "第一部分:信息概要", "row_range": "4-16"},
    {"title": "未结清信贷及授信信息概要", "row_range": "17-93"},
    ...
  ]
}

示例2: 读取特定数据

用户: "读取企业的借贷交易信息"
AI调用: read_section(
  file_path="credit_report.xlsx",
  section_name="第一部分:信息概要"
)

AI返回:
{
  "section_name": "第一部分:信息概要",
  "data": {
    "首次有信贷交易的年份": "2020",
    "发生信贷交易的机构数": "5",
    "借贷交易": "1000000"
  }
}

🛠️ 可用工具

1. analyze_document

分析文档结构,生成元数据

参数:

  • file_path: 文档路径
  • output_format: 输出格式 (json/markdown)
  • deep_analysis: 是否深度分析

2. read_field

读取指定字段的值

参数:

  • file_path: 文档路径
  • field_key: 字段键 (格式: "章节名_字段名")

3. read_section

读取整个章节数据

参数:

  • file_path: 文档路径
  • section_name: 章节名称

4. write_field (仅Excel)

写入字段值

参数:

  • file_path: 文档路径
  • field_key: 字段键
  • value: 要写入的值

5. list_sections

列出所有章节

6. list_fields

列出所有字段或指定章节的字段

7. export_structure

导出文档结构为JSON或Markdown

🎯 实际应用场景

📊 数据分析

  • 财务报表分析
  • 征信报告处理
  • 统计数据提取

📝 文档自动化

  • 合同信息提取
  • 报告生成
  • 数据迁移

🤖 AI应用

  • RAG系统数据源
  • 文档问答系统
  • 智能助手集成

🏗️ 技术架构

用户 → Claude Desktop → MCP Server → Document Analyzer
                                          ↓
                              Excel/PDF/Word Analyzer
                                          ↓
                            结构化数据 + 字段映射表

📊 性能对比

场景 传统方式 Document Analyzer MCP
Token消耗 ~15000 ~2000
成功率 30% 90%+
处理时间 多次调试 一次成功

🤝 贡献指南

欢迎贡献代码!请查看 CONTRIBUTING.md

开发环境设置

git clone https://github.com/yourusername/doc-mcp-server
cd doc-mcp-server
pip install -e ".[dev]"
pytest

📄 许可证

MIT License - 详见 LICENSE

🙏 致谢

📮 联系方式


🌏 中文

项目背景

在使用AI处理大型或复杂文档时,经常会遇到上下文长度限制的问题。例如:

  • 一份323行的企业征信报告,包含1352个合并单元格
  • AI读取时常常"失忆",无法完整理解文档结构
  • 需要多次尝试才能准确定位字段

Document Analyzer MCP 通过将复杂文档转换为AI可理解的结构化数据,彻底解决了这个问题。

核心理念

不让AI直接读取原始文档,而是给它一份"说明书"

工作流程:

  1. 分析文档 → 提取结构
  2. 生成字段映射表 → 精确定位
  3. AI按需读取 → 避免上下文过载

实战案例:征信报告处理

传统方式

AI读取Excel → 内容过长 → 失忆 → 重试 → 再失忆 → 放弃
成功率: 30%

使用MCP

analyze_document → 获取结构 → read_section → 精确读取 → 完成
成功率: 90%+

支持的文档类型

已支持

  • ✅ Excel (.xlsx, .xls) - 完整支持合并单元格、复杂表头

开发中

  • 🚧 PDF - 结构化PDF + OCR扫描件
  • 🚧 Word - 长文档 + 复杂格式

计划中

  • 📋 Markdown - 技术文档
  • 📑 CSV - 简单表格

安装使用

详见 快速开始 章节

开发路线图

  • v0.1 (当前) - Excel基础功能
  • v0.2 - PDF/Word支持 + 智能分块
  • v0.3 - 向量化存储 + 语义搜索
  • v1.0 - 生产级稳定性

社区


Made with ❤️ by Yang Jiahui

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doc_mcp_server-0.1.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doc_mcp_server-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file doc_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: doc_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for doc_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a93284c40de33c691378d663b27d4b5378849fb95d0d80657545c3902df67523
MD5 d0ba7062e3390ca5442b096660ee8aea
BLAKE2b-256 3d46643e76855736f161086283ebbe6b83be0fddf74825f712a1cbdd1659fd2f

See more details on using hashes here.

File details

Details for the file doc_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: doc_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for doc_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e99a8b99df7b214c54fe6672dcf9d8a3871466f52119da899bda5c762e3239fc
MD5 c944fec7334172af0de963dfae0cd029
BLAKE2b-256 b6e44ae7bb72ffe691d8aaf0c627005d8e7a489b61b68e2a4e492e6552887901

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page