Skip to main content
MCP

MCP tool reference

All 75 MCP tools in one list. Each entry shows what the tool does and its inputs. Many also show what the call returns.

Authentication

OAuth (recommended for AI clients)

AI clients run Dynamic Client Registration on first connect, then walk the user through an OAuth consent screen. The /mcp/connect page handles this automatically. Your client receives a 30-day access token.

Endpoint

All tool calls go to a single JSON-RPC 2.0 endpoint over HTTPS POST.

POST https://mcp.designerbox.ai/api

Tools

list_designsmcp:read

List designs for the current team, with optional folder filter and pagination.

Arguments

limitnumber · optional · default 20
Maximum results to return (1-100).
folderIdstring · optional
Optional folder ID. Returns only the items in that folder.

Returns

An object with designs: [{id, title, folderId, brandProfileId, createdAt, updatedAt}]. Up to limit results.

Example

{"jsonrpc":"2.0","method":"tools/call","id":1,
 "params":{"name":"list_designs","arguments":{"limit":10}}}

get_designmcp:read

Fetch full metadata for a single design including title, folder, brand profile references and creation date.

Arguments

designIdstring · required
DesignerBox design ID from a list call.

Returns

An object with full design metadata: id, title, folderId, brandProfileId, createdAt, updatedAt and any associated provider data.

Example

{"jsonrpc":"2.0","method":"tools/call","id":2,
 "params":{"name":"get_design","arguments":{"designId":"<id>"}}}

search_designsmcp:read

Full-text search across design titles and descriptions for the active team. Filters: limit (1-100, default 20).

Arguments

querystring · required
Substring to search for (3-200 characters).
limitnumber · optional · default 20
Maximum results to return (1-100).

Returns

An object with designs: [{id, title, folderId, snippet, updatedAt}]. Snippet contains matching context.

Example

{"jsonrpc":"2.0","method":"tools/call","id":3,
 "params":{"name":"search_designs","arguments":{"query":"logo","limit":10}}}

list_brand_profilesmcp:read

Return all brand profiles for the current team with voice, themes, niche and industry fields.

Arguments

No arguments.

Returns

An object with profiles: [{id, name, brandVoice, mainThemes, primaryNiche, industry, isActive}].

Example

{"jsonrpc":"2.0","method":"tools/call","id":4,
 "params":{"name":"list_brand_profiles","arguments":{}}}

list_foldersmcp:read

List folders in the active team workspace. Useful for targeting list_designs to a specific folder.

Arguments

No arguments.

Returns

An object with folders: [{id, name, designCount, createdAt}].

Example

{"jsonrpc":"2.0","method":"tools/call","id":5,
 "params":{"name":"list_folders","arguments":{}}}

list_photo_packsmcp:read

Browse available photo packs. Accepts an optional language parameter to filter category labels.

Arguments

languagestring · optional
BCP-47 language code to filter photo pack category labels (e.g. en, de, es).

Returns

An object with packs: [{id, name, category, imageCount, language}].

Example

{"jsonrpc":"2.0","method":"tools/call","id":6,
 "params":{"name":"list_photo_packs","arguments":{}}}

list_teamsmcp:read

Return the teams the authenticated user owns or belongs to, with the currently active team flagged.

Arguments

No arguments.

Returns

An object with currentTeamId and teams: [{teamId, teamName, isCurrent}].

Example

{"jsonrpc":"2.0","method":"tools/call","id":7,
 "params":{"name":"list_teams","arguments":{}}}

get_plan_limitsmcp:read

Read the current subscription tier and per-tier quotas (storage and AI credits). The aiCredits bucket nests monthly subscription credits, purchasedBalance from one-off credit packs, total ceiling, and remaining available. Useful before mutating tools to predict whether the call will succeed.

Arguments

No arguments.

Returns

An object with tier, isPaid, isTrial, upgradeUrl, limits.storage ({limit, current, exceeded}), limits.aiCredits ({monthly:{limit,current,exceeded}, purchasedBalance, total, available}), and creditsAvailable ({monthly, purchasedBalance, total}). For ULTRA Unlimited, limits.aiCredits.monthly.limit and limits.aiCredits.total are both -1, limits.aiCredits.available is null, and creditsAvailable.monthly and creditsAvailable.total are both null. purchasedBalance is always a number (zero when no packs).

Example

{"jsonrpc":"2.0","method":"tools/call","id":8,
 "params":{"name":"get_plan_limits","arguments":{}}}

get_planmcp:read

Read plan name, billing cycle (monthly or yearly), Stripe subscription status, currency, renewal date, trial end, and seat count. Pairs with get_plan_limits which returns quota usage. Available on every plan with no AI credit cost.

Arguments

No arguments.

Returns

An object with tier, isPaid, isTrial, billingCycle (monthly or yearly or null) and status (Stripe subscription status). It also has currency, renewalDate (ISO 8601), trialEnd (ISO 8601 or null), quantity (seat count or null), cancelAtPeriodEnd and upgradeUrl.

Example

{"jsonrpc":"2.0","method":"tools/call","id":43,
 "params":{"name":"get_plan","arguments":{}}}

search_toolsmcp:read

Search the MCP tool catalog by free-text query, category, or intent. Returns categories, requiresScope, one-line descriptions, and matched use-case tags. Free for all plans (discovery surface).

Arguments

All optional. Call with no arguments to list every available tool.

querystring · optional
Free-text search across tool names, descriptions, and use-case tags.
categorystring · optional
Filter to one category: designs, brand, teams, discovery, other.

Returns

An object with totalTools, matchCount, categories: [string[]], and tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}].

Example

{"jsonrpc":"2.0","method":"tools/call","id":9,
 "params":{"name":"search_tools",
           "arguments":{"query":"brand profile"}}}

create_avatarmcp:writePaid plan

Generate an AI avatar image from a text prompt. Returns a URL to the generated image and the task ID. Requires AI credits and a paid plan.

Arguments

promptstring · required
Text description of the avatar to generate (10-500 characters).
stylestring · optional
Optional style hint passed to the image model (e.g. "photorealistic", "cartoon").
clientRequestIdstring · optional
Optional idempotency key. Same key within 5 minutes returns the cached result.

Returns

An object with taskId, status, imageUrl (when ready), and creditsUsed.

Example

{"jsonrpc":"2.0","method":"tools/call","id":10,
 "params":{"name":"create_avatar",
           "arguments":{"prompt":"professional headshot, warm lighting"}}}

set_current_teammcp:write

Switch the active team for this Bearer token. The user must be a member. Persisted on the OAuth token; in-session mutation makes it effective immediately for subsequent tools in the same conversation.

Arguments

teamIdstring · required
Target teamId from list_teams. Membership is re-validated server-side.

Returns

An object with teamId, teamName, persisted (true if OAuth, false if API key) and an optional note.

Example

{"jsonrpc":"2.0","method":"tools/call","id":11,
 "params":{"name":"set_current_team",
           "arguments":{"teamId":"team_xxxxx"}}}

update_brand_profilemcp:write

Patch the active brand profile. Allowed fields: brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries. Anything else is silently dropped.

Arguments

brandVoicearray<string> · optional
Array of brand-voice descriptors (e.g. ["bold", "minimal"]).

Other patchable fields: mainThemes, contentGoals, contentTypes, primaryNiche, subNiches, industry, industries.

Returns

An object with profileId, name, updated: [field names that were patched], and the current values of brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, industry after the patch.

Example

{"jsonrpc":"2.0","method":"tools/call","id":12,
 "params":{"name":"update_brand_profile",
           "arguments":{"brandVoice":["bold","minimal"]}}}

Avatars

list_avatarsmcp:read

List avatar generation tasks for the current user (user-scoped, not team-scoped). Optional status filter and limit (default 50, max 100).

Arguments

statusstring · optional
Optional avatar status filter: pending, generating, completed, failed, cancelled.
limitnumber · optional · default 50
Maximum results to return (1-100).

Example

{"jsonrpc":"2.0","method":"tools/call","id":13,
 "params":{"name":"list_avatars","arguments":{"status":"completed"}}}

get_avatarmcp:read

Retrieve full detail for a single avatar task by taskUUID. Returns task state including generated images when complete. Cross-team access is rejected when teamId is resolved.

Arguments

taskUUIDstring · required
The avatar task UUID returned by create_avatar.

Example

{"jsonrpc":"2.0","method":"tools/call","id":14,
 "params":{"name":"get_avatar","arguments":{"taskUUID":"<uuid>"}}}

get_avatar_statusmcp:read

Poll an avatar task progress. Returns a slim status snapshot (status, progress, message). Use get_avatar to retrieve full detail including generated images once complete.

Arguments

taskUUIDstring · required
The avatar task UUID returned by create_avatar.

Example

{"jsonrpc":"2.0","method":"tools/call","id":15,
 "params":{"name":"get_avatar_status","arguments":{"taskUUID":"<uuid>"}}}

Assets

list_assetsmcp:read

List assets (uploaded images, videos and files) for the active team. Optional filters by folder or MIME-type prefix. Use get_asset for full detail.

Arguments

folderIdstring · optional
Optional folder ID. Returns only the items in that folder.
pagenumber · optional · default 1
Page number (1-indexed). Default 1.
limitnumber · optional · default 30
Maximum results to return (1-100).
typestring · optional
Optional MIME-type prefix filter (for example "image" or "video").

Example

{"jsonrpc":"2.0","method":"tools/call","id":18,
 "params":{"name":"list_assets","arguments":{"type":"image","limit":20}}}

get_assetmcp:read

Retrieve full detail for a single asset by ID. Cross-team access is rejected by the underlying service.

Arguments

idstring · required
Asset ID (Mongo _id) returned by list_assets.

Example

{"jsonrpc":"2.0","method":"tools/call","id":19,
 "params":{"name":"get_asset","arguments":{"id":"<assetId>"}}}

list_brand_assetsmcp:read

List brand assets (logos, fonts, palette swatches and similar) for the active team. Optional filters by brand profile, file type, category, tags or free-text search. Distinct from brand profiles, which describe voice and themes.

Arguments

brandProfileIdstring · optional
Optional brand profile ID to restrict assets to one profile.
fileTypestring · optional
Optional file-type filter (for example "png", "svg", "ttf").
categorystring · optional
Optional category label (for example "logo", "palette", "font").
tagsarray<string> · optional
Optional list of tag strings to narrow brand assets.
searchstring · optional
Optional free-text query across brand asset names.

Example

{"jsonrpc":"2.0","method":"tools/call","id":20,
 "params":{"name":"list_brand_assets","arguments":{"category":"logo"}}}

AI generation

generate_imagemcp:writePaid plan

Generate one or more AI images synchronously (about 30 seconds). The credit cost depends on the model. FREE tier is blocked. Pass clientRequestId for idempotent retries within 5 minutes. Returns the generated image URLs immediately.

Arguments

promptstring · required
Text description of the image to generate (1-2000 characters).
modelstring · optional
Optional image model id. Defaults to the platform fallback chain.
aspectRatiostring · optional
Image aspect ratio: 1:1, 3:4, 4:3, 9:16, or 16:9.
numberResultsnumber · optional · default 1
How many images to generate (1-4). Default 1.
negativePromptstring · optional
Optional words or phrases the model should avoid in the generated image.
clientRequestIdstring · optional
Optional idempotency key. Same key within 5 minutes returns the cached result.

Example

{"jsonrpc":"2.0","method":"tools/call","id":21,
 "params":{"name":"generate_image",
           "arguments":{"prompt":"sunset over the alps","aspectRatio":"16:9"}}}

generate_videomcp:writePaid plan

Submit an AI video generation task. Returns a taskUUID immediately; the task is processed asynchronously (BullMQ-backed). Use get_video_status to poll for completion. Credit cost is calculated from model and duration. FREE tier is blocked.

Arguments

promptstring · required
Text description of the video to generate (1-2000 characters).
modelstring · required
Video model id. See /api/v1/ai/video-models for available ids.
typestring · optional · default text-to-video
Generation mode: text-to-video (default), image-to-video, or audio-to-video.
durationnumber · optional
Requested video length (1-60). Defaults to the model default.
resolutionstring · optional
Optional resolution string (for example 720p, 1080p). Model-dependent.
aspectRatiostring · optional
Optional aspect ratio (for example 16:9, 9:16). Model-dependent.
inputImagestring · optional
Required for image-to-video mode: a public URL to the source image.
negativePromptstring · optional
Optional words or phrases the model should avoid in the generated video.
clientRequestIdstring · optional
Optional idempotency key. Same key within 5 minutes returns the cached result.

Example

{"jsonrpc":"2.0","method":"tools/call","id":22,
 "params":{"name":"generate_video",
           "arguments":{"prompt":"a cat surfing","model":"<videoModelId>"}}}

get_video_statusmcp:read

Poll a video generation task progress. Returns full task state including the final video URL when complete. Backed by a BullMQ queue (real async).

Arguments

taskUUIDstring · required
The video task UUID returned by generate_video.

Example

{"jsonrpc":"2.0","method":"tools/call","id":23,
 "params":{"name":"get_video_status","arguments":{"taskUUID":"<uuid>"}}}

Stock photos

search_stock_photosmcp:read

Search stock photos across Unsplash, Pexels and Pixabay simultaneously. Returns results from each provider plus any per-provider errors. Search-only; no list or browse.

Arguments

querystring · required
Substring to search for (3-200 characters).
pagenumber · optional · default 1
Page number (1-indexed). Default 1.
perPagenumber · optional · default 20
Results per page (1-50). Default 20.

Example

{"jsonrpc":"2.0","method":"tools/call","id":24,
 "params":{"name":"search_stock_photos","arguments":{"query":"mountains"}}}

Community workflows and pipelines

list_community_workflowsmcp:read

List published community workflows. Filter by category, sort by popular, recent or views, and scope to mine, team or all. Use get_community_workflow for the full graph.

Arguments

pagenumber · optional · default 1
Page number (1-indexed). Default 1.
limitnumber · optional · default 20
Maximum results to return (1-100).
categorystring · optional · default all
Community workflow category filter. Use "all" for no category restriction.
sortstring · optional · default popular
Sort order: popular, recent, or views. Default popular.
searchstring · optional
Optional free-text query to narrow community workflows.
filterstring · optional · default all
Scope filter: all (everyone), mine (your published workflows), or team. Default all.

Example

{"jsonrpc":"2.0","method":"tools/call","id":25,
 "params":{"name":"list_community_workflows","arguments":{"sort":"recent"}}}

get_community_workflowmcp:read

Retrieve full detail for a community workflow including its node graph and edges. Use list_community_workflows for browsing.

Arguments

idstring · required
Community workflow ID (Mongo _id) returned by list_community_workflows.

Example

{"jsonrpc":"2.0","method":"tools/call","id":26,
 "params":{"name":"get_community_workflow","arguments":{"id":"<workflowId>"}}}

list_pipelinesmcp:read

List pipelines (workflow canvases) for the active team. Returns slim shape with node counts; use get_pipeline for the full graph.

Arguments

pagenumber · optional · default 1
Page number (1-indexed). Default 1.
limitnumber · optional · default 20
Maximum results to return (1-100).
sortstring · optional · default updatedAt
Pipeline sort order: updatedAt, createdAt, or name. Default updatedAt.

Example

{"jsonrpc":"2.0","method":"tools/call","id":27,
 "params":{"name":"list_pipelines","arguments":{}}}

get_pipelinemcp:read

Retrieve a pipeline (workflow canvas) by ID, scoped to the active team. Returns the full node and edge graph.

Arguments

idstring · required
Pipeline ID (Mongo _id) returned by list_pipelines.

Example

{"jsonrpc":"2.0","method":"tools/call","id":28,
 "params":{"name":"get_pipeline","arguments":{"id":"<pipelineId>"}}}

list_whiteboardsmcp:read

List MySpace whiteboards for the current user, scoped to the active team. Whiteboard content is omitted from the list view; use the dedicated read endpoint for content.

Arguments

No arguments.

Example

{"jsonrpc":"2.0","method":"tools/call","id":29,
 "params":{"name":"list_whiteboards","arguments":{}}}

Conversations and whiteboards

list_conversationsmcp:read

List the user's chats inside the DesignerBox app for the active team. Optional status filter (active or archived) and tag filter. Use get_conversation for the full message history.

Arguments

statusstring · optional · default active
Conversation status filter: active (default) or archived.
pagenumber · optional · default 1
Page number (1-indexed). Default 1.
limitnumber · optional · default 20
Maximum results to return (1-100).
tagsarray<string> · optional
Optional list of tag strings. Returns conversations matching any of the supplied tags.

Example

{"jsonrpc":"2.0","method":"tools/call","id":30,
 "params":{"name":"list_conversations","arguments":{"status":"archived"}}}

get_conversationmcp:read

Retrieve a single chat from the DesignerBox app, including its full message history. The service rejects a request for another user's or another team's chat.

Arguments

idstring · required
Conversation ID returned by list_conversations.

Example

{"jsonrpc":"2.0","method":"tools/call","id":31,
 "params":{"name":"get_conversation","arguments":{"id":"<conversationId>"}}}

Galleries and skills

generate_designmcp:writePaid plan

Generate a gallery design by applying a skill to a source image (image-to-image). Synchronous, about 30 to 45 seconds. The call charges credits. FREE tier is blocked. Use list_skills to discover valid skillId values. Pass clientRequestId for idempotent retries within 5 minutes.

Arguments

sourceImageUrlstring · required
Public URL of the source image to transform.
skillIdstring · required
Skill ID to apply. Call list_skills first to discover available IDs.
clientRequestIdstring · optional
Optional idempotency key. Same key within 5 minutes returns the cached result.

Example

{"jsonrpc":"2.0","method":"tools/call","id":32,
 "params":{"name":"generate_design",
           "arguments":{"sourceImageUrl":"https://example.com/photo.jpg","skillId":"<skill>"}}}

list_galleriesmcp:read

List AI gallery assets (designs generated via generate_design) for the active team and user. Supports pagination and an optional category filter. Returns a slim shape: assetId, assetUrl, slug, displayName, galleryCategory, createdAt.

Arguments

limitnumber · optional · default 20
Maximum results to return (1-100).
pagenumber · optional · default 1
Page number (1-indexed). Default 1.
categorystring · optional
Optional gallery-category filter (for example "portrait", "landscape").

Example

{"jsonrpc":"2.0","method":"tools/call","id":33,
 "params":{"name":"list_galleries","arguments":{"limit":10}}}

list_skillsmcp:read

List active skills available for generate_design. Returns skillId, name, type (image or video), group and category. Use this to discover valid skillId values before calling generate_design.

Arguments

typestring · optional
Optional filter: image or video skills.

Example

{"jsonrpc":"2.0","method":"tools/call","id":34,
 "params":{"name":"list_skills","arguments":{"type":"image"}}}

Cinematic generation

generate_cinema_studiomcp:writePaid plan

Generate cinematic AI images using a camera body, lens, focal length, aperture and aspect ratio combination. Synchronous, about 30 seconds. The credit cost depends on the model. FREE tier is blocked. Supply referenceImageUrl to switch to reference-image (style-transfer) mode. Pass clientRequestId for idempotent retries within 5 minutes.

Arguments

scenePromptstring · required
Scene description for the cinematic shot (1-2000 characters).
cameraBodystring · optional · default arri-alexa-65
Camera body ID controlling the rendering signature (for example "arri-alexa-65", "red-v-raptor", "sony-venice-2").
lensstring · optional · default panavision-primo
Lens descriptor ID (for example "classic-anamorphic", "master-prime", "panavision-primo").
focalLengthstring · optional · default fl-50
Focal length ID from fl-14 to fl-200 (covers 14mm through 200mm).
aperturestring · optional · default f-2.8
Aperture ID from f-1.2 to f-11.
aspectRatiostring · optional · default 16:9
Image aspect ratio: 16:9, 1:1, 9:16, or 4:3. Default 16:9.
imageCountnumber · optional · default 2
Number of cinematic frames to generate (1-4). Default 2.
referenceImageUrlstring · optional
Optional reference image URL. When supplied, switches to reference-image (style-transfer) mode.
clientRequestIdstring · optional
Optional idempotency key. Same key within 5 minutes returns the cached result.

Example

{"jsonrpc":"2.0","method":"tools/call","id":35,
 "params":{"name":"generate_cinema_studio",
           "arguments":{"scenePrompt":"a wide shot of a foggy harbour at dawn","aspectRatio":"16:9","imageCount":2}}}

Async task management

cancel_avatar_taskmcp:writeDestructive

Cancel a pending or in-flight avatar generation task. The service-side refund path returns previously-charged credits. Terminal-state tasks (completed or failed) cannot be cancelled; the call surfaces a structured error.

Arguments

taskUUIDstring · required
The avatar task UUID returned by create_avatar.

Example

{"jsonrpc":"2.0","method":"tools/call","id":36,
 "params":{"name":"cancel_avatar_task","arguments":{"taskUUID":"<uuid>"}}}

cancel_video_taskmcp:writeDestructive

Cancel a pending or in-flight video generation task. The service-side refund path returns previously-charged credits. Terminal-state tasks (completed or failed) cannot be cancelled; the call surfaces a structured error.

Arguments

taskUUIDstring · required
The video task UUID returned by generate_video.

Example

{"jsonrpc":"2.0","method":"tools/call","id":37,
 "params":{"name":"cancel_video_task","arguments":{"taskUUID":"<uuid>"}}}

list_video_tasksmcp:read

List video generation tasks for the current user (user-scoped, parity with list_avatars). Optional status filter (pending, processing, completed, failed, cancelled) and limit (default 20, max 100). Use get_video_status for full polling detail.

Arguments

statusstring · optional
Optional status filter: pending, processing, completed, failed, cancelled.
limitnumber · optional · default 20
Maximum results to return (1-100).

Example

{"jsonrpc":"2.0","method":"tools/call","id":38,
 "params":{"name":"list_video_tasks","arguments":{"status":"completed"}}}

Single-fetch detail

get_brand_profilemcp:read

Retrieve full detail for a single brand profile by ID. Cross-team access is rejected with a generic not-found (no existence leak). Use list_brand_profiles to enumerate IDs.

Arguments

brandProfileIdstring · required
Brand profile ID (uuid) returned by list_brand_profiles.

Example

{"jsonrpc":"2.0","method":"tools/call","id":39,
 "params":{"name":"get_brand_profile","arguments":{"brandProfileId":"<uuid>"}}}

get_brand_assetmcp:read

Retrieve full detail for a single brand asset by ID. Cross-team access is rejected with a generic not-found (no existence leak). Use list_brand_assets to enumerate IDs.

Arguments

brandAssetIdstring · required
Brand asset ID (uuid) returned by list_brand_assets.

Example

{"jsonrpc":"2.0","method":"tools/call","id":40,
 "params":{"name":"get_brand_asset","arguments":{"brandAssetId":"<uuid>"}}}

get_photo_packmcp:read

Retrieve a single photo-pack category including its images. Catalog-shaped (not team-scoped). Optional language code; falls back to English when the requested locale is missing.

Arguments

categoryIdstring · required
Photo-pack category ID (for example "3d-rendered-object").
languagestring · optional · default en
BCP-47 language code to filter photo pack category labels (e.g. en, de, es).

Example

{"jsonrpc":"2.0","method":"tools/call","id":41,
 "params":{"name":"get_photo_pack","arguments":{"categoryId":"3d-rendered-object"}}}

get_whiteboardmcp:read

Retrieve a single whiteboard by ID including its full content blob. Whiteboards are user-scoped (creator-only); cross-user access is rejected with a generic not-found.

Arguments

whiteboardIdstring · required
Whiteboard ID (uuid) returned by list_whiteboards.

Example

{"jsonrpc":"2.0","method":"tools/call","id":42,
 "params":{"name":"get_whiteboard","arguments":{"whiteboardId":"<uuid>"}}}

Your workspace

delete_designmcp:writeDestructive

Delete a design. Your client asks you first.

Arguments

idstring

delete_assetmcp:writeDestructive

Delete a picture or a video from Assets.

Arguments

idstring

Pictures

edit_imagemcp:write

Change one part of a picture and hold the rest.

Arguments

referenceImagesarray · required
promptstring
editModestring
default, inpaint_removal, inpaint_insertion, outpaint, style, bgswap, product_image
modelstring
numberResultsnumber
1 … 4
keepHairstyleboolean
clientRequestIdstring

Returns

The answer includes creditsCharged, the credits the edit charged.

apply_image_templatemcp:write

Run a template by name, with your photo.

Arguments

templateIdstring
slugstring
referenceImagesarray
numberResultsnumber
1 … 10
aspectRatiostring
1:1, 4:5, 3:4, 2:3, 4:3, 3:2, 5:4, 9:16, 16:9, 21:9

Returns

The answer includes creditsCharged, the credits the run charged. The template's prompt is never returned.

remove_backgroundmcp:write

A transparent PNG of the product.

Arguments

imageUrlstring

Returns

The URL of a PNG with a transparent background.

photo_anglesmcp:write

A new camera angle of the same product.

Arguments

rotationnumber · required
0 … 360
tiltnumber · required
-90 … 90
imageUrlstring
zoomnumber
0 … 10

spotlightmcp:write

Relight a photo: direction, type, brightness, colour.

Arguments

azimuthnumber · required
0 … 360
elevationnumber · required
-90 … 90
lightTypestring · required
soft, hard, rim, key
brightnessnumber · required
0 … 100
imageUrlstring
lightColorstring

flat_laymcp:write

One flat lay from several product photos.

Arguments

imageUrlsarray<string> · required
backgroundstring · required
marble, wood, concrete, fabric, pink, neutral
stylestring · required
minimal, luxe, bohemian, geometric, organic
itemCountnumber · required
1 … 10
positionPromptstring

product_admcp:write

An ad picture from a product photo.

Arguments

adStylestring · required
minimal, bold, elegant, modern, vintage
backgroundstring · required
white, gradient, studio, lifestyle, abstract
lightingstring · required
soft, dramatic, natural, studio
imageUrlstring
productNamestring
productDescriptionstring
brightnessnumber
0 … 100

virtual_try_onmcp:write

A garment worn by the person in your photo.

Arguments

personImageUrlstring
garmentImageUrlstring
maskImageUrlstring
modelstring
numberResultsnumber
1 … 4

skin_retouchmcp:write

Clean skin, with the pose and background kept.

Arguments

imageUrlstring
intensitystring
light, medium, heavy
presetstring
enhance
skinSmoothingboolean
blemishRemovalboolean
imperfectionRemovalboolean
complexionEveningboolean
wrinkleReductionboolean
eyeBrighteningboolean
teethWhiteningboolean
birthMarkRemovalboolean
addSkinTextureboolean
addFrecklesboolean

Video

fashion_videomcp:write

A fashion clip that keeps the outfit.

Arguments

motionTypestring · required
runway, spin, fabric-flow, zoom-in, parallax, slow-pan, time-freeze
imageUrlstring
motionSpeedstring
slow, normal, fast
durationnumber
1 … 60
aspectRatiostring
modelstring
descriptionstring
addMusicboolean

Returns

A taskUUID. The video runs in the background. Check it with get_video_status.

styled_scenemcp:write

A scene by city, season and time of day.

Arguments

imageUrlstring
citystring
customLocationstring
seasonstring
spring, summer, autumn, winter
timeOfDaystring
golden-hour, blue-hour, midday, night
modelstring

create_video_projectmcp:write

A timeline: clips, titles, sound and a look.

Arguments

aspectRatiostring · required
16:9, 9:16, 1:1, 4:5
clipsarray · required
1 … 20
namestring
audioClipsarray
textOverlaysarray
≤ 120
elementsarray
≤ 40
tintsarray
≤ 20
lutstring
none, cinematic, teal-orange, warm-film, cool, vintage, bw, vivid, dramatic, noir, california, clarendon, golden, fade, sepia, moody, blush, cyberpunk, bleach, crossprocess, mocha, frost, tungsten, pastel, retro
gradestring
none, warm, cool, bw, vivid, muted
blurnumber
0 … 20
vignetteboolean
fadeInnumber
0 … 5
fadeOutnumber
0 … 5
speednumber
0.25 … 4
fpsnumber
backgroundstring
#RRGGBB
outputobject

Returns

The id of the new video project. The call does not render the video and charges no credits.

render_video_projectmcp:write

Turn the timeline into one MP4 file.

Arguments

projectIdstring

Returns

The call answers immediately. The render takes about one to five minutes. Check it with get_video_render_status.

get_video_render_statusmcp:read

The MP4 when the timeline is finished.

Arguments

projectIdstring

Returns

The URL of the finished MP4 when the render is done. The error when the render failed.

delete_video_projectmcp:writeDestructive

Delete a timeline you no longer need.

Arguments

projectIdstring

Workflows and apps

run_pipelinemcp:write

Run a workflow and read every step's result.

Arguments

pipelineIdstring
nodesarray
edgesarray
seedOutputsobject

Returns

The results of every step: pictures, videos or text. The call waits until the run is finished, up to about eight minutes.

create_pipelinemcp:write

Save a new workflow in the workspace.

Arguments

nodesarray · required
edgesarray · required
namestring

Returns

The id of the new workflow. The call saves the workflow and does not run it.

update_pipelinemcp:write

Change the steps of a workflow you have.

Arguments

idstring
namestring
nodesarray
edgesarray

delete_pipelinemcp:writeDestructive

Delete a workflow from the workspace.

Arguments

idstring

run_appmcp:write

Run an app with its form fields filled.

Arguments

appIdstring
inputsobject

Returns

A runId. The run continues in the background. Check it with get_app_run.

get_app_runmcp:read

How far a run has gone, then its results.

Arguments

runIdstring

Returns

The status of the run, its progress (completed, total and percent) and any error. When the run is finished, the result pictures.

create_designmcp:write

Save a Studio design, up to twenty pages.

Arguments

widthnumber · required
≤ 8000
heightnumber · required
≤ 8000
namestring
canvasJSONobject
pagesarray
1 … 20
thumbnailUrlstring

Returns

The id of the new design. You can open the design in the Studio editor. The call does not render a picture.

Brand

create_brand_profilemcp:write

Add a brand profile: name, voice, themes, industry.

Arguments

namestring
brandVoicearray<string>
mainThemesarray<string>
contentGoalsarray<string>
contentTypesarray<string>
primaryNichestring
subNichesarray<string>
industrystring
industriesarray<string>
makeDefaultboolean

set_default_brand_profilemcp:write

Pick which brand profile is the team default.

Arguments

brandProfileIdstring

People

talking_avatarmcp:write

A face that reads your script or your audio.

Arguments

imageUrlstring
scriptstring
voicestring
audioUrlstring
clientRequestIdstring

Returns

A requestId, immediately. The video takes about one to three minutes. Check it with get_talking_avatar_status. The answer includes creditsCharged.

get_talking_avatar_statusmcp:read

The lipsync clip when it is ready.

Arguments

requestIdstring

Returns

The status of the job. When the job is done, the URL of the finished video.

Templates and photos

list_image_templatesmcp:read

The template catalogue, searchable.

Arguments

qstring
hashtagstring
hashtagsarray<string>
sortstring
popularity, recent
pagenumber
limitnumber
1 … 60

Returns

A page of template cards. Each card has an id, a slug, a title, hashtags and preview pictures. The prompt is not included.

get_image_templatemcp:read

One template with its model and its size.

Arguments

idstring
slugstring

Returns

The preview pictures, the title, the description and the hashtags, plus the model, the aspect ratio and the size the template uses. The prompt is not returned.

Models, plan and workspace

list_image_modelsmcp:read

Image models, with what each one costs.

Arguments

capabilitystring
text-to-image, image-to-image, multi-reference, upscale
categorystring
generation, editing, consistency, upscale

Returns

For each model: its id, what it can do, the aspect ratios it supports and its credit cost per image.

list_video_modelsmcp:read

Video models, with durations and cost.

Arguments

capabilitystring
text-to-video, image-to-video

Returns

For each model: its id, what it can do, the durations and resolutions it allows and its credit cost per second.

import_chat_imagemcp:write

Pictures you attach to a message, saved to Assets.

Arguments

imagesarray · required
1 … 4

upload_assetmcp:write

A file picker in the chat. The file lands in Assets.

Arguments

No arguments.

Returns

The URL of the file you added. Pass it as the picture to apply_image_template, edit_image or generate_design.

MCP Resources

Resources are read-only context the client can fetch via the MCP resources/read method. Claude pulls them at conversation start so it has account, team and brand context without you re-asking each session.

designerbox://account/summary

Plan, AI credits used / limit, design count, active team name, and folder count. Counts capped at 100 each for fast load.

designerbox://brand-profiles/active

The active brand profile for the current team. Returns LLM-relevant fields: brandVoice, mainThemes, contentGoals, contentTypes, primaryNiche, industry.

designerbox://teams/current

Current team metadata (teamId, teamName) plus totalTeamsAvailable count. Pair with list_teams + set_current_team to switch.

designerbox://recent-designs

The 10 most recent designs for the active team, pre-loaded into Claude's context so it has immediate design library awareness without a tool call.

ui://upload-asset/widget.html

The in-chat file picker that adds a picture or a video to Assets.

Slash-menu prompts

Shortcuts in the slash menu that run several MCP tools in order. Pick one, and your AI chat completes a task in several steps. It asks you to confirm before it changes anything.

/weekly-design-batch

Read brand profile and recent designs, then propose design themes and folder targets for the coming week.

/audit-gallery

Walk recent designs via list_designs and flag items that drift from your active brand profile. Read-only.

/brand-sync

Compare designs against your active brand profile and surface gaps or stale fields. Suggests updates; you approve before anything changes.

/regenerate-with-style

Regenerate an existing design in a different style. Calls get_asset, then list_skills if needed, then generate_design.

Discovery and OAuth endpoints

Standards-compliant metadata so any MCP client can auto-configure.

  • GET /.well-known/oauth-protected-resource/api RFC 9728
  • GET /.well-known/oauth-authorization-server RFC 8414
  • GET /oauth/.well-known/openid-configuration OIDC
  • POST /oauth/reg Dynamic Client Registration (RFC 7591)
  • GET /oauth/auth Authorize (PKCE-S256 required)
  • POST /oauth/token Token exchange

Control your design workflow from any AI chat

One OAuth sign-in connects DesignerBox to Claude, ChatGPT or Cursor. Then you run your templates, workflows and apps from your AI chat, in your brand.