Dynamic Mockups
Dynamic Mockups is an MCP server that enables AI assistants to generate professional product mockups through API integration, offering comprehensive tools for mockup creation, management, and embedding.
Core Capabilities:
Mockup Rendering & Effects
Generate single or batch mockups with custom designs (1 credit per image)
Export high-resolution print-ready files with customizable DPI (e.g., 300 DPI for production)
Apply realistic embroidery/stitched effects to images
Place design assets from public URLs with customization options for positioning, sizing, rotation, and fit modes
Apply color overlays, patterns, Photoshop blending modes, and adjustments (brightness, contrast, opacity, saturation, vibrance, blur)
Add and customize text layers with fonts, colors, and sizes
Organization & Discovery
Browse, filter, and search mockup templates by name, catalog, or collection
Manage catalogs (top-level containers) and collections to organize mockups by project/client/product type
Retrieve detailed mockup information including smart objects and print area presets
Custom Template Creation
Upload PSD files to create custom mockup templates with auto-generation options
Delete uploaded PSDs with optional removal of related mockups
Editor Embedding
Embed customizable mockup editors (Classic or AI-powered MockAnything) into websites/apps
Integration support via CDN, NPM, or API for React, Vue, and JavaScript
Handle editor events and callbacks for custom workflows
API Integration & Support
Access comprehensive API documentation including base URL, headers, and code examples (JavaScript, Python, cURL)
Get information on billing, credits, rate limits, supported formats, and best practices
Clear error handling for common issues
Output Options
Export as JPG, PNG, or WebP formats
Customize image size (default 1000px width)
Choose view or download mode with custom labels
24-hour valid URLs for rendered images
Compatible with Claude Desktop, Claude Code, Cursor, Windsurf, and Lovable via NPX or HTTP transport.
Integrates with Windsurf (by Codeium) to allow AI-powered mockup generation directly within the IDE, using the Dynamic Mockups API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dynamic MockupsCreate a mockup render for my new app icon on a smartphone screen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Dynamic Mockups MCP Server
Official MCP server for Dynamic Mockups — a product mockup generator API. Create professional mockups directly from AI assistants like Claude, Cursor, and Windsurf.
Requirements
Node.js 18 or higher
Dynamic Mockups API key — get one here
Related MCP server: AI-Canvas MCP Server
Installation
Add the following to your MCP client configuration file:
{
"mcpServers": {
"dynamic-mockups": {
"command": "npx",
"args": ["-y", "@dynamic-mockups/mcp"],
"env": {
"DYNAMIC_MOCKUPS_API_KEY": "your_api_key_here"
}
}
}
}Lovable
For Lovable, simply enter:
Server URL:
https://mcp.dynamicmockups.comAPI Key: Your Dynamic Mockups API key (get one here)
HTTP Transport
If you want to connect via HTTP instead of NPX, use:
{
"mcpServers": {
"dynamic-mockups": {
"type": "http",
"url": "https://mcp.dynamicmockups.com",
"headers": {
"x-api-key": "your_api_key_here"
}
}
}
}Config File Locations
Client | Config File Path |
Claude Desktop (macOS) |
|
Claude Desktop (Windows) |
|
Claude Code (CLI) |
|
Cursor |
|
Windsurf |
|
Tools
Tool | Description |
| Get API knowledge base (billing, rate limits, formats, best practices, support) |
| Implement embeddable mockup editor in your app |
| Retrieve all available catalogs |
| Retrieve collections (optionally filter by catalog) |
| Create a new collection |
| Get list of available mockups with optional filters |
| Retrieve a specific mockup by UUID |
| Search the POD product catalog used to ground MockAnything AI generations |
| Get a product's decoration areas (locations), colors and sizes — use a location to place artwork on a specific spot |
| List visual styles available for MockAnything AI generation (optionally filtered by model) |
| Create a new AI mockup template from a prompt or image URL |
| Poll the status of a mockup creation task |
| List MotionMockups AI (image-to-video) models with durations, credit costs and aspect ratios |
| Generate a short AI video from a product image URL (MotionMockups AI) — returns a request_id to poll |
| Poll the status of a MotionMockups AI video request; returns the video URL when complete |
| Create a single mockup render with design assets (1 credit) |
| Render multiple mockups in one request (1 credit per image) |
| Export high-resolution print files for production |
| Upload a PSD file and optionally create a mockup template |
| Delete a PSD file with optional related mockups deletion |
| Transform any image into a realistic embroidery/stitched effect |
Usage Examples
Ask your AI assistant:
Use Case | Example Prompt |
Embed editor | "Add the full mockup editor to my web application" |
List catalogs | "Get my Dynamic Mockups catalogs" |
Browse mockups | "Show me all mockups in my T-shirt collection" |
Single render | "Create a mockup render using any T-shirt mockup with my artwork from url: https://example.com/my-design.png" |
Batch render | "Render my artwork from url: https://example.com/my-design.png on all mockups in the Winter T-shirt collection" |
Create collection | "Create a new collection called Summer 2025 Hoodies" |
Upload PSD | "Upload my PSD mockup from url: https://example.com/my-mockup.psd and create a template from it" |
API info | "What are the rate limits and supported file formats for Dynamic Mockups?" |
Print files | "Export print-ready files at 300 DPI for my poster mockup" |
Embroidery effect | "Transform my logo into an embroidery effect from url: https://example.com/my-logo.png" |
Create a Mockup from Prompt | "Create a mockup of a guy wearing a Gildan 5000 t-shirt while running, then render my logo from url: https://example.com/my-logo.png on it" |
Decorate a specific area | "Create a Gildan 5000 t-shirt mockup and place my logo from url: https://example.com/my-logo.png on the left chest" |
Create a Mockup from Image URL | "Turn this product photo into a mockup: https://example.com/product.jpg, and render my artwork on it" |
Error Handling
The server returns clear error messages for common issues:
API key not configured - Set
DYNAMIC_MOCKUPS_API_KEYin your environmentInvalid UUID - Ensure UUIDs are in correct format
API errors - Check the returned message for details
Links
License
MIT
Available Tools
13 toolscreate_batch_renderA
Render MULTIPLE mockups in a single request. Returns array of image URLs.
API: POST /renders/batch COST: 1 credit per image
WHEN TO USE: When user wants to generate 2 or more mockup images. MORE EFFICIENT than calling create_render multiple times - single API call, faster processing.
Use cases:
Render same design on multiple mockup templates
Render different designs on different mockups
Generate a product catalog with many images
PREREQUISITES: Call get_mockups first - it returns both mockup_uuid AND smart_object uuids for all templates.
RETURNS: {total_renders, successful_renders, failed_renders, renders[]} where each render has {status, export_path, export_label, mockup_uuid}.
| Name | Required | Description | Default |
|---|---|---|---|
| renders | Yes | REQUIRED. Array of render configurations. Each item renders one mockup image. | |
| export_options | No | Optional. Export options applied to ALL renders in the batch. If omitted, uses defaults. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: cost ('1 credit per image'), efficiency benefits ('single API call, faster processing'), prerequisites, and detailed return structure. However, it doesn't mention error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (e.g., API, COST, WHEN TO USE, Use cases, PREREQUISITES, RETURNS). It's front-loaded with key info but could be slightly more concise by integrating some details more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters with nested objects, no output schema, no annotations), the description is highly complete. It covers purpose, usage, efficiency, prerequisites, cost, return structure, and use cases, providing sufficient context for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal param semantics beyond the schema, such as linking 'mockup_uuid' to 'get_mockups' and noting 'export_options' apply to 'ALL renders.' Baseline 3 is appropriate when schema does heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Render MULTIPLE mockups in a single request' and 'Returns array of image URLs.' It clearly distinguishes from sibling tools like 'create_render' by emphasizing batch processing and efficiency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'WHEN TO USE: When user wants to generate 2 or more mockup images.' It contrasts with 'create_render' by stating 'MORE EFFICIENT than calling create_render multiple times' and includes prerequisites: 'Call get_mockups first.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collectionA
Create a new collection to organize mockups.
API: POST /collections
WHEN TO USE: When user wants to:
Create a new group/category for mockups
Organize mockups by project, client, or product type
RETURNS: The created collection with uuid, name, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new collection (e.g., 'Summer 2025 T-shirts', 'Client ABC Mockups'). | |
| catalog_uuid | No | Optional catalog UUID to place this collection in. If omitted, uses the default catalog. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the API endpoint (POST /collections) and return values, but lacks details on permissions, error handling, or side effects. It adds some behavioral context but is incomplete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (API, WHEN TO USE, RETURNS). Each sentence adds value: purpose, usage scenarios, API details, and return info. No redundant or wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param creation tool with no annotations and no output schema, the description is fairly complete: covers purpose, usage, API, and returns. However, it lacks details on authentication, error cases, or behavioral constraints, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds no param-specific info beyond the schema, but with 0 parameters in the description and high schema coverage, the baseline is 3. It earns a 4 because the 'RETURNS' section implicitly clarifies that 'name' maps to the collection's name, adding slight semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'new collection' with the purpose 'to organize mockups.' It distinguishes from siblings like 'get_collections' (read) and 'create_batch_render' (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WHEN TO USE' section explicitly lists scenarios: creating groups/categories, organizing by project/client/product type. It provides clear context for when to invoke this tool versus alternatives like 'get_collections' or other creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_renderA
Render a SINGLE mockup with design assets. Returns an image URL.
API: POST /renders COST: 1 credit per render
WHEN TO USE: When user wants to generate exactly ONE mockup image. For 2+ images, use create_batch_render instead (more efficient, same cost).
PREREQUISITES: Call get_mockups first - it returns both mockup_uuid AND smart_object uuids needed for rendering.
SMART OBJECT OPTIONS:
asset.url: Public URL to design image (jpg, jpeg, png, webp, gif)
asset.fit: 'stretch' | 'contain' | 'cover' - how image fits the area
asset.size: {width, height} - custom dimensions in pixels
asset.position: {top, left} - custom positioning
asset.rotate: rotation angle in degrees (0-360)
color: hex color overlay (e.g., '#FF0000' for red)
pattern: {enabled: true, scale_percent: 60} - repeat pattern mode
blending_mode: Photoshop blend modes (NORMAL, MULTIPLY, SCREEN, OVERLAY, etc.)
adjustment_layers: {brightness, contrast, opacity, saturation, vibrance, blur}
print_area_preset_uuid: auto-position using preset (get from mockup details)
RETURNS: {export_label, export_path} - export_path is the rendered image URL (valid 24h).
| Name | Required | Description | Default |
|---|---|---|---|
| mockup_uuid | Yes | UUID of the mockup template to render. Get from get_mockups. | |
| smart_objects | Yes | Array of smart object configurations. Each mockup has one or more smart objects where you place your design. | |
| text_layers | No | Optional. Customize text layers in the mockup (if the mockup has text layers). | |
| export_label | No | Optional. Custom label for the exported image. Appears in the filename. | |
| export_options | No | Optional. Output image settings. If omitted, uses defaults (jpg, 1000px, view mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the API endpoint (POST /renders), cost (1 credit per render), and that the returned image URL is valid for 24 hours. It also implies this is a write operation (creating a render) and mentions efficiency considerations. However, it doesn't cover potential error conditions, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, API/cost, usage guidelines, prerequisites, parameter details, returns). Most sentences earn their place by providing essential information. However, the 'SMART OBJECT OPTIONS' section is quite detailed and could potentially be more concise while still being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters with nested objects, no annotations, no output schema), the description does a good job of providing context. It covers purpose, usage, prerequisites, parameter semantics, and return values. The main gap is the lack of output schema, but the description compensates by explaining the return structure. It could benefit from more behavioral context like error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the 'SMART OBJECT OPTIONS' section in detail, providing practical examples and usage context for parameters like asset.fit, color, blending_mode, and adjustment_layers. This goes beyond the schema's technical descriptions to help the agent understand how to use these parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Render a SINGLE mockup with design assets. Returns an image URL.' It specifies the exact action (render), resource (mockup), scope (single), and output (image URL), and distinguishes it from the sibling 'create_batch_render' for multiple images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'WHEN TO USE: When user wants to generate exactly ONE mockup image. For 2+ images, use create_batch_render instead (more efficient, same cost).' It also includes prerequisites: 'Call get_mockups first - it returns both mockup_uuid AND smart_object uuids needed for rendering.' This clearly defines when to use this tool versus alternatives and necessary steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_psdA
Delete a PSD file and optionally all mockups created from it.
API: POST /psd/delete
WHEN TO USE: When user wants to:
Remove an uploaded PSD file
Clean up unused PSD files
Optionally remove all mockups derived from the PSD
WARNING: If delete_related_mockups is true, all mockups created from this PSD will be permanently deleted.
RETURNS: Success confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| psd_uuid | Yes | REQUIRED. UUID of the PSD file to delete. | |
| delete_related_mockups | No | Optional. Set to true to also delete all mockups created from this PSD. Default: false (keeps mockups). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It clearly discloses the destructive nature of the tool ('permanently deleted'), specifies the API endpoint (POST /psd/delete), and describes the return value (success confirmation message). It doesn't mention authentication requirements or rate limits, but covers the critical behavioral aspects for a deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (API, WHEN TO USE, WARNING, RETURNS). Each sentence adds value: the first states the core action, subsequent sections provide usage guidance, warnings, and return information. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description provides good coverage: clear purpose, usage guidelines, behavioral warnings, and return information. It doesn't specify error conditions or authentication requirements, but covers the essential context for safe tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds context about the consequences of setting 'delete_related_mockups' to true, but doesn't provide additional semantic meaning beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Delete a PSD file') and resource ('PSD file'), and distinguishes it from siblings by specifying the optional deletion of related mockups. It clearly differentiates from tools like 'upload_psd' (creation) and 'get_mockups' (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WHEN TO USE' section provides explicit scenarios for tool usage (removing uploaded PSD, cleaning up unused files, optionally removing derived mockups). It also includes a clear warning about the consequences of setting 'delete_related_mockups' to true, offering guidance on when to use that option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
embed_mockup_editorA
Get comprehensive knowledge for embedding the Dynamic Mockups Editor into websites and apps.
WHEN TO USE: Call this when user asks about:
Embedding a mockup editor in their website/app
Adding product customization/personalization features
Integrating the Classic Editor or MockAnything (AI) Editor
iFrame integration for mockup editing
Handling editor events and callbacks
React/Vue/JavaScript integration examples
TWO EDITOR TYPES:
Classic Editor: Template-based mockups from your catalog
MockAnything Editor: AI-powered - turn any image into a mockup
INTEGRATION APPROACHES:
CDN: Quick setup with script tag from jsdelivr
NPM: @dynamic-mockups/mockup-editor-sdk package for frameworks
API: Dynamic initialization via /mock-anything/embed/initialize endpoint
TOPICS AVAILABLE:
quick_start: Basic iframe + SDK setup (CDN method)
npm_integration: NPM package installation and usage
data_options: All configuration options for customizing editor behavior
callback_response: Handling export events when mode="custom"
mockanything_api: Dynamic editor initialization via API
mockanything_events: Event system for MockAnything editor
react_example: Complete React component example
all: Complete knowledge base
This tool does NOT require an API call - returns cached knowledge instantly.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Specific topic to retrieve. Use 'quick_start' for basic setup, 'integration_steps' for step-by-step guides, 'data_options' for configuration, 'mockanything_api' for AI editor API integration, 'react_example' for React code. Use 'all' for complete knowledge base. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states this is a knowledge retrieval tool that 'does NOT require an API call - returns cached knowledge instantly,' which informs the agent about performance characteristics and lack of external dependencies. However, it doesn't specify response format, size limitations, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (WHEN TO USE, TWO EDITOR TYPES, INTEGRATION APPROACHES, TOPICS AVAILABLE) and uses bullet points for readability. While comprehensive, some sections could be more concise, and the final sentence about 'cached knowledge' could be integrated earlier for better front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter knowledge retrieval tool with no output schema, the description provides substantial context: it explains what knowledge is available, when to use it, editor types, integration approaches, and topics. The main gap is the lack of output format details, but given this is a documentation/help tool rather than an operational API, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage with detailed enum descriptions, so the baseline is 3. The description adds value by listing 'TOPICS AVAILABLE' with brief explanations of each topic, providing context beyond the schema's enum list. However, it doesn't explain parameter interactions or provide additional syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comprehensive knowledge for embedding the Dynamic Mockups Editor into websites and apps.' It specifies the exact resource (knowledge about embedding the editor) and distinguishes itself from sibling tools which are all about creating, deleting, or retrieving mockups/renders rather than providing integration guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'WHEN TO USE' section listing six specific scenarios when to call this tool, such as when users ask about embedding, integration approaches, or handling events. It also distinguishes from siblings by focusing on knowledge retrieval rather than API operations like create_batch_render or get_mockups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_print_filesA
Export high-resolution print files for production use.
API: POST /renders/print-files COST: 1 credit per each print file
WHEN TO USE: When user needs:
Production-ready files for printing
High DPI output (e.g., 300 DPI for professional printing)
Print files for each smart object separately
Unlike create_render which outputs the full mockup, this exports the design as it will appear when printed - useful for sending to print shops.
RETURNS: {print_files[]} where each has {export_path, smart_object_uuid, smart_object_name}.
| Name | Required | Description | Default |
|---|---|---|---|
| mockup_uuid | Yes | REQUIRED. UUID of the mockup template. Get from get_mockups. | |
| smart_objects | Yes | REQUIRED. Smart objects configuration. Same structure as create_render. | |
| text_layers | No | Optional. Text layer customizations. | |
| export_label | No | Optional. Label for the exported files. | |
| export_options | No | Optional. Print file export settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it specifies the API endpoint (POST /renders/print-files), cost (1 credit per file), and return structure (array of print files with fields). However, it lacks details on error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, API/cost, usage guidelines, contrast, returns) and front-loaded key information. It is appropriately sized, though the 'WHEN TO USE' bullet points could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, nested objects) and no annotations or output schema, the description is mostly complete: it covers purpose, usage, behavior, and returns. However, it could benefit from more detail on error cases or advanced parameter usage to fully compensate for the lack of structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add significant meaning beyond what the schema provides, such as explaining parameter interactions or use cases, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('export high-resolution print files') and resource ('for production use'), distinguishing it from sibling tools like 'create_render' by specifying it outputs print-ready files rather than full mockups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a 'WHEN TO USE' section with three bullet points detailing scenarios (production-ready files, high DPI output, separate smart object files) and contrasts it with 'create_render', offering clear alternatives and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_infoA
Get Dynamic Mockups API knowledge base including integration details, billing, rate limits, supported formats, and best practices.
WHEN TO USE: Call this FIRST when user asks about:
How to integrate the API directly (base URL, headers, code examples)
Pricing, credits, or billing
Rate limits or API constraints
Supported file formats (input/output)
Best practices for rendering
How to contact support
IMPORTANT FOR DIRECT API INTEGRATION: When users want to integrate the Dynamic Mockups API into their own systems (not using MCP tools), use topic="integration" to get:
Base URL: https://app.dynamicmockups.com/api/v1
Required headers (Accept, x-api-key)
Code examples for JavaScript, Python, cURL
List of all available endpoints
This tool does NOT require an API call - returns cached knowledge instantly.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Specific topic to retrieve. Use 'integration' for API integration details (base URL, headers, code examples). Use 'all' for complete knowledge base. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that this tool 'does NOT require an API call - returns cached knowledge instantly,' which is crucial behavioral information about performance and data source. However, it doesn't specify response format, error handling, or data freshness details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, when to use, important details) and every sentence adds value. It could be slightly more concise by combining some of the bullet points, but overall it's efficiently organized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description provides comprehensive context about what information is returned, when to use it, and behavioral characteristics. The main gap is the lack of output format details, but given this is a knowledge retrieval tool rather than an action tool, the description is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'topic' parameter with its enum values. The description adds meaningful context by explaining when to use specific topics (e.g., 'use topic="integration" to get base URL, headers, code examples'), which provides practical guidance beyond the schema's technical specification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving API knowledge base information including integration details, billing, rate limits, formats, and best practices. It specifies the exact resources (API knowledge base) and distinguishes itself from sibling tools that perform actions like creating renders or deleting files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool, listing specific user query scenarios (integration, pricing, rate limits, formats, best practices, support). It also clarifies when NOT to use it (for direct API integration vs. using MCP tools) and distinguishes it from sibling tools that perform actual API operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogsA
Retrieve all available catalogs for the authenticated user.
API: GET /catalogs
WHEN TO USE: When user wants to:
See their workspace organization structure
Find a specific catalog UUID for filtering collections/mockups
Understand how their mockups are organized
Catalogs are TOP-LEVEL containers that hold collections. Each catalog has a UUID, name, and type (custom or default).
RETURNS: Array of catalogs with uuid, name, type, created_at fields.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool as a retrieval operation (implying read-only), specifies it's for the authenticated user, and outlines the return format. However, it lacks details on error handling, rate limits, or authentication requirements beyond the user context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by usage guidelines and return details. Each sentence adds value: the first states the action, the second provides the API endpoint, the third gives usage context, the fourth explains what catalogs are, and the fifth describes the output. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, and return values adequately. However, it could improve by mentioning any limitations (e.g., pagination) or linking to sibling tools like get_collections for more specific operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately omits parameter details, focusing instead on usage and output. A baseline of 4 is applied since it doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('all available catalogs for the authenticated user'), distinguishing it from siblings like get_collections or get_mockups. It explicitly defines catalogs as 'TOP-LEVEL containers that hold collections,' which helps differentiate its scope from other list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'WHEN TO USE' section with three bullet points: seeing workspace structure, finding catalog UUIDs for filtering, and understanding mockup organization. This provides clear context on when to invoke this tool versus alternatives, though it doesn't name specific sibling tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectionsA
Retrieve collections with optional filtering by catalog.
API: GET /collections
WHEN TO USE: When user wants to:
Browse available mockup groups/categories
Find mockups organized by product type (e.g., "T-shirts", "Mugs")
Get a collection UUID to filter mockups
Collections GROUP related mockups together within a catalog. By default, only returns collections from the default catalog.
RETURNS: Array of collections with uuid, name, mockup_count, created_at fields.
| Name | Required | Description | Default |
|---|---|---|---|
| catalog_uuid | No | Filter collections by specific catalog UUID. Get catalog UUIDs from get_catalogs. | |
| include_all_catalogs | No | Set to true to include collections from ALL catalogs. Default: false (only default catalog). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it specifies the API endpoint ('GET /collections'), default filtering behavior, and return format details (array with specific fields like 'uuid' and 'mockup_count'). However, it lacks information on potential rate limits, error handling, or authentication needs, which are relevant for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (API, WHEN TO USE, RETURNS), front-loaded key information, and no wasted sentences. Each part earns its place by adding distinct value, such as usage scenarios and return details, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, no annotations, and no output schema, the description is largely complete: it covers purpose, usage, behavior, and return values. However, it could improve by mentioning any limitations (e.g., pagination) or prerequisites, which would enhance completeness for a tool with two parameters and no structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds minimal value beyond the schema by mentioning 'optional filtering by catalog' and the default catalog behavior, but it doesn't provide additional syntax or format details for the parameters, relying on the schema's thorough documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve collections') and resource ('collections'), distinguishing it from siblings like 'get_catalogs' or 'get_mockups' by focusing on collections that group mockups. It explicitly explains that collections 'GROUP related mockups together within a catalog,' providing a precise purpose beyond just the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a dedicated 'WHEN TO USE' section with three bullet points listing specific scenarios (e.g., 'Browse available mockup groups/categories'), and it explicitly states the default behavior ('only returns collections from the default catalog'), guiding when to use this tool versus alternatives like 'get_catalogs' for catalog UUIDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mockup_by_uuidA
Get detailed information about a SINGLE specific mockup by its UUID.
API: GET /mockup/{uuid}
WHEN TO USE: Only in specific scenarios:
User already has a mockup UUID and wants details about that ONE template
User provided a specific mockup UUID directly
Need to refresh data for a single known mockup
NOT REQUIRED for rendering! The get_mockups tool already returns smart_object UUIDs. Only use this when you need info about ONE specific mockup and don't need to list/browse.
RETURNS: Single mockup with:
uuid, name, thumbnail
smart_objects[]: uuid, name, size (width/height), position (top/left), print_area_presets[]
text_layers[]: uuid, name
collections[], thumbnails[]
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | The mockup UUID. Get this from get_mockups response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it retrieves detailed information for a single mockup via a GET API call, specifies it's for refreshing data, and outlines the return structure (e.g., uuid, smart_objects, text_layers). However, it lacks details on error handling or rate limits, keeping it from a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, returns) and uses bullet points for readability. It is appropriately sized but could be slightly more concise by integrating some bulleted lists into prose. Most sentences earn their place by adding value, such as differentiating from siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is largely complete. It covers purpose, usage, and return values in detail. However, it could improve by mentioning potential errors (e.g., invalid UUID) or authentication needs, which would enhance completeness for a tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'uuid' parameter documented as 'The mockup UUID. Get this from get_mockups response.' The description adds minimal value beyond this, mentioning 'by its UUID' and referencing 'get_mockups' for obtaining the UUID, but doesn't provide additional semantic context. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get detailed information about a SINGLE specific mockup') and resource ('by its UUID'), distinguishing it from sibling tools like 'get_mockups' which handles listing/browsing. The verb 'Get' combined with the resource scope is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance with a 'WHEN TO USE' section listing specific scenarios (e.g., user has a UUID, needs details for one template) and a 'NOT REQUIRED for rendering!' note that references the alternative 'get_mockups' tool. It clearly defines when to use this tool versus its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mockupsA
Retrieve mockups from My Templates with optional filtering. This is the PRIMARY tool for discovering mockups.
API: GET /mockups
WHEN TO USE: When user wants to:
List all available mockup templates
Search for mockups by name
Find mockups in a specific collection or catalog
Get mockup data needed for rendering
IMPORTANT: This returns EVERYTHING needed to render - both mockup UUIDs AND smart_object UUIDs. You do NOT need to call get_mockup_by_uuid before rendering.
WORKFLOW: get_mockups → create_render (that's it!)
RETURNS: Array of mockups, each containing:
uuid: mockup template UUID (use in create_render)
name, thumbnail
smart_objects[]: array with uuid (use in smart_objects param), name, size, position, print_area_presets[]
text_layers[]: uuid, name
collections[]
| Name | Required | Description | Default |
|---|---|---|---|
| catalog_uuid | No | Filter mockups by catalog UUID. Get from get_catalogs. | |
| collection_uuid | No | Filter mockups by collection UUID. Get from get_collections. | |
| include_all_catalogs | No | Set to true to include mockups from ALL catalogs. Default: false (only default catalog). | |
| name | No | Filter mockups by name (partial match, case-insensitive). E.g., 'mug' finds 'Coffee Mug', 'Beer Mug'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing: this is a read operation (GET API), it returns comprehensive data (both mockup and smart-object UUIDs), and clarifies workflow dependencies. It doesn't mention rate limits or authentication needs, but provides substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (API, WHEN TO USE, IMPORTANT, WORKFLOW, RETURNS) but somewhat verbose. Every sentence adds value, though some redundancy exists (e.g., 'This is the PRIMARY tool' could be integrated more tightly).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with no annotations and no output schema, the description provides exceptional completeness: clear purpose, detailed usage guidelines, behavioral context, workflow integration, and a thorough specification of return values that compensates for the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description mentions 'optional filtering' but doesn't add specific parameter details beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('mockups from My Templates'), specifies it's the PRIMARY tool for discovery, and distinguishes it from sibling get_mockup_by_uuid by emphasizing it returns everything needed for rendering without requiring additional calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a 'WHEN TO USE' section with four specific scenarios, names an alternative tool (get_mockup_by_uuid) and explains when NOT to use it, and outlines a complete workflow (get_mockups → create_render) with clear sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_create_embroidery_effectA
Transform any image into a realistic embroidery/stitched effect.
API: POST /tools/embroidery COST: 6 credits per request
WHEN TO USE: When user wants to:
Convert artwork/designs into embroidery style
Create stitched/embroidered versions of logos or images
Prepare designs for print-on-demand embroidery products
Transform existing artwork to look like embroidery before rendering on mockups
INPUT: Provide image via EITHER:
image_url: Public URL to the image (PNG, JPG, WEBP supported)
image_data_b64: Base64-encoded image data Only ONE input method is required per request.
TIPS FOR BEST RESULTS:
Use high-contrast images with clean edges
Simpler designs with fewer colors produce more realistic embroidery effects
The output can be used directly in mockup renders or saved to asset library
RETURNS: {export_path} - URL to the generated embroidery image (temporary, should be downloaded or saved to permanent storage).
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | No | Public URL to the image to transform. Supported formats: PNG, JPG, WEBP. Either image_url OR image_data_b64 must be provided. | |
| image_data_b64 | No | Base64-encoded image data. Either image_url OR image_data_b64 must be provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and does so effectively. It discloses cost (6 credits per request), input requirements (mutually exclusive image_url or image_data_b64), output behavior (temporary URL that should be downloaded), and practical tips for best results. The only minor gap is lack of explicit rate limit or error handling information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (API, COST, WHEN TO USE, INPUT, TIPS, RETURNS) and every sentence earns its place by providing essential information. It's appropriately sized for a tool with cost implications and specific usage scenarios, with no redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (image transformation with cost implications), no annotations, and no output schema, the description provides comprehensive context. It covers purpose, usage guidelines, behavioral aspects (cost, input constraints, output handling), parameter semantics, and practical tips. The description fully compensates for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the mutual exclusivity requirement ('Only ONE input method is required per request'), providing context about supported formats, and offering practical guidance for best results. This goes well beyond what the schema provides, though it doesn't add syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Transform any image into a realistic embroidery/stitched effect') and distinguishes it from siblings by focusing on embroidery transformation rather than rendering, mockup editing, or file management. It provides concrete use cases that make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly includes a 'WHEN TO USE' section with four specific scenarios for using this tool, such as converting artwork to embroidery style or preparing designs for print-on-demand products. This provides clear guidance on when this tool is appropriate versus other tools in the sibling list that handle different tasks like rendering, collections, or file management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_psdA
Upload a PSD file to create custom mockup templates.
API: POST /psd/upload
WHEN TO USE: When user wants to:
Add their own PSD mockup template
Create custom mockups from their Photoshop files
The PSD must contain smart object layers for design placement
WORKFLOW:
Upload PSD with create_after_upload: true to auto-create mockup template
Or upload PSD first, then manually create mockup template later
RETURNS: {uuid, name} of the uploaded PSD file.
| Name | Required | Description | Default |
|---|---|---|---|
| psd_file_url | Yes | REQUIRED. Public URL to the PSD file. Must be directly downloadable (not a preview page). | |
| psd_name | No | Optional. Custom name for the uploaded PSD. If omitted, uses filename from URL. | |
| psd_category_id | No | Optional. Category ID for organizing PSD files. | |
| mockup_template | No | Optional. Settings for automatically creating a mockup template from the PSD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it describes the upload-to-creation workflow (auto vs. manual), specifies the PSD requirement (smart object layers), and outlines the return format ({uuid, name}). However, it doesn't mention potential rate limits, authentication needs, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, API, usage, workflow, returns), front-loaded with the core purpose, and every sentence adds value—no redundant or vague statements. It efficiently covers necessary information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters with nested objects, no output schema, no annotations), the description is mostly complete: it explains the purpose, usage, workflow, and returns. However, it lacks details on error handling, authentication, or how the tool integrates with sibling tools like create_collection for the collections parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter semantics beyond the schema—it mentions 'create_after_upload: true' in the workflow but doesn't explain other parameters like psd_category_id or mockup_template properties. It relies heavily on the schema for parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Upload a PSD file') and resource ('to create custom mockup templates'), distinguishing it from siblings like delete_psd (deletion) or get_mockups (retrieval). It explicitly mentions the purpose of adding user-owned PSD mockup templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a dedicated 'WHEN TO USE' section with explicit scenarios (adding custom templates, creating from Photoshop files) and prerequisites (PSD must contain smart object layers). It also distinguishes usage from alternatives by specifying the workflow options (auto-create vs. manual creation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
tool_create_embroidery_effect
12 tool updates
- First observed
create_batch_render - First observed
create_collection - First observed
create_render - First observed
delete_psd - First observed
embed_mockup_editor - First observed
export_print_files - First observed
get_api_info - First observed
get_catalogs - First observed
get_collections - First observed
get_mockup_by_uuid - First observed
get_mockups - First observed
upload_psd
TDQS
Scored across 13 tools
Most tools have distinct purposes, such as create_render for single renders, create_batch_render for multiple, and get_mockups for discovery. However, there is some overlap between get_mockups and get_mockup_by_uuid, as both retrieve mockup details, which could cause confusion about when to use each. The descriptions help clarify, but the boundary is not perfectly clear.
The naming follows a consistent verb_noun pattern with snake_case throughout, such as create_render, get_mockups, and upload_psd. There is one minor deviation with tool_create_embroidery_effect, which includes 'tool_' prefix, slightly breaking the pattern. Overall, the naming is highly predictable and readable.
With 13 tools, the count is well-scoped for a mockup rendering and management server. It covers core operations like rendering (create_render, create_batch_render), template management (upload_psd, delete_psd), discovery (get_mockups, get_catalogs), and additional features like embroidery effects and editor embedding, each serving a clear purpose without bloat.
The tool set provides complete coverage for the mockup domain, including CRUD operations for templates (upload_psd, delete_psd), rendering (create_render, create_batch_render, export_print_files), discovery and organization (get_mockups, get_catalogs, get_collections, create_collection), and extended features like embroidery effects and editor integration. There are no obvious gaps, enabling full workflow support.
Maintenance
Related MCP Connectors
- SudoMockOAuthcom.sudomock
Turn product photos or PSD templates into photorealistic mockups: place artwork, edit text, render.
Create, search, edit, and export designs and assets from Canva.
Generate on-brand images from your AI agent: design, edit, and render templates over MCP.
Image and video AI tools and your own pipelines, run from any AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProduct mockup rendering API for e-commerce and print-on-demand. Upload Photoshop PSD templates, render photorealistic mockups by placing your designs onto smart object layers. 9 tools including AI-powered render (no PSD needed), template management, and account info. Supports remote HTTP (OAuth) and local stdio (npx) transports.903 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to inspect, modify, export, and validate design documents with 47 tools covering design, code generation, branding, and print/mockup workflows.1 npm1MIT
- FlicenseAqualityDmaintenanceEnables to create print-on-demand products using the Printful API, allowing users to browse catalog, upload designs, create products, and generate mockups.23-
- AlicenseAqualityDmaintenanceEnables AI agents to create and configure product mockups on ultramock.io using your own logged-in subscription.111MIT