Geolocate photos or video frames and check media for AI generation signs via API key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Eikino API key from https://eikino.com/account/api
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Analyze 1–6 still frames from a video (or a single image) for signs of AI generation (Sora, Veo, Kling, Runway, Seedance, etc.) vs. real camera footage, returning likelihood (low/medium/high), 0–100 score, summary, AI artifacts and real-footage signs. Uses 1 check.
Optional container metadata markers such as "c2pa" or encoder tags.
Optional video duration in seconds.
Public https URL of a single JPEG, PNG or WebP image (up to 5 MB).
Optional list of public https URLs of still frames sampled from one video (1–4 for locate_media, 1–6 for detect_ai_media).
Base64-encoded JPEG, PNG or WebP image (with or without data: prefix).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http eikino https://eikino.com/mcp \ --header 'Authorization: YOUR_CREDENTIALS'
Headers
Authorization (required): Eikino API key from https://eikino.com/account/apiAnalyze 1–6 still frames from a video (or a single image) for signs of AI generation (Sora, Veo, Kling, Runway, Seedance, etc.) vs. real camera footage, returning likelihood (low/medium/high), 0–100 score, summary, AI artifacts and real-footage signs. Uses 1 check.
| Argument | Type | Description |
|---|---|---|
| markers | array | Optional container metadata markers such as "c2pa" or encoder tags. |
| duration | number | Optional video duration in seconds. |
| image_url | string | Public https URL of a single JPEG, PNG or WebP image (up to 5 MB). |
| image_urls | array | Optional list of public https URLs of still frames sampled from one video (1–4 for locate_media, 1–6 for detect_ai_media). |
| image_base64 | string | Base64-encoded JPEG, PNG or WebP image (with or without data: prefix). |
{
"type": "object",
"properties": {
"markers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 20,
"description": "Optional container metadata markers such as \"c2pa\" or encoder tags."
},
"duration": {
"type": "number",
"maximum": 36000,
"minimum": 0,
"description": "Optional video duration in seconds."
},
"image_url": {
"type": "string",
"format": "uri",
"description": "Public https URL of a single JPEG, PNG or WebP image (up to 5 MB)."
},
"image_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 6,
"minItems": 1,
"description": "Optional list of public https URLs of still frames sampled from one video (1–4 for locate_media, 1–6 for detect_ai_media)."
},
"image_base64": {
"type": "string",
"description": "Base64-encoded JPEG, PNG or WebP image (with or without data: prefix)."
}
}
}Return the number of available AI checks remaining on this Eikino account. Free.
No arguments.
{
"type": "object",
"properties": {}
}Estimate where a photo or 1–4 video frames were filmed, returning place name, country, coordinates, confidence, uncertainty radius in km, visual clues and alternatives. Uses 1 check when a location is found; 0 checks if unknown or failed.
| Argument | Type | Description |
|---|---|---|
| hint | string | Optional context hint, e.g. "filmed in summer 2019". |
| kind | string | Optional media type hint (photo or video). |
| taken | string | Optional recording date (YYYY-MM-DD) from EXIF or video metadata. |
| image_url | string | Public https URL of a single JPEG, PNG or WebP image (up to 5 MB). |
| image_urls | array | Up to 4 public https URLs of evenly spaced frames from one video. |
| image_base64 | string | Base64-encoded JPEG, PNG or WebP image (with or without data: prefix). |
{
"type": "object",
"properties": {
"hint": {
"type": "string",
"maxLength": 200,
"description": "Optional context hint, e.g. \"filmed in summer 2019\"."
},
"kind": {
"enum": [
"photo",
"video"
],
"type": "string",
"description": "Optional media type hint (photo or video)."
},
"taken": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional recording date (YYYY-MM-DD) from EXIF or video metadata."
},
"image_url": {
"type": "string",
"format": "uri",
"description": "Public https URL of a single JPEG, PNG or WebP image (up to 5 MB)."
},
"image_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 4,
"minItems": 1,
"description": "Up to 4 public https URLs of evenly spaced frames from one video."
},
"image_base64": {
"type": "string",
"description": "Base64-encoded JPEG, PNG or WebP image (with or without data: prefix)."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 15, 2026.