@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.
- package/build/bin-standalone.js +49 -29
- package/build/cjs/index.cjs +51 -31
- package/build/cjs/toolkit.cjs +49 -29
- package/build/dts/config/default-config.js +12 -10
- package/build/dts/docs/docs.d.ts +2 -2
- package/build/dts/docs/docs.js +4 -4
- package/build/dts/docs/start-deploy-website.d.ts +22 -0
- package/build/dts/docs/start-deploy-website.js +83 -0
- package/build/dts/import-claude-design-tool/index.js +2 -2
- package/build/dts/toolkit-entry.d.cts +2 -2
- package/build/dts/toolkit-entry.d.ts +2 -2
- package/build/esm/index.js +51 -31
- package/build/esm/toolkit.js +49 -29
- package/package.json +2 -2
- package/build/dts/docs/deploy-website.d.ts +0 -13
- package/build/dts/docs/deploy-website.js +0 -45
package/build/bin-standalone.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
72560
|
-
|
|
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
|
|
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
|
|
73679
|
-
|
|
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
|
|
73695
|
+
function startDeployWebsiteResponse(recipe) {
|
|
73683
73696
|
return [
|
|
73684
|
-
`The following is the content of ${
|
|
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
|
|
73691
|
-
`Read and follow this recipe end to end: ${
|
|
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
|
|
73696
|
-
if (disableTools.includes(
|
|
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
|
-
|
|
73701
|
-
toolDescriptions?.[
|
|
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 =
|
|
73725
|
+
let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
|
|
73706
73726
|
try {
|
|
73707
73727
|
const recipe = await fetchArticleContent(
|
|
73708
73728
|
httpClient,
|
|
73709
|
-
|
|
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 =
|
|
73737
|
+
text = startDeployWebsiteResponse(recipe);
|
|
73718
73738
|
}
|
|
73719
73739
|
} catch (error2) {
|
|
73720
73740
|
console.warn(
|
|
73721
|
-
`[
|
|
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
|
-
|
|
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 (
|
|
73856
|
-
|
|
73875
|
+
if (startDeployWebsiteEnabled) {
|
|
73876
|
+
addStartDeployWebsiteTool(server2, disableTools || [], toolDescriptions, {
|
|
73857
73877
|
skillsPortalUrl,
|
|
73858
73878
|
repo: effectiveRepo,
|
|
73859
73879
|
commitHash: effectiveCommitHash
|
package/build/cjs/index.cjs
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
38176
|
-
|
|
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
|
|
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
|
|
39333
|
-
|
|
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
|
|
39349
|
+
function startDeployWebsiteResponse(recipe) {
|
|
39337
39350
|
return [
|
|
39338
|
-
`The following is the content of ${
|
|
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
|
|
39345
|
-
`Read and follow this recipe end to end: ${
|
|
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
|
|
39350
|
-
if (disableTools.includes(
|
|
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
|
-
|
|
39355
|
-
toolDescriptions?.[
|
|
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 =
|
|
39379
|
+
let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
|
|
39360
39380
|
try {
|
|
39361
39381
|
const recipe = await fetchArticleContent(
|
|
39362
39382
|
httpClient6,
|
|
39363
|
-
|
|
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 =
|
|
39391
|
+
text = startDeployWebsiteResponse(recipe);
|
|
39372
39392
|
}
|
|
39373
39393
|
} catch (error2) {
|
|
39374
39394
|
console.warn(
|
|
39375
|
-
`[
|
|
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
|
-
|
|
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 (
|
|
39510
|
-
|
|
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
|
|
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
|
|
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();
|
package/build/cjs/toolkit.cjs
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
18663
|
-
|
|
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
|
|
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
|
|
19820
|
-
|
|
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
|
|
19836
|
+
function startDeployWebsiteResponse(recipe) {
|
|
19824
19837
|
return [
|
|
19825
|
-
`The following is the content of ${
|
|
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
|
|
19832
|
-
`Read and follow this recipe end to end: ${
|
|
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
|
|
19837
|
-
if (disableTools.includes(
|
|
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
|
-
|
|
19842
|
-
toolDescriptions?.[
|
|
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 =
|
|
19866
|
+
let text = START_DEPLOY_WEBSITE_POINTER_RESPONSE;
|
|
19847
19867
|
try {
|
|
19848
19868
|
const recipe = await fetchArticleContent(
|
|
19849
19869
|
httpClient,
|
|
19850
|
-
|
|
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 =
|
|
19878
|
+
text = startDeployWebsiteResponse(recipe);
|
|
19859
19879
|
}
|
|
19860
19880
|
} catch (error) {
|
|
19861
19881
|
console.warn(
|
|
19862
|
-
`[
|
|
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
|
-
|
|
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 (
|
|
19986
|
-
|
|
20005
|
+
if (startDeployWebsiteEnabled) {
|
|
20006
|
+
addStartDeployWebsiteTool(server, disableTools || [], toolDescriptions, {
|
|
19987
20007
|
skillsPortalUrl,
|
|
19988
20008
|
repo: effectiveRepo,
|
|
19989
20009
|
commitHash: effectiveCommitHash
|