使用说明
+--------------------------------------------------------------------------------+
| |
| __ __ ____ ____ ____ _ |
| | \/ |/ ___| _ \ | _ \ ___ ___ _ _ _ __ ___ | |_ ___ |
| | |\/| | | | |_) |_____| | | |/ _ \ / __| | | | '_ ` _ \ | __/ _ \ |
| | | | | |___| __/_____| |_| | (_) | (__| |_| | | | | | | | || __/ |
| |_| |_|\____|_| |____/ \___/ \___|\__,_|_| |_| |_| \__\___| |
| |
| ____ _ _ _ _ _ |
| |_ _|_ __ | |_ ___| | (_) __ _ ___ _ __ ___| | |
| | || '_ \ | __/ _ \ | | |/ _` |/ _ \ '_ \ / __| | |
| | || | | || || __/ | | | (_| | __/ | | | (__| | |
| |___|_| |_| \__\___|_|_|_|\__, |\___|_| |_|\___|_| |
| |___/ |
| |
| MCP SERVER | OCR | ANALYZE | ORGANIZE |
| |
+--------------------------------------------------------------------------------+
MCP文档智能服务器
具有高级批处理和智能文档组织的模型上下文协议服务器
🎯 专为 困惑桌面, 克劳德桌面,以及其他MCP兼容客户端 –用企业级文档智能为您的AI助手充电。
此MCP服务器通过AI客户端中的自然语言请求分析、重命名、分类和组织文档。它递归扫描文件夹,检测重复项,从PDF、DOCX、Pages、图像和文本文件中提取元数据,并对扫描的文档使用OCR。预览模式、备份、撤消支持、元数据导出和内存优化的批处理使其适用于大型个人档案。其结果是一个由人工智能驱动的文档工作流程,保持本地、快速和自动化。
🎯 特性
🔍 v4.6中的新功能-自动OCR集成
- 📸 扫描PDF的自动OCR:当文本提取产生<50个字符时,自动回退到Tesseract OCR
- 🖼️ 图像支持:在所有工具中使用OCR处理.jpg、.jpeg、.png文件
- 🇩🇪 德语:预先配置了德语支持(
-l deu) - 🏢 增强实体检测:沃达丰、Telekom、O2、DHL、亚马逊现已获得认可
- 📁 固定分类:沃达丰→ 11_电信(不是保险!)
- ⚡ 优雅的后退:pdftotext→ OCR → 空字符串(每个文件超时30秒)
- 📋 更多文档类型添加食谱, 取消, 提醒模式
- 🌍 完整存档扫描:新脚本分析了693个文件,通过OCR改进了559个文件
- 📚 文档:完成 OCR-集成.md 引导
⚡ v4.5-高级归档管理
- 🧹 清理旧结构:删除旧文件夹层次结构,合并到标准类别中
- 📁 优化文件夹结构:删除空文件夹,将单个文件类别移动到99_Sonstiges
- 🤖 智能名称:用于智能命名的PDF内容分析(提取公司、文档类型)
- 📋 move_lose_files:松散文件的基于模式的分类
- 🎯 生产就绪:使用2714个文件进行测试,工作流程完全自动化
- 📚 完整文档: 生产-设置.md 和 测试-周长.md
⚡ v4.4-性能优化
- 🎯 内存高效处理:基于生成器的文件扫描-无内存溢出
- 📊 批处理:每批处理25个文件,并自动暂停
- 🛡️ 安全限值:可配置的限制(500个文件/年)可防止系统崩溃
- 🧹 垃圾回收:批之间的显式内存清理
- ⏸️ 渐进式处理:恢复具有状态跟踪的友好架构
- 📈 内存占用减少:与以前的版本相比减少了90%
🤖 v4.3-自治组织
- 🔄 自动组织文件夹:自动分析和组织文件夹
- 📥 进程下载:自动文件下载到带有类别检测的存档中
- 🧩 批量_组织_大型:以具有恢复功能的块处理>100个文件
- 📊 智能分类自动检测10+类别(金融,健康,旅游等)
- 💾 状态持久性:从JSON状态文件恢复中断的操作
- 🎯 十年检测:自动路由到Achziger/Neunziger/Nuller/Zehner/Zwanziger
� v4.2-完全支持PDF OCR
- 📄 扫描PDF智能:基于图像的PDF的完整OCR解决方案
- 🤖 自动检测:从文本提取到OCR的智能回退(<50个字符触发OCR)
- 📊 质量指标:OCR置信度评分和质量评估
- ⚡ 优化处理:PDF.js渲染+Tesseract OCR(最多5页)
- 🌍 德语语言模型:为本地文档预先配置
- 📜 Apache-2.0许可:PDF.js(Mozilla)没有许可问题
�🚀 v4.1-质量和性能增强
- 🧪 全面测试:100个自动化测试用例,通过率99%
- 📊 性能指标:实时处理统计数据和吞吐量报告
- 🔍 增强验证:文件大小、名称长度和类型验证
- 🌐 更好的编码检测:带报告的自动UTF-8/Latin-1切换
- ⚡ 优化处理:每个文件平均<100ms,批处理<2000ms
- 🛡️ 稳健的错误处理:带有可操作建议的结构化错误
🚀 v4.0-企业功能
- 🔍 递归扫描:深度文件夹分析高达10级
- 👥 重复检测:基于SHA256的文件重复数据删除
- 👁️ 预览模式:执行前的试运行操作
- ⏮️ 备份和撤消:一键恢复自动备份
- 📊 元数据导出:将分析结果导出为JSON/CSV
- 🎯 智能过滤器:按文件类型和关键字筛选
- 📋 复印模式:复制文件而不是移动它们
- ⚙️ 可配置规则:自定义文件夹组织模式
- 🎨 OCR质量反馈:扫描文档的置信度得分
- 📈 详细统计:综合运营总结
📦 批量文档处理
- 文件夹扫描:在一次操作中递归分析整个文件夹
- 批量组织:自动重命名和移动多个文件
- 智能文件夹结构:自动生成有组织的文件夹层次结构
- 工作流自动化:扫描→ 分析→ 预览→ 组织→ Undo
�📄 多格式文档智能
- 文本提取:从PDF、DOCX、页面、图像、TXT中提取文本
- 完整PDF OCR:PDF.js+Tesseract.js用于扫描PDF(自动回退)
- OCR质量评分:所有OCR操作的置信度指标和质量评估
- 多编码支持:自动检测和处理UTF-8、Latin-1/ISO-8859-1
- 稳健解析:处理空字节、特殊字符和异常文件名
- 智能文件名建议:自动提取:
- 扫描仪时间戳(保留现有时间戳
2024-01-24_14-30-45格式) - 文件日期(DD.MM.YYYY,YYYY-MM-DD)
- 参考号(发票号、客户号、订单号、合同号)
- 关键词(发票、合同、公司名称)
- 扫描仪时间戳(保留现有时间戳
🚀 快速开始
系统要求
要获得完整的PDF-OCR支持,请安装以下系统工具:
# macOS (via Homebrew)
brew install tesseract tesseract-lang # OCR engine with all languages
brew install poppler # PDF rendering tools (pdftoppm)
先决条件
您需要以下AI桌面客户端之一:
- 困惑桌面应用程序 (macOS/Windows)
- Claude桌面应用程序 (macOS/Windows)
两者都支持模型上下文协议(MCP),用于使用自定义工具扩展AI功能。
安装
git clone https://github.com/AndreasDietzel/mcp-document-intelligence.git
cd mcp-document-intelligence
npm install
npm run build
配置
添加到MCP客户端配置中:
对于困惑桌面:
地点: ~/Library/Application Support/Perplexity/perplexity-config.json (macOS)
{
"mcpServers": {
"document-intelligence": {
"command": "node",
"args": ["/path/to/mcp-document-intelligence/build/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
对于Claude Desktop:
地点: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
{
"mcpServers": {
"document-intelligence": {
"command": "node",
"args": ["/path/to/mcp-document-intelligence/build/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
重新启动AI客户端 在更新配置之后。
MCP文件系统集成
此服务器与官方服务器配合使用效果最佳 MCP文件系统服务器,为您的AI助手提供文件浏览和管理功能。
困惑/Claude的推荐设置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/your/documents"
]
},
"document-intelligence": {
"command": "node",
"args": ["/path/to/mcp-document-intelligence/build/index.js"]
}
}
}
配置了两台服务器后,您可以:
- 问你的AI 在文件夹中查找文档(文件系统服务器)
- 分析和组织 自动(文档智能服务器)
- 完整的工作流程 通过与困惑/克劳德的自然对话处理
📋 可用工具
analyze_document
分析单个文档并建议一个智能文件名。
输入:
{
"filePath": "/path/to/document.pdf"
}
输出示例:
{
"originalFilename": "20240124_143045_scan.pdf",
"suggestedFilename": "20240124_143045_RE-2024-1234_rechnung_telekom.pdf",
"documentDate": "24.01.2024",
"references": ["RE-2024-1234"],
"keywords": ["rechnung", "telekom"],
"scannerDatePreserved": true,
"textLength": 2450,
"preview": "Rechnung Nr. RE-2024-1234..."
}
analyze_folder ✨ 在v4.0中增强
分析文件夹中的所有文档(使用递归扫描、重复检测和过滤进行批处理)。
输入:
{
"folderPath": "/path/to/folder",
"recursive": true,
"fileTypes": ["invoice", "contract"],
"keywords": ["telekom", "vodafone"]
}
输出:
{
"folderPath": "/path/to/folder",
"totalFiles": 15,
"duplicateGroups": [
{
"hash": "abc123...",
"count": 3,
"files": ["doc1.pdf", "doc1_copy.pdf", "duplicate.pdf"]
}
],
"documents": [
{
"originalPath": "...",
"suggestedFilename": "...",
"ocrQuality": "good",
"confidence": 0.95,
"metadata": {...}
}
]
}
suggest_folder_structure ✨ v3.0中的新功能
提出基于分析文档的智能文件夹组织。
输入:
{
"documents": [ /* array from analyze_folder */ ]
}
auto_organize_folder 🤖 v4.3中的新功能
自动分析和组织文件夹-一步完成分析+重命名/移动。
输入:
{
"sourcePath": "/path/to/source",
"archivePath": "/path/to/archive",
"dryRun": false,
"createCategories": true,
"stateFile": "/tmp/state.json"
}
输出:
{
"total": 150,
"processed": 147,
"moved": 145,
"categorized": {
"01_Finanzen": 45,
"03_Gesundheit": 12,
"06_Reisen": 23,
"99_Sonstiges": 65
},
"errors": [{"file": "...", "error": "..."}]
}
process_downloads 📥 v4.3中的新功能
扫描Downloads文件夹,并自动将文档归档,同时检测年份和类别。
输入:
{
"downloadsPath": "~/Downloads",
"archiveBasePath": "/path/to/archive",
"autoMove": false,
"maxFiles": 50
}
输出:
{
"scanned": 23,
"suggestions": [
{
"from": "~/Downloads/Rechnung.pdf",
"to": "/archive/Zwanziger/2025/01_Finanzen/2025-03-15_Rechnung_Telekom.pdf",
"year": 2025,
"category": "Finanzen"
}
],
"filed": [],
"errors": []
}
batch_organize_large 🧩 v4.3中的新功能
使用恢复功能将大文件夹(>100个文件)分块处理。
输入:
{
"folderPath": "/path/to/large/folder",
"targetArchivePath": "/path/to/archive",
"chunkSize": 50,
"stateFilePath": "/tmp/batch-state.json"
}
输出:
{
"chunkCompleted": true,
"totalFiles": 500,
"processedFiles": 50,
"successCount": 48,
"errorCount": 2,
"percentComplete": 10,
"nextChunkExists": true,
"stateFilePath": "/tmp/batch-state.json"
}
输出:
{
"structure": {
"2024": {
"Rechnungen": ["Telekom", "Vodafone"],
"Vertraege": ["..."]
}
},
"assignments": [
{
"originalPath": "/path/scan001.pdf",
"targetFolder": "2024/Rechnungen/Telekom",
"newFilename": "2024-01-24_RE-123_rechnung_telekom.pdf"
}
]
}
batch_organize ✨ 在v4.0中增强
执行批量重命名和自动备份文件的移动/复制。
输入:
{
"baseFolder": "/path/to/organized",
"mode": "move",
"createBackup": true,
"operations": [
{
"originalPath": "/path/scan001.pdf",
"targetFolder": "2024/Rechnungen/Telekom",
"newFilename": "2024-01-24_RE-123_rechnung_telekom.pdf"
}
]
}
输出:
{
"success": true,
"mode": "move",
"filesProcessed": 15,
"filesFailed": 0,
"foldersCreated": 5,
"backupCreated": true,
"backupPath": "/path/.backup_2024-01-24T10-30-00.json",
"results": [...]
}
preview_organization ✨ v4.0中的新功能
显示在不进行更改的情况下会发生什么的模拟预览。
输入:
{
"baseFolder": "/path/to/organized",
"operations": [ /* same as batch_organize */ ]
}
输出:
{
"preview": [
{
"action": "move",
"from": "/path/scan001.pdf",
"to": "/path/organized/2024/Rechnungen/Telekom/2024-01-24_RE-123.pdf",
"status": "ok"
}
],
"warnings": [],
"stats": {
"totalFiles": 15,
"foldersToCreate": ["2024/Rechnungen/Telekom"],
"conflicts": 0,
"missingFiles": 0
},
"safeToExecute": true
}
undo_last_organization ✨ v4.0中的新功能
从自动备份中还原上次组织操作。
输入:
{
"baseFolder": "/path/to/organized"
}
输出:
{
"success": true,
"restored": 15,
"failed": 0,
"backupFile": "/path/.backup_2024-01-24T10-30-00.json"
}
export_metadata ✨ v4.0中的新功能
将分析的文档元数据导出为JSON或CSV格式。
输入:
{
"documents": [ /* array from analyze_folder */ ],
"format": "csv"
}
输出(CSV):
Filename,Path,Date,References,Keywords,OCR Quality,Confidence,Type
scan001.pdf,/path/scan001.pdf,24.01.2024,RE-2024-1234,rechnung;telekom,good,0.95,invoice
...
🔧 用例
单文档分析
analyze_document with filePath: "/path/to/scanned_invoice.pdf"
→ 提取发票号码、日期、公司名称,并建议:
2024-01-24_INV-2024-001_rechnung_telekom.pdf
高级批处理组织(v4.0)
与困惑或克劳德的对话示例:
You: "Analyze all documents recursively in my 2026 folder, find duplicates"
AI (using analyze_folder with recursive=true):
→ Scanned 10 levels deep
→ Found 150 documents
→ Detected 12 duplicates (3 groups)
→ Extracted: dates, invoice numbers, companies
→ OCR quality: 95% confidence average
AI (using suggest_folder_structure):
→ Proposes: 2026/Rechnungen/Telekom, 2026/Vertraege/Vodafone, etc.
→ Shows: Complete list of file renames and target folders
AI (using preview_organization):
→ Preview: 150 files will be moved
→ Folders to create: 8
→ Conflicts: 0
→ Safe to execute: YES
AI: "I found 150 documents (12 duplicates). Should I organize them into
2026/Rechnungen, 2026/Vertraege with smart filenames?"
You: "Yes, but copy instead of moving"
AI (using batch_organize with mode="copy", createBackup=true):
→ Copies all files (originals preserved)
→ Creates folder structure
→ Backup created for undo
→ Processes everything automatically
AI: "Done! Organized 150 documents, created 8 folders, backup saved.
15 files processed, 0 failed. Type 'undo' to revert."
You: "Export the metadata as CSV"
AI (using export_metadata with format="csv"):
→ Exports all document metadata
→ Includes: filename, date, references, keywords, OCR quality
AI: "CSV exported with all metadata for 150 documents."
完整工作流v4.0:
- 扫描仪保存到“收件箱”文件夹
- 告诉困惑/Claude递归分析+查找重复项
- 执行前预览更改
- 使用复制或移动模式确认
- 文件自动组织并自动备份
- 导出记录的元数据
- 如有需要,随时撤销
工作流自动化
- 之前:手动分拣100多份扫描文件
- 之后:一个命令→ 预览→ 组织(秒)
- 安全:自动备份、预览模式、撤消功能
- 非常适合:税务文件、发票、合同、收据、档案
🛠️ 技术细节
依赖项
- pdf解析:PDF文本提取
- 猛犸:DOCX文档处理
- adm zip:页面文档提取
- tesseract.js:用于扫描文档和图像的OCR
- @模型上下文协议/sdk:MCP协议实施
文件结构
mcp-document-intelligence/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled output
├── package.json
├── tsconfig.json
└── README.md
文件名模式识别
分析仪识别:
- 扫描仪时间戳:
YYYY-MM-DD_HH-MM-SS或YYYYMMDD_HHMMSS - 文件日期:
DD.MM.YYYY,YYYY-MM-DD - 参考图案:
Rechnungs-Nr: XXX/Invoice: XXXKunden-Nr: XXX/Customer: XXXBestell-Nr: XXX/Order: XXXVertrag-Nr: XXX/Contract: XXX
- 关键词:发票、合同、报价、订单、常用公司名称
文件夹结构生成
自动按以下方式对文档进行分组:
- 年:摘自文件日期
- 类别发票、合同、报价、提醒等。
- 公司:电信、沃达丰、亚马逊、PayPal、银行等。
🔒 隐私和安全
- ✅ 所有数据都保留在本地 -没有外部API对个人数据的调用
- ✅ 设备上的OCR处理 -Tesseract.js在本地运行
- ✅ 无数据传输 -所有处理都在本地进行
- ✅ 不记录文档内容
🌍 编码和国际支持
- ✅ 自动编码检测 -UTF-8和Latin-1/ISO-8859-1
- ✅ 国际人物 -完全支持Unicode(日语、中文、中文、拼音、拼音)
- ✅ 德国Umlauts -对äöuÄÖß的原生支持
- ✅ 特殊字符 -处理文件名中的管道、冒号和引号
- ✅ 空字节处理 -自动清除损坏的文件
- ✅ 编码信息 -报告在分析结果中检测到编码
🧪 质量保证
该项目通过全面测试保持高质量标准:
- 100个自动化测试 涵盖所有功能
- 99%的测试通过率 (99/100项测试通过)
- 符合ISO 25010标准 -质量特征已验证
- 性能基准 -每个文件平均<100ms
- 安全测试 -路径遍历和数据隐私验证
看 测试文档.md 查看详细的测试覆盖率和结果。
🚀 路线图
- [x] 支持多格式文档(PDF、DOCX、Pages、Images、TXT)
- [x] 批处理支持
- [x] 根据内容自动归档到文件夹
- [x] 递归文件夹扫描
- [x] 使用SHA256进行重复检测
- [x] 预览模式(模拟运行)
- [x] 备份和撤消功能
- [x] 元数据导出(JSON/CSV)
- [x] 复制与移动模式
- [x] OCR质量反馈
- []可配置的命名模板
- []自定义参考号模式
- []Excel/CSV文档支持
- []与文档管理系统集成
- []用于改进分类的机器学习
📄 许可证
MIT许可证-请参阅 许可证 文件
🙏 致谢
- 建于 模型上下文协议SDK
- 灵感来自并基于以下概念 MCP文件系统服务器
- PDF解析 pdf解析
- OCR通过 Tesseract.js
专为智能文档工作流程而设计 📄✨
