# ImgKits MCP

> ImgKits MCP: translate, blind watermark, audio, PDF→MD→translate, text utils, colorize.

- name: io.github.yichong1/mcp-imgkits
- version: 1.0.1
- connection class: R1 (autonomous)
- trust: 97/100
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.yichong1%2Fmcp-imgkits
- tools: https://api.protogrid.dev/v1/servers/io.github.yichong1%2Fmcp-imgkits/tools

**An agent can connect on its own if it already holds `MCP_IMGKITS_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "mcp-imgkits": {
      "type": "http",
      "url": "https://mcp.imgkits.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MCP_IMGKITS_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${MCP_IMGKITS_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-3d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 21 of 21 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 8,444 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 6 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 21, about 8,444 tokens to load them all
- tool set hash: a17a88e954adea046bb26049d0e49745
- tools last changed: 2026-11-05T04:23:30.201Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.yichong1/mcp-imgkits.svg)](https://protogrid.dev/servers/io.github.yichong1/mcp-imgkits)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-05 `remove_watermark` removed
  - AI watermark removal / inpainting for ONE image (JPG/PNG/WebP, <= 10 MB) supplied as a public URL. Optional `mask_image_url` (white = remove) or normalized `mask_rect` {x,y,width,height} in 0-1; with neither, the upstream auto-detect mode is used (support depends on the upstream). COPYRIGHT / ABUSE GATE: Use only on images you own or are explicitly licensed/authorized to edit. Do not remove copyright, ownership, attribution or license watermarks from third-party material, and do not bulk-strip watermarks from other people's content. Calls are rate-limited/metered by mcp-credit-gateway, require a valid sk_live_ key, and every attempt (including failures) is logged with an audit id for review. （仅处理自有或已获授权素材；禁止批量剥离他人版权水印；调用限频；失败可审计。） This tool is metered per call, accepts a single image per request, and returns an audit_id; bulk/automated third-party stripping is prohibited and may be blocked or reported. Cost: 3 credits per call; mcp-credit-gateway charges before forwarding the request.
- 2026-11-05 `add_watermark` removed
  - Add a visible text or image watermark to an image or PDF supplied as a public URL. Formats: JPG/PNG/WebP images up to 10 MB; PDF up to 30 MB. watermark_type=text requires `text` (<= 500 chars); watermark_type=image requires `watermark_image_url` (PNG/JPG/WebP, <= 5 MB, transparency supported). Position: top-left/top-center/top-right/center/bottom-left/bottom-center/bottom-right/tile. opacity 0.05-1, optional scale/font_size/color/rotation. For PDF, pass `pages` (e.g. "1-3,5") to limit pages. Synchronous. Cost: 2 credits per call; mcp-credit-gateway charges before forwarding the request. Requires Authorization: Bearer sk_live_... on the MCP endpoint.
- 2026-11-05 `upscale_image` added
  - Upscale an image from a public URL. POST {img, upscale} to ai.imgkits.com/api/restoration. `scale` is 2 (default) or 4 and is sent as `upscale`. Optional `face_enhance` is sent on the same body. There is no separate enhance_photo or enhance_face tool. Synchronous. Cost: 2 credits per call; mcp-credit-gateway charges before forwarding.
- 2026-11-05 `colorize_photo` added
  - Colorize a photo from a public URL. POST {img} to ai.imgkits.com/api/deoldify (AiController Shangse). Black-and-white photos work best; a response with a null URL is treated as failure. Synchronous. Cost: 2 credits per call; mcp-credit-gateway charges before forwarding. Requires Authorization: Bearer sk_live_... on tools/call.
- 2026-11-05 `count_text` added
  - Count characters, words, lines, and UTF-8 bytes for `text` (≤8000 chars). Latin words + CJK ideographs counted separately; pure algorithm, no upstream. Returns characters, characters_no_whitespace, words, lines, bytes_utf8. Cost: 1 credit per call, charged by mcp-credit-gateway before forwarding. Privacy: Text is processed in-memory for this request only and is not stored. Do not send secrets, passwords, or personal data you would not paste into a public tool. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （文本仅在本请求内存中处理、不落盘；请勿提交密钥/密码等敏感信息；调用限频。）
- 2026-11-05 `convert_text_style` added
  - Transform text with a pure in-Worker algorithm (no upstream HTTP). Pass required `text` (≤8000 chars) and `mode` one of: morse, binary, old_english, fancy, upper, lower, title, reverse. Modes: morse / binary (mappable chars only; others kept + optional skipped note), old_english (Fraktur Unicode), fancy (Math Sans-Serif Bold Unicode), upper / lower / title / reverse. Returns { text, mode, result }. Cost: 1 credit per call, charged by mcp-credit-gateway before forwarding. Privacy: Text is processed in-memory for this request only and is not stored. Do not send secrets, passwords, or personal data you would not paste into a public tool. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （文本仅在本请求内存中处理、不落盘；请勿提交密钥/密码等敏感信息；调用限频。）
- 2026-11-05 `pdf_to_markdown_then_translate` added
  - Convert a public PDF URL to Markdown via MinerU, then translate the markdown via the public text API. Pass `file_url` (or `files` with exactly 1 PDF http(s) URL; path must end in .pdf) and required `target_lang`. Optional: `source_lang` (default auto), `include_source_markdown` (default true), `wait_seconds` (default 45, max 55). URL max 2048 chars. Returns `markdown`, `translated_markdown`, `bilingual_markdown`, `task_id`, `target_lang`. Cost: 2 credits per call (MinerU 1 + translate_text 1), charged by mcp-credit-gateway before forwarding. DOCX input is not supported this wave. Compliance: Use only on documents you own or are explicitly licensed/authorized to convert and translate. Do not upload or redistribute copyrighted material without permission. Output markdown is ephemeral and must not be abused for bulk scraping. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权文档；禁止滥用转换/翻译他人受版权保护材料；调用限频。）
- 2026-11-05 `clone_voice_tts` added
  - Clone a voice from `clone_audio_url` and speak `text` via Qwen-TTS. Requires `authorization_confirmed=true` (own voice or written authorization). Pass `text` + `clone_audio_url` (+ recommended `clone_audio_text`) to start, or `job_id` to poll. Cost: 3 credits per call. VOICE AUTHORIZATION: Voice cloning is allowed ONLY for your own voice or a voice you have explicit written authorization to clone. Unauthorized cloning of another person's voice is prohibited. Calls are rate-limited/metered. （声音克隆仅限本人音色或已获书面授权的音色；禁止未授权克隆他人声音；调用限频。） Also: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- 2026-11-05 `text_to_speech` added
  - Synthesize speech from text via Qwen-TTS using a short `refer_audio` sample (http(s) URL). Pass `text` (<= 5000) + `refer_audio` (+ recommended `refer_audio_text`) to start, or `job_id` to poll. voiceId library voices are not exposed this wave. Cost: 2 credits per call. Compliance: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- 2026-11-05 `generate_subtitles` added
  - Transcribe a public audio URL with Faster-Whisper and assemble SRT or VTT in the Worker. Pass `audio_url` to start or `job_id` to poll; `format` is `srt` (default) or `vtt`. Cost: 2 credits per call. Compliance / SSRF: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）

Full history: https://api.protogrid.dev/v1/servers/io.github.yichong1%2Fmcp-imgkits/changes

## Remotes

- https://mcp.imgkits.com/mcp (streamable-http, auth api_key ${MCP_IMGKITS_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (21)

- `clone_voice_tts`: Clone a voice from `clone_audio_url` and speak `text` via Qwen-TTS. Requires `authorization_confirmed=true` (own voice or written authorization). Pass `text` + `clone_audio_url` (+ recommended `clone_audio_text`) to start, or `job_id` to poll. Cost: 3 credits per call. VOICE AUTHORIZATION: Voice cloning is allowed ONLY for your own voice or a voice you have explicit written authorization to clone. Unauthorized cloning of another person's voice is prohibited. Calls are rate-limited/metered. （声音克隆仅限本人音色或已获书面授权的音色；禁止未授权克隆他人声音；调用限频。） Also: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `colorize_photo`: Colorize a photo from a public URL. POST {img} to ai.imgkits.com/api/deoldify (AiController Shangse). Black-and-white photos work best; a response with a null URL is treated as failure. Synchronous. Cost: 2 credits per call; mcp-credit-gateway charges before forwarding. Requires Authorization: Bearer sk_live_... on tools/call.
- `convert_text_style`: Transform text with a pure in-Worker algorithm (no upstream HTTP). Pass required `text` (≤8000 chars) and `mode` one of: morse, binary, old_english, fancy, upper, lower, title, reverse. Modes: morse / binary (mappable chars only; others kept + optional skipped note), old_english (Fraktur Unicode), fancy (Math Sans-Serif Bold Unicode), upper / lower / title / reverse. Returns { text, mode, result }. Cost: 1 credit per call, charged by mcp-credit-gateway before forwarding. Privacy: Text is processed in-memory for this request only and is not stored. Do not send secrets, passwords, or personal data you would not paste into a public tool. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （文本仅在本请求内存中处理、不落盘；请勿提交密钥/密码等敏感信息；调用限频。）
- `convert_to_markdown`: Convert PDF and image files to clean Markdown for RAG, LLM ingestion, and knowledge bases. Optionally include MinerU layout JSON (content list with blocks and bounding boxes).

Input: 1-5 public https file URLs, each ≤20 MiB. Supported: pdf, png, jpeg, webp, bmp, tiff. DOCX is not supported in this release. Private, local, and metadata hosts are rejected.

Processing is asynchronous upstream; this call polls until done or times out after about 75 seconds.

This Worker does not store uploaded files or results. Upstream MinerU task data is temporary (≤24h).

Billing: charged before the MinerU job is created (default 1 credit per tool call). No automatic refunds.

Powered by MinerU (opendatalab/MinerU). License: https://github.com/opendatalab/MinerU/blob/master/LICENSE.md
- `count_text`: Count characters, words, lines, and UTF-8 bytes for `text` (≤8000 chars). Latin words + CJK ideographs counted separately; pure algorithm, no upstream. Returns characters, characters_no_whitespace, words, lines, bytes_utf8. Cost: 1 credit per call, charged by mcp-credit-gateway before forwarding. Privacy: Text is processed in-memory for this request only and is not stored. Do not send secrets, passwords, or personal data you would not paste into a public tool. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （文本仅在本请求内存中处理、不落盘；请勿提交密钥/密码等敏感信息；调用限频。）
- `decode_blind_watermark`: Read a blind watermark from an image (public http(s) URL). Uses the AiController CreateDecodeBlindWatermarkTask + GetDecodeBlindWatermarkResult async path. Start with `source_url`; the call waits up to `wait_seconds` (default 15, max 60) and returns a `job_id` if still running. Poll by calling again with only `job_id`; polling never creates a new upstream decode task. Returns `content` when readable. Cost: 2 credits per call, charged by mcp-credit-gateway before forwarding.
- `detect_language`: Detect the language of up to 20,000 characters. Uses a local Unicode-script + stopword/diacritic heuristic; no upstream call. Returns a language code, confidence, reliability flag and alternatives. Billing: free by default (COST_DETECT_LANGUAGE=0).
- `embed_blind_watermark`: Embed an invisible/blind watermark into an image supplied as a public URL (JPG/PNG/WebP/BMP, <= 10 MB; at least 64x64 px recommended). Uses the AiController EncodeBlindWatermark / Alibaba Cloud IMM path. Pass `watermark_text` (<= 512 chars, e.g. an order id), or omit it to use the server-held BLIND_WATERMARK_KEY secret; the embedded content is never echoed back. `model` is DWT (default, more robust) or DCT; optional `strength` 1-10. Synchronous. Cost: 2 credits per call, charged by mcp-credit-gateway before forwarding.
- `extract_tables`: Extract tables from PDFs and images as HTML plus a row/column matrix. Merged cells are expanded; only the top-left cell carries content and other covered cells are empty strings. Returns row_count, column_count, page_idx, and bbox for each table.

Input: 1-5 public https file URLs, each ≤20 MiB. Supported: pdf, png, jpeg, webp, bmp, tiff. DOCX is not supported in this release. Private, local, and metadata hosts are rejected.

Table structure is model-recognized, so complex, borderless, or handwritten tables may contain errors. Processing is asynchronous and this call polls until done or times out after about 75 seconds.

This Worker does not store uploaded files or results. Upstream MinerU task data is temporary (≤24h).

Billing: charged before the MinerU job is created (default 1 credit per tool call). No automatic refunds.

Powered by MinerU (opendatalab/MinerU). License: https://github.com/opendatalab/MinerU/blob/master/LICENSE.md
- `generate_subtitles`: Transcribe a public audio URL with Faster-Whisper and assemble SRT or VTT in the Worker. Pass `audio_url` to start or `job_id` to poll; `format` is `srt` (default) or `vtt`. Cost: 2 credits per call. Compliance / SSRF: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `ocr_image`: Extract text from images, screenshots, and scanned PDF pages. Returns text blocks with block-level bounding boxes [x0, y0, x1, y1] and page indexes. Coordinates are MinerU content-list coordinates, not character-level boxes and not rescaled to pixels.

Input: 1-5 public https file URLs, each ≤20 MiB. Supported: pdf, png, jpeg, webp, bmp, tiff. DOCX is not supported in this release. Private, local, and metadata hosts are rejected.

Tables inside an image are returned as positioned table_cell blocks. Processing is asynchronous and this call polls until done or times out after about 75 seconds.

This Worker does not store uploaded files or results. Upstream MinerU task data is temporary (≤24h).

Billing: charged before the MinerU job is created (default 1 credit per tool call). No automatic refunds.

Powered by MinerU (opendatalab/MinerU). License: https://github.com/opendatalab/MinerU/blob/master/LICENSE.md
- `pdf_to_markdown_then_translate`: Convert a public PDF URL to Markdown via MinerU, then translate the markdown via the public text API. Pass `file_url` (or `files` with exactly 1 PDF http(s) URL; path must end in .pdf) and required `target_lang`. Optional: `source_lang` (default auto), `include_source_markdown` (default true), `wait_seconds` (default 45, max 55). URL max 2048 chars. Returns `markdown`, `translated_markdown`, `bilingual_markdown`, `task_id`, `target_lang`. Cost: 2 credits per call (MinerU 1 + translate_text 1), charged by mcp-credit-gateway before forwarding. DOCX input is not supported this wave. Compliance: Use only on documents you own or are explicitly licensed/authorized to convert and translate. Do not upload or redistribute copyrighted material without permission. Output markdown is ephemeral and must not be abused for bulk scraping. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权文档；禁止滥用转换/翻译他人受版权保护材料；调用限频。）
- `separate_stems`: Split a public audio URL into vocals + accompaniment stems via Spleeter 2stems (async create + result poll). Pass `audio_url` (http(s), <= 2048 chars) to start, or `job_id` to poll. Waits up to `wait_seconds` (default 30, max 55). Returns `vocals_url`, `accompaniment_url`, and optional `zip_url` when done. Cost: 3 credits per call, charged by mcp-credit-gateway before forwarding. Compliance / SSRF: only http(s) URLs; Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `text_to_sound_effect`: Generate a short sound-effect WAV from a text prompt via TangoFlux (async create + result poll). Pass `prompt` (<= 2000 chars) with optional `duration` (default 10s) and `steps` (default 25); the call waits up to `wait_seconds` (default 30, max 55) and returns `job_id` if still running. Poll by calling again with only `job_id`. Returns `audio_url` when done. Cost: 2 credits per call, charged by mcp-credit-gateway before forwarding. Compliance: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `text_to_speech`: Synthesize speech from text via Qwen-TTS using a short `refer_audio` sample (http(s) URL). Pass `text` (<= 5000) + `refer_audio` (+ recommended `refer_audio_text`) to start, or `job_id` to poll. voiceId library voices are not exposed this wave. Cost: 2 credits per call. Compliance: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `transcribe_audio`: Transcribe a public audio URL via Faster-Whisper (async create + result poll; no status endpoint). Pass `audio_url` (http(s)) to start or `job_id` to poll. Optional `language`, `response_format` (simple|raw). Empty transcript is still success (no speech detected). Cost: 2 credits per call. Compliance / SSRF: Use only on material you own or are explicitly licensed/authorized to generate or remix. Do not generate or redistribute copyrighted music, voice likenesses, or trademarked audio without permission. Output URLs have a limited TTL and must not be abused for bulk scraping or redistribution. Calls are rate-limited/metered by mcp-credit-gateway and require a valid sk_live_ key. （仅处理自有或已获授权素材；禁止滥用生成/二创他人受版权保护的音乐或声音；输出有 TTL；调用限频。）
- `translate_document`: Translate a document from a public URL. Supported formats include PDF, DOCX/DOC, XLSX/XLS, PPTX/PPT, EPUB, TXT, HTML, MD and CSV. Upstream size limits: PDF <= 30 MB, other formats <= 80 MB. This is an async job: the call waits up to wait_seconds (default 30, max 120) and returns a job_id if still running. Call again with the same job_id to poll; polling does not start a new translation job. Upstream deletes temporary/original files after processing and result URLs expire (about 24 hours), so download promptly. Cost: 5 credits per new job, charged by mcp-credit-gateway before forwarding the request.
- `translate_image`: Translate text inside 1-10 images supplied as public URLs (JPG/PNG/WebP recommended; keep each image <= 10 MB). This is an async job: the call waits up to wait_seconds (default 30, max 120) and returns a job_id if still running. Call again with the same job_id to poll; polling does not start a new translation job. Upstream result URLs expire (about 24 hours), so download promptly. Cost: 2 credits per new job, charged by mcp-credit-gateway before forwarding the request.
- `translate_subtitle`: Translate SRT, WebVTT or ASS/SSA subtitle content (up to 1,000,000 characters). Timestamps, cue order, SRT/VTT indices and ASS event fields are preserved exactly; only cue text is translated. Synchronous. Cost: 3 credits per call, charged by mcp-credit-gateway before forwarding the request.
- `translate_text`: Translate up to 50,000 characters of plain text (up to 50 strings). Long inputs are split into <=1,900-character chunks automatically. Synchronous. Cost: 1 credit per call; mcp-credit-gateway charges before forwarding the request. Requires Authorization: Bearer sk_live_... on the MCP endpoint.
- `upscale_image`: Upscale an image from a public URL. POST {img, upscale} to ai.imgkits.com/api/restoration. `scale` is 2 (default) or 4 and is sent as `upscale`. Optional `face_enhance` is sent on the same body. There is no separate enhance_photo or enhance_face tool. Synchronous. Cost: 2 credits per call; mcp-credit-gateway charges before forwarding.
