stass/exif-mcp

šŸŽ„ Multimedia Process
0 Views
0 Installs

šŸ“‡ šŸ  🐧 šŸŽ 🪟 - A MCP server that allows one to examine image metadata like EXIF, XMP, JFIF and GPS. This provides foundation for LLM-powered search and analysis of photo librares and image collections.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "stass-exif-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "stass-exif-mcp"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

exif-mcp

An MCP server that allows LLMs (or humans) to read image metadata on-demand, entirely offline. Based on the excellent exifr library it's exremely fast and does not rely on any external tools.

Usecases:

  • Analyze image metadata and visualize it
  • Perform analysis of your image library: what are my most used cameras? Lens distribution? Which dates of the week I take most pictures on? Most favorite locations?
  • Debugging image manipulation code.

Ths tool is used extensively by the reverse geolocation service PlaceSpotter for development and testing.

Overview

exif-mcp is a Model Context Protocol (MCP) server that provides tools for extracting various metadata segments from images. Built with TypeScript, it leverages the excellent exifr library to parse metadata from images in common formats like JPEG, PNG, TIFF, and HEIC. This allows this service to parse image metadata without executing any external tools which allows it to be both highly efficient and secure.

Features

  • Local operation: Works completely offline with no remote network required
  • Multiple segments: Extracts EXIF, GPS, XMP, ICC, IPTC, JFIF, and IHDR metadata
  • Various input formats: Supports JPEG, TIFF, HEIC/AVIF, and PNG
  • Flexible image sources: Read from file system, URLs, base64 data, or buffers
  • Specialized tools: Get orientation, rotation info, GPS coordinates, and thumbnails

Installation

# 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

Usage

Claude Desktop

Put this into Claude config file (claude_desktop_config.json):

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

Restart Claude. Now you can ask Claude to inspect images for you or e.g. find files taken with specific camera. This works best in combination with filesystem MCP tools so Claude can find files and list directories.

Starting the server

# Start the server
npm start

# For development with auto-reload
npm run dev

The server uses the StdioServerTransport from the MCP SDK, making it compatible with any MCP client that supports STDIO transport.

You can use mcp-proxy to enable remote access.

Available Tools

The following tools are provided by the server:

Tool nameDescription
read-metadataReads all or specified metadata segments
read-exifReads EXIF data specifically
read-xmpReads XMP data
read-iccReads ICC color profile data
read-iptcReads IPTC metadata
read-jfifReads JFIF segment data
read-ihdrReads IHDR segment data
orientationGets image orientation (1-8)
rotation-infoGets rotation and flip information
gps-coordinatesExtracts GPS coordinates
thumbnailExtracts embedded thumbnail

Debugging with MCP Inspector

  1. Start the inspector: npx @modelcontextprotocol/inspector node dist/server.js
  2. Connect to it with MCP Inspector using the STDIO transport
  3. Call a tool, e.g., read-metadata with parameter:
    {
      "image": {
        "kind": "path",
        "path": "/path/to/image.jpg"
      }
    }
    
  4. You cal also use MCP inspector command line like this: 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="[]"

Image Source Types

The server supports multiple ways to provide image data:

// 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..."
}

Development

Running Tests

# Run tests
npm test

# Run tests with watch mode
npm run test:watch

Project Structure

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

Error Handling

The server provides standardized error handling for common issues:

  • Unsupported formats or missing metadata
  • Network fetch failures
  • Oversized payloads
  • Internal exifr errors

License

BSD 2-clause

Acknowledgements

  • exifr - Extremely fast and robust EXIF parsing library

Related MCP Servers

06ketan/slideshot

šŸ“‡ šŸ  šŸŽ 🪟 🐧 - Convert HTML to PDF/PNG/WebP/PPTX slide carousels with 11 themes (LinkedIn, Instagram, pitch decks, infographics). Pixel-perfect Puppeteer rendering, dimension-aware reflow for portrait/landscape, token-efficient JSON mode. npx slideshot-mcp.

šŸŽ„ Multimedia Process0 views
1000ri-jp/atsurae

šŸ ā˜ļø šŸŽ 🪟 🐧 - AI-powered video editing MCP server with 10 tools for timeline editing, 5-layer compositing, semantic operations, and FFmpeg rendering (1920x1080, 30fps H.264+AAC).

šŸŽ„ Multimedia Process0 views
a-y-ibrahim/after-effects-mcp

šŸ“‡ šŸ  šŸŽ 🪟 - Control Adobe After Effects from any MCP client: arbitrary ExtendScript, background rendering, deep comp/layer inspection, and first-class Arabic/RTL & multilingual support (works on AE in any UI language). 47 tools.

šŸŽ„ Multimedia Process0 views
AceDataCloud/MCPSuno

šŸ ā˜ļø - Suno AI music generation, lyrics, covers, and vocal extraction via Ace Data Cloud API.

šŸŽ„ Multimedia Process0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it →
ā˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.