mcpField
E
exif-mcp

exif-mcp

本地服务
github.com/stass媒体与设计4050 周前更新

关于 exif-mcp

exif-mcp 是一个 MCP 服务,可离线读取图片元数据,包括 EXIF、XMP、GPS 等。它基于 exifr 库实现,不依赖外部工具,适合需要分析或调试图片元数据的用户。

主要功能

  1. 01完全离线运行
  2. 02支持 EXIF、GPS、XMP、ICC、IPTC 等元数据段
  3. 03支持 JPEG、TIFF、HEIC/AVIF、PNG 格式
  4. 04可从文件路径、URL、base64 或缓冲区读取图片
  5. 05提供方向、旋转、GPS 坐标与缩略图工具

适用场景

  1. 01分析图片元数据并进行可视化
  2. 02统计图片库中的拍摄设备、镜头或拍摄地点分布
  3. 03排查图像处理代码的调试问题

MCP 相关

该项目是一个 MCP 服务,通过 read-metadata、gps-coordinates、thumbnail 等工具向 MCP 客户端提供图片元数据读取能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

exif-mcp

一款 MCP 服务,可让大模型(或人类)按需读取图像元数据,完全离线运行。它基于出色的 exifr 库,速度极快,且不依赖任何外部工具。

使用场景:

  • 分析图像元数据并将其可视化
  • 分析你的图像库:我最常用哪些相机?镜头分布如何?我在哪些星期几拍的照片最多?最喜欢哪些地点?
  • 调试图像处理代码。

反向地理定位服务 PlaceSpotter 在开发和测试过程中广泛使用此工具。

概述

exif-mcp 是一款模型上下文协议(MCP)服务,提供用于提取图像中各类元数据段的工具。它使用 TypeScript 构建,并借助出色的 exifr 库解析 JPEG、PNG、TIFF 和 HEIC 等常见格式图像中的元数据。该服务无需执行任何外部工具即可解析图像元数据,因此效率极高且安全可靠。

功能
  • 本地运行:完全离线运行,无需远程网络连接
  • 多种元数据段:提取 EXIF、GPS、XMP、ICC、IPTC、JFIF 和 IHDR 元数据
  • 多种输入格式:支持 JPEG、TIFF、HEIC/AVIF 和 PNG
  • 灵活的图像来源:可从文件系统、URL、base64 数据或缓冲区读取
  • 专用工具:获取方向、旋转信息、GPS 坐标和缩略图

安装

# Clone the repository
git clone https://github.com/stass/exif-mcp.git
cd exif-mcp

# Install dependencies
npm install

# Build the project
npm run build

使用方法

Claude Desktop

将以下内容放入 Claude 配置文件(claude_desktop_config.json):

"mcpServers": {
    "exif-mcp": {
      "command": "node",
      "args": [
        "/path/to/exif-mcp/dist/server.js"
      ]
    }
  },

重启 Claude。现在,你可以让 Claude 检查图像,或查找使用特定相机拍摄的文件等。搭配文件系统 MCP 工具使用效果最佳,这样 Claude 就能查找文件并列出目录。

启动服务
# Start the server
npm start

# For development with auto-reload
npm run dev

该服务使用 MCP SDK 中的 StdioServerTransport,因此兼容任何支持 STDIO 传输的 MCP 客户端。

你可以使用 mcp-proxy 启用远程访问。

可用工具

该服务提供以下工具:

工具名称描述
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提取嵌入的缩略图
使用 MCP Inspector 调试
  1. 启动 Inspector:npx @modelcontextprotocol/inspector node dist/server.js
  2. 使用 STDIO 传输通过 MCP Inspector 连接
  3. 调用一个工具,例如使用以下参数调用 read-metadata:
    {
      "image": {
        "kind": "path",
        "path": "/path/to/image.jpg"
      }
    }
    
  4. 你也可以像这样使用 MCP Inspector 命令行: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="[]"
图像来源类型

该服务支持多种提供图像数据的方式:

// From local file system
{
  "kind": "path",
  "path": "/path/to/image.jpg"
}

// From URL (http, https, or file://)
{
  "kind": "url",
  "url": "https://example.com/image.jpg"
}

// From base64 data (raw or data URI)
{
  "kind": "base64",
  "data": "data:image/jpeg;base64,/9j/4AAQSkZ..."
}

// From base64 buffer
{
  "kind": "buffer",
  "buffer": "/9j/4AAQSkZ..."
}

开发

运行测试
# Run tests
npm test

# Run tests with watch mode
npm run test:watch
项目结构
exif-mcp/
├── src/
│   ├── server.ts         # Main entry point
│   ├── tools/
│   │   ├── index.ts      # Tool registration
│   │   ├── loaders.ts    # Image loading utilities
│   │   └── segments.ts   # exifr options builders
│   └── types/
│       └── image.ts      # Type definitions
├── tests/                # Test files
└── README.md

错误处理

该服务针对常见问题提供标准化的错误处理:

  • 不支持的格式或缺失的元数据
  • 网络获取失败
  • 负载过大
  • exifr 内部错误

许可证

BSD 2-clause

致谢

  • exifr - 速度极快且稳健的 EXIF 解析库

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。