The Wix MCP connector routes your AI agent's tool calls to Wix's own MCP server through Scalekit. Each user signs in to Wix once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 30 tools.
- Tools
- 30
- What they doRead · write · destructive
- 16 · 11 · 316 read11 write3 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Build sites: create a Wix site with AI, from a template, or by importing a design, and track the job
- Manage site data: call a site’s APIs to create, read, update, or delete its content and business data
- Inspect and publish sites: list sites, get a site’s plan, status, and installed apps, and publish changes
- Upload images: add images to a site’s Media Manager and get back the file URL
- Suggest domains: find available domain names from a search term or an existing site’s name
- Search Wix docs: look up REST, SDK, CLI, headless, and design system documentation with code examples
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Wix MCP connection
In AgentKit > Connections, create a Wix MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Wix MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'wixmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Wix MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'wixmcp_getsitecontext',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "wixmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Wix MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="wixmcp_getsitecontext",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolwixmcp_getsitecontextFetch deep context for a specific Wix site (ID, URL, publish status, plan, properties, and installed apps) as structured markdown.Read-onlyGetSiteContext
Fetch deep context for a specific Wix site (ID, URL, publish status, plan, properties, and installed apps) as structured markdown. Resolve by siteName when the ID is unknown.
Inputs
siteIdstring- The ID of the site to fetch context for. One of siteId or siteName is required. Preferred when the ID is already known.
siteNamestring- The display name of the site to fetch context for. One of siteId or siteName is required. Use when the site ID is unknown.
wixmcp_getsuggesteddomainsSuggest available domain names based on a search query or an existing Wix site's name.Read-onlyGetSuggestedDomains
Suggest available domain names based on a search query or an existing Wix site's name.
Inputs
limitnumber- Number of suggestions to return (default: 10, max: 20)
querystring- Free-text keywords, business idea, or brand concept to base suggestions on. Use the user's own words.
siteIdstring- Site ID to auto-suggest a domain based on the site name. Used when suggesting domains after site creation.
tldsarray- Filter by specific TLDs (e.g. ["com", "net"]). Do not include the dot.
wixmcp_listwixsitesList all Wix sites belonging to the authenticated account, with optional name filtering.Read-onlyListWixSites
List all Wix sites belonging to the authenticated account, with optional name filtering.
Inputs
cursorstring- Cursor for pagination. Use the nextCursor value from the previous response to fetch the next page of results.
limitnumber- Maximum number of sites to return per page. Default is 21.
nameSearchstring- optional filter by name, if not provided all sites will be returned
wixmcp_pullsitecreationjobPoll the status of a site creation or editing job until it completes.Read-onlyPullSiteCreationJob
Poll the status of a site creation or editing job until it completes.
Inputs
jobIdstringrequired- The job ID to pull
wixmcp_readfulldocsarticleFetch the full content and code examples for a specific Wix documentation article.Read-onlyReadFullDocsArticle
Fetch the full content and code examples for a specific Wix documentation article.
Inputs
articleUrlstringrequired- The URL of the docs article or method article to fetch. Should be something like https://dev.wix.com/docs/.../... For REST docs, use the URL as-is. For SDK docs, the URL SHOULD include the query param ?apiView=SDK (e.g. https://dev.wix.com/docs/...?apiView=SDK).
wixmcp_readfulldocsmethodschemaFetch the complete request and response schema for a specific Wix API method.Read-onlyReadFullDocsMethodSchema
Fetch the complete request and response schema for a specific Wix API method.
Inputs
articleUrlstringrequired- The URL of the documentation to fetch. Should be something like https://dev.wix.com/docs/.../... For REST docs, use the URL as-is. For SDK docs, the URL SHOULD include the query param ?apiView=SDK (e.g. https://dev.wix.com/docs/...?apiView=SDK).
reasonstringrequired- One sentence describing the original user request, the task you are trying to accomplish, and why you need the full schema (e.g., no relevant code example found in docs or recipes).
wixmcp_searchbuildappsdocumentationSearch the Wix documentation for building and publishing Wix apps.Read-onlySearchBuildAppsDocumentation
Search the Wix documentation for building and publishing Wix apps.
Inputs
searchTermstringrequired- The search term to search for in the Build Apps Documentation
maxResultsnumber- The maximum number of results to return, default is 10, max is 15default
10
wixmcp_searchsitetemplatesSearch the Wix template gallery (Harmony or Studio) by keyword and return matching templates.Read-onlySearchSiteTemplates
Search the Wix template gallery (Harmony or Studio) by keyword and return matching templates. Call only after the user has chosen to build from a template; follow up with CreateSiteFromTemplate once one is selected.
Inputs
querystringrequired- The few most important keywords describing the site, used to search templates â e.g. "yoga studio", "wedding photographer".
builderstring- Which builder's templates to return: "studio" if the user asked for Wix Studio in this site creation flow, "classic" if they asked for the Classic Editor (the Wix Editor), otherwise "harmony" (the default). You choose this from the request â don't ask the user which builder.one of
harmonystudioclassicdefaultharmony limitinteger- Maximum number of templates to return (capped at 28).
templatesExplicitlyRequestedboolean- Did the user, in their own words or their answer to your question, ask for a template, Wix Studio, or the Classic Editor by name? Wanting Wix's editor, or to design the site themselves, is not that: ask them how to start first. Nor are a site's business, features or look.
wixmcp_searchwixapispecSearch and inspect the Wix REST API spec by running JavaScript in a sandboxed read-only environment.Read-onlySearchWixAPISpec
Search and inspect the Wix REST API spec by running JavaScript in a sandboxed read-only environment.
Inputs
codestringrequired- JavaScript async function() expression to search the Wix API index. Has access to `lightIndex` (array of resources) and `getResourceSchema(resourceId)` (returns full schema).
reasonstringrequired- One sentence describing the original user request and why you are searching or inspecting the Wix API spec.
wixmcp_searchwixclidocumentationSearch the Wix CLI documentation for website development commands and workflows.Read-onlySearchWixCLIDocumentation
Search the Wix CLI documentation for website development commands and workflows.
Inputs
reasonstringrequired- One sentence describing the original user request and the task you are trying to accomplish with this search.
searchTermstringrequired- The search term to search for in the Wix CLI Documentation
maxResultsnumber- The maximum number of results to return, default is 10, max is 15default
10
wixmcp_searchwixheadlessdocumentationSearch the Wix headless documentation for building custom frontends with Wix backend services.Read-onlySearchWixHeadlessDocumentation
Search the Wix headless documentation for building custom frontends with Wix backend services.
Inputs
searchTermstringrequired- The search term to search for in the Headless Documentation
maxResultsnumber- The maximum number of results to return (1â17, default 17). Results mix Headless documentation with matching recipes and skills.default
17
wixmcp_searchwixrestdocumentationSearch the official Wix REST API documentation to find endpoints, schemas, and usage examples.Read-onlySearchWixRESTDocumentation
Search the official Wix REST API documentation to find endpoints, schemas, and usage examples.
Inputs
reasonstringrequired- One sentence describing the original user request and the task you are trying to accomplish with this search.
searchTermstringrequired- The search term to look up in the Wix REST API Documentation â a natural-language description of the endpoint, resource, or action you need across any Wix domain (Stores, eCommerce, Bookings, CRM, Members, CMS, Events, Blog, Forms, Media, site settings, etc.), e.g. "create a catalog item with inventory", "book a service", "update data collection items". Match the wording to how many entities you will act on: a plural term ("update products") surfaces the resource's bulk methods, which a singular term ("update a product") ranks lower or leaves out. Results are ranked by relevance, so describe the goal rather than guessing an exact API name.
maxResultsnumber- The maximum number of results to return (1â17, default 17). Results mix REST API documentation with matching recipes and skills.default
17
wixmcp_searchwixsdkdocumentationSearch the Wix JavaScript SDK documentation for client-side and server-side SDK usage.Read-onlySearchWixSDKDocumentation
Search the Wix JavaScript SDK documentation for client-side and server-side SDK usage.
Inputs
searchTermstringrequired- The search term to search for in the Wix SDK Documentation
maxResultsnumber- The maximum number of results to return, default is 10, max is 15default
10
wixmcp_searchwixwdsdocumentationSearch the Wix Design System documentation for UI components and design guidelines.Read-onlySearchWixWDSDocumentation
Search the Wix Design System documentation for UI components and design guidelines.
Inputs
searchTermstringrequired- The search term to search for in the Wix Design System Documentation
maxResultsnumber- The maximum number of results to return, default is 10, max is 15default
10
wixmcp_wixreadmeRead the Wix MCP README for guidance on how to use the available Wix tools effectively.Read-onlyWixREADME
Read the Wix MCP README for guidance on how to use the available Wix tools effectively.
Inputs
This tool takes no inputs.
wixmcp_claimanonymoussiteTransfer an anonymously created Wix site to the authenticated user's account using a job ID.WriteClaimAnonymousSite
Transfer an anonymously created Wix site to the authenticated user's account using a job ID.
Inputs
jobIdstringrequired- The job ID from site creation - required to authenticate the claim
siteIdstringrequired- The metasite ID of the anonymous site to claim
wixmcp_createsitefromtemplateCreate a Wix site from a specific template by templateId, publish it when possible, and return links to the editor and the published site.WriteCreateSiteFromTemplate
Create a Wix site from a specific template by templateId, publish it when possible, and return links to the editor and the published site.
Inputs
templateIdstringrequired- The selected template metaSiteId to create a site from.
wixmcp_import_claude_design_from_urlImport a design into Wix from a publicly fetchable URL.Writeimport-claude-design-from-url
Import a design into Wix from a publicly fetchable URL. The file is a self-contained HTML bundle with all images, fonts, and styles inlined. Creates a live Wix-hosted site and returns its URL.
Inputs
urlstringrequired- Public HTTPS URL to the design file. Valid for ~1 hour. Fetched server-side.
claude_design_project_idstring- Stable Claude Design project id.
titlestring- Suggested title for the imported design.
wixmcp_reportissuetowixReport one specific problem with Wix's tools, APIs or docs to the Wix team, attributed to the authenticated user: an API error or a confusing API, wrong or missing docs, a Wix MCP tool or auth dead end.WriteReport Issue To Wix
Report one specific problem with Wix's tools, APIs or docs to the Wix team, attributed to the authenticated user: an API error or a confusing API, wrong or missing docs, a Wix MCP tool or auth dead end. It is NOT a support channel and not for the user's own site content. When to offer it (user-approved only â NEVER auto-send): - The user asks to report something to Wix ("tell Wix that...", "report this", "send feedback"). Then confirm the wording and send. - The user complains or reports a Wix bug in the course of the work ("this API is broken", "the docs are wrong"). Acknowledge, then offer to pass it on. - A Wix API, tool or doc kept failing, or you had to invent a workaround for it. Offer: "This tripped us up â want me to report it to Wix?" When you offer, invite the user to add anything in their own words â whatever they give you goes into the report verbatim. What to send â that one issue, not the session: - What was being attempted, in a sentence. - Where it failed: the tool or endpoint, the HTTP status and error message, and the request id if there is one (pass it as requestId). - What you expected instead, and the workaround if you found one. - Where the fault likely lives: API behavior / API schema / API reference docs / docs articles or examples / Wix tooling / unsure. - Only the context needed to reproduce it: agent/model, site id, the Wix area or API. No session summary or play-by-play, and nothing unrelated to the issue. Several distinct issues are separate reports, each approved by the user. **IMPORTANT**: This tool actually sends the report to Wix. Confirm the final wording with the user and call it only after an explicit yes. Do not send on a single transient error, and never more than once for the same issue. Reports cannot be replied to or tracked by the user.
Inputs
messagestringrequired- The report of one issue, sent to Wix as free text. Only this issue â no session summary, play-by-play or unrelated problems: - What was being attempted, in a sentence. - The tool or endpoint, the HTTP status and the error message. - What you expected instead, and the workaround if any. - Where the fault likely lives (API behavior / API schema / docs / Wix tooling / unsure), and whether you confirmed it. - The context needed to reproduce it: agent/model, site id, the Wix area or API. - The user's own words, verbatim, if they added any. NEVER include secrets â no bearer tokens, API keys, or credentials â and no personal data beyond what the report needs.
requestIdstring- Optional request id (x-wix-request-id) of the failed Wix API call this report is about.
wixmcp_searchdevelopmentdocumentationBroad Wix development documentation (platform concepts, developer guides, getting started).WriteSearch Development Documentation
Broad Wix development documentation (platform concepts, developer guides, getting started). **Last resort â development tasks only.** Skip it entirely for general, business, support, or Wix-editor questions; for those, use `SearchWixHelpCenter`. Call it only after the specific search for your task returned nothing useful: `SearchWixRESTDocumentation` (REST), `SearchWixSDKDocumentation` (JS SDK), `SearchWixCLIDocumentation` (CLI), `SearchBuildAppsDocumentation` (apps), `SearchWixHeadlessDocumentation` (Headless), `SearchWixWDSDocumentation` (WDS). Never use it as a first search.
Inputs
searchTermstringrequired- The development-related search term. Use only after a more specific docs search (REST/SDK/CLI/Build Apps/Headless/WDS) came back empty.
maxResultsnumber- The maximum number of results to return, default is 10, max is 15default
15
wixmcp_searchwixhelpcenterSearches the Wix Help Center (support.wix.com): how site owners do things in the Wix dashboard and editors, such as connecting a domain, managing a Premium plan, setting up a store or bookings, and fixing account or site issues.WriteSearch Wix Help Center
Searches the Wix Help Center (support.wix.com): how site owners do things in the Wix dashboard and editors, such as connecting a domain, managing a Premium plan, setting up a store or bookings, and fixing account or site issues. The Help Center is written for people doing things by hand in Wix's dashboard and editors. To act on a site yourself, the Wix developer docs come first: find the method with SearchWixRESTDocumentation or BrowseWixRESTDocsMenu. Use it for "how do I ... in Wix" questions about the product, or to give the user click-by-click steps for something no API covers. Not for building with code: for Wix APIs, SDK, CLI, apps, or Headless, use the matching developer documentation search. Results are excerpts; read a full article by passing its support.wix.com link to `ReadFullDocsArticle`.
Inputs
reasonstringrequired- One sentence describing the original user request and the task you are trying to accomplish with this search.
searchTermstringrequired- What the site owner wants to do or fix, in plain words (e.g. "connect a domain bought elsewhere", "cancel a Premium plan")
maxResultsnumber- The maximum number of articles to return (1â15, default 15). Each article is returned with up to 60 lines.default
15
wixmcp_startdeploywebsiteCreates a website on Wix and puts it live, or replaces the files of one deployed earlier.WriteStart Deploy Website
Creates a website on Wix and puts it live, or replaces the files of one deployed earlier. You write the site's code, or take the files the user brought (HTML/CSS/JS, a static build, a zip, another builder's export), and this returns the guide to create the site and upload them. Updates keep the same site and URL. Works with or without a Wix login (anonymous deploy with a save link), through the Wix MCP alone or from a shell. Call it right away, without asking the user anything first. When a new site needs Wix business features (a store, bookings or appointments, rentals, events and tickets, a restaurant menu with online orders or reservations, a blog, a portfolio, pricing plans and memberships, donations, Wix Forms, members and login, a CMS, payments), call StartHeadlessBuild instead. When the user brought files and the site needs those features, upload the files here first; the upload's result then points to StartHeadlessBuild to connect them. Returns the guide; follow it and do the work yourself. Upload with UploadHeadlessWebsiteFiles once the site exists; the drop page is only the fallback. NOT for: a user who asked for Wix's editor, the Wix Harmony Editor, a template, Wix Studio or the Classic Editor (WixSiteBuilder, SearchSiteTemplates); a Claude Design bundle URL (import-claude-design-from-url); migrating a live site by URL or CSV exports; adding HTML or code into an existing Wix editor site; uploading images or documents to a site's media (UploadImageToWixSite).
Inputs
agentIdentitystringrequired- Which agent or product you are, which model if you know it, and the harness you run in. No personal data: no names, emails, phones, passwords, keys or local paths.
siteDescriptionstringrequired- What the site is: its purpose and who it is for. One or two sentences. No personal data: no names, emails, phones, passwords, keys or local paths.
siteFormstringrequired- The form the site exists in right now (HTML/CSS/JS files, a static build, a zip, a framework project, another builder's export, a design created in this conversation, or something else), roughly how many files, and whether it includes images. For a framework project: which framework, whether you have its built static output (for example dist/) or only the source, and whether it needs a server at runtime (SSR, API routes, a backend), or that you don't know. Also where it came from: built in this conversation, the user's own project or repo, another builder (which one), or a Wix skill or template (which one). No personal data: no names, emails, phones, passwords, keys or local paths.
siteFunctionalitystringrequired- 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. No personal data: no names, emails, phones, passwords, keys or local paths.
userRequeststringrequired- A short summary of what the user asked for and the context that led here, in a sentence or two, including whether this is a new site or an edit or new version of a site already on Wix. No personal data: no names, emails, phones, passwords, keys or local paths.
wixAccessstringrequired- 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; which Wix identity you act with â the user's login through this MCP, a CLI login, or none; and which Wix skills you have (for example wix-headless-kit or wix-manage), by name and where they come from (installed on disk, a plugin, read online), or none. Name the kind of identity, not the account or its email. No personal data: no names, emails, phones, passwords, keys or local paths.
wixmcp_startheadlessbuildReturns Wix's headless guide, for a site that needs Wix business features (a store, bookings or appointments, rentals, events and tickets, a restaurant menu with online orders or reservations, a blog, a portfolio, pricing plans and memberships, donations, Wix Forms, members and login, a CMS, payments), run by Wix as a Wix Headless site.WriteStart Headless Build
Returns Wix's headless guide, for a site that needs Wix business features (a store, bookings or appointments, rentals, events and tickets, a restaurant menu with online orders or reservations, a blog, a portfolio, pricing plans and memberships, donations, Wix Forms, members and login, a CMS, payments), run by Wix as a Wix Headless site. You write the site; the guide creates it, connects the features, and uploads it. Also to add those features to an existing Wix Headless site (one deployed from files is one), from a project download link, or to move a Wix site to code. Call it right away: it only returns the guide, and the site's details are not needed first. NOT for: a site that needs no Wix business feature, or files the user brought that are not live yet (StartDeployWebsite: upload them first, then come back here for the features); a user who asked for Wix's editor, the Wix Harmony Editor, a template, Wix Studio or the Classic Editor, even when the site needs business features (WixSiteBuilder, SearchSiteTemplates); a Claude Design URL (import-claude-design-from-url).
Inputs
agentIdentitystringrequired- Which agent or product you are, which model if you know it, and the harness you run in. No personal data: no names, emails, phones, passwords, keys or local paths.
siteDescriptionstringrequired- What the site is: its purpose and who it is for. One or two sentences. No personal data: no names, emails, phones, passwords, keys or local paths.
siteFunctionalitystringrequired- 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. No personal data: no names, emails, phones, passwords, keys or local paths.
userRequeststringrequired- A short summary of what the user asked for and the context that led here, in a sentence or two, including whether this is a new site or an edit or new version of a site already on Wix. No personal data: no names, emails, phones, passwords, keys or local paths.
wixAccessstringrequired- 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; which Wix identity you act with â the user's login through this MCP, a CLI login, or none; and which Wix skills you have (for example wix-headless-kit or wix-manage), by name and where they come from (installed on disk, a plugin, read online), or none. Name the kind of identity, not the account or its email. No personal data: no names, emails, phones, passwords, keys or local paths.
startingPointstring- What the site starts from, in your own words: a new site; an existing Wix Headless site (a site deployed from files is one), with its metaSiteId if you have it; a project download link (a download.zip from Wix); a Wix site moving to code; or something else. No personal data: no names, emails, phones, passwords, keys or local paths.
wixmcp_uploadheadlesswebsitefilesThe upload step of the StartDeployWebsite and StartHeadlessBuild guides, and nothing else: puts a finished static website's files â index.html plus its CSS/JS/images, a static build, or a zip of the site â onto an existing Wix Headless site by its metaSiteId.WriteUpload Headless Website Files
The upload step of the StartDeployWebsite and StartHeadlessBuild guides, and nothing else: puts a finished static website's files â index.html plus its CSS/JS/images, a static build, or a zip of the site â onto an existing Wix Headless site by its metaSiteId. Call it ONLY after one of them has returned its guide in this conversation and the site exists: for a new site, first run the recipe's provision call and pass the metaSiteId it returns; for a site deployed earlier, pass its metaSiteId. It does not create sites. Every upload replaces the whole file set and the URL stays. Returns the live URL and the dashboard link, and points back to the recipe for what comes next. Pass the files themselves: in OpenAI clients (ChatGPT, Codex) as `attachments` (any type, a zip is unpacked), elsewhere as the `files` text bundle (`=== FILE: <path> ===` sections, `base64` tag for small binaries). The site must contain index.html at its root. NOT a site-creation tool: a request to create, build, design or generate a site â with or without a description â never comes here first. Unless the user asked for Wix's editor or a template (WixSiteBuilder, SearchSiteTemplates), call StartDeployWebsite right away, without asking the user anything: it also takes files the user brought, uploaded first even when the site needs business features. StartHeadlessBuild instead for a new site with no files that needs Wix business features. Also NOT for media uploads to an existing site (UploadImageToWixSite) or any other API call (ExecuteWixAPI).
Inputs
agentIdentitystringrequired- Which agent or product you are, which model if you know it, and the harness you run in. No personal data: no names, emails, phones, passwords, keys or local paths.
calledStartDeployWebsitebooleanrequired- Whether you called StartDeployWebsite earlier in this conversation and are following the recipe it returned. Answer truthfully; it is recorded, not checked.
reasonstringrequired- One sentence: the user request that led here and what is being published. No personal data: no names, emails, phones, passwords, keys or local paths.
siteIdstringrequired- The metaSiteId of the Wix Headless site to upload into: the one returned by the provision call of the StartDeployWebsite recipe for a new site, or of a site deployed earlier to replace its files. Every upload replaces the whole file set, so send all files; the URL stays the same. A build released here replaces static pages dropped earlier, at the same URL.
attachmentsarray- OpenAI clients (ChatGPT, Codex) only: pass each file as you have it (attached in the chat or created in your sandbox, by its file id or path) and the client swaps it for { download_url, file_id, file_name?, mime_type? } before the call reaches Wix. No other client does this swap, so elsewhere a path or file:// URL here fails at once; leave this out and for a static site use `files`, or drop the files as the StartDeployWebsite recipe shows; for a Wix Astro build from a shell that reaches the internet, zip it, call with `prepare: true` and its `size` and PUT the zips with curl. Any type: a zip of the whole site, HTML, CSS, JS, images. A zip is unpacked; a top-level folder wrapping the site is stripped. A Wix Astro build zipped with the whole project (minus `node_modules`) is released with its source stored when the site's repository accepts it. Prefer this over base64 in `files` whenever you have a file handle. Up to 10 MB per call.
expectedHeadRevisionIdstring- The repository revision your project started from, so the source replaces only that and a commit made since (another chat, a Dev Machine) is never dropped unseen: the revision you downloaded the project at; for a project started here, the `headRevisionId` the `prepare` call returned. Leave it out only for a repository with nothing in it yet. Goes with `uploadKey`, or with `files`/`attachments` holding a build.
filesstring- The site files as text, so file bytes never pass through a code string. Sections delimited by a line `=== FILE: <path> ===` (text, raw) or `=== FILE: <path> base64 ===` (binary, base64); `<path>` is relative to the site root; a static site must include `index.html`. Use base64 for small binaries (icons, logos, fonts); large images/video belong behind a URL in the HTML, not in the bundle. Optional when `attachments` carries the files. A Wix Astro build (`.wix/build-metadata.json` and `dist/` as `astro build` with the Wix hosting adapter wrote them, zipped from the project root) needs no `index.html`: it is released to the site's Wix hosting instead of dropped, and the project's other files in the upload are stored as its source when the site's repository accepts it.
prepareboolean- Phase one of the two-call upload of a Wix Astro build, for a shell that reaches the internet and no file handle (a sandbox whose network is limited to a few hosts cannot upload to the URLs): zip the build first, then `true` with its `size` returns presigned upload URLs for the build zip and, when the site's repository takes it, the project source zip, as `curl` commands to run verbatim, with the exact second call. The two calls: {siteId, prepare: true, size}, then {siteId, uploadKey, sourceUploadId?, expectedHeadRevisionId?, releaseNotes?}. No `files`, `attachments`, `uploadKey` or `sourceUploadId` on the first; `expectedHeadRevisionId` and `releaseNotes` given on the first are echoed into the second. Not for a static site: send its files in `files` or `attachments`, or drop them as the StartDeployWebsite recipe shows.
releaseNotesstring- Optional: one line on what this release changes, at most 200 characters, kept with the deployment of a Wix Astro build, whether it comes in `files`/`attachments` or as the second call with `uploadKey` (given on the `prepare` call it is echoed into the second). A static drop keeps no notes.
sizeinteger- Phase one, with `prepare: true` only, and required there: the build zip's length in bytes (`wc -c < build.zip`), 1 to 104857600 (100 MB). The upload URL takes a body of exactly this length; a zip changed after the prepare needs a new prepare.
sourceUploadIdstring- Phase two: the `sourceUploadId` the `prepare` call returned, after the source zip was PUT to its URL. Stores the project source with the release. Needs `uploadKey`; leave it out when the prepare returned no source upload.
uploadKeystring- Phase two of the two-call upload: the `uploadKey` the `prepare` call returned, after the build zip was PUT to its URL. Releases that build to the site: {siteId, uploadKey, sourceUploadId?, expectedHeadRevisionId?, releaseNotes?}. Excludes `files` and `attachments`.
wixmcp_uploadimagetowixsiteUpload one or more images to a Wix site's Media Manager and return the file URL and media ID.WriteUploadImageToWixSite
Upload one or more images to a Wix site's Media Manager and return the file URL and media ID.
Inputs
siteIdstringrequired- The ID (UUID) of the Wix site to upload to. REQUIRED. If the user has not clearly specified which site, ASK them which site to upload to (or use ListWixSites to help them pick) BEFORE calling this tool. NEVER call this tool with a missing, empty, placeholder, or guessed siteId â ask first instead.
displayNamestring- Optional display name for the file in Media Manager. If not provided, uses the original filename.
imagearray- OpenAI clients (ChatGPT, Codex) only: pass each file as you have it (attached in the chat or created in your sandbox, by its file id or path) and the client swaps it for { download_url, file_id, file_name?, mime_type? } before the call reaches Wix. No other client does this swap, so elsewhere a path or file:// URL here fails at once; leave this out and send the image as imageBase64 (the whole file, one per call) or as a public URL in imageUrls. For plain image URLs the user pasted, use imageUrls instead. ALWAYS pass ALL files together in a single call â NEVER call this tool once per image. Do NOT use together with imageBase64.
imageBase64string- Base64-encoded image data. Use when the client can read a file and encode it as base64. May include a data URL prefix (e.g. "data:image/jpeg;base64,...") or be raw base64. Do NOT use together with image.
imageUrlsarray- Array of publicly accessible image URLs (e.g. links the user pasted or URLs produced by other tools). Use this for plain URLs that are NOT chat attachments â no file_id is needed. ALWAYS pass ALL URLs together in a single call. Can be combined with image; do NOT use together with imageBase64.
mimeTypestring- MIME type of the image (e.g. "image/jpeg", "image/png", "image/webp"). Required when imageBase64 does not include a data URL prefix.
wixmcp_wixsitebuilderCreate or build a new Wix site using AI, returning a job ID to track the creation progress.WriteWixSiteBuilder
Create or build a new Wix site using AI, returning a job ID to track the creation progress.
Inputs
sitePromptstringrequired- The prompt to build the site. If not provided, the user will be asked to provide a prompt.
jobIdstring- The job ID of the site build. If not provided, a new job will be created.
suggestedSiteNamestring- You must provide this on every call, including updates to an existing job, in English. A short name for the site: the business name the user gave, or one you derive from the site prompt.
wixEditorExplicitlyRequestedboolean- Did the user, in their own words or their answer to your question, ask for the Wix Harmony Editor, or for Wix to design the site? Wanting Wix's editor, or to design the site themselves, is not that: ask them how to start first. Nor are a site's business, features or look.
wixmcp_callwixsiteapiCall any Wix REST API endpoint on a specific site to create, read, update, or delete site data.DestructiveCallWixSiteAPI
Call any Wix REST API endpoint on a specific site to create, read, update, or delete site data.
Inputs
methodstringrequired- The HTTP method to use for the API call (e.g. GET, POST, PUT, DELETE)
reasonstringrequired- One sentence explaining the original user request and why you are calling this API to complete it.
siteIdstringrequired- The id of the site selected using site selection tool
sourceDocUrlstringrequired- The URL of the documentation or recipe where you found this API endpoint. MAKE SURE THE ENDPOINT URL IS REALLY THERE AND YOUR ARE NOT GUESSING IT !!! Must be a valid URL like: - https://dev.wix.com/docs/api-reference/... (REST API reference docs) Use "user-provided" if the user gave you the endpoint directly. Use "other" ONLY IF YOU HAVE A VERY GOOD REASON TO DO SO
urlstringrequired- The url of the api to call - ALWAYS get the API url from the Wix REST docs or from the conversation context, the URL MUST BE ABSOLUTE URL NEVER guess the API url, ALWAYS get it from the conversation context, i.e from the user prompt or from the "WixREADME" tool or from the "SearchWixRESTDocumentation" tool or from the "BrowseWixRESTDocsMenu" tool or from the "ReadFullDocsArticle" tool Allowed API urls are: wix.com, dev.wix.com, manage.wix.com, editor.wix.com, wixapis.com Docs urls like https://dev.wix.com/docs/... are not API urls, if you want to read the docs, use the "ReadFullDocsArticle" tool Repeat array query params once per value: `?fieldsets=URL&fieldsets=RICH_CONTENT`. Do NOT comma-join values (`fieldsets=URL,RICH_CONTENT`), do NOT leave a trailing comma, and do NOT use a value the method schema does not list, even if a sibling method accepts it (draft posts have no `SEO` fieldset).
bodystring- The request body as a JSON object or array with all the required fields and values, including nested objects. Pass the actual value (object or array), NOT a JSON string. YOU MUST NEVER MAKE UP A BODY - the body should be based on the conversation context, i.e from the user prompt OR got into the conversation context by the "ReadFullDocsArticle" tool OR by the "SearchWixAPISpec" tool OR by the "ReadFullDocsMethodSchema" tool - i.e based on the API docs, a relevant recipe you read (preferably), a code example you found in the docs, a schema you read etc.. YOU MUST NEVER ASSUME YOU KNOW WHAT THE BODY SCHEMA IS WITHOUT CONCRETE EXAMPLES OR SCHEMA DEFINITIONS FROM THE CONVERSATION CONTEXT. Prefer reading relevant recipes if you have them in context for understand the body schema for API calls. Query and search filters are written in WQL: each field takes a single operator, so combine conditions with the logical operators â `$and` and `$or` take an array of expressions, `$not` takes one, and they can nest.
whyNotExecuteWixAPIstring- One sentence: why this call goes through CallWixSiteAPI and not ExecuteWixAPI. If ExecuteWixAPI is not in your tool list, say so.
wixmcp_executewixapiExecute JavaScript code against the Wix REST API in a sandboxed environment to query or mutate site data.DestructiveExecuteWixAPI
Execute JavaScript code against the Wix REST API in a sandboxed environment to query or mutate site data.
Inputs
codestringrequired- JavaScript async function expression to execute against the Wix REST API. The value must be the function itself, for example `async function() { ... }` or `async () => { ... }`, not a script body and not an invoked function. Return the final answer from inside the function. Do not write top-level `const`, top-level `await`, or top-level `return` outside the function body. Do not import Node.js built-ins such as `fs`, `path`, or `node:*`, and do not try to write files from this code; ExecuteWixAPI only returns data from the function. Use `wix.request({ method, url, body })` for Wix API calls. Scope defaults to `site` when a `siteId` is available â either the ExecuteWixAPI `siteId` parameter or a per-request `siteId` on the `wix.request` call â and to `account` when neither is set; set `scope` explicitly when needed. Full Wix API URLs and paths starting with `/` are supported. For MULTIPLE sites, handle them all in this ONE call: map over the site IDs and fan out with `Promise.allSettled`, passing a per-request `siteId` to each `wix.request({ scope: "site", siteId, method, url, body })`; the runtime obtains each site's token automatically. Do NOT invoke ExecuteWixAPI once per site. When `siteId` is omitted, the tool-level `siteId` is used. Wix REST API page size limits vary â use 100 as a safe default unless the method schema (via SearchWixAPISpec) confirms a higher limit is supported. For cursor-based APIs, pass the next cursor as `cursorPaging: { limit: 100, cursor: pagingMetadata.cursors.next }` â not inside `paging`. Check the method schema to confirm whether the API uses `paging` (offset-based) or `cursorPaging` (cursor-based) before paginating.
hasMutationsbooleanrequired- True if the code changes anything in the Wix account or a site (create, update, delete, publish, install, import, upload); false if it only reads (get, query, list, search).
reasonstringrequired- One sentence explaining the original user request and why you are executing code to complete it.
sourceDocUrlsarrayrequired- The URLs of the documentation, recipes, API articles, or schema sources where you confirmed the Wix REST endpoints, HTTP methods, request body shapes, auth contexts, and required fields used by this code. Include every docs/schema source needed for the endpoints and request shapes used in the code. MAKE SURE THE ENDPOINT URLS AND REQUEST SHAPES ARE REALLY THERE AND YOU ARE NOT GUESSING THEM !!! Each value must be a valid URL like: - https://dev.wix.com/docs/api-reference/... (REST API reference docs) Use ["user-provided"] if the user gave you all endpoint and request details directly. Use ["other"] ONLY IF YOU HAVE A VERY GOOD REASON TO DO SO
attachmentsarray- OpenAI clients (ChatGPT, Codex) only: pass each file as you have it (attached in the chat or created in your sandbox, by its file id or path) and the client swaps it for { download_url, file_id, file_name?, mime_type? } before the call reaches Wix. No other client does this swap, so elsewhere a path or file:// URL here fails at once; leave this out and use `files`, or upload from your shell if it reaches the internet. Any type: a zip of a site, HTML, images, PDFs. The bytes are fetched here and appended to the `files` global as { path, content, encoding: "base64" } entries (path = file_name), so `wix.multipart()` and `wix.unzip()` work on them unchanged. Prefer this over base64 in `files` whenever you have a file handle. Up to 10 MB per call.
filesstring- Optional bundle of raw file contents for uploads, so file bytes never go through the `code` JavaScript (no escaping, no string-literal/`${}`/backtick pitfalls). Never inline file contents in `code`. Format: sections delimited by a line `=== FILE: <path> ===` (text, raw) or `=== FILE: <path> base64 ===` (binary, base64); `<path>` is relative to the site root. Example: `=== FILE: index.html ===\n<!doctype html><img src="logo.png">\n=== FILE: assets/app.js ===\nconsole.log(1)\n=== FILE: logo.png base64 ===\niVBORw0KGgo...` In `code` they are the `files` global (`{ path, content, encoding?: "base64" }[]`); `wix.multipart()` turns them into one binary-safe `multipart/form-data` body: `const mp = wix.multipart(); await wix.request({ scope: "account", method: "POST", url, headers: { "Content-Type": mp.contentType }, body: mp.body });`. Use base64 entries for small assets (icons, logos, fonts) and for files you downloaded and are re-uploading; large images/video go in by URL (`<img src="https://...">`), not in the bundle. A file containing a line exactly like the delimiter is not supported.
siteIdstring- Default Wix site ID for the `wix.request()` calls in this execution. Optional in the schema, but required for site-level work: supply a `siteId` either here, as the default for every request, or on an individual request. Without one, a request runs at account scope, where site-level endpoints fail. Setting `scope: "account"` on a request runs it at account scope and ignores any `siteId`. Determine the target site with GetSiteContext or ListWixSites before calling; do not pass a guessed or empty value.
wixmcp_managewixsiteCall account-level Wix APIs to create, update, or publish a site.DestructiveManageWixSite
Call account-level Wix APIs to create, update, or publish a site.
Inputs
methodstringrequired- The HTTP method to use for the API call (e.g. GET, POST, PUT, DELETE)
urlstringrequired- The url of the api to call - ALWAYS get the information from the Wix REST docs DONT GUESS IT, the URL MUST BE ABSOLUTE URL
bodystring- The request body as a JSON object or array with all the required fields and values, including nested objects. Pass the actual value (object or array), NOT a JSON string. YOU MUST NEVER MAKE UP A BODY - this should be based on the conversation context, i.e from the user prompt or from the "WixREADME" tool or from the "SearchWixRESTDocumentation" tool or from the "BrowseWixRESTDocsMenu" tool or from the "ReadFullDocsArticle" tool or from the "SearchWixAPISpec" tool or from the "ReadFullDocsMethodSchema" tool - i.e based on the API docs. YOU MUST NEVER ASSUME YOU KNOW WHAT THE SCHEMA IS WITHOUT CONCRETE EXAMPLES OR SCHEMA DEFINITIONS FROM THE CONVERSATION CONTEXT.
reasonstring- One sentence explaining the original user request and why you are calling this account level API to complete it.
No tools match.