Extract EXIF, GPS, IPTC, XMP metadata from any image with freemium and x402 USDC payments.
MCP Image Metadata is a Model Context Protocol server that extracts rich metadata from images. It provides EXIF data (camera make/model, ISO, aperture, shutter speed), GPS coordinates, IPTC fields (keywords, captions, copyright), and XMP metadata. Features include 50 free requests per wallet, x402 payment integration for USDC, batch processing up to 50 images, manipulation detection for forensic analysis, and automatic file cleanup after processing. Perfect for AI agents, stock photo platforms, e-commerce product listings, marketing agencies, and digital forensics.
This MCP server implements image metadata extraction with x402 payment integration. While the core functionality is reasonable and permissions align with its purpose, there are several security concerns: unauthenticated file upload accepting arbitrary image files, inadequate input validation on file paths leading to path traversal vulnerabilities, in-memory freemium tracking that persists user state without proper isolation, and missing validation of payment headers before processing. The server also uses loose error handling that could leak sensitive information. These issues, combined with file system operations on untrusted paths, create meaningful risks for a production deployment. Supply chain analysis found 3 known vulnerabilities in dependencies (1 critical, 2 high severity).
7 files analyzed · 14 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: PORT
Environment variable: X402_WALLET_ADDRESS
Environment variable: X402_NETWORK
Environment variable: FREEMIUM_LIMIT
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Once installed, try these example prompts and explore these capabilities:
From the project's GitHub README.
MCP server for extracting rich metadata from images, monetized via x402 payments.
Server: https://mcp-image-metadata.onrender.com
curl -X POST https://mcp-image-metadata.onrender.com/upload \
-F "image=@your-image.jpg"
Response:
{
"success": true,
"filePath": "/tmp/uploads/abc123.jpg",
"fileName": "abc123.jpg",
"originalName": "your-image.jpg",
"size": 12345
}
curl -X POST https://mcp-image-metadata.onrender.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "extract_image_metadata",
"arguments": {
"imageUrl": "/tmp/uploads/abc123.jpg",
"payer": "0xYourWalletAddress"
}
}
}'
Response:
{
"success": true,
"data": {
"file": {
"width": 1920,
"height": 1080,
"format": "jpeg",
"colorDepth": 3,
"dpi": 72,
"fileSize": 456789,
"mimeType": "image/jpeg"
},
"exif": {
"cameraMake": "Apple",
"cameraModel": "iPhone 14 Pro",
"dateTime": "2024:01:15 12:30:00"
},
"gps": {
"latitude": 37.7749,
"longitude": -122.4194
}
},
"price": 0.002,
"paymentStatus": "free",
"freemiumRemaining": 49
}
| Endpoint | Method | Description |
|---|---|---|
/mcp | POST | MCP JSON-RPC interface |
/upload | POST | Upload image file |
/health | GET | Health check |
Extract EXIF, GPS, IPTC, XMP metadata from an image.
Arguments:
{
"imageUrl": "/tmp/uploads/abc123.jpg",
"includeOptions": {
"includeGps": true,
"includeColor": true,
"includeThumbnail": false,
"includeOcr": false,
"includeDeepHash": false
},
"paymentHeader": "...",
"payer": "0xYourWallet"
}
Response:
{
"success": true,
"data": { "file": {...}, "exif": {...}, "gps": {...} },
"price": 0.002,
"paymentStatus": "free",
"freemiumRemaining": 50
}
Extract metadata from multiple images (max 50).
Arguments:
{
"imageUrls": ["/tmp/uploads/1.jpg", "/tmp/uploads/2.jpg"],
"options": { "includeGps": true },
"paymentHeader": "...",
"payer": "0xYourWallet"
}
Analyze image for signs of manipulation/editing.
Arguments:
{
"imageUrl": "/tmp/uploads/abc123.jpg",
"analysisLevel": "standard",
"paymentHeader": "...",
"payer": "0xYourWallet"
}
analysisLevel:
basic - Basic checks ($0.002)standard - Standard analysis ($0.002)forensic - Deep forensic analysis ($0.015)Get current pricing tiers and freemium status.
Arguments:
{
"payer": "0xYourWallet"
}
Response:
{
"pricing": {
"basic": { "tier": "basic", "price": 0.001 },
"standard": { "tier": "standard", "price": 0.002 },
"premium": { "tier": "premium", "price": 0.005 },
"forensic": { "tier": "forensic", "price": 0.015 }
},
"freemium": { "limit": 50, "remaining": 49 }
}
# Upload image
curl -X POST https://mcp-image-metadata.onrender.com/upload \
-F "image=@photo.jpg"
Response:
{
"success": true,
"filePath": "/tmp/uploads/abc123.jpg"
}
curl -X POST https://mcp-image-metadata.onrender.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "extract_image_metadata",
"arguments": {
"imageUrl": "/tmp/uploads/abc123.jpg",
"payer": "0xYourWallet123"
}
}
}'
curl -X POST https://mcp-image-metadata.onrender.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_pricing",
"arguments": {
"payer": "0xYourWallet123"
}
}
}'
| Tier | Price | Description |
|---|---|---|
| Basic | $0.001 USDC | File info, dimensions, color profile |
| Standard | $0.002 USDC | Basic + GPS, IPTC, XMP |
| Premium | $0.005 USDC | Standard + thumbnail, deep hash |
| Forensic | $0.015 USDC | Premium + manipulation analysis |
To make paid requests, include the paymentHeader:
{
"name": "extract_image_metadata",
"arguments": {
"imageUrl": "/tmp/uploads/abc123.jpg",
"payer": "0xYourWallet",
"paymentHeader": "payment=v1_USDC_..."
}
}
| Variable | Description | Default |
|---|---|---|
PORT | HTTP server port | stdio mode |
NODE_ENV | Environment | development |
X402_FACILITATOR_URL | x402 payment relay | https://facilitator.xpay.sh |
X402_API_KEY | xpay API key | - |
X402_WALLET_ADDRESS | Your Base USDC wallet | - |
X402_NETWORK | base or base-sepolia | base-sepolia |
FREEMIUM_LIMIT | Free requests per wallet | 50 |
| Setting | Value |
|---|---|
| Name | mcp-image-metadata |
| Region | Oregon |
| Build Command | npm install && npm run build |
| Start Command | node dist/index.js |
# Install dependencies
npm install
# Build
npm run build
# Run (stdio mode)
npm run dev
# Run with HTTP server
PORT=3000 node dist/index.js
MIT
Be the first to review this server!
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.