OxiDex MCP服务器

用于OxiDex元数据操作的MCP(模型上下文协议)服务器,使AI助手能够通过标准化协议提取、搜索、分析和修改文件元数据。
概述
OxiDex MCP服务器是 模型上下文协议 这将OxiDex强大的元数据提取和操作功能暴露给Claude、Cline和其他MCP兼容客户端等人工智能助手。
父项目: OxiDex -ExifTool的高性能Rust实现,在140多种格式系列中有32677多个元数据标签。
特性
可用工具
- 提取元数据 -从文件中提取元数据(支持glob模式)
- write_元数据 -写入或更新元数据标签(支持模拟运行)
- 搜索元数据 -使用灵活的过滤器按元数据条件搜索文件
- 分析元数据 -跨文件生成元数据的统计摘要
- copy_元数据 -在文件之间复制元数据或将元数据复制到多个目标
关键能力
- 全球模式支持 -使用处理多个文件
*.jpg,photos/**/*.png等等。 - 干运行模式 -在应用更改之前预览更改
- 丰富的过滤 -使用运算符搜索:
=,>, `2024-01-01"]
} }
**过滤器操作员:**
- `=` 等于(例如。, `Make=Canon`)
- `>` 大于(例如。, `FileSize>1000000`)
- `<` 小于(例如。, `FileSize<1000000`)
- `~` 包含(例如。, `Model~R5`)
### 分析元数据
生成统计数据:
{ "name": "analyze_metadata", "arguments": { "path": "photos/*.jpg" } }
### 复制元数据
复制到单个文件:
{ "name": "copy_metadata", "arguments": { "source": "template.jpg", "destination": "photo.jpg", "dry_run": true } }
复制到多个文件:
{ "name": "copy_metadata", "arguments": { "source": "template.jpg", "destination": "photos/*.jpg" } }
## 发展
### 可用命令
just # Show all available commands just build # Build release binary just build-debug # Build debug binary just test # Run all tests just test-debug # Run tests in debug mode just check # Check code without building just fmt # Format code just lint # Run clippy lints just ci # Run full CI suite (fmt + lint + test) just clean # Clean build artifacts
### 运行测试
Run all tests
just test
Run specific test suite
just test-suite integration_tests
Run with debug output
cargo test -- --nocapture
### 手动测试服务器
Test initialize
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | cargo run --quiet
Test tools/list
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | cargo run --quiet
Test extract_metadata
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"extract_metadata","arguments":{"path":"Cargo.toml"}}}' | cargo run --quiet
## 建筑
### 协议流
1. 客户端通过stdin发送JSON-RPC 2.0请求
1. 服务器解析并路由到适当的处理程序
1. 工具处理请求(展开globs、验证、执行)
1. 结果格式为人类可读文本
1. 通过stdout以JSON-RPC发送的响应
### 工具实现模式
每个工具 `src/tools/` 跟随:
1. 从JSON解析参数
1. 验证输入路径(安全性)
1. 如有需要,扩展球形图案
1. 使用OxiDex处理文件
1. 将结果格式化为文本
1. 返回JSON-RPC响应
### 安全
- 路径验证阻止目录遍历
- 验证和约束全局模式
- 破坏性操作的模拟运行支持
- 无任意命令执行
- 所有操作都沙盒到文件系统
## 文档
- **[MCP集成指南](docs/mcp-integration-guide.md)** -与AI客户端集成
- **[服务器设计](docs/mcp-server-design.md)** -架构和设计决策
- **[实施计划](docs/mcp-server-implementation.md)** -发展路线图
- **[扩建计划](docs/mcp-server-expansion.md)** -未来的增强功能
## 项目状态
**当前版本:** 0.1.0
这是一个独立的突破 [OxiDex](https://github.com/swack-tools/oxidex) 存储库,为MCP服务器提供独立的版本控制、文档和发布周期。
### 路线图
- ✅ 核心MCP协议实现
- ✅ 五种基本元数据工具
- ✅ 球形图案支持
- ✅ 干运行安全模式
- ⏳ 完整的OxiDex库集成(目前使用占位符)
- ⏳ 格式特定的元数据处理程序(EXIF、IPTC、XMP)
- ⏳ 高级搜索和过滤
- ⏳ 大文件的流媒体支持
## 许可证
GPL-3.0-与 [OxiDex](https://github.com/swack-tools/oxidex)
## 贡献
欢迎投稿!请看家长 [OxiDex项目](https://github.com/swack-tools/oxidex) 关于贡献指南。
## 另见
- **[OxiDex](https://github.com/swack-tools/oxidex)** -主元数据提取库
- **[MCP规范](https://spec.modelcontextprotocol.io/)** -模型上下文协议文档
- **[ExifTool](https://exiftool.org/)** -原始Perl实现
______________________________________________________________________
内置于❤️ 在Rust