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. 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? Debu
Add this skill
npx mdskills install stass/exif-mcpWell-documented offline image metadata extraction with comprehensive tools and clear setup
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:
Ths tool is used extensively by the reverse geolocation service PlaceSpotter for development and testing.
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.
# 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
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.
# 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.
The following tools are provided by the server:
| Tool name | Description |
|---|---|
read-metadata | Reads all or specified metadata segments |
read-exif | Reads EXIF data specifically |
read-xmp | Reads XMP data |
read-icc | Reads ICC color profile data |
read-iptc | Reads IPTC metadata |
read-jfif | Reads JFIF segment data |
read-ihdr | Reads IHDR segment data |
orientation | Gets image orientation (1-8) |
rotation-info | Gets rotation and flip information |
gps-coordinates | Extracts GPS coordinates |
thumbnail | Extracts embedded thumbnail |
npx @modelcontextprotocol/inspector node dist/server.jsread-metadata with parameter:
{
"image": {
"kind": "path",
"path": "/path/to/image.jpg"
}
}
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="[]"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..."
}
# 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
The server provides standardized error handling for common issues:
BSD 2-clause
Install via CLI
npx mdskills install stass/exif-mcpExif MCP is a free, open-source AI agent skill. 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. 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? Debu
Install Exif MCP with a single command:
npx mdskills install stass/exif-mcpThis downloads the skill files into your project and your AI agent picks them up automatically.
Exif MCP works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.