Turn a portrait into a compliant passport, visa or ID photo. 300+ official specs, 3 free a day.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
idphoto.ai API key (optional; without it make_id_photo is limited to 3 free photos per day)
idphoto.ai API secret (required together with X-IDP-API-Key)
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.
Get the detailed requirements of one photo spec: physical size, pixel size, DPI, background color, head height / eye position guidance, glasses and expression rules.
Spec code from list_photo_specs, e.g. 'us-passport'.
Get the detailed requirements of one photo spec: physical size, pixel size, DPI, background color, head height / eye position guidance, glasses and expression rules.
| Argument | Type | Description |
|---|---|---|
| specCode* | string | Spec code from list_photo_specs, e.g. 'us-passport'. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"specCode"
],
"properties": {
"specCode": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Spec code from list_photo_specs, e.g. 'us-passport'."
}
}
}Show remaining quota. With API credentials: the idphoto.ai account status and remaining make-photo quota. Without credentials: how many free make_id_photo calls are left today.
No arguments.
{
"type": "object",
"properties": {}
}List all supported passport / visa / ID photo specifications as specCode + human-readable name (e.g. 'us-passport' = 'US Passport'). Use this to find the specCode for make_id_photo.
No arguments.
{
"type": "object",
"properties": {}
}Turn a portrait photo into a compliant passport / visa / ID photo for a given document spec (cropping, resizing, background replacement, quality checks). Returns a temporary download URL for the finished JPEG, its pixel/physical size, and any detected quality issues (e.g. ISSUE_EYEGLASSES_NOT_ALLOWED) that may require a retake. Use list_photo_specs or get_photo_spec first if you are unsure of the specCode. The input image must be base64 (data URI prefix allowed), at most ~4 MB decoded, showing one person facing the camera. Without API credentials this is limited to 3 photos per day.
| Argument | Type | Description |
|---|---|---|
| specCode* | string | Document spec code, e.g. 'us-passport', 'uk-passport', 'schengen-visa'. Specs starting with 'ai-' use AI generation and may be slow. |
| imageBase64* | string | Source portrait as base64 (JPEG/PNG). A 'data:image/jpeg;base64,' prefix is optional. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"specCode",
"imageBase64"
],
"properties": {
"specCode": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Document spec code, e.g. 'us-passport', 'uk-passport', 'schengen-visa'. Specs starting with 'ai-' use AI generation and may be slow."
},
"imageBase64": {
"type": "string",
"minLength": 1,
"description": "Source portrait as base64 (JPEG/PNG). A 'data:image/jpeg;base64,' prefix is optional."
}
}
}