ImgKits gateway MCP: translation (text/doc/image/subtitle) and watermark add/remove tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer sk_live_... API key from https://mcp.imgkits.com
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.
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.
Public http(s) URL of the source image (JPG/PNG/WebP, <= 10 MB) or PDF (<= 30 MB).
`text` stamps words; `image` overlays a logo/PNG watermark.
Watermark text, required when watermark_type=text (<= 500 chars).
Text colour as #RRGGBB. Defaults to upstream choice (usually white).
PDF only. 1-based page selection such as "1", "1-3" or "1-3,5,8-10".
Image watermark width as a fraction of the source width, 0.02–0.95.
Watermark opacity, 0.05–1 (default 0.35).
Anchor for the watermark, or `tile` to repeat it across the page/image.
Clockwise rotation in degrees, -180 to 180 (e.g. 45 for a diagonal stamp).
Text watermark font size in pixels (images) or points (PDF), 8–256.
Optional. Defaults to PDF when source_url ends in .pdf, otherwise image.
Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway.
Public PNG/JPG/WebP watermark image URL, required when watermark_type=image (<= 5 MB; transparency supported).
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.
claude mcp add --transport http mcp-imgkits https://mcp.imgkits.com/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer sk_live_... API key from https://mcp.imgkits.comAdd 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.
| Argument | Type | Description |
|---|---|---|
| text | string | Watermark text, required when watermark_type=text (<= 500 chars). |
| color | string | Text colour as #RRGGBB. Defaults to upstream choice (usually white). |
| pages | string | PDF only. 1-based page selection such as "1", "1-3" or "1-3,5,8-10". |
| scale | number | Image watermark width as a fraction of the source width, 0.02–0.95. |
| opacity | number | Watermark opacity, 0.05–1 (default 0.35). |
| position | string | Anchor for the watermark, or `tile` to repeat it across the page/image. |
| rotation | number | Clockwise rotation in degrees, -180 to 180 (e.g. 45 for a diagonal stamp). |
| font_size | integer | Text watermark font size in pixels (images) or points (PDF), 8–256. |
| source_url* | string | Public http(s) URL of the source image (JPG/PNG/WebP, <= 10 MB) or PDF (<= 30 MB). |
| source_type | string | Optional. Defaults to PDF when source_url ends in .pdf, otherwise image. |
| watermark_type* | string | `text` stamps words; `image` overlays a logo/PNG watermark. |
| idempotency_key | string | Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway. |
| watermark_image_url | string | Public PNG/JPG/WebP watermark image URL, required when watermark_type=image (<= 5 MB; transparency supported). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"source_url",
"watermark_type"
],
"properties": {
"text": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Watermark text, required when watermark_type=text (<= 500 chars)."
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "Text colour as #RRGGBB. Defaults to upstream choice (usually white)."
},
"pages": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "PDF only. 1-based page selection such as \"1\", \"1-3\" or \"1-3,5,8-10\"."
},
"scale": {
"type": "number",
"maximum": 0.95,
"minimum": 0.02,
"description": "Image watermark width as a fraction of the source width, 0.02–0.95."
},
"opacity": {
"type": "number",
"default": 0.35,
"maximum": 1,
"minimum": 0.05,
"description": "Watermark opacity, 0.05–1 (default 0.35)."
},
"position": {
"enum": [
"top-left",
"top-center",
"top-right",
"center",
"bottom-left",
"bottom-center",
"bottom-right",
"tile"
],
"type": "string",
"default": "bottom-right",
"description": "Anchor for the watermark, or `tile` to repeat it across the page/image."
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Clockwise rotation in degrees, -180 to 180 (e.g. 45 for a diagonal stamp)."
},
"font_size": {
"type": "integer",
"maximum": 256,
"minimum": 8,
"description": "Text watermark font size in pixels (images) or points (PDF), 8–256."
},
"source_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public http(s) URL of the source image (JPG/PNG/WebP, <= 10 MB) or PDF (<= 30 MB)."
},
"source_type": {
"enum": [
"image",
"pdf"
],
"type": "string",
"description": "Optional. Defaults to PDF when source_url ends in .pdf, otherwise image."
},
"watermark_type": {
"enum": [
"text",
"image"
],
"type": "string",
"description": "`text` stamps words; `image` overlays a logo/PNG watermark."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway."
},
"watermark_image_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public PNG/JPG/WebP watermark image URL, required when watermark_type=image (<= 5 MB; transparency supported)."
}
}
}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
| Argument | Type | Description |
|---|---|---|
| files* | array | 1-5 public https file URLs. |
| include_layout_json | boolean | When true, also return MinerU layout JSON (content_list) for each file. |
{
"type": "object",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"description": "Public https URL pointing directly to a supported PDF or image file."
},
"maxItems": 5,
"minItems": 1,
"description": "1-5 public https file URLs."
},
"include_layout_json": {
"type": "boolean",
"default": false,
"description": "When true, also return MinerU layout JSON (content_list) for each file."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| job_id | string | Existing upstream task id returned by a previous call. Polling never creates a new decode task. |
| source_url | string | Public http(s) URL of the watermarked image. Start a new decode job with this, or poll with `job_id`. |
| wait_seconds | number | How long to wait for a result, 0–60 seconds (default 15). On timeout the call returns a job_id to poll. |
| idempotency_key | string | Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"job_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Existing upstream task id returned by a previous call. Polling never creates a new decode task."
},
"source_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public http(s) URL of the watermarked image. Start a new decode job with this, or poll with `job_id`."
},
"wait_seconds": {
"type": "number",
"default": 15,
"maximum": 60,
"minimum": 0,
"description": "How long to wait for a result, 0–60 seconds (default 15). On timeout the call returns a job_id to poll."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| text* | string | Text to identify. Up to 20,000 characters; longer samples improve accuracy. |
| idempotency_key | string | Optional per-job key; relevant when COST_DETECT_LANGUAGE is above 0 (gateway billing). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Text to identify. Up to 20,000 characters; longer samples improve accuracy."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional per-job key; relevant when COST_DETECT_LANGUAGE is above 0 (gateway billing)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| model | string | Blind-watermark algorithm. DWT is more robust to scaling; DCT is faster. |
| strength | integer | Optional embedding strength, 1–10. Higher survives more editing but is slightly more visible. |
| source_url* | string | Public http(s) URL of the source image (JPG/PNG/WebP/BMP, <= 10 MB). Recommended at least 64x64 px so the blind watermark survives compression. |
| watermark_text | string | Content to embed invisibly (<= 512 chars), e.g. an order id or user id. Omit to use the server-held BLIND_WATERMARK_KEY. The content is never echoed back in the result. |
| idempotency_key | string | Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"source_url"
],
"properties": {
"model": {
"enum": [
"DWT",
"DCT"
],
"type": "string",
"default": "DWT",
"description": "Blind-watermark algorithm. DWT is more robust to scaling; DCT is faster."
},
"strength": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Optional embedding strength, 1–10. Higher survives more editing but is slightly more visible."
},
"source_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public http(s) URL of the source image (JPG/PNG/WebP/BMP, <= 10 MB). Recommended at least 64x64 px so the blind watermark survives compression."
},
"watermark_text": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Content to embed invisibly (<= 512 chars), e.g. an order id or user id. Omit to use the server-held BLIND_WATERMARK_KEY. The content is never echoed back in the result."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway."
}
}
}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
| Argument | Type | Description |
|---|---|---|
| files* | array | 1-5 public https file URLs. |
{
"type": "object",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"description": "Public https URL pointing directly to a supported PDF or image file."
},
"maxItems": 5,
"minItems": 1,
"description": "1-5 public https file URLs."
}
},
"additionalProperties": false
}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
| Argument | Type | Description |
|---|---|---|
| files* | array | 1-5 public https file URLs. |
{
"type": "object",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"description": "Public https URL pointing directly to a supported PDF or image file."
},
"maxItems": 5,
"minItems": 1,
"description": "1-5 public https file URLs."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| bucket | string | Upstream storage bucket for the result (default imgkits). |
| mask_rect | object | Optional rectangular mask in normalized coordinates (0–1). For /api/inpaint this is forwarded as `mask_rect`; if the upstream requires a bitmap mask, pass mask_image_url instead. Mutually exclusive with mask_image_url. |
| source_url* | string | Public http(s) URL of the image to clean (JPG/PNG/WebP, <= 10 MB). Only use material you own or are explicitly authorized to edit. |
| mask_image_url | string | Optional public URL of a mask image (white/opaque = watermark area to remove, black or transparent = keep). Mutually exclusive with mask_rect. |
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.
| Argument | Type | Description |
|---|---|---|
| to | string | Target language code or name, e.g. en, zh, cht, ja, ko, fr, de, es. |
| from | string | Source language code or name. Defaults to 'auto'. |
| job_id | string | Resume polling an existing job. Polling does not create a new upstream job. |
| doc_url | string | Publicly reachable document URL (signed URLs are fine). Supported: PDF, DOCX/DOC, XLSX/XLS, PPTX/PPT, EPUB, TXT, HTML, MD, CSV, SRT and more. Upstream size limits: PDF <= 30 MB, other formats <= 80 MB. |
| file_name | string | Optional original file name, used by the upstream for the output file name. |
| wait_seconds | integer | How long to wait for the async job in this call (0-120 seconds, default 30). |
| idempotency_key |
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.
| Argument | Type | Description |
|---|---|---|
| to | string | Target language code or name. Required for a new job. |
| font | string | Overlay font. Defaults to 'noto'. |
| from | string | Source language code or name. Defaults to 'auto'. |
| paste | any | Paste mode: 0 = no text overlay, 1 = whole-image overlay (default), 2 = block overlay. |
| job_id | string | Resume polling an existing job. Polling does not create a new upstream job. |
| image_urls | array | 1-10 public image URLs (JPG/PNG/WebP recommended). Keep each image <= 10 MB; larger files may be rejected by the upstream downloader. |
| wait_seconds | integer | How long to wait for the async job in this call (0-120 seconds, default 30). |
| idempotency_key |
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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Target language code or name, e.g. en, zh, cht, ja, ko, fr, de, es. |
| from | string | Source language code or name. Defaults to 'auto'. |
| format | string | Subtitle format. Defaults to auto-detection. |
| idempotency_key | string | Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway. |
| subtitle_content* | string | Raw subtitle text (SRT, WebVTT or ASS/SSA). Up to 1,000,000 characters. Timestamps are preserved exactly. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subtitle_content",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Target language code or name, e.g. en, zh, cht, ja, ko, fr, de, es."
},
"from": {
"type": "string",
"default": "auto",
"maxLength": 32,
"minLength": 1,
"description": "Source language code or name. Defaults to 'auto'."
},
"format": {
"enum": [
"auto",
"srt",
"vtt",
"ass"
],
"type": "string",
"default": "auto",
"description": "Subtitle format. Defaults to auto-detection."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway."
},
"subtitle_content": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "Raw subtitle text (SRT, WebVTT or ASS/SSA). Up to 1,000,000 characters. Timestamps are preserved exactly."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Target language code or English name, e.g. en, zh, cht, ja, ko, fr, de, es. |
| from | string | Source language code or English name. Defaults to 'auto'. |
| text | string | A single string to translate. Provide this or `texts`, not both. |
| texts | array | Up to 50 strings to translate in one call. Total length must be <= 50,000 characters. |
| idempotency_key | string | Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Target language code or English name, e.g. en, zh, cht, ja, ko, fr, de, es."
},
"from": {
"type": "string",
"default": "auto",
"maxLength": 32,
"minLength": 1,
"description": "Source language code or English name. Defaults to 'auto'."
},
"text": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "A single string to translate. Provide this or `texts`, not both."
},
"texts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50000,
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Up to 50 strings to translate in one call. Total length must be <= 50,000 characters."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway."
}
}
}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 1, 2026.
| idempotency_key | string | Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"source_url"
],
"properties": {
"bucket": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
"maxLength": 64,
"minLength": 1,
"description": "Upstream storage bucket for the result (default imgkits)."
},
"mask_rect": {
"type": "object",
"required": [
"x",
"y",
"width",
"height"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Left edge as a fraction of image width, 0–1."
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Top edge as a fraction of image height, 0–1."
},
"width": {
"type": "number",
"maximum": 1,
"description": "Mask width as a fraction of image width, >0–1.",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"maximum": 1,
"description": "Mask height as a fraction of image height, >0–1.",
"exclusiveMinimum": 0
}
},
"description": "Optional rectangular mask in normalized coordinates (0–1). For /api/inpaint this is forwarded as `mask_rect`; if the upstream requires a bitmap mask, pass mask_image_url instead. Mutually exclusive with mask_image_url."
},
"source_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public http(s) URL of the image to clean (JPG/PNG/WebP, <= 10 MB). Only use material you own or are explicitly authorized to edit."
},
"mask_image_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Optional public URL of a mask image (white/opaque = watermark area to remove, black or transparent = keep). Mutually exclusive with mask_rect."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional caller correlation key, echoed in the result. Billing is handled by mcp-credit-gateway."
}
}
}| string |
| Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Target language code or name, e.g. en, zh, cht, ja, ko, fr, de, es."
},
"from": {
"type": "string",
"default": "auto",
"maxLength": 32,
"minLength": 1,
"description": "Source language code or name. Defaults to 'auto'."
},
"job_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Resume polling an existing job. Polling does not create a new upstream job."
},
"doc_url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Publicly reachable document URL (signed URLs are fine). Supported: PDF, DOCX/DOC, XLSX/XLS, PPTX/PPT, EPUB, TXT, HTML, MD, CSV, SRT and more. Upstream size limits: PDF <= 30 MB, other formats <= 80 MB."
},
"file_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Optional original file name, used by the upstream for the output file name."
},
"wait_seconds": {
"type": "integer",
"default": 30,
"maximum": 120,
"minimum": 0,
"description": "How long to wait for the async job in this call (0-120 seconds, default 30)."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway."
}
}
}| string |
| Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Target language code or name. Required for a new job."
},
"font": {
"enum": [
"noto",
"wildwords",
"komikajam",
"bangers",
"edo",
"ridibatang",
"bushidoo",
"hayah",
"itim",
"mogulirina"
],
"type": "string",
"default": "noto",
"description": "Overlay font. Defaults to 'noto'."
},
"from": {
"type": "string",
"default": "auto",
"maxLength": 32,
"minLength": 1,
"description": "Source language code or name. Defaults to 'auto'."
},
"paste": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
],
"default": 1,
"description": "Paste mode: 0 = no text overlay, 1 = whole-image overlay (default), 2 = block overlay."
},
"job_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Resume polling an existing job. Polling does not create a new upstream job."
},
"image_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"maxItems": 10,
"minItems": 1,
"description": "1-10 public image URLs (JPG/PNG/WebP recommended). Keep each image <= 10 MB; larger files may be rejected by the upstream downloader."
},
"wait_seconds": {
"type": "integer",
"default": 30,
"maximum": 120,
"minimum": 0,
"description": "How long to wait for the async job in this call (0-120 seconds, default 30)."
},
"idempotency_key": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional per-job key for upstream job isolation. Billing is handled by mcp-credit-gateway."
}
}
}