文档分析服务器

一个基于MCP协议的文档分析服务器,支持PDF、DOCX和纯文本的提取、分块、摘要和语义搜索功能。

  • by BabyChrist666
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BabyChrist666/mcp-document-server

使用说明

MCP文档分析服务器

A. 模型上下文协议(MCP) 为LLM应用程序提供文档分析功能的服务器。支持PDF、DOCX和明文提取,包括分块、摘要和语义搜索。

特性

  • 文档提取 -将PDF、DOCX和TXT文件解析为结构化文本
  • 智能分块 -为RAG管道拆分具有可配置重叠的文档
  • 语义搜索 -使用Cohere-Embed v3嵌入和搜索文档块
  • 摘要 -生成具有可配置详细级别的文档摘要
  • 元数据抽取 -提取标题、作者、日期、页数
  • MCP协议 -完全符合MCP标准,可与Claude、IDE和其他MCP主机集成

建筑

MCP Client (Claude, IDE, etc.)
        │
        │ MCP Protocol (JSON-RPC over stdio)
        │
        ▼
┌─────────────────────────────┐
│   MCP Document Server       │
├─────────────────────────────┤
│   Tools:                    │
│   ├── extract_text          │
│   ├── chunk_document        │
│   ├── search_chunks         │
│   ├── summarize_document    │
│   └── get_metadata          │
├─────────────────────────────┤
│   Resources:                │
│   ├── document://{path}     │
│   └── chunks://{doc_id}     │
├─────────────────────────────┤
│   Parsers:                  │
│   ├── PDFParser             │
│   ├── DocxParser            │
│   └── TextParser            │
└─────────────────────────────┘

快速开始

安装

git clone https://github.com/BabyChrist666/mcp-document-server.git
cd mcp-document-server

python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

pip install -r requirements.txt

使用Claude Desktop

添加到您的Claude桌面 claude_desktop_config.json:

{
  "mcpServers": {
    "document-analysis": {
      "command": "python",
      "args": ["-m", "mcp_doc_server"],
      "cwd": "/path/to/mcp-document-server"
    }
  }
}

使用Claude Code CLI

claude --mcp-server "python -m mcp_doc_server"

工具

extract_text

从文档文件中提取全文。

{
  "name": "extract_text",
  "arguments": {
    "file_path": "/path/to/document.pdf"
  }
}

chunk_document

将文档拆分为重叠的块以进行RAG。

{
  "name": "chunk_document",
  "arguments": {
    "file_path": "/path/to/document.pdf",
    "chunk_size": 500,
    "overlap": 50
  }
}

search_chunks

跨文档块的语义搜索。

{
  "name": "search_chunks",
  "arguments": {
    "query": "What are the payment terms?",
    "doc_id": "contract_2024",
    "top_k": 5
  }
}

summarize_document

生成文档摘要。

{
  "name": "summarize_document",
  "arguments": {
    "file_path": "/path/to/report.pdf",
    "detail_level": "brief"
  }
}

get_metadata

提取文档元数据(标题、作者、页面等)。

{
  "name": "get_metadata",
  "arguments": {
    "file_path": "/path/to/document.pdf"
  }
}

配置

变量 描述 默认值
COHERE_API_KEY 用于嵌入和生成的相干API密钥 必需
EMBEDDING_MODEL Cohere-嵌入模型 embed-english-v3.0
CHUNK_SIZE 默认块大小(以字符为单位) 500
CHUNK_OVERLAP 块之间的默认重叠 50

测试

pytest tests/ -v

技术栈

  • Python 3.10+ -运行时间
  • MCP-SDK -模型上下文协议实现
  • 凝聚 -嵌入和生成
  • PyPDF2 -PDF解析
  • python docx -DOCX解析
  • 派丹蒂克 -数据验证

许可证

麻省理工学院