webflow_create_ itemCreate Item(s) in a Collection.
Draft CMS items and push them live, update page titles and Open Graph fields, check orders and stock, pull form submissions, and publish a site to its domains — across every site the token reaches.
PopMCPWebflow
Every CMS, e-commerce, forms, pages, assets and publishing call your agent can make, plus the site events it can watch.
webflow_create_ itemCreate Item(s) in a Collection.
webflow_create_ item_ liveCreate item(s) in a collection that will be immediately published to the live site.
webflow_delete_ itemDelete an item from a collection.
webflow_get_ itemGet details of a selected Collection Item.
webflow_list_ itemsList of all Items within a Collection.
webflow_list_ items_ liveList all published items in a collection.
webflow_publish_ itemsPublish an item or multiple items.
webflow_update_ itemUpdate a selected Item in a Collection.
webflow_create_ productCreate a new ecommerce product and defaultSKU.
webflow_fulfill_ orderUpdates an order's status to fulfilled
webflow_get_ orderRetrieve a single product by its ID.
webflow_get_ productRetrieve a single product by its ID.
webflow_list_ ordersList all orders created for a given site.
webflow_list_ productsRetrieve all products for a site.
webflow_update_ sku_ inventoryUpdates the current inventory levels for a particular SKU item.
webflow_get_ form_ submission_ by_ siteGet information about a form submission within a specific site.
webflow_list_ formsList forms for a given site.
webflow_list_ site_ form_ submissionsList all form submissions for a given site with the ability to filter submissions by a centralized `elementId`.
webflow_get_ siteGet details of a site.
webflow_list_ sitesList of all sites the provided access token is able to access.
webflow_publish_ sitePublishes a site or an individual page to one or more domains.
webflow_create_ collectionCreate a Collection for a site with collection fields.
webflow_get_ collectionGet the full details of a collection from its ID.
webflow_list_ collectionsList of all Collections within a Site.
webflow_create_ assetThe first step in uploading an asset to a site.
webflow_get_ pageGet metadata information for a single page.
webflow_get_ page_ contentGet text and component instance content from a static page.
webflow_list_ assetsList of assets uploaded to a site
webflow_list_ pagesList of all pages for a site.
webflow_update_ pageUpdate Page-level metadata, including SEO and Open Graph fields.
webflow_update_ page_ contentThis endpoint updates content on a static page in **secondary locales**.
webflow_create_ redirectAdd a new 301 redirection rule to a site.
webflow_create_ webhookCreate a new Webhook.
webflow_list_ redirectsFetch a list of all 301 redirect rules configured for a specific site.
webflow_list_ webhooksList all App-created Webhooks registered for a given site
webflow_get_ authorized_ userInformation about the Authorized User
webflow_create_ items_ bulkCreate an item or multiple items in a CMS Collection across multiple corresponding locales.
webflow_delete_ itemsDelete Items from a Collection.
webflow_get_ item_ liveGet details of a selected Collection live Item.
webflow_unpublish_ itemUnpublish a live item from the site and set the `isDraft` property to `true`.
webflow_unpublish_ itemsUnpublish up to 100 items from the live site and set the `isDraft` property to `true`.
webflow_update_ item_ liveUpdate a selected live Item in a Collection.
webflow_update_ itemsUpdate a single item or multiple items in a Collection.
webflow_update_ items_ liveUpdate a single published item or multiple published items (up to 100) in a Collection Items will only be updated in the primary locale, unless a `cmsLocaleId` is included in the request.
webflow_create_ skusCreate additional SKUs to manage every option and variant of your Product.
webflow_get_ ecommerce_ settingsRetrieve ecommerce settings for a site.
webflow_list_ sku_ inventoryList the current inventory levels for a particular SKU item.
webflow_refund_ orderThis API will reverse a Stripe charge and refund an order back to a customer.
webflow_unfulfill_ orderUpdates an order's status to unfulfilled
webflow_update_ orderThis API lets you update the fields, `comment`, `shippingProvider`, and/or `shippingTracking` for a given order.
webflow_update_ productUpdate an existing Product.
webflow_update_ skuUpdate a specified SKU.
webflow_delete_ form_ submissionDelete a form submission
webflow_delete_ form_ submission_ by_ siteDelete a form submission within a specific site.
webflow_get_ formGet information about a given form.
webflow_get_ form_ submissionGet information about a given form submissio.
webflow_list_ form_ submissionsList form submissions for a given form When a form is used in a component definition, each instance of the form is considered an unique form.
webflow_list_ form_ submissions_ by_ siteList form submissions for a given form ID within a specific site.
webflow_update_ form_ submissionUpdate hidden fields on a form submission
webflow_update_ form_ submission_ by_ siteUpdate hidden fields on a form submission within a specific site.
webflow_delete_ google_ tagDelete a single Google Tag ID from a site.
webflow_delete_ google_ tagsDelete all Google Tag IDs from a site.
webflow_delete_ page_ custom_ codeRemove all scripts from a page applied by the App.
webflow_delete_ robots_ txtRemove specific rules for an user-agent in your `robots.txt` file.
webflow_delete_ site_ custom_ codeRemove all scripts from a site applied by the App.
webflow_delete_ well_ known_ fileDelete existing well-known files from a site.
webflow_get_ page_ custom_ codeGet all scripts applied to a page.
webflow_get_ robots_ txtRetrieve the robots.txt configuration for various user agents.
webflow_get_ site_ custom_ codeGet all scripts applied to a site by the App.
webflow_list_ custom_ code_ blocksGet a list of scripts that have been applied to a site and/or individual pages.
webflow_list_ google_ tagsList all Google Tag IDs configured for a site, sorted by order.
webflow_list_ registered_ scriptsGet a list of scripts that have been registered to a site.
webflow_register_ hosted_ scriptRegister a hosted script to a site.
webflow_register_ inline_ scriptRegister an inline script to a site.
webflow_replace_ robots_ txtReplace the `robots.txt` configuration for various user agents.
webflow_set_ well_ known_ fileUpload a supported well-known file to a site.
webflow_update_ google_ tagsAdd or update Google Tag IDs for a site.
webflow_update_ robots_ txtUpdate the `robots.txt` configuration for various user agents.
webflow_upsert_ page_ custom_ codeApply registered scripts to a page.
webflow_upsert_ site_ custom_ codeApply registered scripts to a site.
webflow_create_ siteCreate a site.
webflow_delete_ siteDelete a site.
webflow_get_ site_ planGet site plan details for the specified Site.
webflow_list_ custom_ domainsGet a list of all custom domains related to site.
webflow_update_ siteUpdate a site.
webflow_batch_ delete_ custom_ fontsDelete 1-100 custom fonts in a single request.
webflow_create_ collection_ fieldCreate a custom field in a collection.
webflow_create_ custom_ fontRegister a custom font on a site and get a presigned S3 URL to upload the font binary.
webflow_delete_ collectionDelete a collection using its ID.
webflow_delete_ collection_ fieldDelete a custom field in a collection.
webflow_delete_ custom_ fontDelete a custom font from a site.
webflow_get_ custom_ fontGet details about a custom font on a site.
webflow_list_ custom_ fontsList the custom fonts uploaded to a site.
webflow_replace_ custom_ font_ fileReplace the binary of an existing custom font while preserving its ID and any references to it.
webflow_update_ collection_ fieldUpdate a custom field in a collection.
webflow_update_ custom_ fontUpdate the metadata of a custom font.
webflow_delete_ assetDelete an Asset
webflow_get_ assetGet details about an asset
webflow_get_ component_ contentGet static content from a component definition.
webflow_get_ component_ propertiesGet the default property values of a component definition.
webflow_list_ componentsList of all components for a site.
webflow_update_ assetUpdate details of an Asset.
webflow_update_ component_ contentThis endpoint updates content within a component defintion for **secondary locales**.
webflow_update_ component_ propertiesUpdate the default property values of a component definition in a specificed locale.
webflow_delete_ redirectRemove a 301 redirection rule from a site.
webflow_delete_ webhookRemove a Webhook
webflow_get_ webhookGet a specific Webhook instance
webflow_update_ redirectUpdate a 301 redirection rule from a site.
webflow_create_ asset_ folderCreate an Asset Folder within a given site
webflow_get_ asset_ folderGet details about a specific Asset Folder
webflow_get_ comment_ threadGet details of a specific comment thread.
webflow_list_ asset_ foldersList Asset Folders within a given site
webflow_list_ comment_ repliesList all replies to a specific comment thread.
webflow_list_ comment_ threadsList all comment threads for a site.
webflow_get_ workspace_ audit_ logsGet audit logs for a workspace.
webflow_introspect_ tokenInformation about the authorization token
webflow_list_ site_ activity_ logsRetrieve Activity Logs for a specific Site.
Credentials off one Webflow screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In Webflow: Site settings → Apps & integrations → API access → Generate API token. Pick your scopes, copy it, and paste it into API token. Then choose which sites to connect and the workspace each belongs in.
••••••••••••3f7aRead-only suits reporting. On full access, require approval for writes so publishing to live domains, deleting CMS items, or fulfilling an order waits for a human. The full-catalog toggle exposes rarer operations.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Webflow credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me every order placed in the last 7 days that isn't fulfilled yet
webflow_list_sitesok
Then just ask for the work
“Show me every order placed in the last 7 days that isn't fulfilled yet”
“Fix the missing meta descriptions on our blog CMS items and publish them”
“Add three new case study drafts to the Case Studies collection”
“Which pages are getting form submissions but have no SEO title set?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Webflow behind an AI client.
No. PopMCP connects with an API token you generate yourself: in Webflow, open a site, then Site settings → Apps & integrations → API access → Generate API token. Paste it into the API token field once — it is sent as Bearer auth, stored encrypted, and used server-side only. There is no OAuth popup, no client secret, and no token refresh to manage.
You choose the scopes at the moment you generate the token — read or write for CMS, e-commerce, pages, forms, assets and the rest. Those scopes are the hard ceiling on what the agent can do, so a read-scoped token makes write tools fail on Webflow's side no matter how the connection is configured. Grant only the scopes the work needs; you can regenerate the token with wider scopes later.
Yes. After the token is saved you pick which sites to connect and which workspace each one belongs in, and site_id is auto-filled from that choice, so nobody has to hunt for IDs inside prompts. list_sites returns every site the token is able to access. Sites the token cannot reach simply never appear.
Both, and the distinction matters here. create_item and update_item write to the staged CMS while publish_items pushes those items live, and create_item_live writes an item straight to the live site. publish_site publishes a site or an individual page to one or more domains, and unpublish_item pulls a live item down and sets it back to draft. Keep approval-required-for-writes on if nothing should go live unattended.
117 operations across 17 API modules — sites and publishing, pages, the CMS with staged and live items, e-commerce, forms, assets, custom fonts, custom code, redirects and webhooks — split 51 read and 66 write. 36 load into your AI client by default and the rest stay searchable, so the tool list stays manageable and the agent pulls in rarer operations only when a request needs them. PopMCP can also watch 25 event triggers, among them form submitted, site published, order placed, inventory changed, and CMS item updated.
Page metadata, yes: update_page changes page-level metadata including SEO and Open Graph fields, and get_page_content reads text and component instance content back from a static page. Body copy is the part that trips people up — update_page_content updates content on a static page in secondary locales, so it is not the route to primary-locale text. Anything rendered from a collection is edited as a CMS item with update_item instead.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 117 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 36-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 117 here. A trigger is something PopMCP watches for you: 25 Webflow events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Webflow.
Launch a hosted MCP endpoint for Webflow, keep tool access under control, and start testing real workflow prompts right away.