文档技能MCP服务器
  
一种安全强化的模型上下文协议(MCP)服务器,为PDF、Excel、Word和PowerPoint文件提供文档操作工具。
特性
PDF工具
- 提取文本:提取具有可选布局保留的文本内容
- 提取表格:提取结构化表数据
- 合并PDF:合并多个PDF文件
- 拆分PDF:拆分为页面或页面范围
- 元数据:提取PDF元数据
Excel(XLSX)工具
- 读取Excel:以JSON格式读取工作表
- 分析:获取统计数据和结构信息
- 编写Excel:从JSON数据创建Excel文件
- 转换为CSV:将图纸导出为CSV文件
Word(DOCX)工具
- 提取文本:提取文本和表格
- 转换为Markdown:使用支持轨迹更改的pandoc
- 元数据:提取文档属性
- 打开包装/打包:使用原始OOXML
PowerPoint(PPTX)工具
- 提取文本:提取幻灯片内容
- 转换为Markdown:使用markitdown
- 生成缩略图:创建幻灯片预览网格
- 文本清单:获取详细的文本形状清单
- 替换文本:用格式批量替换文本
- 元数据:提取演示文稿属性
- 打开包装/打包:使用原始OOXML
安全特性
🔒 生产就绪安全强化
- ✅ 路径遍历保护
- ✅ 命令注入预防
- ✅ ZIP滑动漏洞保护
- ✅ 输入验证和净化
- ✅ 子进程超时强制
- ✅ 错误消息清理
- ✅ XML外部实体(XXE)保护
看 安全.md 和 README_SECURITY.md 了解详情。
安装
1.安装Python依赖项
pip install -r requirements.txt2.安装外部工具
Ubuntu/Debian:
sudo apt-get install pandoc poppler-utilsmacOS:
brew install pandoc popplerFedora/RHEL:
sudo dnf install pandoc poppler-utils3.配置允许的目录
# Set allowed directories for file access
export DOCUMENT_SKILLS_ALLOWED_DIRS="/var/app/uploads:/var/app/temp"
# Create directories
sudo mkdir -p /var/app/uploads /var/app/temp
sudo chown $USER:$USER /var/app/uploads /var/app/temp
chmod 700 /var/app/uploads /var/app/temp用法
启动服务器
python mcp_server.py [PORT]默认端口:8421
端点
- 主控程序:
http://localhost:8421/mcp/messages - 健康:
http://localhost:8421/health - 信息:
http://localhost:8421/
环境变量
DOCUMENT_SKILLS_ALLOWED_DIRS-允许目录的冒号分隔列表DEBUG_MODE-启用详细错误消息(默认值:false, 从不用于生产)
示例用法
通过MCP客户端连接或使用HTTP:
# Health check
curl http://localhost:8421/health
# List available tools
curl http://localhost:8421/发展
代码质量
运行linting:
pip install ruff
ruff check .
ruff format .测试
# Test path validation
python -c "from security import validate_path; print(validate_path('/tmp/test.pdf'))"
# Test with invalid path (should fail)
python -c "from security import validate_path; validate_path('/etc/passwd')"项目结构
document_skills_mcp/
├── mcp_server.py # Main MCP server
├── security.py # Security validation module
├── requirements.txt # Python dependencies
├── README.md # This file
├── README_SECURITY.md # Security documentation
├── SECURITY.md # Security policy
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
├── .ruff.toml # Linting configuration
├── .editorconfig # Editor configuration
├── .gitignore # Git ignore patterns
├── docx/ # DOCX tools and scripts
├── pdf/ # PDF tools and scripts
├── pptx/ # PPTX tools and scripts
└── xlsx/ # XLSX tools and scripts贡献
我们欢迎捐款!请参阅 贡献.md 作为指导方针。
安全
如需报告安全漏洞,请发送电子邮件至 security@example.com.
不要为安全漏洞创建公共GitHub问题。
看 安全.md 我们的安全政策。
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
致谢
基于 Composio出色的claude技能 文档技能。
受以下因素启发的安全实践:
更新日志
看 更改日志.md 查看版本历史和发行说明。
