
exif-mcp

2025.05.03
1
TypeScript图像元数据提取图像分析位置服务内容生成位置服务
exif-mcp 是一个基于 MCP(Model Context Protocol)的服务,专门用于从图像中提取元数据。它完全离线工作,不依赖任何外部工具,支持多种图像格式(如 JPEG、PNG、TIFF、HEIC)和元数据段(如 EXIF、GPS、XMP 等)。该服务适用于图像元数据分析、图像库管理、调试图像处理代码等场景。
View on GitHub
Overview
基本能力
产品定位
exif-mcp 是一个专注于图像元数据提取和分析的 MCP 服务,旨在为开发者和用户提供高效、安全的本地元数据处理能力。
核心功能
- 本地操作:完全离线工作,无需远程网络
- 多段元数据提取:支持 EXIF、GPS、XMP、ICC、IPTC、JFIF 和 IHDR 元数据
- 多种输入格式:支持 JPEG、TIFF、HEIC/AVIF 和 PNG
- 灵活的图像来源:可从文件系统、URL、base64 数据或缓冲区读取
- 专用工具:提供图像方向、旋转信息、GPS 坐标和缩略图提取
适用场景
- 分析图像元数据并可视化
- 分析图像库:常用相机、镜头分布、拍摄日期分布、常用拍摄地点等
- 调试图像处理代码
- 与文件系统 MCP 工具结合使用,查找特定相机拍摄的文件
工具列表
工具名称 | 描述 |
---|---|
read-metadata |
读取所有或指定的元数据段 |
read-exif |
专门读取 EXIF 数据 |
read-xmp |
读取 XMP 数据 |
read-icc |
读取 ICC 颜色配置文件数据 |
read-iptc |
读取 IPTC 元数据 |
read-jfif |
读取 JFIF 段数据 |
read-ihdr |
读取 IHDR 段数据 |
orientation |
获取图像方向(1-8) |
rotation-info |
获取旋转和翻转信息 |
gps-coordinates |
提取 GPS 坐标 |
thumbnail |
提取嵌入的缩略图 |
常见问题解答
- 支持的图像格式:JPEG、TIFF、HEIC/AVIF、PNG
- 错误处理:支持标准化错误处理,包括不支持的格式、网络获取失败、过大的负载和内部 exifr 错误
使用教程
使用依赖
确保已安装 Node.js 和 npm。
安装教程
# 克隆仓库
git clone https://github.com/stass/exif-mcp.git
cd exif-mcp
# 安装依赖
npm install
# 构建项目
npm run build
调试方式
- 启动检查器:
npx @modelcontextprotocol/inspector node dist/server.js
- 使用 MCP 检查器连接 STDIO 传输
- 调用工具,例如
read-metadata
,参数如下:
{
"image": {
"kind": "path",
"path": "/path/to/image.jpg"
}
}
- 也可以使用 MCP 检查器命令行:
npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/call --tool-name read-exif --tool-arg image='{"kind": "path", "path": "/path/to/image.jpeg"}' --tool-arg pick="[]"
开发
运行测试
# 运行测试
npm test
# 运行测试(观察模式)
pm run test:watch
项目结构
exif-mcp/
├── src/
│ ├── server.ts # 主入口
│ ├── tools/
│ │ ├── index.ts # 工具注册
│ │ ├── loaders.ts # 图像加载工具
│ │ └── segments.ts # exifr 选项构建器
│ └── types/
│ └── image.ts # 类型定义
├── tests/ # 测试文件
└── README.md