Leonardo AI MCP
Use Leonardo through a plan-first agent workflow. Choose a model and dimensions, estimate cost, submit once, then inspect the asynchronous job instead of retrying a non-idempotent generation.
Authentication
-
Header:
Authorization -
Format:
Bearer mad_live_*** -
Configure the Leonardo integration in the Portal before calling provider tools.
-
Generation tools can consume provider credits. Preview the plan and price before execution.
-
A timed-out generation can still complete upstream; inspect the returned job or generation ID instead of automatically retrying.
Catalog Coverage
- Raw provider tools: 75
- Exposed compatibility tools: 75
- Agent-ready tools: 72
- Documented descriptors: 75
- Public reference pages: 75
- Source repository: https://github.com/MADPANDA3D/leonardo-ai-mcp
- Catalog version:
leonardo-ai-2026.07.12.1 - Catalog verified:
2026-07-12T10:19:26.858537+00:00(5 days old) - Guide verified:
2026-07-12T00:00:00.000Z(6 days old) - Committed snapshot:
catalog-5ec40de147b11c40 - Docs generated:
2026-07-18T00:19:58.776Z
Best For
- Creating approved image or video assets with an explicit model, size, and cost plan.
- Inspecting existing generations, models, elements, datasets, and uploaded media.
- Running bounded wait helpers when the client cannot manage polling itself.
Agent Workflow
- Start with find_tools or leonardo_get_media_generation_guide for the current task.
- Use leonardo_plan_image_generation or leonardo_plan_video_generation before any paid generation.
- Run leonardo_pricing_calculator and obtain user approval when the plan changes cost or output count.
- Submit one generation, retain its identifier, and use status/read tools until it reaches a terminal state.
- Use a variation or upscale tool only after confirming the source generation and intended transformation.
Operating Notes
- Create, delete, generation, variation, upscale, upload, and blueprint execution tools are writes even when their names sound like media reads.
- Do not place image bytes, signed URLs, API keys, or provider responses containing credentials in bug reports or logs.
- Use existing approved assets when the task says not to regenerate media.
Read-only Tools
- Check Configuration — Use this local read-only tool before Leonardo work to check whether the Portal gate, request-scoped provider credential, webhook auth, and job store are ready. It never returns credential values and does not contact Leonardo.Ai.
- Check Generation Status — Inspect a submitted generation by identifier without creating or retrying work.
- Find Tools — Use this local read-only tool to rank Leonardo tools for a natural-language task using punctuation-normalized multi-token search. Filter by category or risk when useful; it does not contact Leonardo.Ai or inspect argument values.
- Get Callback Setup — Return Leonardo webhook setup details without exposing callback secrets. Runs locally and does not contact Leonardo.Ai.
- Get Endpoint Coverage — Use this local read-only tool to map the approved 55 direct Leonardo API operations and 15 workflow tools to methods, paths, categories, and risk. This hardening snapshot does not claim a new provider endpoint refresh and does not contact Leonardo.Ai.
- Get Media Generation Guide — Choose the safe image or video workflow before selecting a paid generation tool.
- Get Tool Usage — Use this local read-only tool after discovery to retrieve one complete lossless Leonardo descriptor by native name, canonical name, or alias. It explains required inputs, risk, confirmation, and output without executing the selected tool.
- Leonardo Get 3D Model By Id — Use this to call Leonardo.Ai 3D Model Assets endpoint
GET /models-3d/{id}. Get a 3D model asset by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get 3D Models By User Id — Use this to call Leonardo.Ai 3D Model Assets endpoint
GET /models-3d/user/{userId}. List 3D model assets for a user. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: userId. Returns a compact, sanitized provider response. - Leonardo Get Blueprint By Id — Use this to call Leonardo.Ai Blueprints endpoint
GET /blueprints/{id}. Get a blueprint by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Blueprint Execution — Use this to call Leonardo.Ai Blueprints endpoint
GET /blueprint-executions/{id}. Get a blueprint execution by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Blueprint Execution Generations — Use this to call Leonardo.Ai Blueprints endpoint
GET /blueprint-executions/{id}/generations. Get generations created by a blueprint execution. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Blueprint Versions By Blueprint Id — Use this to call Leonardo.Ai Blueprints endpoint
GET /blueprints/{id}/versions. List versions for a blueprint. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Custom Elements By User Id — Use this to call Leonardo.Ai Elements endpoint
GET /elements/user/{userId}. List custom elements for a user. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: userId. Returns a compact, sanitized provider response. - Leonardo Get Custom Models By User Id — Use this to call Leonardo.Ai Models endpoint
GET /models/user/{userId}. List custom models for a user. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: userId. Returns a compact, sanitized provider response. - Leonardo Get Dataset By Id — Use this to call Leonardo.Ai Dataset endpoint
GET /datasets/{id}. Get a dataset by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Element By Id — Use this to call Leonardo.Ai Elements endpoint
GET /elements/{id}. Get a custom element by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Generation By Id — Use this to call Leonardo.Ai Image endpoint
GET /generations/{id}. Get a generation by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Generations By User Id — Use this to call Leonardo.Ai Image endpoint
GET /generations/user/{userId}. List generations for a user. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: userId. Returns a compact, sanitized provider response. - Leonardo Get Init Image By Id — Use this to call Leonardo.Ai Init Images endpoint
GET /init-image/{id}. Get an init image by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Model By Id — Use this to call Leonardo.Ai Models endpoint
GET /models/{id}. Get a custom model by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Motion Variation By Id — Use this to call Leonardo.Ai Variation endpoint
GET /motion-variations/{id}. Get a motion variation by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get Uploaded Media By Id — Use this to call Leonardo.Ai Media endpoint
GET /media/{id}. Get uploaded media by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo Get User Self — Use this to call Leonardo.Ai User endpoint
GET /me. Get the current API user. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Get Variation By Id — Use this to call Leonardo.Ai Variation endpoint
GET /variations/{id}. Get a variation by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. Returns a compact, sanitized provider response. - Leonardo List Blueprints — Use this to call Leonardo.Ai Blueprints endpoint
GET /blueprints. List Leonardo blueprints. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo List Elements — Use this to call Leonardo.Ai Elements endpoint
GET /elements. List custom elements. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo List Platform Models — Use this to call Leonardo.Ai Models endpoint
GET /platformModels. List public platform models. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - List Capabilities — Use this local read-only tool to inspect Leonardo capability groups and catalog counts. Set include_descriptors=true to return the complete deterministic ToolManifest used by MAD MCP Portal; it does not contact Leonardo.Ai.
- List Generation Jobs — List recent locally stored Leonardo jobs from the webhook-backed registry. Runs locally and does not contact Leonardo.Ai.
- Plan Image Generation — Validate an image-generation plan and receive model, dimension, and execution guidance without creating media.
- Plan Video Generation — Plan a modern Leonardo video request without spending generation credits. Runs locally and does not contact Leonardo.Ai.
- Recommend Model — Recommend a Leonardo model and default request body additions for a media goal. Runs locally and does not contact Leonardo.Ai.
Write and Destructive Tools
- Calculate Generation Price — Estimate provider credit use for the planned generation before execution.
- Execute Blueprint And Wait — Execute a Leonardo blueprint and poll execution plus generation results. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Generate Image And Wait — Submit an image generation job, poll until completion, and return media URLs. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Generate V2 Media And Wait — Submit a modern v2 media job, poll when an ID is returned, and return media URLs. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Generate Video And Wait — Submit a Leonardo video or motion job, poll, and return clean status. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Improve Prompt For Generation — Use this for short draft prompts; calls Leonardo prompt/improve. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Leonardo Create Dataset — Use this to call Leonardo.Ai Dataset endpoint
POST /datasets. Create a dataset. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Element — Use this to call Leonardo.Ai Elements endpoint
POST /elements. Create a custom element. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Generation — Use this to call Leonardo.Ai Image endpoint
POST /generations. Create an image generation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Generation V2 — Use this to call Leonardo.Ai Image/Video V2 endpoint
POST /v2/generations. Create a modern v2 image or video generation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Image To Video Generation — Use this to call Leonardo.Ai Motion endpoint
POST /generations-image-to-video. Create an image-to-video generation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Lcm Generation — Use this to call Leonardo.Ai Realtime Canvas endpoint
POST /generations-lcm. Create an LCM realtime canvas generation. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Model — Use this to call Leonardo.Ai Models endpoint
POST /models. Create a custom model training job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Svd Motion Generation — Use this to call Leonardo.Ai Motion endpoint
POST /generations-motion-svd. Create an SVD motion generation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Text To Video Generation — Use this to call Leonardo.Ai Motion endpoint
POST /generations-text-to-video. Create a text-to-video generation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Universal Upscaler Job — Use this to call Leonardo.Ai Variation endpoint
POST /variations/universal-upscaler. Create a universal upscaler variation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Variation No Bg — Use this to call Leonardo.Ai Variation endpoint
POST /variations/nobg. Create a no-background variation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Variation Unzoom — Use this to call Leonardo.Ai Variation endpoint
POST /variations/unzoom. Create an unzoom variation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Variation Upscale — Use this to call Leonardo.Ai Variation endpoint
POST /variations/upscale. Create an upscale variation job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Create Video Upscale — Use this to call Leonardo.Ai Motion endpoint
POST /generations-video-upscale. Create a video upscale job. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Delete 3D Model By Id — Use this to call Leonardo.Ai 3D Model Assets endpoint
DELETE /models-3d/{id}. Delete a 3D model asset by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Dataset By Id — Use this to call Leonardo.Ai Dataset endpoint
DELETE /datasets/{id}. Delete a dataset by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Element By Id — Use this to call Leonardo.Ai Elements endpoint
DELETE /elements/{id}. Delete a custom element by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Generation By Id — Use this to call Leonardo.Ai Image endpoint
DELETE /generations/{id}. Delete a generation by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Init Image By Id — Use this to call Leonardo.Ai Init Images endpoint
DELETE /init-image/{id}. Delete an init image by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Model By Id — Use this to call Leonardo.Ai Models endpoint
DELETE /models/{id}. Delete a custom model by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Delete Uploaded Media By Id — Use this to call Leonardo.Ai Media endpoint
DELETE /media/{id}. Delete uploaded media by ID. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response. - Leonardo Execute Blueprint — Use this to call Leonardo.Ai Blueprints endpoint
POST /blueprint-executions. Execute a Leonardo blueprint. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Perform Alchemy Upscale Lcm — Use this to call Leonardo.Ai Realtime Canvas endpoint
POST /lcm-upscale. Run LCM Alchemy upscale. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Perform Inpainting Lcm — Use this to call Leonardo.Ai Realtime Canvas endpoint
POST /lcm-inpainting. Run LCM inpainting. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Perform Instant Refine — Use this to call Leonardo.Ai Realtime Canvas endpoint
POST /lcm-instant-refine. Run LCM instant refine. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Prompt Improve — Use this to call Leonardo.Ai Prompt endpoint
POST /prompt/improve. Improve a prompt. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Prompt Random — Use this to call Leonardo.Ai Prompt endpoint
POST /prompt/random. Generate a random prompt. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Upload Canvas Init Image — Use this to call Leonardo.Ai Init Images endpoint
POST /canvas-init-image. Create presigned upload details for a canvas init image. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Upload Dataset Image — Use this to call Leonardo.Ai Dataset endpoint
POST /datasets/{datasetId}/upload. Create presigned upload details for a dataset image. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: datasetId. Returns a compact, sanitized provider response. - Leonardo Upload Dataset Image From Gen — Use this to call Leonardo.Ai Dataset endpoint
POST /datasets/{datasetId}/upload/gen. Add a generated image to a dataset. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. Provide path_params for: datasetId. Returns a compact, sanitized provider response. - Leonardo Upload Init Image — Use this to call Leonardo.Ai Init Images endpoint
POST /init-image. Create presigned upload details for an init image. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Upload Media — Use this to call Leonardo.Ai Media endpoint
POST /media. Create presigned upload details for media. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Leonardo Upload Model Asset — Use this to call Leonardo.Ai 3D Model Assets endpoint
POST /models-3d/upload. Create presigned upload details for a 3D model asset. Contacts Leonardo.Ai using the BYOKx-leonardo-api-keyportal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response. - Run Variation And Wait — Run a Leonardo image variation, poll the variation endpoint, and return media output. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Submit Generation Async — Submit a Leonardo job, store its ID locally, and rely on webhook completion. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai. - Upload Reference Image — Upload a reference image from URL, local file path, data URL, or base64. Accepts optional metadata for agent-side traceability. Requires the request-scoped
x-leonardo-api-keyPortal field and contacts Leonardo.Ai.