Read, write, and remove metadata from 150+ file formats using ExifTool
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx exiftool-mcp
MCP client config
{
"mcpServers": {
"exiftool": {
"command": "uvx",
"args": [
"exiftool-mcp"
]
}
}
}mcp-name: io.github.joshmsimpson/exiftool
An MCP (Model Context Protocol) server that provides access to ExifTool for reading, writing, and removing metadata from a wide range of file types.
Image Formats:
Video Formats:
Audio Formats:
Document Formats:
Archive Formats:
Other Formats:
ExifTool must be installed on your system. This MCP server is a wrapper that calls the ExifTool command-line tool.
macOS:
brew install exiftool
Ubuntu/Debian:
sudo apt-get install libimage-exiftool-perl
Windows: Download from https://exiftool.org/
Verify installation:
exiftool -ver
pip install exiftool-mcp
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"exiftool": {
"command": "exiftool-mcp"
}
}
}
The server communicates via stdio and follows the Model Context Protocol specification.
read_metadataRead metadata from a file using ExifTool.
Parameters:
file_path (required): Path to the file (absolute or relative)tags (optional): Array of specific metadata tags to extract (e.g., ["DateTimeOriginal", "Make", "Model"])Example:
{
"file_path": "/path/to/image.jpg",
"tags": ["DateTimeOriginal", "Make", "Model", "GPSLatitude", "GPSLongitude"]
}
write_metadataWrite or update metadata tags in a file using ExifTool. Creates a backup by default.
Parameters:
file_path (required): Path to the file (absolute or relative)tags (required): Dictionary of metadata tags to write (e.g., {"Artist": "John Doe", "Copyright": "2025"})overwrite_original (optional): If true, overwrites the original file without creating a backup. Default is false.Example:
{
"file_path": "/path/to/image.jpg",
"tags": {
"Artist": "John Doe",
"Copyright": "2025",
"Comment": "Beautiful sunset"
},
"overwrite_original": false
}
remove_metadataRemove metadata from a file using ExifTool. Can remove all metadata or specific tags.
Parameters:
file_path (required): Path to the file (absolute or relative)tags (optional): Array of specific metadata tags to remove (e.g., ["GPS*", "Comment"]). If not specified, all metadata is removed.overwrite_original (optional): If true, overwrites the original file without creating a backup. Default is false.Example:
{
"file_path": "/path/to/image.jpg",
"tags": ["GPS*", "Location*"],
"overwrite_original": false
}
list_supported_formatsList all file formats supported by ExifTool.
Parameters: None
Use the read_metadata tool with file_path: "photo.jpg"
Use the read_metadata tool with:
- file_path: "photo.jpg"
- tags: ["DateTimeOriginal", "Make", "Model", "LensModel"]
Use the write_metadata tool with:
- file_path: "photo.jpg"
- tags: {"Artist": "Jane Smith", "Copyright": "2025", "Rating": "5"}
Use the remove_metadata tool with:
- file_path: "photo.jpg"
- tags: ["GPS*"]
Use the remove_metadata tool with:
- file_path: "photo.jpg"
(no tags specified removes all metadata)
Use the list_supported_formats tool
git clone https://github.com/joshmsimpson/exiftool_mcp.git
cd exiftool_mcp
pip install -e .
python -m exiftool_mcp.server
MIT
Contributions are welcome! Please feel free to submit a Pull Request.