@wix/mcp 1.0.90 → 1.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71599,7 +71599,7 @@ function buildSystemReminderGuidelines(includeReadme, includeImageUploadGuidance
71599
71599
  "if the WixREADME tool is available to you, YOU MUST USE IT AT THE BEGINNING OF ANY CONVERSATION and then continue with calling the other tools and calling the Wix APIs until the task is completed.",
71600
71600
  "**Exception \u2014 creating a new Wix site/website:** For a normal creation request \u2014 and only then \u2014 skip WixREADME and the docs search, and route straight to the Wix site-creation tools available to you; their descriptions carry the routing rules. Everything else starts with WixREADME as usual.",
71601
71601
  "If the user explicitly asks for a headless site, Wix Classic Editor site, or manual account/API-based site creation, call CreateWixBusinessGuide right away \u2014 these don't need the site's purpose first.",
71602
- "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call DeployWebsite right away \u2014 not a site-creation tool, not the docs.",
71602
+ "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call StartDeployWebsite right away \u2014 not a site-creation tool, not the docs.",
71603
71603
  "Never default to AI or search templates unless the user explicitly requests it. When the user named no creation method - let the user make that choice as the site-creation tools' descriptions direct. Never route normal site creation through ManageWixSite, CallWixSiteAPI, or ExecuteWixAPI."
71604
71604
  );
71605
71605
  }
@@ -71679,9 +71679,11 @@ var SITE_CREATION_COPY = {
71679
71679
  }
71680
71680
  };
71681
71681
  var SITE_GUIDANCE = dedent_default`
71682
- A new-site request has two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
71682
+ First decide which of two different things is being asked for:
71683
+ - The site is code the user or you control — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page or design you made earlier in this conversation — and it should go live on Wix. This is also the route whenever the user wants to keep working on the site here, with you: a Wix Headless site is a regular coded site, so you keep full control of the design and can change and redeploy it from this conversation at any time, and Wix business capabilities can be added to it as a backend when they are needed. Call StartDeployWebsite: it returns the recipe to host those exact files as a Wix Headless site (updates reuse the same site and URL; the drop page is only its fallback). Do not offer AI or templates for this and do not call any site-creation tool.
71684
+ - Wix should create the site — generated with AI from a description, or started from a template — and the user will design and edit it in Wix rather than through you. That is what the site-creation tools do; they never take files you already have.
71683
71685
 
71684
- One case skips all of this: a finished page or site ALREADY EXISTS, in any form — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page you made earlier in this conversation. There is nothing to build, so don't offer AI or templates and don't call any site-creation tool: call DeployWebsite, which returns the recipe to publish the files yourself (the drop page is only its fallback).
71686
+ For a new site there are two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
71685
71687
 
71686
71688
  Settle what the site is for first: its purpose, topic, business type, audience, or main visitor action. Naming a method is not a description of the site, and neither is the business or industry on its own.
71687
71689
  If you can't tell yet, ask the preferred question below and nothing else — one question, no creation-method question in the same reply, and no internal tool names.
@@ -72073,7 +72075,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
72073
72075
  `,
72074
72076
  "import-claude-design-from-url": dedent_default`
72075
72077
  Import a design created in Claude's design tool into Wix. Takes the signed claudeusercontent.com URL Claude Design produces for its self-contained HTML bundle (all images, fonts, and styles inlined); any other host is rejected. Creates a live Wix-hosted site and returns its URL.
72076
- NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call DeployWebsite instead; it returns the recipe to publish the files yourself.
72078
+ NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call StartDeployWebsite instead; it returns the recipe to publish the files yourself.
72077
72079
  `,
72078
72080
  RunWixCliCommand: dedent_default`
72079
72081
  Executes Wix CLI commands for Wix app development and management.
@@ -72505,14 +72507,14 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
72505
72507
  WixSiteBuilder: dedent_default`
72506
72508
  ${SITE_GUIDANCE}
72507
72509
 
72508
- Tool for generating a Wix site with AI (creating / building a site in Wix Harmony).
72510
+ Tool for generating a Wix site with AI (creating / building a site in Wix Harmony) from a description. It does not take pages or files you already have — those go to StartDeployWebsite.
72509
72511
 
72510
72512
  Call this ONLY when the user's own words name AI (for example "create a site using AI" or "build it with AI") and the site intent is clear. A description of what the site should do — reservations, online ordering, a store, bookings, menus, a portfolio, and the like — is NOT a request for AI and NOT enough to call this tool; never infer AI from features or industry.
72511
72513
  Never default to this tool: if the user hasn't explicitly named AI, don't call this tool — ${SITE_CREATION_COPY.unstatedMethod.nonWidget}.
72512
72514
 
72513
72515
  For templates or Wix Studio, call \`SearchSiteTemplates\`; for a specific template by \`metaSiteId\` or \`templateId\`, call \`CreateSiteFromTemplate\`; for a headless or classic Wix Editor site, or manual/account-API creation, call \`CreateWixBusinessGuide\`.
72514
72516
 
72515
- Do NOT suggest HTML code, prompt templates, or alternative approaches — actually build the site through this tool.
72517
+ Do NOT suggest HTML code, prompt templates, or alternative approaches instead of building — actually build the site through this tool. (HTML the user already has is the StartDeployWebsite case, not a reason to build.)
72516
72518
  `,
72517
72519
  SearchSiteTemplates: dedent_default`
72518
72520
  ${SITE_GUIDANCE}
@@ -72555,9 +72557,9 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
72555
72557
  Results: each root field fails independently — \`errors[].path\` names the failing field and \`errors[].extensions.message\` the cause (e.g. PERMISSION_DENIED); \`data\` still holds the fields that succeeded. Mutations return the created/updated entity — read the IDs from it and do not re-query to verify. Large results are truncated: narrow the selection or page size instead of re-running.
72556
72558
  Set \`hasMutations: true\` for any document containing a mutation root field.
72557
72559
  `,
72558
- DeployWebsite: dedent_default`
72559
- The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix: HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, or upload my site / index.html.
72560
- Also for updating a site deployed this way (replace its files; same site, same URL) and for implementing a backend on one (stores, bookings, CMS, members) as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
72560
+ StartDeployWebsite: dedent_default`
72561
+ The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix — or an already-deployed Wix Headless site whose files should be replaced. The site can be HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, update my site, or upload my site / index.html.
72562
+ Updates keep the same site and URL. Also for implementing a backend on such a site as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
72561
72563
  Missing real functionality — a fake checkout, a form that goes nowhere, bookings — is NOT a reason to rebuild the site with a site-creation tool: deploy the page as is, then add the backend afterwards (the recipe covers it).
72562
72564
  Returns the full recipe; follow it and run the flow yourself. The drop page is only the fallback when you can't.
72563
72565
  NOT for: a screenshot, mockup or reference image of a site the user WANTS (nothing exists to deploy yet — that is site creation: WixSiteBuilder / templates); a Claude Design share URL (import-claude-design-from-url); migrating a live site by URL or CSV exports; adding HTML or code into an existing Wix site; uploading images or documents to a site's media (UploadImageToWixSite).
@@ -72565,7 +72567,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
72565
72567
  CreateWixBusinessGuide: dedent_default`
72566
72568
  Provides comprehensive documentation for creating a new Wix business (site, app, etc.).
72567
72569
  Call this ONLY when the user explicitly asks for a headless site, a Wix Classic Editor site, or manual/advanced account/API-based site creation — these don't need the site's purpose first. For normal site-creation ${SITE_CREATION_COPY.normalCreationRoute.nonWidget}; for a specific template id, call \`CreateSiteFromTemplate\`.
72568
- Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call DeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
72570
+ Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call StartDeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
72569
72571
 
72570
72572
  ## What This Tool Contains
72571
72573
 
@@ -73674,39 +73676,57 @@ ${articleContent}${nextSteps}`;
73674
73676
  );
73675
73677
  }
73676
73678
 
73677
- // src/docs/deploy-website.ts
73678
- var DEPLOY_WEBSITE_TOOL_NAME = "DeployWebsite";
73679
- var DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
73679
+ // src/docs/start-deploy-website.ts
73680
+ var START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS = {
73681
+ userRequest: "The user's request that led here, quoted if short, otherwise summarized in a sentence.",
73682
+ siteDescription: "What the site is: its purpose and who it is for. One or two sentences.",
73683
+ siteForm: "The form the site exists in right now (HTML/CSS/JS files, a static build, a zip, another builder's export, a design created in this conversation, or something else), roughly how many files, and whether it includes images.",
73684
+ siteFunctionality: "What the site must be able to do for its visitors beyond showing pages, if anything (for example selling, bookings or reservations, tickets, menus and orders, rentals, forms, memberships or paid plans, donations, a blog, or anything else the user expects to work), in your own words. If it is a plain static site with no such needs, say so.",
73685
+ agentIdentity: "Which agent or product you are and the harness you run in.",
73686
+ wixAccess: "How you can reach Wix from where you run: through this MCP only, or also from a shell whose network can reach wixapis.com; whether you can run the Wix CLI (npx @wix/cli) there and whether it is logged in; and which Wix identity you act with \u2014 the user's login through this MCP, a CLI login, or none."
73687
+ };
73688
+ var START_DEPLOY_WEBSITE_PARAMS = Object.keys(
73689
+ START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS
73690
+ );
73691
+ var START_DEPLOY_WEBSITE_TOOL_NAME = "StartDeployWebsite";
73692
+ var START_DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
73680
73693
  var DROP_PAGE_URL = "https://www.wix.com/headless/drop?utm_campaign=mcp";
73681
73694
  var FALLBACK_LINE = `Only if you cannot run it (you can't reach the file bytes, or a step fails and you can't fix it): send the user to ${DROP_PAGE_URL} \u2014 give that URL exactly as written, keeping the utm_campaign=mcp parameter.`;
73682
- function deployWebsiteResponse(recipe) {
73695
+ function startDeployWebsiteResponse(recipe) {
73683
73696
  return [
73684
- `The following is the content of ${DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
73697
+ `The following is the content of ${START_DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
73685
73698
  FALLBACK_LINE,
73686
73699
  "---",
73687
73700
  recipe.trim()
73688
73701
  ].join("\n\n");
73689
73702
  }
73690
- var DEPLOY_WEBSITE_POINTER_RESPONSE = [
73691
- `Read and follow this recipe end to end: ${DEPLOY_WEBSITE_RECIPE_URL}`,
73703
+ var START_DEPLOY_WEBSITE_POINTER_RESPONSE = [
73704
+ `Read and follow this recipe end to end: ${START_DEPLOY_WEBSITE_RECIPE_URL}`,
73692
73705
  "It covers creating the site and uploading the files (with or without a Wix login), updating a site deployed this way, and implementing a backend on it (stores, bookings, CMS, members) as a Wix Headless project. Do the publishing yourself \u2014 do not hand the user instructions.",
73693
73706
  FALLBACK_LINE
73694
73707
  ].join("\n\n");
73695
- function addDeployWebsiteTool(server2, disableTools = [], toolDescriptions, fetchOptions = {}) {
73696
- if (disableTools.includes(DEPLOY_WEBSITE_TOOL_NAME)) {
73708
+ function addStartDeployWebsiteTool(server2, disableTools = [], toolDescriptions, fetchOptions = {}) {
73709
+ if (disableTools.includes(START_DEPLOY_WEBSITE_TOOL_NAME)) {
73697
73710
  return;
73698
73711
  }
73699
73712
  server2.tool(
73700
- DEPLOY_WEBSITE_TOOL_NAME,
73701
- toolDescriptions?.[DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[DEPLOY_WEBSITE_TOOL_NAME],
73702
- {},
73713
+ START_DEPLOY_WEBSITE_TOOL_NAME,
73714
+ toolDescriptions?.[START_DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[START_DEPLOY_WEBSITE_TOOL_NAME],
73715
+ {
73716
+ userRequest: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.userRequest),
73717
+ siteDescription: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteDescription),
73718
+ siteForm: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteForm),
73719
+ siteFunctionality: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteFunctionality),
73720
+ agentIdentity: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.agentIdentity),
73721
+ wixAccess: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.wixAccess)
73722
+ },
73703
73723
  { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
73704
73724
  async (_args, { httpClient }) => {
73705
- let text = DEPLOY_WEBSITE_POINTER_RESPONSE;
73725
+ let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
73706
73726
  try {
73707
73727
  const recipe = await fetchArticleContent(
73708
73728
  httpClient,
73709
- DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
73729
+ START_DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
73710
73730
  "article",
73711
73731
  true,
73712
73732
  fetchOptions.skillsPortalUrl,
@@ -73714,11 +73734,11 @@ function addDeployWebsiteTool(server2, disableTools = [], toolDescriptions, fetc
73714
73734
  fetchOptions.commitHash
73715
73735
  );
73716
73736
  if (recipe && recipe.trim()) {
73717
- text = deployWebsiteResponse(recipe);
73737
+ text = startDeployWebsiteResponse(recipe);
73718
73738
  }
73719
73739
  } catch (error2) {
73720
73740
  console.warn(
73721
- `[DeployWebsite] recipe fetch failed, returning the pointer:`,
73741
+ `[StartDeployWebsite] recipe fetch failed, returning the pointer:`,
73722
73742
  error2 instanceof Error ? error2.message : error2
73723
73743
  );
73724
73744
  }
@@ -73786,7 +73806,7 @@ var addDocsTools = (server2, allowedTools = [
73786
73806
  const {
73787
73807
  getToKnowWixEnabled = false,
73788
73808
  createWixBusinessGuideEnabled = true,
73789
- deployWebsiteEnabled = true,
73809
+ startDeployWebsiteEnabled = true,
73790
73810
  disableTools,
73791
73811
  toolDescriptions,
73792
73812
  readmeDocs,
@@ -73852,8 +73872,8 @@ var addDocsTools = (server2, allowedTools = [
73852
73872
  cliEnabled
73853
73873
  );
73854
73874
  }
73855
- if (deployWebsiteEnabled) {
73856
- addDeployWebsiteTool(server2, disableTools || [], toolDescriptions, {
73875
+ if (startDeployWebsiteEnabled) {
73876
+ addStartDeployWebsiteTool(server2, disableTools || [], toolDescriptions, {
73857
73877
  skillsPortalUrl,
73858
73878
  repo: effectiveRepo,
73859
73879
  commitHash: effectiveCommitHash
@@ -37215,7 +37215,7 @@ function buildSystemReminderGuidelines(includeReadme, includeImageUploadGuidance
37215
37215
  "if the WixREADME tool is available to you, YOU MUST USE IT AT THE BEGINNING OF ANY CONVERSATION and then continue with calling the other tools and calling the Wix APIs until the task is completed.",
37216
37216
  "**Exception \u2014 creating a new Wix site/website:** For a normal creation request \u2014 and only then \u2014 skip WixREADME and the docs search, and route straight to the Wix site-creation tools available to you; their descriptions carry the routing rules. Everything else starts with WixREADME as usual.",
37217
37217
  "If the user explicitly asks for a headless site, Wix Classic Editor site, or manual account/API-based site creation, call CreateWixBusinessGuide right away \u2014 these don't need the site's purpose first.",
37218
- "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call DeployWebsite right away \u2014 not a site-creation tool, not the docs.",
37218
+ "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call StartDeployWebsite right away \u2014 not a site-creation tool, not the docs.",
37219
37219
  "Never default to AI or search templates unless the user explicitly requests it. When the user named no creation method - let the user make that choice as the site-creation tools' descriptions direct. Never route normal site creation through ManageWixSite, CallWixSiteAPI, or ExecuteWixAPI."
37220
37220
  );
37221
37221
  }
@@ -37295,9 +37295,11 @@ var SITE_CREATION_COPY = {
37295
37295
  }
37296
37296
  };
37297
37297
  var SITE_GUIDANCE = dedent_default`
37298
- A new-site request has two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
37298
+ First decide which of two different things is being asked for:
37299
+ - The site is code the user or you control — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page or design you made earlier in this conversation — and it should go live on Wix. This is also the route whenever the user wants to keep working on the site here, with you: a Wix Headless site is a regular coded site, so you keep full control of the design and can change and redeploy it from this conversation at any time, and Wix business capabilities can be added to it as a backend when they are needed. Call StartDeployWebsite: it returns the recipe to host those exact files as a Wix Headless site (updates reuse the same site and URL; the drop page is only its fallback). Do not offer AI or templates for this and do not call any site-creation tool.
37300
+ - Wix should create the site — generated with AI from a description, or started from a template — and the user will design and edit it in Wix rather than through you. That is what the site-creation tools do; they never take files you already have.
37299
37301
 
37300
- One case skips all of this: a finished page or site ALREADY EXISTS, in any form — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page you made earlier in this conversation. There is nothing to build, so don't offer AI or templates and don't call any site-creation tool: call DeployWebsite, which returns the recipe to publish the files yourself (the drop page is only its fallback).
37302
+ For a new site there are two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
37301
37303
 
37302
37304
  Settle what the site is for first: its purpose, topic, business type, audience, or main visitor action. Naming a method is not a description of the site, and neither is the business or industry on its own.
37303
37305
  If you can't tell yet, ask the preferred question below and nothing else — one question, no creation-method question in the same reply, and no internal tool names.
@@ -37689,7 +37691,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
37689
37691
  `,
37690
37692
  "import-claude-design-from-url": dedent_default`
37691
37693
  Import a design created in Claude's design tool into Wix. Takes the signed claudeusercontent.com URL Claude Design produces for its self-contained HTML bundle (all images, fonts, and styles inlined); any other host is rejected. Creates a live Wix-hosted site and returns its URL.
37692
- NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call DeployWebsite instead; it returns the recipe to publish the files yourself.
37694
+ NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call StartDeployWebsite instead; it returns the recipe to publish the files yourself.
37693
37695
  `,
37694
37696
  RunWixCliCommand: dedent_default`
37695
37697
  Executes Wix CLI commands for Wix app development and management.
@@ -38121,14 +38123,14 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
38121
38123
  WixSiteBuilder: dedent_default`
38122
38124
  ${SITE_GUIDANCE}
38123
38125
 
38124
- Tool for generating a Wix site with AI (creating / building a site in Wix Harmony).
38126
+ Tool for generating a Wix site with AI (creating / building a site in Wix Harmony) from a description. It does not take pages or files you already have — those go to StartDeployWebsite.
38125
38127
 
38126
38128
  Call this ONLY when the user's own words name AI (for example "create a site using AI" or "build it with AI") and the site intent is clear. A description of what the site should do — reservations, online ordering, a store, bookings, menus, a portfolio, and the like — is NOT a request for AI and NOT enough to call this tool; never infer AI from features or industry.
38127
38129
  Never default to this tool: if the user hasn't explicitly named AI, don't call this tool — ${SITE_CREATION_COPY.unstatedMethod.nonWidget}.
38128
38130
 
38129
38131
  For templates or Wix Studio, call \`SearchSiteTemplates\`; for a specific template by \`metaSiteId\` or \`templateId\`, call \`CreateSiteFromTemplate\`; for a headless or classic Wix Editor site, or manual/account-API creation, call \`CreateWixBusinessGuide\`.
38130
38132
 
38131
- Do NOT suggest HTML code, prompt templates, or alternative approaches — actually build the site through this tool.
38133
+ Do NOT suggest HTML code, prompt templates, or alternative approaches instead of building — actually build the site through this tool. (HTML the user already has is the StartDeployWebsite case, not a reason to build.)
38132
38134
  `,
38133
38135
  SearchSiteTemplates: dedent_default`
38134
38136
  ${SITE_GUIDANCE}
@@ -38171,9 +38173,9 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
38171
38173
  Results: each root field fails independently — \`errors[].path\` names the failing field and \`errors[].extensions.message\` the cause (e.g. PERMISSION_DENIED); \`data\` still holds the fields that succeeded. Mutations return the created/updated entity — read the IDs from it and do not re-query to verify. Large results are truncated: narrow the selection or page size instead of re-running.
38172
38174
  Set \`hasMutations: true\` for any document containing a mutation root field.
38173
38175
  `,
38174
- DeployWebsite: dedent_default`
38175
- The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix: HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, or upload my site / index.html.
38176
- Also for updating a site deployed this way (replace its files; same site, same URL) and for implementing a backend on one (stores, bookings, CMS, members) as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
38176
+ StartDeployWebsite: dedent_default`
38177
+ The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix — or an already-deployed Wix Headless site whose files should be replaced. The site can be HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, update my site, or upload my site / index.html.
38178
+ Updates keep the same site and URL. Also for implementing a backend on such a site as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
38177
38179
  Missing real functionality — a fake checkout, a form that goes nowhere, bookings — is NOT a reason to rebuild the site with a site-creation tool: deploy the page as is, then add the backend afterwards (the recipe covers it).
38178
38180
  Returns the full recipe; follow it and run the flow yourself. The drop page is only the fallback when you can't.
38179
38181
  NOT for: a screenshot, mockup or reference image of a site the user WANTS (nothing exists to deploy yet — that is site creation: WixSiteBuilder / templates); a Claude Design share URL (import-claude-design-from-url); migrating a live site by URL or CSV exports; adding HTML or code into an existing Wix site; uploading images or documents to a site's media (UploadImageToWixSite).
@@ -38181,7 +38183,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
38181
38183
  CreateWixBusinessGuide: dedent_default`
38182
38184
  Provides comprehensive documentation for creating a new Wix business (site, app, etc.).
38183
38185
  Call this ONLY when the user explicitly asks for a headless site, a Wix Classic Editor site, or manual/advanced account/API-based site creation — these don't need the site's purpose first. For normal site-creation ${SITE_CREATION_COPY.normalCreationRoute.nonWidget}; for a specific template id, call \`CreateSiteFromTemplate\`.
38184
- Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call DeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
38186
+ Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call StartDeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
38185
38187
 
38186
38188
  ## What This Tool Contains
38187
38189
 
@@ -39328,39 +39330,57 @@ ${articleContent}${nextSteps}`;
39328
39330
  );
39329
39331
  }
39330
39332
 
39331
- // src/docs/deploy-website.ts
39332
- var DEPLOY_WEBSITE_TOOL_NAME = "DeployWebsite";
39333
- var DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
39333
+ // src/docs/start-deploy-website.ts
39334
+ var START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS = {
39335
+ userRequest: "The user's request that led here, quoted if short, otherwise summarized in a sentence.",
39336
+ siteDescription: "What the site is: its purpose and who it is for. One or two sentences.",
39337
+ siteForm: "The form the site exists in right now (HTML/CSS/JS files, a static build, a zip, another builder's export, a design created in this conversation, or something else), roughly how many files, and whether it includes images.",
39338
+ siteFunctionality: "What the site must be able to do for its visitors beyond showing pages, if anything (for example selling, bookings or reservations, tickets, menus and orders, rentals, forms, memberships or paid plans, donations, a blog, or anything else the user expects to work), in your own words. If it is a plain static site with no such needs, say so.",
39339
+ agentIdentity: "Which agent or product you are and the harness you run in.",
39340
+ wixAccess: "How you can reach Wix from where you run: through this MCP only, or also from a shell whose network can reach wixapis.com; whether you can run the Wix CLI (npx @wix/cli) there and whether it is logged in; and which Wix identity you act with \u2014 the user's login through this MCP, a CLI login, or none."
39341
+ };
39342
+ var START_DEPLOY_WEBSITE_PARAMS = Object.keys(
39343
+ START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS
39344
+ );
39345
+ var START_DEPLOY_WEBSITE_TOOL_NAME = "StartDeployWebsite";
39346
+ var START_DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
39334
39347
  var DROP_PAGE_URL = "https://www.wix.com/headless/drop?utm_campaign=mcp";
39335
39348
  var FALLBACK_LINE = `Only if you cannot run it (you can't reach the file bytes, or a step fails and you can't fix it): send the user to ${DROP_PAGE_URL} \u2014 give that URL exactly as written, keeping the utm_campaign=mcp parameter.`;
39336
- function deployWebsiteResponse(recipe) {
39349
+ function startDeployWebsiteResponse(recipe) {
39337
39350
  return [
39338
- `The following is the content of ${DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
39351
+ `The following is the content of ${START_DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
39339
39352
  FALLBACK_LINE,
39340
39353
  "---",
39341
39354
  recipe.trim()
39342
39355
  ].join("\n\n");
39343
39356
  }
39344
- var DEPLOY_WEBSITE_POINTER_RESPONSE = [
39345
- `Read and follow this recipe end to end: ${DEPLOY_WEBSITE_RECIPE_URL}`,
39357
+ var START_DEPLOY_WEBSITE_POINTER_RESPONSE = [
39358
+ `Read and follow this recipe end to end: ${START_DEPLOY_WEBSITE_RECIPE_URL}`,
39346
39359
  "It covers creating the site and uploading the files (with or without a Wix login), updating a site deployed this way, and implementing a backend on it (stores, bookings, CMS, members) as a Wix Headless project. Do the publishing yourself \u2014 do not hand the user instructions.",
39347
39360
  FALLBACK_LINE
39348
39361
  ].join("\n\n");
39349
- function addDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetchOptions = {}) {
39350
- if (disableTools.includes(DEPLOY_WEBSITE_TOOL_NAME)) {
39362
+ function addStartDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetchOptions = {}) {
39363
+ if (disableTools.includes(START_DEPLOY_WEBSITE_TOOL_NAME)) {
39351
39364
  return;
39352
39365
  }
39353
39366
  server.tool(
39354
- DEPLOY_WEBSITE_TOOL_NAME,
39355
- toolDescriptions?.[DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[DEPLOY_WEBSITE_TOOL_NAME],
39356
- {},
39367
+ START_DEPLOY_WEBSITE_TOOL_NAME,
39368
+ toolDescriptions?.[START_DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[START_DEPLOY_WEBSITE_TOOL_NAME],
39369
+ {
39370
+ userRequest: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.userRequest),
39371
+ siteDescription: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteDescription),
39372
+ siteForm: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteForm),
39373
+ siteFunctionality: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteFunctionality),
39374
+ agentIdentity: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.agentIdentity),
39375
+ wixAccess: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.wixAccess)
39376
+ },
39357
39377
  { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
39358
39378
  async (_args, { httpClient: httpClient6 }) => {
39359
- let text = DEPLOY_WEBSITE_POINTER_RESPONSE;
39379
+ let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
39360
39380
  try {
39361
39381
  const recipe = await fetchArticleContent(
39362
39382
  httpClient6,
39363
- DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
39383
+ START_DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
39364
39384
  "article",
39365
39385
  true,
39366
39386
  fetchOptions.skillsPortalUrl,
@@ -39368,11 +39388,11 @@ function addDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetch
39368
39388
  fetchOptions.commitHash
39369
39389
  );
39370
39390
  if (recipe && recipe.trim()) {
39371
- text = deployWebsiteResponse(recipe);
39391
+ text = startDeployWebsiteResponse(recipe);
39372
39392
  }
39373
39393
  } catch (error2) {
39374
39394
  console.warn(
39375
- `[DeployWebsite] recipe fetch failed, returning the pointer:`,
39395
+ `[StartDeployWebsite] recipe fetch failed, returning the pointer:`,
39376
39396
  error2 instanceof Error ? error2.message : error2
39377
39397
  );
39378
39398
  }
@@ -39440,7 +39460,7 @@ var addDocsTools = (server, allowedTools = [
39440
39460
  const {
39441
39461
  getToKnowWixEnabled = false,
39442
39462
  createWixBusinessGuideEnabled = true,
39443
- deployWebsiteEnabled = true,
39463
+ startDeployWebsiteEnabled = true,
39444
39464
  disableTools,
39445
39465
  toolDescriptions,
39446
39466
  readmeDocs,
@@ -39506,8 +39526,8 @@ var addDocsTools = (server, allowedTools = [
39506
39526
  cliEnabled
39507
39527
  );
39508
39528
  }
39509
- if (deployWebsiteEnabled) {
39510
- addDeployWebsiteTool(server, disableTools || [], toolDescriptions, {
39529
+ if (startDeployWebsiteEnabled) {
39530
+ addStartDeployWebsiteTool(server, disableTools || [], toolDescriptions, {
39511
39531
  skillsPortalUrl,
39512
39532
  repo: effectiveRepo,
39513
39533
  commitHash: effectiveCommitHash
@@ -52235,12 +52255,12 @@ function addImportClaudeDesignTool(server, authStrategy, options) {
52235
52255
  designUrl = new URL(args.url);
52236
52256
  } catch {
52237
52257
  return errorResult(
52238
- "Invalid design URL \u2014 this tool only accepts the claudeusercontent.com URL produced by Claude Design. For a page or site that exists in any other form (the user's files, a build, a zip, another builder's export, a page you made), do not retry this tool \u2014 call DeployWebsite, which returns the recipe to publish the files yourself. If that tool isn't available: read https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md and publish them yourself, or send the user to https://www.wix.com/headless/drop?utm_campaign=mcp."
52258
+ "Invalid design URL \u2014 this tool only accepts the claudeusercontent.com URL produced by Claude Design. For a page or site that exists in any other form (the user's files, a build, a zip, another builder's export, a page you made), do not retry this tool \u2014 call StartDeployWebsite, which returns the recipe to publish the files yourself. If that tool isn't available: read https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md and publish them yourself, or send the user to https://www.wix.com/headless/drop?utm_campaign=mcp."
52239
52259
  );
52240
52260
  }
52241
52261
  if (designUrl.protocol !== "https:" || !designUrl.hostname.endsWith(CLAUDE_USER_CONTENT_HOST_SUFFIX)) {
52242
52262
  return errorResult(
52243
- "Invalid design URL \u2014 this tool only accepts the claudeusercontent.com URL produced by Claude Design. For a page or site that exists in any other form (the user's files, a build, a zip, another builder's export, a page you made), do not retry this tool \u2014 call DeployWebsite, which returns the recipe to publish the files yourself. If that tool isn't available: read https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md and publish them yourself, or send the user to https://www.wix.com/headless/drop?utm_campaign=mcp."
52263
+ "Invalid design URL \u2014 this tool only accepts the claudeusercontent.com URL produced by Claude Design. For a page or site that exists in any other form (the user's files, a build, a zip, another builder's export, a page you made), do not retry this tool \u2014 call StartDeployWebsite, which returns the recipe to publish the files yourself. If that tool isn't available: read https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md and publish them yourself, or send the user to https://www.wix.com/headless/drop?utm_campaign=mcp."
52244
52264
  );
52245
52265
  }
52246
52266
  const accountHeaders = await authStrategy.getAccountAuthHeaders();
@@ -17702,7 +17702,7 @@ function buildSystemReminderGuidelines(includeReadme, includeImageUploadGuidance
17702
17702
  "if the WixREADME tool is available to you, YOU MUST USE IT AT THE BEGINNING OF ANY CONVERSATION and then continue with calling the other tools and calling the Wix APIs until the task is completed.",
17703
17703
  "**Exception \u2014 creating a new Wix site/website:** For a normal creation request \u2014 and only then \u2014 skip WixREADME and the docs search, and route straight to the Wix site-creation tools available to you; their descriptions carry the routing rules. Everything else starts with WixREADME as usual.",
17704
17704
  "If the user explicitly asks for a headless site, Wix Classic Editor site, or manual account/API-based site creation, call CreateWixBusinessGuide right away \u2014 these don't need the site's purpose first.",
17705
- "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call DeployWebsite right away \u2014 not a site-creation tool, not the docs.",
17705
+ "If the user \u2014 or you, earlier in this conversation \u2014 already have a finished page or site in any form (HTML/CSS/JS files, a static build, a zip, another builder's export, a design you can export to HTML) and want it live on Wix, call StartDeployWebsite right away \u2014 not a site-creation tool, not the docs.",
17706
17706
  "Never default to AI or search templates unless the user explicitly requests it. When the user named no creation method - let the user make that choice as the site-creation tools' descriptions direct. Never route normal site creation through ManageWixSite, CallWixSiteAPI, or ExecuteWixAPI."
17707
17707
  );
17708
17708
  }
@@ -17782,9 +17782,11 @@ var SITE_CREATION_COPY = {
17782
17782
  }
17783
17783
  };
17784
17784
  var SITE_GUIDANCE = dedent_default`
17785
- A new-site request has two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
17785
+ First decide which of two different things is being asked for:
17786
+ - The site is code the user or you control — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page or design you made earlier in this conversation — and it should go live on Wix. This is also the route whenever the user wants to keep working on the site here, with you: a Wix Headless site is a regular coded site, so you keep full control of the design and can change and redeploy it from this conversation at any time, and Wix business capabilities can be added to it as a backend when they are needed. Call StartDeployWebsite: it returns the recipe to host those exact files as a Wix Headless site (updates reuse the same site and URL; the drop page is only its fallback). Do not offer AI or templates for this and do not call any site-creation tool.
17787
+ - Wix should create the site — generated with AI from a description, or started from a template — and the user will design and edit it in Wix rather than through you. That is what the site-creation tools do; they never take files you already have.
17786
17788
 
17787
- One case skips all of this: a finished page or site ALREADY EXISTS, in any form — hand-written HTML/CSS/JS, a static build, a zip, another AI builder's export, or a page you made earlier in this conversation. There is nothing to build, so don't offer AI or templates and don't call any site-creation tool: call DeployWebsite, which returns the recipe to publish the files yourself (the drop page is only its fallback).
17789
+ For a new site there are two things to settle: what the site is for, and how to build it. The how is AI generation vs. starting from a template, so naming templates, a template id or Wix Studio (Wix Studio is also the template side) already settles it.
17788
17790
 
17789
17791
  Settle what the site is for first: its purpose, topic, business type, audience, or main visitor action. Naming a method is not a description of the site, and neither is the business or industry on its own.
17790
17792
  If you can't tell yet, ask the preferred question below and nothing else — one question, no creation-method question in the same reply, and no internal tool names.
@@ -18176,7 +18178,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
18176
18178
  `,
18177
18179
  "import-claude-design-from-url": dedent_default`
18178
18180
  Import a design created in Claude's design tool into Wix. Takes the signed claudeusercontent.com URL Claude Design produces for its self-contained HTML bundle (all images, fonts, and styles inlined); any other host is rejected. Creates a live Wix-hosted site and returns its URL.
18179
- NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call DeployWebsite instead; it returns the recipe to publish the files yourself.
18181
+ NOT for a page or site that exists in any other form (the user's own HTML/CSS/JS, a static build, a zip, another builder's export, a page you made in this conversation) — for those call StartDeployWebsite instead; it returns the recipe to publish the files yourself.
18180
18182
  `,
18181
18183
  RunWixCliCommand: dedent_default`
18182
18184
  Executes Wix CLI commands for Wix app development and management.
@@ -18608,14 +18610,14 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
18608
18610
  WixSiteBuilder: dedent_default`
18609
18611
  ${SITE_GUIDANCE}
18610
18612
 
18611
- Tool for generating a Wix site with AI (creating / building a site in Wix Harmony).
18613
+ Tool for generating a Wix site with AI (creating / building a site in Wix Harmony) from a description. It does not take pages or files you already have — those go to StartDeployWebsite.
18612
18614
 
18613
18615
  Call this ONLY when the user's own words name AI (for example "create a site using AI" or "build it with AI") and the site intent is clear. A description of what the site should do — reservations, online ordering, a store, bookings, menus, a portfolio, and the like — is NOT a request for AI and NOT enough to call this tool; never infer AI from features or industry.
18614
18616
  Never default to this tool: if the user hasn't explicitly named AI, don't call this tool — ${SITE_CREATION_COPY.unstatedMethod.nonWidget}.
18615
18617
 
18616
18618
  For templates or Wix Studio, call \`SearchSiteTemplates\`; for a specific template by \`metaSiteId\` or \`templateId\`, call \`CreateSiteFromTemplate\`; for a headless or classic Wix Editor site, or manual/account-API creation, call \`CreateWixBusinessGuide\`.
18617
18619
 
18618
- Do NOT suggest HTML code, prompt templates, or alternative approaches — actually build the site through this tool.
18620
+ Do NOT suggest HTML code, prompt templates, or alternative approaches instead of building — actually build the site through this tool. (HTML the user already has is the StartDeployWebsite case, not a reason to build.)
18619
18621
  `,
18620
18622
  SearchSiteTemplates: dedent_default`
18621
18623
  ${SITE_GUIDANCE}
@@ -18658,9 +18660,9 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
18658
18660
  Results: each root field fails independently — \`errors[].path\` names the failing field and \`errors[].extensions.message\` the cause (e.g. PERMISSION_DENIED); \`data\` still holds the fields that succeeded. Mutations return the created/updated entity — read the IDs from it and do not re-query to verify. Large results are truncated: narrow the selection or page size instead of re-running.
18659
18661
  Set \`hasMutations: true\` for any document containing a mutation root field.
18660
18662
  `,
18661
- DeployWebsite: dedent_default`
18662
- The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix: HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, or upload my site / index.html.
18663
- Also for updating a site deployed this way (replace its files; same site, same URL) and for implementing a backend on one (stores, bookings, CMS, members) as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
18663
+ StartDeployWebsite: dedent_default`
18664
+ The user — or you, earlier in this conversation — ALREADY HAVE a finished page or site, in any form, and it should be live on Wix — or an already-deployed Wix Headless site whose files should be replaced. The site can be HTML/CSS/JS files, a static build (dist/, out/), a zip, another AI builder's export, or a page/design you created in this conversation (export it to HTML first — a finished design IS a finished page). Call this when the user says deploy, host, publish, put online, make it live, get a URL, update my site, or upload my site / index.html.
18665
+ Updates keep the same site and URL. Also for implementing a backend on such a site as a Wix Headless project — same site, same URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell.
18664
18666
  Missing real functionality — a fake checkout, a form that goes nowhere, bookings — is NOT a reason to rebuild the site with a site-creation tool: deploy the page as is, then add the backend afterwards (the recipe covers it).
18665
18667
  Returns the full recipe; follow it and run the flow yourself. The drop page is only the fallback when you can't.
18666
18668
  NOT for: a screenshot, mockup or reference image of a site the user WANTS (nothing exists to deploy yet — that is site creation: WixSiteBuilder / templates); a Claude Design share URL (import-claude-design-from-url); migrating a live site by URL or CSV exports; adding HTML or code into an existing Wix site; uploading images or documents to a site's media (UploadImageToWixSite).
@@ -18668,7 +18670,7 @@ function buildToolDescriptions(includeReadme, includeImageUploadGuidance = true)
18668
18670
  CreateWixBusinessGuide: dedent_default`
18669
18671
  Provides comprehensive documentation for creating a new Wix business (site, app, etc.).
18670
18672
  Call this ONLY when the user explicitly asks for a headless site, a Wix Classic Editor site, or manual/advanced account/API-based site creation — these don't need the site's purpose first. For normal site-creation ${SITE_CREATION_COPY.normalCreationRoute.nonWidget}; for a specific template id, call \`CreateSiteFromTemplate\`.
18671
- Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call DeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
18673
+ Exception, even when the user says "headless": if a finished page or site already exists in any form (their own HTML/CSS/JS, a static build, a zip, an AI-builder export, a page you made in this conversation) and they want it hosted, don't call this tool — call StartDeployWebsite, which returns the recipe to publish the files yourself. This guide's CLI flow is for BUILDING a headless frontend, not for hosting ready-made files.
18672
18674
 
18673
18675
  ## What This Tool Contains
18674
18676
 
@@ -19815,39 +19817,57 @@ ${articleContent}${nextSteps}`;
19815
19817
  );
19816
19818
  }
19817
19819
 
19818
- // src/docs/deploy-website.ts
19819
- var DEPLOY_WEBSITE_TOOL_NAME = "DeployWebsite";
19820
- var DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
19820
+ // src/docs/start-deploy-website.ts
19821
+ var START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS = {
19822
+ userRequest: "The user's request that led here, quoted if short, otherwise summarized in a sentence.",
19823
+ siteDescription: "What the site is: its purpose and who it is for. One or two sentences.",
19824
+ siteForm: "The form the site exists in right now (HTML/CSS/JS files, a static build, a zip, another builder's export, a design created in this conversation, or something else), roughly how many files, and whether it includes images.",
19825
+ siteFunctionality: "What the site must be able to do for its visitors beyond showing pages, if anything (for example selling, bookings or reservations, tickets, menus and orders, rentals, forms, memberships or paid plans, donations, a blog, or anything else the user expects to work), in your own words. If it is a plain static site with no such needs, say so.",
19826
+ agentIdentity: "Which agent or product you are and the harness you run in.",
19827
+ wixAccess: "How you can reach Wix from where you run: through this MCP only, or also from a shell whose network can reach wixapis.com; whether you can run the Wix CLI (npx @wix/cli) there and whether it is logged in; and which Wix identity you act with \u2014 the user's login through this MCP, a CLI login, or none."
19828
+ };
19829
+ var START_DEPLOY_WEBSITE_PARAMS = Object.keys(
19830
+ START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS
19831
+ );
19832
+ var START_DEPLOY_WEBSITE_TOOL_NAME = "StartDeployWebsite";
19833
+ var START_DEPLOY_WEBSITE_RECIPE_URL = "https://dev.wix.com/docs/api-reference/account-level/sites/skills/upload-a-website-or-html-files.md";
19821
19834
  var DROP_PAGE_URL = "https://www.wix.com/headless/drop?utm_campaign=mcp";
19822
19835
  var FALLBACK_LINE = `Only if you cannot run it (you can't reach the file bytes, or a step fails and you can't fix it): send the user to ${DROP_PAGE_URL} \u2014 give that URL exactly as written, keeping the utm_campaign=mcp parameter.`;
19823
- function deployWebsiteResponse(recipe) {
19836
+ function startDeployWebsiteResponse(recipe) {
19824
19837
  return [
19825
- `The following is the content of ${DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
19838
+ `The following is the content of ${START_DEPLOY_WEBSITE_RECIPE_URL}. Follow it end to end and do the publishing yourself \u2014 do not hand the user instructions.`,
19826
19839
  FALLBACK_LINE,
19827
19840
  "---",
19828
19841
  recipe.trim()
19829
19842
  ].join("\n\n");
19830
19843
  }
19831
- var DEPLOY_WEBSITE_POINTER_RESPONSE = [
19832
- `Read and follow this recipe end to end: ${DEPLOY_WEBSITE_RECIPE_URL}`,
19844
+ var START_DEPLOY_WEBSITE_POINTER_RESPONSE = [
19845
+ `Read and follow this recipe end to end: ${START_DEPLOY_WEBSITE_RECIPE_URL}`,
19833
19846
  "It covers creating the site and uploading the files (with or without a Wix login), updating a site deployed this way, and implementing a backend on it (stores, bookings, CMS, members) as a Wix Headless project. Do the publishing yourself \u2014 do not hand the user instructions.",
19834
19847
  FALLBACK_LINE
19835
19848
  ].join("\n\n");
19836
- function addDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetchOptions = {}) {
19837
- if (disableTools.includes(DEPLOY_WEBSITE_TOOL_NAME)) {
19849
+ function addStartDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetchOptions = {}) {
19850
+ if (disableTools.includes(START_DEPLOY_WEBSITE_TOOL_NAME)) {
19838
19851
  return;
19839
19852
  }
19840
19853
  server.tool(
19841
- DEPLOY_WEBSITE_TOOL_NAME,
19842
- toolDescriptions?.[DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[DEPLOY_WEBSITE_TOOL_NAME],
19843
- {},
19854
+ START_DEPLOY_WEBSITE_TOOL_NAME,
19855
+ toolDescriptions?.[START_DEPLOY_WEBSITE_TOOL_NAME] ?? defaultToolDescriptions[START_DEPLOY_WEBSITE_TOOL_NAME],
19856
+ {
19857
+ userRequest: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.userRequest),
19858
+ siteDescription: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteDescription),
19859
+ siteForm: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteForm),
19860
+ siteFunctionality: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.siteFunctionality),
19861
+ agentIdentity: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.agentIdentity),
19862
+ wixAccess: external_exports.string().min(1).describe(START_DEPLOY_WEBSITE_PARAM_DESCRIPTIONS.wixAccess)
19863
+ },
19844
19864
  { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
19845
19865
  async (_args, { httpClient }) => {
19846
- let text = DEPLOY_WEBSITE_POINTER_RESPONSE;
19866
+ let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
19847
19867
  try {
19848
19868
  const recipe = await fetchArticleContent(
19849
19869
  httpClient,
19850
- DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
19870
+ START_DEPLOY_WEBSITE_RECIPE_URL.replace(/\.md$/, ""),
19851
19871
  "article",
19852
19872
  true,
19853
19873
  fetchOptions.skillsPortalUrl,
@@ -19855,11 +19875,11 @@ function addDeployWebsiteTool(server, disableTools = [], toolDescriptions, fetch
19855
19875
  fetchOptions.commitHash
19856
19876
  );
19857
19877
  if (recipe && recipe.trim()) {
19858
- text = deployWebsiteResponse(recipe);
19878
+ text = startDeployWebsiteResponse(recipe);
19859
19879
  }
19860
19880
  } catch (error) {
19861
19881
  console.warn(
19862
- `[DeployWebsite] recipe fetch failed, returning the pointer:`,
19882
+ `[StartDeployWebsite] recipe fetch failed, returning the pointer:`,
19863
19883
  error instanceof Error ? error.message : error
19864
19884
  );
19865
19885
  }
@@ -19916,7 +19936,7 @@ var addDocsTools = (server, allowedTools = [
19916
19936
  const {
19917
19937
  getToKnowWixEnabled = false,
19918
19938
  createWixBusinessGuideEnabled = true,
19919
- deployWebsiteEnabled = true,
19939
+ startDeployWebsiteEnabled = true,
19920
19940
  disableTools,
19921
19941
  toolDescriptions,
19922
19942
  readmeDocs,
@@ -19982,8 +20002,8 @@ var addDocsTools = (server, allowedTools = [
19982
20002
  cliEnabled
19983
20003
  );
19984
20004
  }
19985
- if (deployWebsiteEnabled) {
19986
- addDeployWebsiteTool(server, disableTools || [], toolDescriptions, {
20005
+ if (startDeployWebsiteEnabled) {
20006
+ addStartDeployWebsiteTool(server, disableTools || [], toolDescriptions, {
19987
20007
  skillsPortalUrl,
19988
20008
  repo: effectiveRepo,
19989
20009
  commitHash: effectiveCommitHash