Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

WebCake Storefront

NPM · WEBCAKE-STOREFRONT-MCP · 2 COMPONENTS

Build pages and manage products, orders, and content on the WebCake/StoreCake storefront builder.

0 this week 75 Trust /100

Last scanned (7 hours ago)

Scores higher than 51% of npm servers

Category E-commerce

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects sharp 0.34.5, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 39 of 155 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability75
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 17244 tokens (~130/item across 132 items; 132 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management96
  • Stability check failed: the tool surface changed between 1.31.11 and 1.38.0: 6 tool removals, 0 breaking changes, 3 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety47
  • Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "NEVER tell the user", at byte 5715 of that field. See how to fix → Fail
  • 8 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "publish_site" implies "publish" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 133 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 1.37.0 → 1.38.0 functional
  • 4 Nov 26 0
    • Package version: 1.36.2 → 1.37.0 functional
  • 29 Oct 26 0
    • Package version: 1.36.1 → 1.36.2 functional
  • 28 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 27 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.36.0 → 1.36.1 functional
  • 24 Oct 26 0
    • CVE-2023-54404 affects this package: high ▼ security
  • 22 Oct 26 0
    • CVE-2026-114113 affects this package: high ▼ security
    • CVE-2026-114111 affects this package: high ▼ security
    • CVE-2026-114112 affects this package: high ▼ security
    • Stability: fail → unverified ▼ security
    • Tool safety: fail → unverified ▼ security
    • GHSA-wq5f-xc86-pv6w no longer affects this package ▲ security
    • GHSA-rgj7-g3m4-5g8c no longer affects this package ▲ security
    • GHSA-f88m-g3jw-g9cj no longer affects this package ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 1.34.1 → 1.36.0 functional
  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 89 to 92.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/webcake-storefront-mcp@1.38.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 4 findings
ID CVE Severity Vector Fix available
GHSA-f88m-g3jw-g9cj CVE-2026-114113 high yes
GHSA-rgj7-g3m4-5g8c CVE-2026-114112 high yes
GHSA-wq5f-xc86-pv6w CVE-2026-114111 high yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 155 packages
Packages resolved 155
Stale 39
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 132 exposed · ~15,596 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
search_products ~48

Search products by keyword. Returns matching products with basic info

NameTypeReqDescription
limitnumber–Items per page
pagenumber–Page number
termstringyesSearch keyword

No output schema declared.

No examples provided.

search_promotions ~143

Search/filter ALL promotions (every page): by keyword, type, time status (coming_soon/in_progress/finished), active flag. Rows carry pos_id (non-null = synced with POS)

NameTypeReqDescription
is_activatedboolean–Filter by active status
statusnumber–Filter by time status: 1=coming_soon, 2=in_progress, 3=finished
termstring–Search by promotion name
typestring–Filter by type: normal, same_price, coupon, coupon_id_multiple_times, discount_by_coupon_id, promotion_order, promotion_category, x_get_y_prod, x_get_y_category

No output schema declared.

No examples provided.

search_tools ~145

Find WebCake tools by keyword across the FULL catalog — including capabilities NOT loaded natively (marketing/CRM, translations, media, appointments, affiliate, reviews, domains/SEO/shipping, brands/tags/ribbons, courses, sale channels, automation…). Returns name, group, description and JSON input schema. Then run one with invoke_read_tool (read-only) or invoke_tool.

NameTypeReqDescription
groupstring–Restrict to a group name (see list_tool_groups)
limitnumber–Max results (default 8)
querystringyesKeywords, e.g. 'affiliate payout', 'translate product', 'add domain ssl', 'block phone'

No output schema declared.

No examples provided.

semantic_search_themes ~118

Semantic search across the theme marketplace using bge-m3 embeddings (cosine similarity). Use when the brief is a natural-language description of industry + features (e.g. 'website mỹ phẩm có popup minigame và loyalty'), not just keywords. Returns top matches with theme_id, score, name, preview_url, thumbnail, description_vi/en

NameTypeReqDescription
limitnumber–Number of matches to return (default 5, max 10)
querystringyesNatural-language description of the desired website (industry + features)

No output schema declared.

No examples provided.

set_product_published ~53

Publish or unpublish one or more products quickly (without a full update).

NameTypeReqDescription
is_publishedbooleanyestrue = publish (visible), false = hide
product_idsarrayyesProduct ids

No output schema declared.

No examples provided.

start_page_draft ~350

Start a page draft (no network). Build a multi-section page safely: cache each section with add_draft_section, then commit_page_draft persists it to the backend INCREMENTALLY (resumable on timeout). Use this instead of build_page for large/multi-section pages. The draft cache is DISPOSABLE (Redis on the remote server when REDIS_URL is set, in-memory otherwise; sliding ~2h TTL) — if a draft is ever lost, just re-send the sections, never a failure. ONE page per site for type main (homepage) / error / maintain, and slugs are unique per site: the draft is refused up-front with the existing page_id to edit instead. Only 'custom' pages can be created over and over.

NameTypeReqDescription
is_homepageboolean–Set as the site homepage on commit
namestringyesPage name
seoobject–SEO for this page → settings.seo (applied on commit).
slugstringyesURL slug WITHOUT a leading slash, e.g. 'about', 'collections', 'cart'. A leading '/' is stripped automatically (the storefront matches the bare path segment, so '/cart' would 404). Store pages MUST u…
typestring–Page kind. SPECIAL pages need a site data-source enabled on commit: store→use_store, member→use_member, blog→use_blog, error→use_error, maintain→use_maintain. 'main'/'custom' need nothing.

No output schema declared.

No examples provided.

switch_site ~69

Switch to a different site by site_id. All subsequent tool calls will target the new site. The choice is saved to local database — next session will auto-connect to this site. Use list_my_sites first to find the site_id

NameTypeReqDescription
site_idstringyesThe site ID to switch to

No output schema declared.

No examples provided.

toggle_confirm_mode ~221

Toggle update confirmation mode. Controls whether update tools ask for user confirmation before saving. - "always_confirm" (default): Shows diff first, requires user approval before saving. Safer. - "auto_apply": Applies changes immediately without preview. Faster but riskier. Current mode is saved to database and persists across sessions. Call this tool when the user says things like: → "tự động xác nhận" / "auto confirm" / "không cần hỏi" / "don't ask" / "apply directly" → mode: "auto_apply" → "hỏi trước khi lưu" / "luôn hỏi" / "always ask" / "confirm before saving" / "xác nhận trước" → mode: "always_confirm"

NameTypeReqDescription
modestringyesSet to "always_confirm" (safe) or "auto_apply" (fast). Map user intent: "tự động"/"auto"/"không cần hỏi" → auto_apply, "hỏi lại"/"confirm"/"luôn hỏi" → always_confirm

No output schema declared.

No examples provided.

toggle_debug_render ~30

Toggle debug render mode for a CMS file

NameTypeReqDescription
cms_file_idstringyesCMS file ID

No output schema declared.

No examples provided.

uninstall_app ~61

Uninstall (remove) an installed application from the current site. Pass the app's subscription id — get it from list_apps (the `id` field) or get_app.

NameTypeReqDescription
idstringyesApp subscription id (from list_apps / get_app)

No output schema declared.

No examples provided.

update_app ~108

Update an installed app's configuration. Pass the app subscription id and an `attrs` object that is merged onto the subscription — usually `{ settings: {...} }`, optionally `{ status }`. For the product-review app, prefer update_app_review (it also propagates shop_info).

NameTypeReqDescription
attrsobjectyesFields to update, e.g. { "settings": { ... }, "status": 1 }
idstringyesApp subscription id (from list_apps / get_app)

No output schema declared.

No examples provided.

update_app_review ~101

Update the product-review app's settings (e.g. shop_info, auto-approve, display options). Pass the review app's subscription id (get_app with type "product_review") and the full `settings` object.

NameTypeReqDescription
idstringyesReview app subscription id (get_app type=product_review)
settingsobjectyesReview app settings object, e.g. { "shop_info": { ... }, "auto_approve": true }

No output schema declared.

No examples provided.

update_article ~271

Update a blog article. Only the fields you pass are changed — each one becomes a command in the same dashboard pipeline create_article uses. NOTE: renaming regenerates the slug, so pass slug in the SAME call if you want a custom one (it is applied after the rename).

NameTypeReqDescription
category_idsarray–Blog category IDs to file the post under (added, existing ones are kept)
contentstring–New HTML content (replaces the old content)
idstringyesArticle ID
imagesarray–Hosted image URLs; the first is the cover image
is_hiddenboolean–Hide from public
namestring–New title (regenerates the slug unless slug is also passed)
published_atstring–Publish date, ISO/naive datetime (render_inserted_at)
remove_category_idsarray–Blog category IDs to unfile the post from
seoobject–SEO settings to change; other existing SEO tags are kept. Pass "" to clear a field.
slugstring–New custom slug
summarystring–New summary / excerpt
tagsarray–Article TAG IDs (uuids from the blog tag list) — not free text

No output schema declared.

No examples provided.

update_auth ~99

Update authentication credentials. All values are saved to local database — next session auto-restores them. Get token and session_id from browser DevTools → Network tab → copy from any API request headers

NameTypeReqDescription
api_urlstring–API base URL (e.g. https://api.storecake.io)
session_idstring–Session ID (from x-session-id header)
tokenstring–JWT Bearer token (from Authorization header)

No output schema declared.

No examples provided.

update_blog_category ~106

Update a blog/article category (name, description, image, slug, SEO). Pass id + fields to change.

NameTypeReqDescription
descriptionstring–New description
idstringyesBlog category id
imagestring–New hosted image URL
namestring–New name
seoobject–SEO settings to change; other existing SEO tags are kept. Pass "" to clear a field.
slugstring–New custom slug

No output schema declared.

No examples provided.

update_cms_file ~49

Update the code content of an existing CMS file

NameTypeReqDescription
contentstringyesNew code content
idstringyesCMS file ID
namestring–Rename file

No output schema declared.

No examples provided.

update_collection_columns ~86

Add or change a collection's custom columns. Reads the current schema, then PATCHes it with the system columns + your custom columns (the PATCH replaces the whole schema, so omitting a column drops it).

NameTypeReqDescription
collection_idstringyesCollection id (from list_collections / get_collection).
columnsarrayyesThe FULL set of custom columns the table should have.

No output schema declared.

No examples provided.

update_global_source ~155

Replace full source of a global source. IMPORTANT: Before calling this tool, you MUST: 1. Read existing source with get_global_source_detail first 2. Show the user what will change and get explicit confirmation 3. NEVER call without user approval — this replaces the ENTIRE source Safeguarded: blocks if new source is <50% of existing size. For element-level changes, prefer update_global_source_element instead.

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
global_source_idstringyesGlobal source ID
source––New source configuration (JSON object)

No output schema declared.

No examples provided.

update_global_source_contents ~78

Update multilingual contents (upsert). Each entry: global_source_id, language_code, content. IMPORTANT: Before calling, you MUST read existing contents with get_global_source_contents first, then show the user what will change and get explicit confirmation. NEVER update without user approval.

NameTypeReqDescription
contentsarrayyesArray of content entries to upsert

No output schema declared.

No examples provided.

update_global_source_element ~378

Update a single element within a global source. Two-step process: STEP 1: Call with dry_run=true (default) → returns diff of what will change. STEP 2: Show the diff to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Merge rules: style/config/specials = shallow merge, responsive = merge by bp key. events/bindings = REPLACE the whole array — pass the COMPLETE list (read it first); entries are auto-normalized (id + eventName filled in).

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
bindingsarray–Complete bindings array (replaces existing)
componentstring–Component hint for faster lookup
configobject–Config properties to merge
dry_runboolean–Preview only (true) or apply changes (false). Defaults to confirm_mode setting. Use toggle_confirm_mode to change default.
element_idstringyesElement ID to update (e.g. 'TEXT-3', 'BUTTON-1')
eventsarray–Complete events array (replaces existing)
global_source_idstringyesGlobal source ID
responsiveobject–Responsive overrides (e.g. {bp1: {style: {...}}})
specialsobject–Specials to merge (text, custom_class, custom_css)
styleobject–CSS style properties to merge

No output schema declared.

No examples provided.

update_global_source_elements ~232

Batch update multiple elements in one global source. Two-step process: STEP 1: Call with dry_run=true (default) → returns per-element diff. STEP 2: Show all diffs to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Same merge rules: style/config/specials = shallow merge, events/bindings = replace.

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
componentstring–Component hint for faster lookup
dry_runboolean–Preview only (true) or apply changes (false). Defaults to confirm_mode setting.
global_source_idstringyesGlobal source ID
updatesarrayyesArray of element updates

No output schema declared.

No examples provided.

update_http_function ~77

Write the FULL HTTP function file content. Best for: writing new features, major refactors, or changes that touch multiple functions. For small targeted edits (fix one function, add one function), use edit_http_function instead. After update, auto-deploys to the bundle service

NameTypeReqDescription
contentstringyesFull JS code content

No output schema declared.

No examples provided.

update_page ~179

Update page properties: name, slug, homepage, SEO ("Cài đặt SEO") and settings. seo / settings are MERGED into the page's current settings — fields you don't pass are kept.

NameTypeReqDescription
is_homepageboolean–Set as homepage
namestring–New name
page_idstringyesPage ID
seoobject–SEO → settings.seo (title/description/keyword/favicon/thumbnail/og_*). Merged; other SEO fields kept. Tokens {{name_page}}/{{name_site}} allowed.
settingsobject–Other page settings keys to merge (top-level keys replace)
slugstring–New slug WITHOUT a leading slash (e.g. 'about', 'cart'). A leading '/' is stripped automatically — '/cart' would 404 on the storefront.

No output schema declared.

No examples provided.

update_page_content ~154

Create/update page content for a specific language. IMPORTANT: Before calling, you MUST read existing content with list_page_contents first, then show the user what will change and get explicit confirmation. NEVER update without user approval.

NameTypeReqDescription
contentobjectyesTranslations keyed by element id → field, e.g. { "<elementId>": { "text": "Hello" } } (also "placeholder", or "options": [{ id, name }]). Replaces this language's whole map — merge into the existing…
language_codestringyesLanguage code (e.g. 'en', 'vi')
meta_tagsarray–SEO meta tags
page_idstringyesPage ID

No output schema declared.

No examples provided.

update_page_element ~414

Update properties of a specific element in page source. Two-step process: STEP 1: Call with dry_run=true (default) → returns diff of what will change. STEP 2: Show the diff to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Merge rules: style/config/specials = shallow merge, responsive = merge by bp key. events/bindings = REPLACE the whole array — pass the COMPLETE list (read it first with get_page_element so you don't drop the others); entries are auto-normalized (id + eventName filled in, so you can pass just { action, ...fields } / { target }).

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
bindingsarray–Complete bindings array (replaces existing)
configobject–Config properties to merge
dry_runboolean–Preview only (true) or apply changes (false). Defaults to confirm_mode setting. Use toggle_confirm_mode to change default.
element_idstringyesElement ID to update (e.g. 'TEXT-3', 'BUTTON-1')
eventsarray–Complete events array (replaces existing)
page_idstringyesPage ID
responsiveobject–Responsive breakpoint overrides (e.g. {bp1: {style: {...}, config: {...}}})
specialsobject–Specials to merge (text, custom_class, custom_css, etc.)
styleobject–CSS style properties to merge (e.g. {color: '#fff', 'font-size': '16px'})

No output schema declared.

No examples provided.

update_page_elements ~216

Batch update multiple elements in one page. Two-step process: STEP 1: Call with dry_run=true (default) → returns per-element diff. STEP 2: Show all diffs to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Same merge rules: style/config/specials = shallow merge, events/bindings = replace.

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
dry_runboolean–Preview only (true) or apply changes (false). Defaults to confirm_mode setting.
page_idstringyesPage ID
updatesarrayyesArray of element updates

No output schema declared.

No examples provided.

update_page_source ~215

Directly update the full page source JSON. IMPORTANT: Before calling this tool, you MUST: 1. Read existing source with get_page_source first 2. Show the user what will change and get explicit confirmation 3. NEVER call without user approval — this replaces the ENTIRE page source Safeguarded: blocks if new source is <50% of existing size.

NameTypeReqDescription
allow_shrinkboolean–Allow the source to shrink by more than half: set it when native elements replaced an oversized embed or custom_css and you have read it first.
custom_codestring–Custom code (CSS/JS) for this page. Last resort, same rules as update_site_custom_code.
native_gapstring–Only when the code was refused and no native way exists: the need, the elements/apps you checked, and what each one lacks. Tell the user first.
page_idstringyesPage ID
source––Full page source object (sections tree) or JSON string

No output schema declared.

No examples provided.

update_product ~193

Update an existing product. Pass product_id + only the fields to change. To change price/stock, pass variations (get_product first to see the existing variation shape). Images must be hosted CDN urls (search_images cdn_url / upload_images).

NameTypeReqDescription
category_idsarray–Replace the product's categories
descriptionstring–New description (HTML allowed)
imagesarray–New hosted image URLs; first becomes the thumbnail
is_publishedboolean–Publish/unpublish the product
namestring–New name
product_idstringyesProduct id to update
seoobject–SEO settings to change; other existing SEO tags and the slug are kept. Pass "" to clear a field.
variationsarray–Replace variations (price/stock/SKU per variant). Reuse existing custom_ids from get_product to edit in place.

No output schema declared.

No examples provided.

update_product_category ~112

Update a product category (name, image, description, visibility, SEO). Pass id + fields to change.

NameTypeReqDescription
descriptionstring–New description
hiddenboolean–Hide (true) or show (false) the category
idstringyesCategory id
imagestring–New hosted image URL
namestring–New name
seoobject–SEO settings to change; other existing SEO tags are kept. Pass "" to clear a field.

No output schema declared.

No examples provided.

update_site_custom_code ~315

Update custom code (CSS/JS) for the entire site. Only sends fields you specify — others remain unchanged. LAST RESORT: use native elements, their settings or an app first; a special feature uses the CMS app (collection + HTTP function) with only a small glue script here. See get_build_guide → NATIVE FIRST. Oversized code or UI/data in code is refused unless native_gap explains why. IMPORTANT: Before calling, you MUST read existing code with get_site_custom_code first, then show the user what will change and get explicit confirmation. NEVER update without user approval. - code_before_head: HTML/script inserted before </head> - code_before_body: HTML/script inserted before </body> - code_custom_css: Custom CSS (auto-wrapped in <style>) - code_custom_javascript: Custom JavaScript

NameTypeReqDescription
allow_shrinkboolean–Allow removing more than half of a field: set it when native elements or the CMS replaced that code and you have read it first.
code_before_bodystring–HTML/script to insert before </body>
code_before_headstring–HTML/script to insert in <head>
code_custom_cssstring–Custom CSS for the site
code_custom_javascriptstring–Custom JavaScript for the site
native_gapstring–Only when the code was refused and no native way exists: the need, the elements/apps you checked, and what each one lacks. Tell the user first.

No output schema declared.

No examples provided.

upload_images ~342

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.

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

No output schema declared.

No examples provided.

validate_page ~68

Validate a page source ({ sections: [...] }). Returns errors (block saving: duplicate/missing ids, missing types) and warnings (unknown types, form fields without field_name, dangling event targets) plus stats. Always run this before build_page.

NameTypeReqDescription
source––Page source object or JSON string

No output schema declared.

No examples provided.

Install

How do I install the WebCake Storefront MCP server?

WebCake Storefront runs locally as an npm package, launched with npx -y webcake-storefront-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · webcake-storefront-mcp

# add to Claude Code
claude mcp add vuluu2k-webcake-storefront-mcp -- npx -y webcake-storefront-mcp
Common questions

What is the WebCake Storefront MCP server?

WebCake Storefront is an MCP server listed in the public MCP registry as io.github.vuluu2k/webcake-storefront-mcp. Build pages and manage products, orders, and content on the WebCake/StoreCake storefront builder. This page covers its npm package (webcake-storefront-mcp).

Is the WebCake Storefront MCP server safe to use?

WebCake Storefront scores 75 out of 100 on VerifyMCP. We recorded 4 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the WebCake Storefront MCP server expose?

WebCake Storefront exposes 132 tools: get_intake_guide, get_current_context, list_my_sites, create_site, switch_site, and 127 more. Their descriptions and schemas cost roughly 15,596 tokens of context every time the server is loaded.

Is the WebCake Storefront MCP server still maintained?

WebCake Storefront is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the WebCake Storefront MCP server under?

WebCake Storefront declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.