UNPKG

document-conversion-mcp

Version:
355 lines (280 loc) 9.05 kB
# Document Conversion MCP 一个强大的文档格式转换MCP (Model Context Protocol) 工具,支持多种文档格式之间的相互转换。 ## 🌟 特性 - **多格式支持**: 支持PDF、Word、Excel、PowerPoint、Markdown、HTML、文本等多种格式 - **批量转换**: 支持批量处理多个文档 - **MCP协议**: 完全兼容Model Context Protocol标准 - **本地运行**: 在本地安装并运行,加速启动 - **跨平台**: 支持任何有Node.js环境的系统 - **性能优化**: 浏览器实例复用减少启动开销 - **增强错误处理**: 详细日志记录和错误捕获 - **内存优化**: 缓存大小限制防止内存泄漏 ## 📋 支持的格式 ### 输入格式 - **PDF** (.pdf) - **Microsoft Word** (.docx, .doc) - **Microsoft Excel** (.xlsx, .xls) - **Microsoft PowerPoint** (.pptx, .ppt) - **Markdown** (.md, .markdown) - **HTML** (.html, .htm) - **纯文本** (.txt) - **CSV** (.csv) - **JSON** (.json) ### 输出格式 - **PDF** (.pdf) - **Microsoft Word** (.docx) - **Microsoft Excel** (.xlsx) - **Microsoft PowerPoint** (.pptx) - **HTML** (.html) - **Markdown** (.md) - **纯文本** (.txt) - **CSV** (.csv) - **JSON** (.json) - **图片** (.png, .jpg) ## 🚀 快速开始 ### 系统要求 - Node.js 18.0.0 或更高版本 - npm 包管理器 - 支持MCP协议的客户端 ### 推荐方式:NPX 一键部署 ⭐ **最简单的使用方式,无需本地安装,自动获取最新版本!** 在您的MCP客户端配置文件中添加以下配置: ```json { "mcpServers": { "document-conversion": { "command": "npx", "args": [ "document-conversion-mcp" ], "env": { "NODE_ENV": "production" } } } } ``` #### NPX 部署优势 -**零配置**: 无需手动下载和安装 -**自动更新**: 每次启动自动获取最新版本 -**跨平台**: 支持Windows、macOS、Linux -**即开即用**: 一行配置即可使用 -**官方维护**: 直接从npm官方源获取 ### 本地开发部署 适合需要自定义修改或离线使用的场景。 #### MCP配置文件 ```json { "mcpServers": { "document-conversion": { "command": "node", "args": [ "e:\\Document-conversion\\mcp-tools.js" ], "env": { "NODE_ENV": "production" } } } } ``` #### 使用步骤 1. **克隆项目**: `git clone https://github.com/renjismzy/Document-conversion.git` 2. **安装依赖**: `cd Document-conversion && npm install` 3. **配置MCP**: 将上述配置添加到您的MCP客户端 4. **启动服务**: MCP客户端会直接启动本地服务 ### HTTP/SSE 云端部署 适合需要高可用性和负载均衡的生产环境。 #### 使用streamable_http部署 ```json { "mcpServers": { "document-conversion": { "type": "streamable_http", "url": "https://mcp.api-inference.modelscope.net/cd3990ec86b54d/mcp" } } } ``` ### 部署方式对比 | 特性 | NPX部署 (推荐) | 本地开发 | HTTP/SSE部署 | |------|----------------|----------|-------------| | 配置难度 | ⭐ 极简 | ⭐⭐ 简单 | ⭐ 极简 | | 启动速度 | ⭐⭐⭐ 快 | ⭐⭐⭐⭐ 最快 | ⭐⭐⭐ 快 | | 网络依赖 | 首次需要 | 无 | 需要 | | 自动更新 | ✅ 自动 | ❌ 手动 | ✅ 自动 | | 自定义修改 | ❌ 不支持 | ✅ 完全支持 | ❌ 不支持 | | 维护成本 | ⭐ 极低 | ⭐⭐⭐ 中等 | ⭐ 极低 | ### 使用建议 - **🎯 日常使用**: 推荐 **NPX部署**,零配置,自动更新 - **🔧 开发调试**: 推荐 **本地开发**,便于修改和调试 - **☁️ 云端环境**: 推荐 **HTTP/SSE部署**,享受云端服务稳定性 - **📱 快速体验**: 推荐 **NPX部署**,一行配置即可使用 ## 🛠️ 统一转换工具 托管部署后,您将获得一个强大的统一文档转换工具 `document_converter`,支持8种不同的操作: ### 使用方法 所有功能都通过 `document_converter` 工具实现,通过 `operation` 参数指定具体操作: #### 1. 文档格式转换 (convert) ```json { "tool": "document_converter", "arguments": { "operation": "convert", "input_path": "./documents/report.docx", "output_path": "./output/report.pdf", "target_format": "pdf", "options": { "quality": 90 } } } ``` #### 2. 获取文档信息 (get_info) ```json { "tool": "document_converter", "arguments": { "operation": "get_info", "file_path": "./documents/report.docx" } } ``` #### 3. 批量转换 (batch_convert) ```json { "tool": "document_converter", "arguments": { "operation": "batch_convert", "input_directory": "./documents", "output_directory": "./output", "target_format": "pdf", "file_pattern": "*.docx" } } ``` #### 4. 列出支持格式 (list_formats) ```json { "tool": "document_converter", "arguments": { "operation": "list_formats" } } ``` #### 5. 文件验证 (validate_file) ```json { "tool": "document_converter", "arguments": { "operation": "validate_file", "file_path": "./documents/report.docx" } } ``` #### 6. 目录扫描 (scan_directory) ```json { "tool": "document_converter", "arguments": { "operation": "scan_directory", "directory_path": "./documents", "file_extensions": ["docx", "pdf", "txt"] } } ``` #### 7. 转换预览 (preview_conversion) ```json { "tool": "document_converter", "arguments": { "operation": "preview_conversion", "input_path": "./documents/report.docx", "target_format": "pdf" } } ``` #### 8. 状态检查 (check_status) ```json { "tool": "document_converter", "arguments": { "operation": "check_status" } } ``` ## 📖 转换示例 ### PDF 转换 - PDF → 文本: 提取PDF中的文本内容 - PDF → Markdown: 转换为Markdown格式,自动识别标题 - PDF → HTML: 转换为HTML网页格式 - PDF → 图片: 将PDF页面转换为PNG/JPG图片 ### Word 文档转换 - Word → PDF: 保持格式的PDF转换 - Word → HTML: 转换为网页格式 - Word → Markdown: 提取文本并转换为Markdown - Word → 文本: 纯文本提取 ### Excel 转换 - Excel → CSV: 转换工作表为CSV格式 - Excel → JSON: 将数据转换为JSON格式 - Excel → HTML: 生成HTML表格 ### Markdown 转换 - Markdown → HTML: 渲染为HTML网页 - Markdown → PDF: 生成PDF文档 - Markdown → Word: 转换为Word文档 ## ⚙️ 配置选项 ### 转换选项 - **quality**: 图片质量 (0-100) - **page_range**: PDF页面范围,如 "1-5" 或 "1,3,5" - **extract_images**: 是否提取图片 - **sheet**: Excel工作表名称 ### 环境变量 - **NODE_ENV**: 运行环境 (production/development) - **MCP_SERVER_NAME**: MCP服务器名称 ## 🐛 故障排除 ### 常见问题 1. **npx下载失败** - 检查网络连接 - 确保npm版本为最新 - 尝试清除npm缓存: `npm cache clean --force` 2. **Node.js版本不兼容** - 确保使用Node.js 18.0.0或更高版本 - 使用nvm管理Node.js版本 3. **权限问题** - 在Windows上以管理员身份运行 - 在Linux/macOS上使用sudo(如需要) 4. **PDF转换失败** - 确保PDF文件没有密码保护 - 检查文件路径是否正确 ### 调试模式 如需调试,可以设置环境变量: ```bash DEBUG=* npx --yes --package=https://github.com/renjismzy/Document-conversion.git -- node ./mcp-tools.js ``` ## 🔄 版本更新 使用托管部署的优势之一是自动更新。每次启动MCP服务器时,npx会自动检查并下载最新版本。 如果您想强制更新到最新版本: ```bash npm cache clean --force ``` ### 更新日志 - v1.0.0: 初始版本,支持基本转换 - v1.1.0: 添加批量转换和文档信息提取 - v1.2.0: 改进错误处理和添加更多格式支持 - v1.3.0: 添加浏览器实例复用优化 - v1.4.0: 添加增强错误处理、日志记录和内存优化 ## 📞 支持与贡献 ### 获取帮助 - 📋 [提交Issue](https://github.com/renjismzy/Document-conversion/issues) - 📖 [查看Wiki](https://github.com/renjismzy/Document-conversion/wiki) - 💬 [讨论区](https://github.com/renjismzy/Document-conversion/discussions) ### 贡献代码 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开Pull Request ## 📄 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 --- **Document Conversion MCP** - 让文档转换变得简单高效! 🚀 > 💡 **提示**: 推荐使用托管部署方式,享受零配置、自动更新的便利体验!