---
canonical_url: "https://docs.composio.dev/toolkits/recraft_mcp"
markdown_url: "https://docs.composio.dev/toolkits/recraft_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Recraft MCP

Generate and edit visual assets, manage custom styles, and inspect account information through Recraft’s provider-hosted MCP server.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 22
- **Triggers:** 0
- **Slug:** `RECRAFT_MCP`
- **Version:** 00000000_00

## Tools

### Call agent

**Slug:** `RECRAFT_MCP_CALL_AGENT`

Talk to Recraft's Design Agent in a chat. This is not just any agent — it is The Design Agent, and its superpower is turning a brief — a plain description of a digital product — into a strong, consistent and genuinely amazing set of design assets. Building a coherent look normally means juggling separate tools — one for the logo, another for icons, another for social assets — and without a designer to hold it together the result feels like five apps that have never met. The Design Agent does it all at once: describe the product and it produces a full, consistent set of design assets — a logo, a colour palette, typography, an app icon and social assets among them — and can save them as a reusable Design Kit so every asset pulled from it later stays consistent. It is built for digital products: apps, websites and similar projects. Reach for it whenever the user needs a whole coherent look rather than a single one-off image.
This is a two-way, turn-based conversation, not a one-shot request: you send a text message (optionally with input images) and receive the agent's combined reply, which may include images the agent generates.
The agent often drives the exchange itself — instead of a final result it may reply with a clarifying question or a set of choices (for example confirming it should proceed, asking for visual references or a preferred direction, or asking which option to develop). When it does, relay that reply to the end user verbatim, collect their answer, and send it back in a follow-up call — do not answer on the user's behalf or skip ahead. A single task can take several turns before the agent produces its final design assets.
Omit chat_id to start a new conversation; the response contains the chat_id — pass it in every subsequent call to continue the same conversation with full context.
Images flow both ways. To send images to the agent, provide input_image_urls, a list of publicly accessible HTTP or HTTPS URLs (PNG, JPEG, WEBP or SVG); if you only have local image files, call request_upload_url first, PUT the image bytes to the returned upload URL, and pass the resulting image_url values here. Any images the agent generates come back in the response.
The response contains the agent's text answer, the chat_id, URLs of any generated images with WEBP previews as base64 encoded bytes, and the credits this call used.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | string | No | UUID of an existing chat to continue. Omit to start a new chat. The chat_id is returned in every call_agent response. |
| `message` | string | Yes | Text message to send to the Recraft agent. On the first turn, describe what you want the agent to do or answer. On later turns, this carries the end user's reply to a question or choice the agent raised — relay their answer here rather than answering for them. |
| `input_image_urls` | array | No | A list of publicly accessible HTTP or HTTPS URLs pointing to input images in PNG, JPEG, WEBP or SVG format. Provide from 1 to 10 images. If you only have local image files, use the request_upload_url tool first to obtain such URLs. |

### Create style

**Slug:** `RECRAFT_MCP_CREATE_STYLE`

Create a custom style from one or more reference images.
Provide images via URLs or base64-encoded data.
The `input_style` parameter defines the base style type. The style is saved to the user's Recraft account, so it is also available in the Recraft app. Returns the new style ID, which you can pass as `input_style_id` to the generation tools. Creating a style is free.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional display name for the new style. |
| `model` | string ("recraftv4_raster" | "recraftv4_vector" | "recraftv4_pro_raster" | "recraftv4_pro_vector" | "recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector") | No | Recraft model the style is created for. Generations with the style use this model when model is omitted. If omitted here, the server picks a model compatible with input_style. - recraftv4_raster / recraftv4_vector, recraftv4_pro_raster / recraftv4_pro_vector: v4 styles; omit input_style. They can also be applied with the matching recraftv4_1 variants (a raster style with a `_raster` model, a vector style with a `_vector` model). - recraftv3_raster / recraftv3_vector, recraftv2_raster / recraftv2_vector: pass input_style. `_raster` styles produce raster images, `_vector` styles produce SVG vector files. |
| `private` | boolean | No | Whether to create the style as private. Private styles are only visible to the owning account and cannot be discovered by other users. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon") | No | Base style type of the custom style; the type of generated images follows it. Required for recraftv3 and recraftv2 styles. Omit it for recraftv4 models: their type follows the model (`_raster` → raster, `_vector` → vector). - realistic_image: photos, portraits, landscapes, etc. Raster. - digital_illustration: digital illustrations, concept art, fantasy art, etc. Raster. - vector_illustration: vector illustrations, logos, icons, etc. Vector. - icon: icons, small graphics (only in recraftv2). Vector. |
| `style_prompt` | string | No | Optional text prompt of the style, specify if you want to refine style appliance. Its length should be from 1 to 1000 characters. |
| `input_style_images_b64` | array | No | Array of base64-encoded reference images for style creation. Provide 1–5 images that exemplify the visual style you want to capture. Mutually exclusive with input_style_images_urls. |
| `input_style_images_urls` | array | No | Array of publicly accessible HTTP or HTTPS URLs pointing to reference images for style creation. Provide 1–5 images that exemplify the visual style you want to capture. Mutually exclusive with input_style_images_b64. |

### Creative upscale

**Slug:** `RECRAFT_MCP_CREATIVE_UPSCALE`

Input must have at most 4194304 pixels (4 MP), sides from 256 to 4096 pixels, and at most 48 MiB of raster data. Larger inputs are rejected before generation or billing.
Upscale an image using creative AI enhancement. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns the processed image as a URL and a preview in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Crisp upscale

**Slug:** `RECRAFT_MCP_CRISP_UPSCALE`

Input must have at most 4194304 pixels (4 MP), sides from 32 to 4096 pixels, and at most 48 MiB of raster data.
Upscale an image with sharp, crisp quality enhancement. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns the processed image as a URL and a preview in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Delete style

**Slug:** `RECRAFT_MCP_DELETE_STYLE`

Delete a custom style by its `style_id`. This cannot be undone.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `style_id` | string | Yes | The unique UUID identifying the style (e.g. "550e8400-e29b-41d4-a716-446655440000"). Use this ID to reference the style in generation requests via the input_style_id parameter, and in get_style or delete_style via style_id. |

### Erase region

**Slug:** `RECRAFT_MCP_ERASE_REGION`

Erase a masked region from an image, filling it with content-aware background. Provide the source image as `input_image_url` and a mask image as `mask_image_url`, both publicly accessible HTTP or HTTPS URLs.
If you only have local image files with no public URLs, call `request_upload_url` for each, PUT the image bytes to each returned upload URL, and pass the resulting `image_url` values here.
Returns the processed image as a URL and a preview in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mask_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the mask image in PNG, JPEG, WEBP or SVG format. The mask should be a black-and-white image where white areas will be processed. If you only have a local mask file, use the request_upload_url tool first to obtain such a URL. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Generate background

**Slug:** `RECRAFT_MCP_GENERATE_BACKGROUND`

Generate a background for a masked region of an image based on a text prompt. Provide the source image as `input_image_url` and a mask image as `mask_image_url`, both publicly accessible HTTP or HTTPS URLs.
If you only have local image files with no public URLs, call `request_upload_url` for each, PUT the image bytes to each returned upload URL, and pass the resulting `image_url` values here.
Returns an image_urls array and previews in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector") | No | Recraft model to use. If omitted, the server picks a suitable model. Only recraftv3 and recraftv2 support this tool: pass recraftv3_raster, recraftv3_vector, recraftv2_raster or recraftv2_vector. `_raster` produces a raster image, `_vector` produces an SVG vector file. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon" | "logo_raster") | No | Visual style to apply. Use this parameter only if you want to refine the image generation. Mutually exclusive with input_style_id, you can't specify both of them. If you will provide a style that is not available for the specified model, generation will fail. If omitted, a type compatible with the model is used. Styles use-cases: - realistic_image: for realistic images, photos, portraits, landscapes, etc. Raster is generated. - digital_illustration: for digital illustrations, concept art, fantasy art, etc. Raster is generated. - vector_illustration: for vector illustrations, logos, icons, etc. Vector is generated. - icon: for icons, small graphics (only in recraftv2). Vector is generated. - logo_raster: for graphic design, raster logos, posters, emblems, and badges (only in recraftv3). Raster is generated. |
| `input_style_id` | string | No | ID of a Recraft v2 or v3 style only. Omit model to use its compatible model. V4 styles are not supported by this tool. Mutually exclusive with input_style. |
| `mask_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the mask image in PNG, JPEG, WEBP or SVG format. The mask should be a black-and-white image where white areas will be processed. If you only have a local mask file, use the request_upload_url tool first to obtain such a URL. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Generate image

**Slug:** `RECRAFT_MCP_GENERATE_IMAGE`

Generate an image from a text prompt.
You can specify the image size, style, model, and number of images to generate.
You don't need to change default parameters if you don't have any specific requirements.
Recraft has both raster and vector models. Recraft models come in a `_raster` and a `_vector` variant: a raster model (e.g. recraftv4_1_raster) produces a raster image (PNG/WEBP), while a vector model (e.g. recraftv4_1_vector) produces a true SVG vector file. Whenever the user asks for a vector, an SVG, a scalable logo, or an icon, pass the `_vector` variant of the model — that is the reliable way to get an SVG. Use the `_raster` variant for photos and raster artwork. recraftv4_1_flash_raster has no vector variant. See the `model` parameter for the full list of variants.
Besides Recraft models, this tool supports external models such as nano_banana_2, nano_banana_pro, gpt_image_2_medium or bytedance_seedreamv5_pro (see the `model` parameter for the full list); availability depends on your subscription and is validated server-side. External models produce raster images only: they have no `_vector` variants, cannot generate SVG, and do not support custom styles.
Recraft also has a large library of built-in "basic styles" beyond the default models. Call the `list_basic_styles` tool to explore the full variety of available styles, then apply a chosen one via its `input_style_id`.
To apply a basic or custom style, pass its `input_style_id` (see list_basic_styles, list_styles and create_style) and omit `input_style`: the image type is taken from the style.
URLs to generated images, their previews in WEBP format as base64 encoded bytes and the credits the call used will be returned in the response.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("recraftv4_1_raster" | "recraftv4_1_vector" | "recraftv4_1_pro_raster" | "recraftv4_1_pro_vector" | "recraftv4_1_flash_raster" | "recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector" | "nano_banana_2" | "gpt_image_2p5_sunburst" | "nano_banana_pro" | "nano_banana_2p1" | "gpt_image_2_medium" | "gpt_image_2_low" | "gpt_image_2_high" | "nano_banana_pro_4k" | "nano_banana_2_with_4k" | "gpt_image_2p5_flare" | "gemini_25_flash_image" | "nano_banana_2_lite" | "bytedance_seedreamv5_pro" | "grok_imagine_image_2" | "gpt_image_1p5_low" | "flux1_kontext_pro" | "flux1_kontext_max" | "flux2_pro" | "gpt_image_1_high" | "gpt_image_1_medium" | "bytedance-seedreamv4" | "qwen_image") | No | Model to use. If omitted, recraftv4_1 is used and picks raster or vector output itself. Recraft models: - recraftv4_1_raster / recraftv4_1_vector: the latest model, use it in most cases. - recraftv4_1_pro_raster / recraftv4_1_pro_vector: the best-quality model, but relatively slow and expensive. - recraftv4_1_flash_raster: the fastest and cheapest v4.1 model, for rapid iteration and high-volume generation when speed matters more than top quality. It has no `_vector` variant and does not support custom styles (input_style_id). - recraftv3_raster / recraftv3_vector: the previous model, supports the most styles (input_style) and custom styles. - recraftv2_raster / recraftv2_vector: the oldest model, it has a bit cheaper generation. When specifying a Recraft model, pass a `_raster` or `_vector` variant: `_raster` produces a raster image (PNG/WEBP), `_vector` produces a true SVG vector file. To generate a vector / SVG / scalable logo or icon, pass a `_vector` variant — this is the reliable way to get an SVG output. External models (availability depends on your subscription and is validated server-side): nano_banana_2, gpt_image_2p5_sunburst, nano_banana_pro, nano_banana_2p1, gpt_image_2_medium, gpt_image_2_low, gpt_image_2_high, nano_banana_pro_4k, nano_banana_2_with_4k, gpt_image_2p5_flare, gemini_25_flash_image, nano_banana_2_lite, bytedance_seedreamv5_pro, grok_imagine_image_2, gpt_image_1p5_low, flux1_kontext_pro, flux1_kontext_max, flux2_pro, gpt_image_1_high, gpt_image_1_medium, bytedance-seedreamv4, qwen_image. External models have no `_vector` variants, cannot generate SVG / vector output, and do not support custom styles (input_style_id) or input_style. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `image_size` | string ("1:1" | "2:1" | "1:2" | "3:2" | "2:3" | "4:3" | "3:4" | "5:4" | "4:5" | "6:10" | "14:10" | "10:14" | "16:9" | "9:16") | No | Output aspect ratio, such as "1:1", "16:9" or "3:4". Pixel dimensions are chosen by the model. Required for variate_image. If omitted, image_edit follows the first input image; generation defaults to 1:1. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon" | "logo_raster") | No | Visual style to apply. Use this parameter only if you want to refine the image generation. Mutually exclusive with input_style_id, you can't specify both of them. If you will provide a style that is not available for the specified model, generation will fail. If omitted, a type compatible with the model is used. Styles use-cases: - realistic_image: for realistic images, photos, portraits, landscapes, etc. Raster is generated. - digital_illustration: for digital illustrations, concept art, fantasy art, etc. Raster is generated. - vector_illustration: for vector illustrations, logos, icons, etc. Vector is generated. - icon: for icons, small graphics (only in recraftv2). Vector is generated. - logo_raster: for graphic design, raster logos, posters, emblems, and badges (only in recraftv3). Raster is generated. |
| `input_style_id` | string | No | ID of a custom style to apply (from list_styles or create_style). Mutually exclusive with input_style, you can't specify both of them. The image type is taken from the style automatically; omit model to use the model the style was created for. |

### Get style

**Slug:** `RECRAFT_MCP_GET_STYLE`

Get details of a specific style by its `style_id`: its name, type, model and privacy.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `style_id` | string | Yes | The unique UUID identifying the style (e.g. "550e8400-e29b-41d4-a716-446655440000"). Use this ID to reference the style in generation requests via the input_style_id parameter, and in get_style or delete_style via style_id. |

### Get user

**Slug:** `RECRAFT_MCP_GET_USER`

Get information about the current user (ID, email, name, and the remaining credits balance on the account).


### Image edit

**Slug:** `RECRAFT_MCP_IMAGE_EDIT`

Edit one or more input images according to a text prompt, producing new image(s).
Use this tool for instruction-driven editing: describe the change you want (for example "add a hat", "make it winter", "replace the text with SALE", or "combine these images") and the model rewrites the image to follow the prompt. It can take several input images at once and can use external models. Choose image_edit when you want the model to follow explicit editing instructions or to use an external model; choose image_to_image instead when you want a strength-controlled stylistic transformation of a single image rather than a specific edit.
Provide the source images as `input_image_urls` — a list of publicly accessible HTTP or HTTPS URLs (PNG, JPEG, WEBP or SVG). If you only have local image files with no public URL, call `request_upload_url` for each, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` values here.
You can specify the image size, model, and number of images to generate.
You don't need to change default parameters if you don't have any specific requirements.
This tool works only with external models; Recraft models are not supported for instruction-driven editing. External models produce raster images only: they cannot generate SVG and do not support custom styles. The default model is nano_banana_2; others include nano_banana_pro, nano_banana_2p1, gpt_image_2_medium, gpt_image_2p5_flare and bytedance_seedreamv5_pro (see the `model` parameter for the full list). Availability depends on your subscription and is validated server-side.
If the image size is not specified, the output size follows the first input image.
URLs to the edited images, their previews in WEBP format as base64 encoded bytes and the credits the call used will be returned in the response.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("nano_banana_2" | "gpt_image_2p5_sunburst" | "nano_banana_pro" | "nano_banana_2p1" | "gpt_image_2_medium" | "gpt_image_2_low" | "gpt_image_2_high" | "nano_banana_pro_4k" | "nano_banana_2_with_4k" | "gpt_image_2p5_flare" | "gemini_25_flash_image" | "nano_banana_2_lite" | "bytedance_seedreamv5_pro" | "grok_imagine_image_2" | "gpt_image_1p5_low" | "flux1_kontext_pro" | "flux1_kontext_max" | "flux2_pro" | "gpt_image_1_high" | "gpt_image_1_medium" | "bytedance-seedreamv4" | "qwen_image") | No | Model to use. Default is nano_banana_2. image_edit works only with external models; Recraft models (recraftv*) are not supported by this tool. Available models (availability depends on your subscription and is validated server-side): nano_banana_2, gpt_image_2p5_sunburst, nano_banana_pro, nano_banana_2p1, gpt_image_2_medium, gpt_image_2_low, gpt_image_2_high, nano_banana_pro_4k, nano_banana_2_with_4k, gpt_image_2p5_flare, gemini_25_flash_image, nano_banana_2_lite, bytedance_seedreamv5_pro, grok_imagine_image_2, gpt_image_1p5_low, flux1_kontext_pro, flux1_kontext_max, flux2_pro, gpt_image_1_high, gpt_image_1_medium, bytedance-seedreamv4, qwen_image. External models have no `_vector` variants, cannot generate SVG / vector output, and do not support custom styles (input_style_id) or input_style. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `image_size` | string ("1:1" | "2:1" | "1:2" | "3:2" | "2:3" | "4:3" | "3:4" | "5:4" | "4:5" | "6:10" | "14:10" | "10:14" | "16:9" | "9:16") | No | Output aspect ratio, such as "1:1", "16:9" or "3:4". Pixel dimensions are chosen by the model. Required for variate_image. If omitted, image_edit follows the first input image; generation defaults to 1:1. |
| `input_image_urls` | array | Yes | A list of publicly accessible HTTP or HTTPS URLs pointing to input images in PNG, JPEG, WEBP or SVG format. Provide from 1 to 10 images. If you only have local image files, use the request_upload_url tool first to obtain such URLs. |

### Image to image

**Slug:** `RECRAFT_MCP_IMAGE_TO_IMAGE`

Transform an existing image based on a text prompt. The strength parameter controls how much the image is transformed (0.0 to 1.0). Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
Use this tool for a strength-controlled stylistic transformation of a single image, where the prompt and style reshape the whole image and `strength` sets how far the result moves from the original. For instruction-driven edits (changing or adding specific elements, editing several images together, or using an external model such as nano_banana_pro or flux1_kontext_pro), use the image_edit tool instead.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns an image_urls array and previews in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("recraftv4_1_raster" | "recraftv4_1_vector" | "recraftv4_1_pro_raster" | "recraftv4_1_pro_vector" | "recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector") | No | Recraft model to use. If omitted, recraftv4_1 is used and picks raster or vector output itself. - recraftv4_1_raster / recraftv4_1_vector: the latest model, use it in most cases. - recraftv4_1_pro_raster / recraftv4_1_pro_vector: the best-quality model, but relatively slow and expensive. - recraftv3_raster / recraftv3_vector: the previous model, supports the most styles (input_style) and custom styles. - recraftv2_raster / recraftv2_vector: the oldest model, it has a bit cheaper generation. When specifying a Recraft model, pass a `_raster` or `_vector` variant: `_raster` produces a raster image (PNG/WEBP), `_vector` produces a true SVG vector file. To generate a vector / SVG / scalable logo or icon, pass a `_vector` variant — this is the reliable way to get an SVG output. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `strength` | number | Yes | Controls how strongly the prompt influences the output relative to the input image (0.0 to 1.0). 0.0 produces an image almost identical to the input; 1.0 produces an image driven entirely by the prompt. Values around 0.3–0.6 give a good balance between preservation and transformation. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon" | "logo_raster") | No | Visual style to apply. Use this parameter only if you want to refine the image generation. Mutually exclusive with input_style_id, you can't specify both of them. If you will provide a style that is not available for the specified model, generation will fail. If omitted, a type compatible with the model is used. Styles use-cases: - realistic_image: for realistic images, photos, portraits, landscapes, etc. Raster is generated. - digital_illustration: for digital illustrations, concept art, fantasy art, etc. Raster is generated. - vector_illustration: for vector illustrations, logos, icons, etc. Vector is generated. - icon: for icons, small graphics (only in recraftv2). Vector is generated. - logo_raster: for graphic design, raster logos, posters, emblems, and badges (only in recraftv3). Raster is generated. |
| `input_style_id` | string | No | ID of a custom style to apply (from list_styles or create_style). Mutually exclusive with input_style, you can't specify both of them. The image type is taken from the style automatically; omit model to use the model the style was created for. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Inpaint image

**Slug:** `RECRAFT_MCP_INPAINT_IMAGE`

Fill in a masked region of an image based on a text prompt. Provide the source image as `input_image_url` and a mask image as `mask_image_url`, both publicly accessible HTTP or HTTPS URLs.
If you only have local image files with no public URLs, call `request_upload_url` for each, PUT the image bytes to each returned upload URL, and pass the resulting `image_url` values here.
Returns an image_urls array and previews in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector") | No | Recraft model to use. If omitted, the server picks a suitable model. Only recraftv3 and recraftv2 support this tool: pass recraftv3_raster, recraftv3_vector, recraftv2_raster or recraftv2_vector. `_raster` produces a raster image, `_vector` produces an SVG vector file. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon" | "logo_raster") | No | Visual style to apply. Use this parameter only if you want to refine the image generation. Mutually exclusive with input_style_id, you can't specify both of them. If you will provide a style that is not available for the specified model, generation will fail. If omitted, a type compatible with the model is used. Styles use-cases: - realistic_image: for realistic images, photos, portraits, landscapes, etc. Raster is generated. - digital_illustration: for digital illustrations, concept art, fantasy art, etc. Raster is generated. - vector_illustration: for vector illustrations, logos, icons, etc. Vector is generated. - icon: for icons, small graphics (only in recraftv2). Vector is generated. - logo_raster: for graphic design, raster logos, posters, emblems, and badges (only in recraftv3). Raster is generated. |
| `input_style_id` | string | No | ID of a Recraft v2 or v3 style only. Omit model to use its compatible model. V4 styles are not supported by this tool. Mutually exclusive with input_style. |
| `mask_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the mask image in PNG, JPEG, WEBP or SVG format. The mask should be a black-and-white image where white areas will be processed. If you only have a local mask file, use the request_upload_url tool first to obtain such a URL. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### List basic styles

**Slug:** `RECRAFT_MCP_LIST_BASIC_STYLES`

Lists the built-in styles configured in this environment; coverage differs by model. The returned model is a compatible generation identifier. Passing input_style_id can select an older model instead of the default v4.1.
List Recraft's library of built-in "basic styles" — a large, curated collection of visual styles for image generation that goes well beyond the default models. Call this to explore the full variety of available styles and pick the one that best matches the user's request.
Returns a list of styles, each with a `style_name`, its `input_style_id`, its type and the model it belongs to. Apply a chosen style by passing its `input_style_id` to the generation tools (generate_image, image_to_image, etc.); omit `model` to use the style's own model.


### List styles

**Slug:** `RECRAFT_MCP_LIST_STYLES`

List all custom styles created by the current user.
Returns a list of style IDs with their names, types (the image type generations with the style produce), models and privacy. Pass a style ID as `input_style_id` to the generation tools.


### Remove background

**Slug:** `RECRAFT_MCP_REMOVE_BACKGROUND`

Remove the background from an image. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns the processed image with background removed as a URL and a preview in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Replace background

**Slug:** `RECRAFT_MCP_REPLACE_BACKGROUND`

Replace the background of an image based on a text prompt. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns an image_urls array and previews in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `model` | string ("recraftv3_raster" | "recraftv3_vector" | "recraftv2_raster" | "recraftv2_vector") | No | Recraft model to use. If omitted, the server picks a suitable model. Only recraftv3 and recraftv2 support this tool: pass recraftv3_raster, recraftv3_vector, recraftv2_raster or recraftv2_vector. `_raster` produces a raster image, `_vector` produces an SVG vector file. |
| `prompt` | string | Yes | Text prompt of the image you want to generate. Its length should be from 1 to 10000 characters. |
| `input_style` | string ("realistic_image" | "digital_illustration" | "vector_illustration" | "icon" | "logo_raster") | No | Visual style to apply. Use this parameter only if you want to refine the image generation. Mutually exclusive with input_style_id, you can't specify both of them. If you will provide a style that is not available for the specified model, generation will fail. If omitted, a type compatible with the model is used. Styles use-cases: - realistic_image: for realistic images, photos, portraits, landscapes, etc. Raster is generated. - digital_illustration: for digital illustrations, concept art, fantasy art, etc. Raster is generated. - vector_illustration: for vector illustrations, logos, icons, etc. Vector is generated. - icon: for icons, small graphics (only in recraftv2). Vector is generated. - logo_raster: for graphic design, raster logos, posters, emblems, and badges (only in recraftv3). Raster is generated. |
| `input_style_id` | string | No | ID of a Recraft v2 or v3 style only. Omit model to use its compatible model. V4 styles are not supported by this tool. Mutually exclusive with input_style. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Request upload url

**Slug:** `RECRAFT_MCP_REQUEST_UPLOAD_URL`

Issue an upload URL for a direct image upload. Use this when the user provides a local image file (or raw image data) that has no public URL of its own. If the user already provided a public HTTPS image URL, pass that URL directly to the image tools instead — do NOT route it through this step.
This tool takes no parameters and returns an `upload_url` plus a ready-to-run `curl` command. PUT the raw image bytes directly to `upload_url` (no base64, no encoding) with a `Content-Type` header matching the image MIME type (image/png, image/jpeg or image/webp), e.g.:
  curl -X PUT -H 'Content-Type: image/png' --data-binary @image.png '<upload_url>'
The PUT response is JSON containing `image_url`. Use that `image_url` as `input_image_url` (or `mask_image_url`) when calling any image tool such as image_to_image, remove_background, inpaint_image, etc. The link is reusable for up to 15 minutes while session authorization remains valid; request a new link after a 401 response.


### Subscription plans

**Slug:** `RECRAFT_MCP_SUBSCRIPTION_PLANS`

List available Recraft subscription plans with their plan IDs, credits granted per refill period, and prices.


### Suggest model

**Slug:** `RECRAFT_MCP_SUGGEST_MODEL`

Suggest a supported image generation or instruction-editing model for a given user request.
Returns JSON with model_suggestion (an exact supported model identifier) and reason. Covers Recraft generation and external instruction-editing models. Chooses a Recraft `_vector` model for SVG output and an image_edit model for instruction editing; honors an explicitly requested supported model.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `suggest_model_request` | string | Yes | Description of the image generation task to choose a model for. Include details like the desired output (photo, illustration, logo, icon, vector), any quality/speed/cost tradeoffs, and constraints (style compatibility, resolution, etc). |

### Variate image

**Slug:** `RECRAFT_MCP_VARIATE_IMAGE`

Generate variations of an existing image. Set the required image_size parameter to an output aspect ratio. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns an image_urls array and previews in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `n` | integer | No | Number of images to generate. Should be from 1 to 6. Default is 1. |
| `image_size` | string ("1:1" | "2:1" | "1:2" | "3:2" | "2:3" | "4:3" | "3:4" | "5:4" | "4:5" | "6:10" | "14:10" | "10:14" | "16:9" | "9:16") | Yes | Output aspect ratio, such as "1:1", "16:9" or "3:4". Pixel dimensions are chosen by the model. Required for variate_image. If omitted, image_edit follows the first input image; generation defaults to 1:1. |
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |

### Vectorize image

**Slug:** `RECRAFT_MCP_VECTORIZE_IMAGE`

Convert a raster image to a vector format. Provide a publicly accessible HTTP or HTTPS URL as `input_image_url`.
If you only have a local image file with no public URL, call `request_upload_url` first, PUT the image bytes to the returned upload URL, and pass the resulting `image_url` here.
Returns the processed image as a URL and a preview in WEBP format as a base64 encoded bytes.


#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `input_image_url` | string | Yes | A publicly accessible HTTP or HTTPS URL pointing to the input image in PNG, JPEG, WEBP or SVG format. If you only have a local image file, use the request_upload_url tool first to obtain such a URL. |
