recraft-mcp-server
MCP server for AI image generation, transformation, and style management via the Recraft API. 16 tools for text-to-image, inpainting, vectorization, upscaling, and more.
Install / Use
claude mcp add BartWaardenburg -- npx -y github:BartWaardenburg/recraft-mcp-serverIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Skill content
View source on GitHubNote: This is an unofficial, community-maintained project and is not affiliated with or endorsed by Recraft.
16 tools for image generation, processing, and style management — all accessible through the Model Context Protocol.
- Generate — Text-to-image, image-to-image, inpainting, background replacement & generation
- Process — Background removal, region erasing, vectorization (SVG), crisp & creative upscaling
- Styles — Create custom styles from reference images, list/get/delete styles
- Account — Check remaining credits and user info (included in
stylestoolset) - Configurable — Filter toolsets, adjust cache TTL, control retries
Prerequisites
- Node.js 20+ (or Docker)
- A Recraft API token
Installation
Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"recraft": {
"command": "npx",
"args": ["-y", "recraft-mcp"],
"env": {
"RECRAFT_API_TOKEN": "your-api-token"
}
}
}
}
VS Code
Add to .vscode/mcp.json in your workspace (or use the one-click install buttons above):
{
"servers": {
"recraft": {
"command": "npx",
"args": ["-y", "recraft-mcp"],
"env": {
"RECRAFT_API_TOKEN": "your-api-token"
}
}
}
}
Claude Code
claude mcp add recraft-mcp -e RECRAFT_API_TOKEN=your-api-token -- npx -y recraft-mcp
Cursor
Add to Cursor's MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"recraft": {
"command": "npx",
"args": ["-y", "recraft-mcp"],
"env": {
"RECRAFT_API_TOKEN": "your-api-token"
}
}
}
}
Windsurf
Add to Windsurf's MCP config (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"recraft": {
"command": "npx",
"args": ["-y", "recraft-mcp"],
"env": {
"RECRAFT_API_TOKEN": "your-api-token"
}
}
}
}
Docker
docker run --rm -i -e RECRAFT_API_TOKEN="your-api-token" ghcr.io/bartwaardenburg/recraft-mcp-server:latest
Use Docker in any MCP client by replacing the command:
{
"mcpServers": {
"recraft": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "RECRAFT_API_TOKEN=your-api-token",
"ghcr.io/bartwaardenburg/recraft-mcp-server:latest"
]
}
}
}
Smithery
npx -y @smithery/cli install recraft-mcp --client claude
Tools
Generation
| Tool | Description |
|------|-------------|
| generate_image | Generate images from a text prompt with style, size, and artistic controls |
| image_to_image | Transform an existing image based on a text prompt with adjustable strength |
| inpaint_image | Fill in masked regions of an image based on a text prompt |
| replace_background | Replace the background while preserving the foreground subject |
| generate_background | Generate a background for masked areas of an image |
Processing
| Tool | Description |
|------|-------------|
| remove_background | Remove the background, leaving transparency |
| erase_region | Seamlessly erase a masked region from an image |
| vectorize_image | Convert raster images to scalable SVG vectors |
| crisp_upscale | Upscale with sharp detail preservation |
| creative_upscale | Upscale with creative enhancement and added detail |
Styles & Account
| Tool | Description |
|------|-------------|
| create_style | Create a custom style from 1-5 reference images |
| get_style | Get details of a custom style by ID |
| list_styles | List all custom styles |
| list_basic_styles | List available curated styles |
| delete_style | Delete a custom style |
| get_current_user | Get user info and remaining credits |
Tool Annotations
All tools include MCP tool annotations to help clients understand their behavior:
| Tool | Read-only | Open-world |
|------|:---------:|:----------:|
| generate_image | | Yes |
| image_to_image | | Yes |
| inpaint_image | | Yes |
| replace_background | | Yes |
| generate_background | | Yes |
| remove_background | | Yes |
| erase_region | | Yes |
| vectorize_image | | Yes |
| crisp_upscale | | Yes |
| creative_upscale | | Yes |
| create_style | | Yes |
| get_style | Yes | Yes |
| list_styles | Yes | Yes |
| list_basic_styles | Yes | Yes |
| delete_style | | Yes |
| get_current_user | Yes | Yes |
generate_image
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| prompt | string | Yes | Text description (max 1000 chars V2/V3, 10000 V4) |
| model | enum | | recraftv3 (default), recraftv4, recraftv4_vector, recraftv2, recraft20b, refm1 |
| style | enum | | realistic_image (default), digital_illustration, vector_illustration, icon, logo_raster |
| substyle | string | | Substyle refinement (e.g. b_and_w, pixel_art, watercolor) |
| style_id | uuid | | Custom style ID (mutually exclusive with style/substyle) |
| size | enum | | Image dimensions, e.g. 1024x1024 (default), 1365x1024, 1536x1024, etc. |
| n | integer | | Number of images to generate (1-6, default 1) |
| negative_prompt | string | | What to avoid in the image |
| artistic_level | integer | | 0 (simple) to 5 (dynamic) |
| no_text | boolean | | Prevent text in the image |
| image_format | enum | | webp or png |
| random_seed | integer | | Seed for reproducible results |
image_to_image
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Source image (URL or base64). Max 5MB, <16MP, max 4096px per side |
| prompt | string | Yes | Description of desired changes |
| strength | number | Yes | Change magnitude: 0.0 (minimal) to 1.0 (maximum) |
| model | enum | | Model to use |
| style | enum | | Style category (not supported for V4) |
| substyle | string | | Substyle refinement |
| style_id | uuid | | Custom style ID |
| n | integer | | Number of outputs (1-6) |
| negative_prompt | string | | What to avoid |
| image_format | enum | | webp or png |
| random_seed | integer | | Seed for reproducibility |
inpaint_image
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Source image (URL or base64) |
| mask | string | Yes | Grayscale PNG mask (white = inpaint, black = preserve) |
| prompt | string | Yes | What to generate in the masked area |
| model, style, substyle, style_id, n, negative_prompt, image_format, random_seed | | | Same as generate_image |
replace_background
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Source image (URL or base64) |
| prompt | string | Yes | Description of the new background |
| model, style, substyle, style_id, n, negative_prompt, image_format, random_seed | | | Same as generate_image |
generate_background
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Source image (URL or base64) |
| mask | string | Yes | Mask defining the background area |
| prompt | string | Yes | Description of the background to generate |
| model, style, substyle, style_id, n, negative_prompt, image_format, random_seed | | | Same as generate_image |
remove_background
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Image (URL or base64) |
| image_format | enum | | webp or png |
erase_region
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Source image (URL or base64) |
| mask | string | Yes | Grayscale mask (white = erase, black = preserve) |
| image_format | enum | | webp or png |
vectorize_image
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Image to vectorize (URL or base64) |
crisp_upscale
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Image to upscale (URL or base64). Max 5MB, <4MP |
| image_format | enum | | webp or png |
creative_upscale
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| image | string | Yes | Image to upscale (URL or base64). Max 5MB, <16MP |
| image_format | enum | | webp or png |
create_style
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| images | string[] | Yes | 1-5 reference images (URLs or base64) |
| style | enum | Yes | Base style category |
get_style
| Parameter | Type | Required | Description |
|-----------|------|:--------:|-------------|
| style_id
Truncated for display — read the full file on GitHub.
Related Skills
caveman
107.1k🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
83.5kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
