使用说明
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解析
- 派丹蒂克 -数据验证
许可证
麻省理工学院