# 增强版DOCX MCP处理器
一个功能完整、模块化设计的Word文档处理系统,基于MCP(Model Context Protocol)协议,为AI工具提供强大的文档操作能力。
## 🌟 主要特性
### 1. 架构优势
- **模块化设计**: 功能清晰分离,易于维护和扩展
- **MCP协议**: 标准化的AI工具接口,兼容性好
- **状态管理**: 支持会话持久化,用户体验好
- **异步支持**: 使用FastMCP框架,性能优秀
### 2. 功能完整性
- **全面的文档操作**: 涵盖创建、编辑、格式化等全流程
- **丰富的表格功能**: 支持复杂的表格操作
- **图片处理**: 插入、删除、缩放、定位
- **字体管理**: 完整的字体样式控制
- **智能搜索替换**: 支持预览模式,减少误操作
- **格式保持**: 替换内容时保持原有格式
### 3. 可靠性
- **异常处理**: 每个函数都有完善的错误处理
- **日志记录**: 详细的操作日志,便于调试
- **状态恢复**: 服务重启后自动恢复工作状态
- **参数验证**: 严格的输入参数检查
### 4. 易用性
- **清晰的API**: 函数命名直观,参数明确
- **详细的文档**: 每个函数都有完整的docstring
- **错误提示**: 友好的错误信息,便于用户理解
- **交互模式**: 支持命令行交互,便于测试和调试
## 📋 功能清单
### A. 文档生命周期管理
- `create_document()` - 创建新的Word文档
- `open_document()` - 打开现有文档
- `save_document()` - 保存到原文件
- `save_as_document()` - 保存为新文件
- `close_document()` - 关闭文档
- `create_document_copy()` - 创建文档副本
### B. 内容编辑功能
- `add_paragraph()` - 添加段落,支持丰富格式
- `add_heading()` - 添加各级标题
- `add_page_break()` - 添加分页符
- `delete_paragraph()` - 删除段落
### C. 表格操作功能
- `add_table()` - 创建表格
- `add_table_row()` - 添加行
- `delete_table_row()` - 删除行
- `edit_table_cell()` - 编辑单元格
- `merge_table_cells()` - 合并单元格
### D. 图片处理功能
- `add_image()` - 插入图片,支持尺寸和位置控制
- `resize_image()` - 调整图片大小
- `delete_image()` - 删除图片
- `list_images()` - 列出所有图片信息
### E. 字体和格式化功能
- `set_paragraph_font()` - 设置段落字体样式
- `set_text_range_font()` - 设置文本范围字体
- `get_font_info()` - 获取字体信息
- `batch_format_paragraphs()` - 批量格式化段落
### F. 文本处理功能
- `search_text()` - 全文搜索
- `find_and_replace()` - 查找替换
### G. 页面设置功能
- `set_page_margins()` - 设置页边距
## 🚀 快速开始
### 安装依赖
```bash
pip install -r requirements_enhanced.txt
```
### 运行方式
#### 1. MCP服务器模式(推荐)
```bash
python enhanced_main.py
```
#### 2. 交互式模式
```bash
python enhanced_main.py --interactive
```
#### 3. 详细日志模式
```bash
python enhanced_main.py --verbose
```
### 基本使用示例
#### MCP工具调用示例
```python
# 通过MCP协议调用
{
"tool": "create_document",
"arguments": {
"file_path": "/path/to/new_document.docx"
}
}
{
"tool": "add_paragraph",
"arguments": {
"text": "这是一个测试段落",
"font_size": 12,
"font_name": "微软雅黑",
"bold": true
}
}
{
"tool": "add_image",
"arguments": {
"image_path": "/path/to/image.jpg",
"width": "10cm",
"alignment": "center"
}
}
```
#### 交互式命令示例
```bash
docx> create test.docx
文档创建成功: test.docx
docx> addp "这是第一个段落"
段落添加成功
docx> addh "章节标题" 1
添加了 1 级标题
docx> addtable 3 3
添加了 3x3 表格
docx> addimg photo.jpg
图片已添加: photo.jpg
docx> save
文档保存成功: test.docx
```
## 🏗️ 架构设计
### 核心模块
#### 1. `EnhancedDocxProcessor` - 主处理器
- 整合所有功能模块
- 提供统一的API接口
- 管理文档状态
#### 2. `StateManager` - 状态管理器
- 处理文档会话持久化
- 管理当前文档状态
- 支持多文档管理
#### 3. `ImageProcessor` - 图片处理器
- 图片插入、删除、缩放
- 位置控制和格式化
- 支持多种图片格式
#### 4. `FontProcessor` - 字体处理器
- 字体样式管理
- 文本格式化
- 批量样式应用
#### 5. `enhanced_server.py` - MCP服务器
- 基于FastMCP框架
- 提供完整的MCP工具集
- 异步处理和错误管理
### 模块关系图
```
enhanced_server.py (MCP接口层)
↓
EnhancedDocxProcessor (主处理器)
├── StateManager (状态管理)
├── ImageProcessor (图片处理)
├── FontProcessor (字体处理)
└── DocxProcessor (原有核心功能)
```
## 🔧 配置选项
### 日志配置
- 日志文件位置: `%TEMP%/enhanced_docx_processor.log`
- 支持控制台和文件双重输出
- 可配置日志级别
### 状态持久化
- 状态文件位置: `%TEMP%/docx_mcp_current_doc.txt`
- 自动保存当前文档状态
- 服务重启后自动恢复
## 🔍 高级功能
### 1. 上下文管理器
```python
with processor.document_context("document.docx") as proc:
proc.add_paragraph("临时操作")
# 自动管理文档状态
```
### 2. 批量操作
```python
# 批量格式化段落
processor.batch_format_paragraphs(0, 10, font_name="宋体", font_size=12)
```
### 3. 图片精确控制
```python
# 添加图片并精确控制尺寸和位置
processor.add_image("image.jpg", width="5cm", height="3cm", alignment="center")
```
### 4. 智能搜索替换
```python
# 搜索并预览替换结果
result = processor.search_text("关键词")
result = processor.find_and_replace("旧文本", "新文本")
```
## 🐛 调试和日志
### 启用详细日志
```bash
python enhanced_main.py --verbose
```
### 查看日志文件
- Windows: `%TEMP%/enhanced_docx_processor.log`
- Linux/Mac: `/tmp/enhanced_docx_processor.log`
### 常见问题排查
1. **文档打开失败**: 检查文件路径和权限
2. **图片添加失败**: 确认图片文件存在且格式支持
3. **字体设置无效**: 确认字体名称正确且系统已安装
4. **状态恢复失败**: 检查临时目录权限
## 📈 性能优化
### 1. 内存管理
- 自动清理不使用的文档对象
- 支持大文档的分块处理
### 2. 异步处理
- 基于FastMCP的异步架构
- 非阻塞的文档操作
### 3. 缓存机制
- 文档状态缓存
- 样式信息缓存
## 🔄 升级和兼容性
### 从原版升级
1. 安装新依赖: `pip install -r requirements_enhanced.txt`
2. 使用新的启动脚本: `python enhanced_main.py`
3. 原有API完全兼容,无需修改调用代码
### 向后兼容
- 保持所有原有API接口
- 支持原有的配置文件格式
- 兼容原有的文档格式
## 📝 开发指南
### 添加新功能
1. 在相应的处理器模块中添加功能
2. 在`EnhancedDocxProcessor`中添加代理方法
3. 在`enhanced_server.py`中添加MCP工具
4. 更新文档和测试
### 代码规范
- 遵循PEP 8编码规范
- 使用类型提示
- 添加完整的docstring
- 包含错误处理和日志记录
## 📄 许可证
本项目采用MIT许可证,详见LICENSE文件。
## 🤝 贡献
欢迎提交Issue和Pull Request来改进项目!
---
**增强版DOCX MCP处理器** - 让AI更好地处理Word文档!
Raw data
{
"_id": null,
"home_page": null,
"name": "docx-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "DOCX MCP Team <support@docx-mcp.com>",
"keywords": "docx, word, document, mcp, ai-tools, document-processing, image-processing, font-management",
"author": null,
"author_email": "DOCX MCP Team <support@docx-mcp.com>",
"download_url": "https://files.pythonhosted.org/packages/43/2f/376ba1648cdd9fd9eebd8e6e4fa7a16bfb1e8482b7b4fc174fd78dfb8269/docx_mcp-0.1.4.tar.gz",
"platform": null,
"description": "# \u589e\u5f3a\u7248DOCX MCP\u5904\u7406\u5668\r\n\r\n\u4e00\u4e2a\u529f\u80fd\u5b8c\u6574\u3001\u6a21\u5757\u5316\u8bbe\u8ba1\u7684Word\u6587\u6863\u5904\u7406\u7cfb\u7edf\uff0c\u57fa\u4e8eMCP\uff08Model Context Protocol\uff09\u534f\u8bae\uff0c\u4e3aAI\u5de5\u5177\u63d0\u4f9b\u5f3a\u5927\u7684\u6587\u6863\u64cd\u4f5c\u80fd\u529b\u3002\r\n\r\n## \ud83c\udf1f \u4e3b\u8981\u7279\u6027\r\n\r\n### 1. \u67b6\u6784\u4f18\u52bf\r\n- **\u6a21\u5757\u5316\u8bbe\u8ba1**: \u529f\u80fd\u6e05\u6670\u5206\u79bb\uff0c\u6613\u4e8e\u7ef4\u62a4\u548c\u6269\u5c55\r\n- **MCP\u534f\u8bae**: \u6807\u51c6\u5316\u7684AI\u5de5\u5177\u63a5\u53e3\uff0c\u517c\u5bb9\u6027\u597d\r\n- **\u72b6\u6001\u7ba1\u7406**: \u652f\u6301\u4f1a\u8bdd\u6301\u4e45\u5316\uff0c\u7528\u6237\u4f53\u9a8c\u597d\r\n- **\u5f02\u6b65\u652f\u6301**: \u4f7f\u7528FastMCP\u6846\u67b6\uff0c\u6027\u80fd\u4f18\u79c0\r\n\r\n### 2. \u529f\u80fd\u5b8c\u6574\u6027\r\n- **\u5168\u9762\u7684\u6587\u6863\u64cd\u4f5c**: \u6db5\u76d6\u521b\u5efa\u3001\u7f16\u8f91\u3001\u683c\u5f0f\u5316\u7b49\u5168\u6d41\u7a0b\r\n- **\u4e30\u5bcc\u7684\u8868\u683c\u529f\u80fd**: \u652f\u6301\u590d\u6742\u7684\u8868\u683c\u64cd\u4f5c\r\n- **\u56fe\u7247\u5904\u7406**: \u63d2\u5165\u3001\u5220\u9664\u3001\u7f29\u653e\u3001\u5b9a\u4f4d\r\n- **\u5b57\u4f53\u7ba1\u7406**: \u5b8c\u6574\u7684\u5b57\u4f53\u6837\u5f0f\u63a7\u5236\r\n- **\u667a\u80fd\u641c\u7d22\u66ff\u6362**: \u652f\u6301\u9884\u89c8\u6a21\u5f0f\uff0c\u51cf\u5c11\u8bef\u64cd\u4f5c\r\n- **\u683c\u5f0f\u4fdd\u6301**: \u66ff\u6362\u5185\u5bb9\u65f6\u4fdd\u6301\u539f\u6709\u683c\u5f0f\r\n\r\n### 3. \u53ef\u9760\u6027\r\n- **\u5f02\u5e38\u5904\u7406**: \u6bcf\u4e2a\u51fd\u6570\u90fd\u6709\u5b8c\u5584\u7684\u9519\u8bef\u5904\u7406\r\n- **\u65e5\u5fd7\u8bb0\u5f55**: \u8be6\u7ec6\u7684\u64cd\u4f5c\u65e5\u5fd7\uff0c\u4fbf\u4e8e\u8c03\u8bd5\r\n- **\u72b6\u6001\u6062\u590d**: \u670d\u52a1\u91cd\u542f\u540e\u81ea\u52a8\u6062\u590d\u5de5\u4f5c\u72b6\u6001\r\n- **\u53c2\u6570\u9a8c\u8bc1**: \u4e25\u683c\u7684\u8f93\u5165\u53c2\u6570\u68c0\u67e5\r\n\r\n### 4. \u6613\u7528\u6027\r\n- **\u6e05\u6670\u7684API**: \u51fd\u6570\u547d\u540d\u76f4\u89c2\uff0c\u53c2\u6570\u660e\u786e\r\n- **\u8be6\u7ec6\u7684\u6587\u6863**: \u6bcf\u4e2a\u51fd\u6570\u90fd\u6709\u5b8c\u6574\u7684docstring\r\n- **\u9519\u8bef\u63d0\u793a**: \u53cb\u597d\u7684\u9519\u8bef\u4fe1\u606f\uff0c\u4fbf\u4e8e\u7528\u6237\u7406\u89e3\r\n- **\u4ea4\u4e92\u6a21\u5f0f**: \u652f\u6301\u547d\u4ee4\u884c\u4ea4\u4e92\uff0c\u4fbf\u4e8e\u6d4b\u8bd5\u548c\u8c03\u8bd5\r\n\r\n## \ud83d\udccb \u529f\u80fd\u6e05\u5355\r\n\r\n### A. \u6587\u6863\u751f\u547d\u5468\u671f\u7ba1\u7406\r\n- `create_document()` - \u521b\u5efa\u65b0\u7684Word\u6587\u6863\r\n- `open_document()` - \u6253\u5f00\u73b0\u6709\u6587\u6863\r\n- `save_document()` - \u4fdd\u5b58\u5230\u539f\u6587\u4ef6\r\n- `save_as_document()` - \u4fdd\u5b58\u4e3a\u65b0\u6587\u4ef6\r\n- `close_document()` - \u5173\u95ed\u6587\u6863\r\n- `create_document_copy()` - \u521b\u5efa\u6587\u6863\u526f\u672c\r\n\r\n### B. \u5185\u5bb9\u7f16\u8f91\u529f\u80fd\r\n- `add_paragraph()` - \u6dfb\u52a0\u6bb5\u843d\uff0c\u652f\u6301\u4e30\u5bcc\u683c\u5f0f\r\n- `add_heading()` - \u6dfb\u52a0\u5404\u7ea7\u6807\u9898\r\n- `add_page_break()` - \u6dfb\u52a0\u5206\u9875\u7b26\r\n- `delete_paragraph()` - \u5220\u9664\u6bb5\u843d\r\n\r\n### C. \u8868\u683c\u64cd\u4f5c\u529f\u80fd\r\n- `add_table()` - \u521b\u5efa\u8868\u683c\r\n- `add_table_row()` - \u6dfb\u52a0\u884c\r\n- `delete_table_row()` - \u5220\u9664\u884c\r\n- `edit_table_cell()` - \u7f16\u8f91\u5355\u5143\u683c\r\n- `merge_table_cells()` - \u5408\u5e76\u5355\u5143\u683c\r\n\r\n### D. \u56fe\u7247\u5904\u7406\u529f\u80fd\r\n- `add_image()` - \u63d2\u5165\u56fe\u7247\uff0c\u652f\u6301\u5c3a\u5bf8\u548c\u4f4d\u7f6e\u63a7\u5236\r\n- `resize_image()` - \u8c03\u6574\u56fe\u7247\u5927\u5c0f\r\n- `delete_image()` - \u5220\u9664\u56fe\u7247\r\n- `list_images()` - \u5217\u51fa\u6240\u6709\u56fe\u7247\u4fe1\u606f\r\n\r\n### E. \u5b57\u4f53\u548c\u683c\u5f0f\u5316\u529f\u80fd\r\n- `set_paragraph_font()` - \u8bbe\u7f6e\u6bb5\u843d\u5b57\u4f53\u6837\u5f0f\r\n- `set_text_range_font()` - \u8bbe\u7f6e\u6587\u672c\u8303\u56f4\u5b57\u4f53\r\n- `get_font_info()` - \u83b7\u53d6\u5b57\u4f53\u4fe1\u606f\r\n- `batch_format_paragraphs()` - \u6279\u91cf\u683c\u5f0f\u5316\u6bb5\u843d\r\n\r\n### F. \u6587\u672c\u5904\u7406\u529f\u80fd\r\n- `search_text()` - \u5168\u6587\u641c\u7d22\r\n- `find_and_replace()` - \u67e5\u627e\u66ff\u6362\r\n\r\n### G. \u9875\u9762\u8bbe\u7f6e\u529f\u80fd\r\n- `set_page_margins()` - \u8bbe\u7f6e\u9875\u8fb9\u8ddd\r\n\r\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u5b89\u88c5\u4f9d\u8d56\r\n\r\n```bash\r\npip install -r requirements_enhanced.txt\r\n```\r\n\r\n### \u8fd0\u884c\u65b9\u5f0f\r\n\r\n#### 1. MCP\u670d\u52a1\u5668\u6a21\u5f0f\uff08\u63a8\u8350\uff09\r\n```bash\r\npython enhanced_main.py\r\n```\r\n\r\n#### 2. \u4ea4\u4e92\u5f0f\u6a21\u5f0f\r\n```bash\r\npython enhanced_main.py --interactive\r\n```\r\n\r\n#### 3. \u8be6\u7ec6\u65e5\u5fd7\u6a21\u5f0f\r\n```bash\r\npython enhanced_main.py --verbose\r\n```\r\n\r\n### \u57fa\u672c\u4f7f\u7528\u793a\u4f8b\r\n\r\n#### MCP\u5de5\u5177\u8c03\u7528\u793a\u4f8b\r\n```python\r\n# \u901a\u8fc7MCP\u534f\u8bae\u8c03\u7528\r\n{\r\n \"tool\": \"create_document\",\r\n \"arguments\": {\r\n \"file_path\": \"/path/to/new_document.docx\"\r\n }\r\n}\r\n\r\n{\r\n \"tool\": \"add_paragraph\",\r\n \"arguments\": {\r\n \"text\": \"\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u6bb5\u843d\",\r\n \"font_size\": 12,\r\n \"font_name\": \"\u5fae\u8f6f\u96c5\u9ed1\",\r\n \"bold\": true\r\n }\r\n}\r\n\r\n{\r\n \"tool\": \"add_image\",\r\n \"arguments\": {\r\n \"image_path\": \"/path/to/image.jpg\",\r\n \"width\": \"10cm\",\r\n \"alignment\": \"center\"\r\n }\r\n}\r\n```\r\n\r\n#### \u4ea4\u4e92\u5f0f\u547d\u4ee4\u793a\u4f8b\r\n```bash\r\ndocx> create test.docx\r\n\u6587\u6863\u521b\u5efa\u6210\u529f: test.docx\r\n\r\ndocx> addp \"\u8fd9\u662f\u7b2c\u4e00\u4e2a\u6bb5\u843d\"\r\n\u6bb5\u843d\u6dfb\u52a0\u6210\u529f\r\n\r\ndocx> addh \"\u7ae0\u8282\u6807\u9898\" 1\r\n\u6dfb\u52a0\u4e86 1 \u7ea7\u6807\u9898\r\n\r\ndocx> addtable 3 3\r\n\u6dfb\u52a0\u4e86 3x3 \u8868\u683c\r\n\r\ndocx> addimg photo.jpg\r\n\u56fe\u7247\u5df2\u6dfb\u52a0: photo.jpg\r\n\r\ndocx> save\r\n\u6587\u6863\u4fdd\u5b58\u6210\u529f: test.docx\r\n```\r\n\r\n## \ud83c\udfd7\ufe0f \u67b6\u6784\u8bbe\u8ba1\r\n\r\n### \u6838\u5fc3\u6a21\u5757\r\n\r\n#### 1. `EnhancedDocxProcessor` - \u4e3b\u5904\u7406\u5668\r\n- \u6574\u5408\u6240\u6709\u529f\u80fd\u6a21\u5757\r\n- \u63d0\u4f9b\u7edf\u4e00\u7684API\u63a5\u53e3\r\n- \u7ba1\u7406\u6587\u6863\u72b6\u6001\r\n\r\n#### 2. `StateManager` - \u72b6\u6001\u7ba1\u7406\u5668\r\n- \u5904\u7406\u6587\u6863\u4f1a\u8bdd\u6301\u4e45\u5316\r\n- \u7ba1\u7406\u5f53\u524d\u6587\u6863\u72b6\u6001\r\n- \u652f\u6301\u591a\u6587\u6863\u7ba1\u7406\r\n\r\n#### 3. `ImageProcessor` - \u56fe\u7247\u5904\u7406\u5668\r\n- \u56fe\u7247\u63d2\u5165\u3001\u5220\u9664\u3001\u7f29\u653e\r\n- \u4f4d\u7f6e\u63a7\u5236\u548c\u683c\u5f0f\u5316\r\n- \u652f\u6301\u591a\u79cd\u56fe\u7247\u683c\u5f0f\r\n\r\n#### 4. `FontProcessor` - \u5b57\u4f53\u5904\u7406\u5668\r\n- \u5b57\u4f53\u6837\u5f0f\u7ba1\u7406\r\n- \u6587\u672c\u683c\u5f0f\u5316\r\n- \u6279\u91cf\u6837\u5f0f\u5e94\u7528\r\n\r\n#### 5. `enhanced_server.py` - MCP\u670d\u52a1\u5668\r\n- \u57fa\u4e8eFastMCP\u6846\u67b6\r\n- \u63d0\u4f9b\u5b8c\u6574\u7684MCP\u5de5\u5177\u96c6\r\n- \u5f02\u6b65\u5904\u7406\u548c\u9519\u8bef\u7ba1\u7406\r\n\r\n### \u6a21\u5757\u5173\u7cfb\u56fe\r\n\r\n```\r\nenhanced_server.py (MCP\u63a5\u53e3\u5c42)\r\n \u2193\r\nEnhancedDocxProcessor (\u4e3b\u5904\u7406\u5668)\r\n \u251c\u2500\u2500 StateManager (\u72b6\u6001\u7ba1\u7406)\r\n \u251c\u2500\u2500 ImageProcessor (\u56fe\u7247\u5904\u7406)\r\n \u251c\u2500\u2500 FontProcessor (\u5b57\u4f53\u5904\u7406)\r\n \u2514\u2500\u2500 DocxProcessor (\u539f\u6709\u6838\u5fc3\u529f\u80fd)\r\n```\r\n\r\n## \ud83d\udd27 \u914d\u7f6e\u9009\u9879\r\n\r\n### \u65e5\u5fd7\u914d\u7f6e\r\n- \u65e5\u5fd7\u6587\u4ef6\u4f4d\u7f6e: `%TEMP%/enhanced_docx_processor.log`\r\n- \u652f\u6301\u63a7\u5236\u53f0\u548c\u6587\u4ef6\u53cc\u91cd\u8f93\u51fa\r\n- \u53ef\u914d\u7f6e\u65e5\u5fd7\u7ea7\u522b\r\n\r\n### \u72b6\u6001\u6301\u4e45\u5316\r\n- \u72b6\u6001\u6587\u4ef6\u4f4d\u7f6e: `%TEMP%/docx_mcp_current_doc.txt`\r\n- \u81ea\u52a8\u4fdd\u5b58\u5f53\u524d\u6587\u6863\u72b6\u6001\r\n- \u670d\u52a1\u91cd\u542f\u540e\u81ea\u52a8\u6062\u590d\r\n\r\n## \ud83d\udd0d \u9ad8\u7ea7\u529f\u80fd\r\n\r\n### 1. \u4e0a\u4e0b\u6587\u7ba1\u7406\u5668\r\n```python\r\nwith processor.document_context(\"document.docx\") as proc:\r\n proc.add_paragraph(\"\u4e34\u65f6\u64cd\u4f5c\")\r\n # \u81ea\u52a8\u7ba1\u7406\u6587\u6863\u72b6\u6001\r\n```\r\n\r\n### 2. \u6279\u91cf\u64cd\u4f5c\r\n```python\r\n# \u6279\u91cf\u683c\u5f0f\u5316\u6bb5\u843d\r\nprocessor.batch_format_paragraphs(0, 10, font_name=\"\u5b8b\u4f53\", font_size=12)\r\n```\r\n\r\n### 3. \u56fe\u7247\u7cbe\u786e\u63a7\u5236\r\n```python\r\n# \u6dfb\u52a0\u56fe\u7247\u5e76\u7cbe\u786e\u63a7\u5236\u5c3a\u5bf8\u548c\u4f4d\u7f6e\r\nprocessor.add_image(\"image.jpg\", width=\"5cm\", height=\"3cm\", alignment=\"center\")\r\n```\r\n\r\n### 4. \u667a\u80fd\u641c\u7d22\u66ff\u6362\r\n```python\r\n# \u641c\u7d22\u5e76\u9884\u89c8\u66ff\u6362\u7ed3\u679c\r\nresult = processor.search_text(\"\u5173\u952e\u8bcd\")\r\nresult = processor.find_and_replace(\"\u65e7\u6587\u672c\", \"\u65b0\u6587\u672c\")\r\n```\r\n\r\n## \ud83d\udc1b \u8c03\u8bd5\u548c\u65e5\u5fd7\r\n\r\n### \u542f\u7528\u8be6\u7ec6\u65e5\u5fd7\r\n```bash\r\npython enhanced_main.py --verbose\r\n```\r\n\r\n### \u67e5\u770b\u65e5\u5fd7\u6587\u4ef6\r\n- Windows: `%TEMP%/enhanced_docx_processor.log`\r\n- Linux/Mac: `/tmp/enhanced_docx_processor.log`\r\n\r\n### \u5e38\u89c1\u95ee\u9898\u6392\u67e5\r\n1. **\u6587\u6863\u6253\u5f00\u5931\u8d25**: \u68c0\u67e5\u6587\u4ef6\u8def\u5f84\u548c\u6743\u9650\r\n2. **\u56fe\u7247\u6dfb\u52a0\u5931\u8d25**: \u786e\u8ba4\u56fe\u7247\u6587\u4ef6\u5b58\u5728\u4e14\u683c\u5f0f\u652f\u6301\r\n3. **\u5b57\u4f53\u8bbe\u7f6e\u65e0\u6548**: \u786e\u8ba4\u5b57\u4f53\u540d\u79f0\u6b63\u786e\u4e14\u7cfb\u7edf\u5df2\u5b89\u88c5\r\n4. **\u72b6\u6001\u6062\u590d\u5931\u8d25**: \u68c0\u67e5\u4e34\u65f6\u76ee\u5f55\u6743\u9650\r\n\r\n## \ud83d\udcc8 \u6027\u80fd\u4f18\u5316\r\n\r\n### 1. \u5185\u5b58\u7ba1\u7406\r\n- \u81ea\u52a8\u6e05\u7406\u4e0d\u4f7f\u7528\u7684\u6587\u6863\u5bf9\u8c61\r\n- \u652f\u6301\u5927\u6587\u6863\u7684\u5206\u5757\u5904\u7406\r\n\r\n### 2. \u5f02\u6b65\u5904\u7406\r\n- \u57fa\u4e8eFastMCP\u7684\u5f02\u6b65\u67b6\u6784\r\n- \u975e\u963b\u585e\u7684\u6587\u6863\u64cd\u4f5c\r\n\r\n### 3. \u7f13\u5b58\u673a\u5236\r\n- \u6587\u6863\u72b6\u6001\u7f13\u5b58\r\n- \u6837\u5f0f\u4fe1\u606f\u7f13\u5b58\r\n\r\n## \ud83d\udd04 \u5347\u7ea7\u548c\u517c\u5bb9\u6027\r\n\r\n### \u4ece\u539f\u7248\u5347\u7ea7\r\n1. \u5b89\u88c5\u65b0\u4f9d\u8d56: `pip install -r requirements_enhanced.txt`\r\n2. \u4f7f\u7528\u65b0\u7684\u542f\u52a8\u811a\u672c: `python enhanced_main.py`\r\n3. \u539f\u6709API\u5b8c\u5168\u517c\u5bb9\uff0c\u65e0\u9700\u4fee\u6539\u8c03\u7528\u4ee3\u7801\r\n\r\n### \u5411\u540e\u517c\u5bb9\r\n- \u4fdd\u6301\u6240\u6709\u539f\u6709API\u63a5\u53e3\r\n- \u652f\u6301\u539f\u6709\u7684\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\r\n- \u517c\u5bb9\u539f\u6709\u7684\u6587\u6863\u683c\u5f0f\r\n\r\n## \ud83d\udcdd \u5f00\u53d1\u6307\u5357\r\n\r\n### \u6dfb\u52a0\u65b0\u529f\u80fd\r\n1. \u5728\u76f8\u5e94\u7684\u5904\u7406\u5668\u6a21\u5757\u4e2d\u6dfb\u52a0\u529f\u80fd\r\n2. \u5728`EnhancedDocxProcessor`\u4e2d\u6dfb\u52a0\u4ee3\u7406\u65b9\u6cd5\r\n3. \u5728`enhanced_server.py`\u4e2d\u6dfb\u52a0MCP\u5de5\u5177\r\n4. \u66f4\u65b0\u6587\u6863\u548c\u6d4b\u8bd5\r\n\r\n### \u4ee3\u7801\u89c4\u8303\r\n- \u9075\u5faaPEP 8\u7f16\u7801\u89c4\u8303\r\n- \u4f7f\u7528\u7c7b\u578b\u63d0\u793a\r\n- \u6dfb\u52a0\u5b8c\u6574\u7684docstring\r\n- \u5305\u542b\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7\u8bb0\u5f55\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u91c7\u7528MIT\u8bb8\u53ef\u8bc1\uff0c\u8be6\u89c1LICENSE\u6587\u4ef6\u3002\r\n\r\n## \ud83e\udd1d \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\u6765\u6539\u8fdb\u9879\u76ee\uff01\r\n\r\n---\r\n\r\n**\u589e\u5f3a\u7248DOCX MCP\u5904\u7406\u5668** - \u8ba9AI\u66f4\u597d\u5730\u5904\u7406Word\u6587\u6863\uff01\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "DOCX MCP\u5904\u7406\u5668 - \u5b8c\u6574\u7684Word\u6587\u6863\u5904\u7406\u5de5\u5177\uff0c\u652f\u6301\u56fe\u7247\u7f16\u8f91\u548c\u8868\u683c\u64cd\u4f5c",
"version": "0.1.4",
"project_urls": {
"Changelog": "https://github.com/rockcj/Docx_MCP_cj/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/rockcj/Docx_MCP_cj/blob/main/README_Enhanced.md",
"Homepage": "https://github.com/rockcj/Docx_MCP_cj",
"Issues": "https://github.com/rockcj/Docx_MCP_cj/issues",
"Repository": "https://github.com/rockcj/Docx_MCP_cj.git"
},
"split_keywords": [
"docx",
" word",
" document",
" mcp",
" ai-tools",
" document-processing",
" image-processing",
" font-management"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1ecf0a9edd83421a0316bc98c0c8d5ba568e965fd98931af6df705f8951895d0",
"md5": "29456245f1e5ac77076d15381135574b",
"sha256": "cb2f5a6acb130a33a083bcb1a8638475072bdf84e167d238efacb985351e84f3"
},
"downloads": -1,
"filename": "docx_mcp-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "29456245f1e5ac77076d15381135574b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 40162,
"upload_time": "2025-08-31T18:11:32",
"upload_time_iso_8601": "2025-08-31T18:11:32.093897Z",
"url": "https://files.pythonhosted.org/packages/1e/cf/0a9edd83421a0316bc98c0c8d5ba568e965fd98931af6df705f8951895d0/docx_mcp-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "432f376ba1648cdd9fd9eebd8e6e4fa7a16bfb1e8482b7b4fc174fd78dfb8269",
"md5": "2a605d71e936855f4f91c1c2c327f1a5",
"sha256": "7e940838960fcf348fb9104763dcc2a65706d547f5b5d7f899455a59b35207da"
},
"downloads": -1,
"filename": "docx_mcp-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "2a605d71e936855f4f91c1c2c327f1a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 39068,
"upload_time": "2025-08-31T18:11:33",
"upload_time_iso_8601": "2025-08-31T18:11:33.576535Z",
"url": "https://files.pythonhosted.org/packages/43/2f/376ba1648cdd9fd9eebd8e6e4fa7a16bfb1e8482b7b4fc174fd78dfb8269/docx_mcp-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-31 18:11:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rockcj",
"github_project": "Docx_MCP_cj",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "fastapi",
"specs": []
},
{
"name": "uvicorn",
"specs": []
},
{
"name": "pydantic",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "python-docx",
"specs": []
},
{
"name": "fastmcp",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "oss2",
"specs": []
}
],
"lcname": "docx-mcp"
}