Skip to main content
Glama
vuluu2k

WebCake Storefront MCP

by vuluu2k

upload_images

Upload external image URLs, data URIs, or local files to the WebCake CDN, returning hosted URLs for storefront image fields. Required so non-whitelisted images render.

Instructions

Convert external image URLs, data: URIs, or LOCAL FILE PATHS into site-hosted CDN URLs by reading/downloading each image and re-uploading it to the WebCake backend. Use this whenever the user supplies their OWN images (their URLs or files from their machine), or a page is built from a reference HTML/URL. The returned CDN URLs go straight into an image element's specials.src / runtime.config.src, or a product/category image. This is REQUIRED for any external image (incl. Pexels search results) because the storefront only renders whitelisted WebCake-CDN image domains. Results are cached per site, so re-uploading the same source is free. Processes up to 20 entries per call in parallel; non jpeg/png/webp inputs are converted to JPEG. UPLOADS BY DEFAULT (dry_run defaults to FALSE — this touches no account data): returns an "images" map (original source → hosted URL). Pass dry_run:true to only preview the entries that WOULD be processed (local paths report whether the file exists + its size) without any network/filesystem upload. Local file paths are only permitted when the MCP server runs locally (stdio); on the remote HTTP transport they are rejected per-entry.

Input Schema

NameRequiredDescriptionDefault
urlsYesImage sources — 1–20 per call. Accepts: http(s) URLs, data:image/...;base64,... URIs, or local file paths (absolute /path, ~/path, file:// — stdio mode only).
dry_runNoDefault FALSE — actually reads/downloads and uploads, returning hosted URLs. Set true to only preview what would be processed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.31.8

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial context: uploads happen by default, results are cached per site so re-uploading is free, up to 20 entries process in parallel, non-jpeg/png/webp inputs are converted to JPEG, and local file paths only work over stdio transport (rejected per-entry on remote HTTP). These are real behavioral traits an agent cannot infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence and each subsequent sentence covers a distinct concern (when to use, required-ness, caching, throughput/conversion, dry_run, transport limits). Slightly long and mildly redundant where it restates 'dry_run defaults to FALSE' already present in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description covers the return shape ('images' map of original source to hosted URL), the side effects, the caching model, and the transport-specific limitation. An agent has everything needed to call it correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds meaning beyond the schema: dry_run preview reports whether a local file exists and its size, and the local-path transport restriction is spelled out as a per-entry rejection. Minor overlap with schema wording keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource+transformation: 'Convert external image URLs, data: URIs, or LOCAL FILE PATHS into site-hosted CDN URLs by reading/downloading each image and re-uploading it to the WebCake backend.' An agent can immediately distinguish this from siblings like search_images (which discovers external images) and the destination is named (specials.src / runtime.config.src).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use triggers ('whenever the user supplies their OWN images', 'a page is built from a reference HTML/URL') and an explicit mandate ('REQUIRED for any external image incl. Pexels search results') with the reason (storefront only renders whitelisted CDN domains). The alternative path is implicitly named via the Pexels/search_images reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools