Skip to content

Ask AI

Ask anything about Destesi — setup, products, APIs.

AI answers may be wrong — always verify against the docs.

Design MCP tools

Registered when the server starts with DESIGN_API_URL set. 25 tools, listed with the description the server sends in tools/list.

Tool Description
design_activate_deployment Serve an earlier published build of a Design project again (rollback). Nothing is rebuilt; pick the id from design_list_deployments. Needs the sites.publish permission (403 permission_required).
design_add_section Add a block to a page, at index (default: last). Its props follow the schema design_list_sections returns for that type. Images are referenced, never uploaded: a catalogue photo is ‘shop-api/products/<id>/image’, a project file is ‘assets/<name>’; a signed URL is refused.
design_create_project Create a new Design project.
design_delete_asset Delete a Design project asset. Refused with asset_in_use while a file still references it, unless force is true (the references then break).
design_delete_project Delete a Design project: it leaves the project list, its sandbox stops and it stops being published, freeing its web address for another project. The project’s GitHub repository is KEPT — the code is the workspace’s, and the reply names the repo. Refuses with 409 turn_in_progress while a change is running.
design_duplicate_section Copy one block right after itself (or at index): its code is copied byte for byte, so a custom component, a hidden flag or a hand-written block survive. The copy is named new_id, or ‘<id>-<4 hex>’.
design_get_file_content Get one file’s content from a Design project’s sandbox.
design_get_project Get one Design project’s details.
design_list_assets List a Design project’s image assets (public/assets): name, url, content type, size, dimensions and the files that reference each one (used_in).
design_list_deployments List a Design project’s published builds (newest first; current marks the one served).
design_list_files List file paths in a Design project’s sandbox.
design_list_history List a Design project’s version history.
design_list_projects List Design (AI app builder) projects in a workspace.
design_list_sections List one page’s blocks as the project’s code has them, with the field schemas each block type declares and the version the next write must name. Pages are ‘Home’ and ‘Product’. Needs the project’s sandbox ready. A block the editor cannot read as data (a component of the merchant’s own, or a prop that is not a literal) comes back opaque: it can be moved and removed, never rewritten.
design_list_templates List Design starting templates. Use design_create_project with template_id to copy the home/product starter into a normal GitHub-backed code project, then edit it in the Studio or with the project tools.
design_move_section Move one block to a new position on its page.
design_publish_project Publish a Design project: build it in its running sandbox and serve the build at its public URL (returned). Needs a ready sandbox; the newest publish goes live at once. Needs the sites.publish permission (403 permission_required); 409 slug_taken when another published site already uses this project’s web address.
design_remove_section Remove one block from a page. A page keeps at least one block.
design_replace_asset Replace an existing Design project asset’s image bytes, keeping its name so every reference keeps working. Images land in the project’s public/assets and are converted to WebP (at most 2000px wide; GIFs are kept as-is); reference one as assets/<name> in a section’s image_url, or as ${import.meta.env.BASE_URL}assets/<name> in code. A photo that is already in the shop’s catalog is referenced as shop-api/products/<id>/image and never uploaded here. Max 15 MB decoded. Needs the project’s sandbox running.
design_restore_version Restore a Design project to a prior version. Overwrites the current sandbox state.
design_set_section Fill in one block’s fields, or hide it. Props are MERGED: what you do not send is left as it is, including keys the schema does not know. An opaque block is refused — change it in code.
design_storefront_catalog Read the shop’s categories and products (what the shop project’s pickers can point at).
design_storefront_set_chrome Replace the shop’s chrome (announcement bar, header nav links, footer social links, theme fonts). Pass the WHOLE object; it applies at once to every page. Admin only.
design_storefront_settings Read the merchant’s Commerce shop settings (slug, public URL, enabled, template, chrome).
design_upload_asset Upload an image to a Design project. Images land in the project’s public/assets and are converted to WebP (at most 2000px wide; GIFs are kept as-is); reference one as assets/<name> in a section’s image_url, or as ${import.meta.env.BASE_URL}assets/<name> in code. A photo that is already in the shop’s catalog is referenced as shop-api/products/<id>/image and never uploaded here. Max 15 MB decoded. Needs the project’s sandbox running. The name is sanitized and suffixed -2, -3… on collision; use the returned asset’s name.