# Webflow — how to use (mcp.ai)

Connect your Webflow account and use 60 tools for website builders straight from your AI agent. Connect with your own API key. Webflow is a no-code website design and hosting platform, letting users build responsive sites, launch online stores, and maintain content without coding.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_webflow?ms=1787291460000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `webflow_create_asset`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/webflow`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/webflow/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/webflow/create/asset` — Creates asset metadata in Webflow and returns pre-signed S3 upload credentials. This action prepares an asset for upload by registering it in Webflow and generating S3 upload details. Use this when yo
  - body: { site_id: string, file_hash: string, file_name: string, parent_folder?: string }
- `POST https://api.mcp.ai/api/webflow/create/asset/folder` — Tool to create a new Asset Folder within a Webflow site. Use when you need to organize assets by creating folders. Requires assets:write scope.
  - body: { site_id: string, display_name: string, parent_folder?: string }
- `POST https://api.mcp.ai/api/webflow/create/bulk/collection/items` — Tool to create one or multiple items in a Webflow CMS Collection across multiple locales. Use when you need to create up to 100 collection items in a single request. If cmsLocaleIds is not included fo
  - body: { items: object[], isDraft?: boolean, isArchived?: boolean, cmsLocaleIds?: string[], collection_id: string, skipInvalidFiles?: boolean }
- `POST https://api.mcp.ai/api/webflow/create/collection` — Tool to create a new collection in a Webflow site. Each collection includes required 'name' and 'slug' fields which are generated automatically. Use this when you need to create a new CMS collection w
  - body: { slug?: string, fields?: object[], site_id: string, display_name: string, singular_name: string }
- `POST https://api.mcp.ai/api/webflow/create/collection/field` — Tool to create a custom field in a Webflow collection. Use when you need to add a new field to an existing collection. Field validation is currently not available through the API. Bulk creation of fie
  - body: { id?: string, type: string, helpText?: string, metadata?: object, isEditable?: boolean, isRequired?: boolean, displayName: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/create/collection/item` — This tool creates a new item in a specified Webflow collection. It requires the collection_id and field_data parameters (including required name and slug) and optionally accepts an is_draft flag. Auth
  - body: { is_draft?: boolean, field_data: object, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/create/live/collection/item` — Tool to create a collection item that will be immediately published to the live site. Use when you need items to appear on the live site instantly without staging. This bypasses the staged item workfl
  - body: { field_data: object, collection_id: string, skip_invalid_files?: boolean }
- `POST https://api.mcp.ai/api/webflow/create/webhook` — Creates a new webhook for a Webflow site to receive notifications when specific events occur. Use this action when you need to register a webhook endpoint that will be called automatically when events
  - body: { url: string, filter?: object, site_id: string, trigger_type: string }
- `POST https://api.mcp.ai/api/webflow/delete/asset` — Tool to delete an Asset from Webflow. Use when you need to permanently remove an asset from a site. Requires assets:write scope.
  - body: { asset_id: string }
- `POST https://api.mcp.ai/api/webflow/delete/collection` — Tool to delete a collection from Webflow using its unique identifier. Use when you need to permanently remove a collection. This operation requires the 'cms:write' scope and cannot be undone.
  - body: { collection_id: string }
- `POST https://api.mcp.ai/api/webflow/delete/collection/field` — Tool to delete a custom field from a Webflow collection. Use when you need to permanently remove a field from a collection schema. This endpoint does not currently support bulk deletion and requires t
  - body: { field_id: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/delete/collection/item` — This tool allows you to delete a specific item from a collection in Webflow. It permanently removes the item from the specified collection and complements existing collection management tools. The too
  - body: { item_id: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/delete/collection/items` — Tool to delete multiple items from a Webflow collection in a single request. Use when you need to remove multiple collection items efficiently. Items are deleted only in the primary locale unless cmsL
  - body: { items: object[], collection_id: string }
- `POST https://api.mcp.ai/api/webflow/delete/webhook` — Tool to remove a Webhook from Webflow. Use when you need to delete an existing webhook by its ID. Requires 'sites:read' scope.
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/webflow/fulfill/order` — This tool allows you to mark an order as fulfilled in Webflow's e-commerce system. It's essential for managing order fulfillment in Webflow stores.
  - body: { site_id: string, order_id: string, send_order_fulfilled_email?: boolean }
- `POST https://api.mcp.ai/api/webflow/get/asset` — Retrieves detailed information about a specific asset by its ID from a Webflow site. Returns asset metadata including content type, size, URLs, variants, and other properties. Use this when you need t
  - body: { locale?: string, asset_id: string }
- `POST https://api.mcp.ai/api/webflow/get/asset/folder` — Tool to retrieve details about a specific Asset Folder in Webflow. Use when you need information about a folder's name, parent folder, assets it contains, and metadata like creation/update dates. Requ
  - body: { asset_folder_id: string }
- `POST https://api.mcp.ai/api/webflow/get/collection` — Retrieves a specific collection by its ID from a Webflow site. This endpoint returns detailed information about the collection, including its name, slug, and schema. It requires a valid collection_id 
  - body: { collection_id: string }
- `POST https://api.mcp.ai/api/webflow/get/collection/item` — This tool retrieves a specific item from a Webflow collection. It allows users to fetch detailed information about a single collection item using its unique identifier. The tool is used to get an item
  - body: { item_id: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/get/component/properties` — Tool to get the default property values of a component definition. Use when you need to retrieve text content properties (plain text or rich text) for a specific component. If you do not include a loc
  - body: { limit?: integer, offset?: integer, site_id: string, branchId?: string, localeId?: string, component_id: string }
- `POST https://api.mcp.ai/api/webflow/get/custom/domains` — Tool to retrieve all custom domains associated with a specific Webflow site. Use when you need to list the custom domain URLs configured for a site.
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/get/item/inventory` — This tool retrieves the current inventory levels for a specific SKU item in a Webflow e-commerce site. It provides information about the item's inventory quantity and type (finite or infinite) and com
  - body: { item_id: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/get/live/collection/item` — Retrieves details of a selected Collection live Item from Webflow. Use this when you need to access the published version of a collection item. For serving data to applications in real-time, the CDN-b
  - body: { item_id: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/get/order` — This tool retrieves detailed information about a specific order in Webflow. It allows users to fetch comprehensive order details including customer information, items purchased, payment status, and sh
  - body: { site_id: string, order_id: string }
- `POST https://api.mcp.ai/api/webflow/get/page` — Tool to retrieve metadata for a single Webflow page by page_id. Use when you need detailed information about a specific page including title, slug, SEO/OpenGraph settings, draft/published state, local
  - body: { page_id: string, locale_id?: string }
- `POST https://api.mcp.ai/api/webflow/get/page/dom` — Tool to retrieve the DOM/content node structure for a Webflow static page. Use when you need to inspect page elements, locate text content, or identify components for localization or text replacement.
  - body: { limit?: integer, offset?: integer, page_id: string, locale_id?: string }
- `POST https://api.mcp.ai/api/webflow/get/site/info` — This tool retrieves detailed information about a specific Webflow site. It includes site id, workspaceId, creation and update dates, display names, and other settings like previewUrl, timeZone, custom
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/get/token/authorized/by` — Tool to retrieve information about the user who authorized the access token. Use when you need to identify the authorized user's ID, email, first name, and last name.
- `POST https://api.mcp.ai/api/webflow/get/webhook` — Retrieves detailed information about a specific webhook by its ID from Webflow. Use this action when you need to get the configuration details of an existing webhook, including its trigger type, targe
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/webflow/list/asset/folders` — Tool to list all asset folders within a given Webflow site. Use when you need to retrieve folder structure for asset organization or when uploading assets to specific folders.
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/assets` — Tool to retrieve all assets (images, files) uploaded to a Webflow site. Use when you need to list or search for assets within a site. Supports pagination for large asset collections.
  - body: { limit?: integer, offset?: integer, site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/collection/items` — This tool retrieves a list of items from a specified collection in Webflow. It supports pagination and filtering, and is essential for fetching multiple items from a collection, such as blog posts, pr
  - body: { name?: string, slug?: string, limit?: integer, offset?: integer, sort_by?: string, sort_order?: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/list/collections` — This tool retrieves a list of all collections for a given Webflow site. It uses the site_id (obtained from WEBFLOW_LIST_WEBFLOW_SITES) to return a list of collections, each with properties such as id,
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/comment/threads` — Tool to list all comment threads for a Webflow site. Use when you need to retrieve comments on pages for collaboration or review purposes. Note: New comments may take up to 5 minutes to appear.
  - body: { limit?: integer, offset?: integer, sortBy?: string, site_id: string, localeId?: string, sortOrder?: string }
- `POST https://api.mcp.ai/api/webflow/list/custom/domains` — Retrieves a list of all custom domains configured for a specific Webflow site. Use this action when you need to view all custom domain URLs associated with a site, including their publication status a
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/form/submissions` — This tool retrieves a list of form submissions for a specific Webflow site. It allows users to fetch form submission data with pagination support and optional filtering by form element ID.
  - body: { limit?: integer, offset?: integer, site_id: string, element_id?: string }
- `POST https://api.mcp.ai/api/webflow/list/forms` — Retrieves a list of forms for a specific Webflow site. This action returns all forms defined on the site, including their fields, response settings, and metadata. Use this action when you need to disc
  - body: { limit?: integer, offset?: integer, site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/live/collection/items` — Retrieves a list of live (published) collection items from a Webflow collection. Use this action when you need to fetch the published versions of collection items that are currently visible on the liv
  - body: { name?: string, slug?: string, limit?: integer, offset?: integer, sortBy?: string, sortOrder?: string, cmsLocaleId?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/list/orders` — This tool retrieves a list of all orders for a specified Webflow site using the GET /sites/{site_id}/orders endpoint. It accepts a required site_id parameter and optional parameters such as status (to
  - body: { limit?: integer, offset?: integer, status?: string, site_id: string }
- `POST https://api.mcp.ai/api/webflow/list/pages` — This tool retrieves a list of all pages for a specified Webflow site. It can access both static and CMS-driven pages and provides information such as the page's unique identifier, name, URL slug, crea
  - body: { limit?: integer, offset?: integer, site_id: string, locale_id?: string }
- `POST https://api.mcp.ai/api/webflow/list/webflow/sites` — This tool retrieves a list of all Webflow sites accessible to the authenticated user. It is a fundamental and independent action which only requires an authentication token and returns details for eac
- `POST https://api.mcp.ai/api/webflow/list/webhooks` — Tool to list all App-created Webhooks registered for a given site. Use when you need to retrieve the webhooks configured for a Webflow site. Requires 'sites:read' scope.
  - body: { site_id: string }
- `POST https://api.mcp.ai/api/webflow/publish/collection/items` — Tool to publish one or multiple staged collection items in Webflow. Use when you need to make draft items live on the published site. Supports both simple publishing (via item_ids) and locale-specific
  - body: { items?: object[], item_ids?: string[], collection_id: string }
- `POST https://api.mcp.ai/api/webflow/publish/site` — This tool publishes a Webflow site, making all staged changes live. It uses the POST /v2/sites/{site_id}/publish API endpoint and requires a valid site_id. You can optionally specify custom domain IDs
  - body: { site_id: string, custom_domains?: string[], publish_to_webflow_subdomain?: boolean }
- `POST https://api.mcp.ai/api/webflow/refund/order` — This tool allows you to refund a Webflow e-commerce order. When executed, it reverses the Stripe charge and sets the order's status to 'refunded'. It handles customer returns or order cancellations.
  - body: { reason?: string, site_id: string, order_id: string }
- `POST https://api.mcp.ai/api/webflow/unfulfill/order` — This tool allows you to mark a previously fulfilled order as unfulfilled in Webflow. It is useful for reversing a fulfillment action when an order was mistakenly marked as fulfilled or if there are is
  - body: { site_id: string, order_id: string }
- `POST https://api.mcp.ai/api/webflow/unpublish/live/collection/item` — Tool to unpublish a live item from the Webflow site and set the isDraft property to true. Use when you need to take a published collection item offline and revert it to draft status. Requires CMS:writ
  - body: { item_id: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/unpublish/live/collection/items` — Tool to unpublish up to 100 items from the live site and set isDraft property to true. Use when you need to remove items from live view while keeping them in the collection. Items are unpublished only
  - body: { items: object[], collection_id: string }
- `POST https://api.mcp.ai/api/webflow/update/collection/field` — Tool to update a custom field in a Webflow collection. Use when you need to modify field properties like display name, help text, or required status. Requires cms:write scope. At least one field prope
  - body: { field_id: string, helpText?: string, isRequired?: boolean, displayName?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/update/collection/item` — DEPRECATED: Use WEBFLOW_UPDATE_COLLECTION_ITEM_V2 instead. Updates an EXISTING item in a Webflow collection. This action is for modifying items that already exist - it requires a valid item_id (24-cha
  - body: { live?: boolean, fields: object, item_id: string, cms_locale_id?: string, collection_id: string }
- `POST https://api.mcp.ai/api/webflow/update/collection/item/v2` — Tool to update a selected Item in a Webflow Collection using the single-item PATCH endpoint. Use when you need to update an existing collection item with new field values, draft status, or archive sta
  - body: { isDraft?: boolean, item_id: string, fieldData: object, isArchived?: boolean, cmsLocaleId?: string, collection_id: string, skipInvalidFiles?: boolean }
- `POST https://api.mcp.ai/api/webflow/update/collection/items/bulk` — Updates multiple items (up to 100) in a Webflow CMS collection in a single request. Use when you need to update several existing collection items at once with new field values, draft status, or archiv
  - body: { items: object[], collection_id: string, skipInvalidFiles?: boolean }
- `POST https://api.mcp.ai/api/webflow/update/item/inventory` — This tool allows you to update the inventory levels of a specific SKU item in your Webflow e-commerce site by either setting the inventory quantity directly or updating it incrementally. It updates th
  - body: { item_id: string, quantity?: number, collection_id: string, inventory_type: string, update_quantity?: number }
- `POST https://api.mcp.ai/api/webflow/update/live/collection/item` — Tool to update a selected live Item in a Webflow Collection. Use when you need to publish updates to a collection item directly to the live site. The updates are immediately published and visible on t
  - body: { isDraft?: boolean, item_id: string, fieldData: object, isArchived?: boolean, cmsLocaleId?: string, collection_id: string, skipInvalidFiles?: boolean }
- `POST https://api.mcp.ai/api/webflow/update/live/collection/items` — Tool to update single or multiple published items (up to 100) in a Webflow Collection. Use when you need to update items that are already published to the live site. Items will only be updated in the 
  - body: { items: object[], collection_id: string, skipInvalidFiles?: boolean }
- `POST https://api.mcp.ai/api/webflow/update/order` — This tool allows updating specific fields of an existing order in Webflow. It's particularly useful for managing order fulfillment details and adding internal notes.
  - body: { comment?: string, site_id: string, order_id: string, shipping_provider?: string, shipping_tracking?: string, shipping_tracking_url?: string }
- `POST https://api.mcp.ai/api/webflow/update/page` — Updates a Webflow page's settings including title, slug, SEO, and Open Graph metadata using the v2 stable API endpoint. Use this action when you need to modify core page properties such as the display
  - body: { seo?: object, slug?: string, title?: string, page_id: string, localeId?: string, openGraph?: object }
- `POST https://api.mcp.ai/api/webflow/update/page/metadata` — Tool to update page-level metadata in Webflow including SEO and Open Graph fields. Use when you need to modify a page's title, slug, SEO settings, or Open Graph annotations. Requires pages:write scope
  - body: { seo?: object, slug?: string, title?: string, page_id: string, localeId?: string, openGraph?: object }
- `POST https://api.mcp.ai/api/webflow/update/site` — Tool to update a Webflow site's properties such as name and parent folder. Use when you need to modify site settings. This endpoint requires an Enterprise workspace and the sites:write OAuth scope.
  - body: { name?: string, site_id: string, parentFolderId?: string }
- `POST https://api.mcp.ai/api/webflow/upload/asset` — This tool allows users to upload assets (files, images, etc.) to a Webflow site. It involves a two-step process: first, generating a pre-signed Amazon S3 upload URL by calling the Webflow API, and sec
  - body: { md5: string, site_id: string, file_name: string, content_type: string, file_content: string, asset_folder_id?: string }

## Example prompts
- "What can I do in Webflow?"
- "Show me a summary of my Webflow account"

## More
- Page: https://mcp.ai/webflow
- Agent spec (llms.txt): https://mcp.ai/webflow/llms.txt
- Postman collection: https://mcp.ai/webflow/postman.json
