Webflow · Capability

Webflow CMS and Ecommerce

Unified Webflow capability combining Data API for CMS content management and ecommerce operations. Enables content managers to create and publish CMS items, developers to automate workflows via webhooks, and ecommerce managers to manage products and orders. Primary workflow for organizations using Webflow as a headless CMS or ecommerce platform.

Run with Naftiko WebflowCMSContent ManagementEcommercePublishingSites

What You Can Do

GET
List sites — List all Webflow sites
/v1/sites
POST
Publish site — Publish site to all domains
/v1/sites/{site_id}/publish
GET
List collections — List CMS collections
/v1/collections
GET
List items — List CMS items
/v1/items
POST
Create item — Create a CMS item
/v1/items
PATCH
Update item — Update a CMS item
/v1/items/{item_id}
DELETE
Delete item — Delete a CMS item
/v1/items/{item_id}
GET
List webhooks — List webhooks
/v1/webhooks
POST
Create webhook — Create a webhook
/v1/webhooks

MCP Tools

list-sites

List all Webflow sites accessible with the API key

read-only
publish-site

Publish a Webflow site to make changes live

list-collections

List CMS collections in a Webflow site

read-only
list-cms-items

List all items in a Webflow CMS collection

read-only
create-cms-item

Create a new content item in a Webflow CMS collection

update-cms-item

Update an existing Webflow CMS item

idempotent
publish-cms-items

Publish CMS items to make them live on the Webflow site

delete-cms-item

Delete a CMS item permanently

idempotent
list-webhooks

List registered webhooks for a Webflow site

read-only
create-webhook

Create a webhook to receive Webflow site events

APIs Used

webflow-data

Capability Spec

cms-and-ecommerce.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Webflow CMS and Ecommerce"
  description: >-
    Unified Webflow capability combining Data API for CMS content management
    and ecommerce operations. Enables content managers to create and publish
    CMS items, developers to automate workflows via webhooks, and ecommerce
    managers to manage products and orders. Primary workflow for organizations
    using Webflow as a headless CMS or ecommerce platform.
  tags:
    - Webflow
    - CMS
    - Content Management
    - Ecommerce
    - Publishing
    - Sites
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      WEBFLOW_API_KEY: WEBFLOW_API_KEY

capability:
  consumes:
    - import: webflow-data
      location: ./shared/data-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: webflow-cms-ecommerce-api
      description: "Unified REST API for Webflow CMS and ecommerce management."
      resources:
        - path: /v1/sites
          name: sites
          description: "Webflow site management"
          operations:
            - method: GET
              name: list-sites
              description: "List all Webflow sites"
              call: "webflow-data.list-sites"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/sites/{site_id}/publish
          name: site-publish
          description: "Publish a Webflow site"
          operations:
            - method: POST
              name: publish-site
              description: "Publish site to all domains"
              call: "webflow-data.publish-site"
              with:
                site_id: "rest.site_id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/collections
          name: collections
          description: "CMS collection management"
          operations:
            - method: GET
              name: list-collections
              description: "List CMS collections"
              call: "webflow-data.list-collections"
              with:
                site_id: "rest.site_id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/items
          name: items
          description: "CMS item management"
          operations:
            - method: GET
              name: list-items
              description: "List CMS items"
              call: "webflow-data.list-items"
              with:
                collection_id: "rest.collection_id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-item
              description: "Create a CMS item"
              call: "webflow-data.create-item"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/items/{item_id}
          name: item
          description: "Single CMS item operations"
          operations:
            - method: PATCH
              name: update-item
              description: "Update a CMS item"
              call: "webflow-data.update-item"
              with:
                collection_id: "rest.collection_id"
                item_id: "rest.item_id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: delete-item
              description: "Delete a CMS item"
              call: "webflow-data.delete-item"
              with:
                collection_id: "rest.collection_id"
                item_id: "rest.item_id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/webhooks
          name: webhooks
          description: "Webhook event subscriptions"
          operations:
            - method: GET
              name: list-webhooks
              description: "List webhooks"
              call: "webflow-data.list-webhooks"
              with:
                site_id: "rest.site_id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-webhook
              description: "Create a webhook"
              call: "webflow-data.create-webhook"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: webflow-cms-ecommerce-mcp
      transport: http
      description: "MCP server for AI-assisted Webflow CMS and ecommerce management."
      tools:
        - name: list-sites
          description: "List all Webflow sites accessible with the API key"
          hints:
            readOnly: true
            openWorld: true
          call: "webflow-data.list-sites"
          outputParameters:
            - type: object
              mapping: "$."
        - name: publish-site
          description: "Publish a Webflow site to make changes live"
          hints:
            readOnly: false
            destructive: false
          call: "webflow-data.publish-site"
          with:
            site_id: "tools.site_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-collections
          description: "List CMS collections in a Webflow site"
          hints:
            readOnly: true
            openWorld: true
          call: "webflow-data.list-collections"
          with:
            site_id: "tools.site_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-cms-items
          description: "List all items in a Webflow CMS collection"
          hints:
            readOnly: true
            openWorld: true
          call: "webflow-data.list-items"
          with:
            collection_id: "tools.collection_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-cms-item
          description: "Create a new content item in a Webflow CMS collection"
          hints:
            readOnly: false
            destructive: false
          call: "webflow-data.create-item"
          with:
            collection_id: "tools.collection_id"
            fieldData: "tools.fieldData"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-cms-item
          description: "Update an existing Webflow CMS item"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "webflow-data.update-item"
          with:
            collection_id: "tools.collection_id"
            item_id: "tools.item_id"
            fieldData: "tools.fieldData"
          outputParameters:
            - type: object
              mapping: "$."
        - name: publish-cms-items
          description: "Publish CMS items to make them live on the Webflow site"
          hints:
            readOnly: false
            destructive: false
          call: "webflow-data.publish-item"
          with:
            collection_id: "tools.collection_id"
            itemIds: "tools.itemIds"
          outputParameters:
            - type: object
              mapping: "$."
        - name: delete-cms-item
          description: "Delete a CMS item permanently"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "webflow-data.delete-item"
          with:
            collection_id: "tools.collection_id"
            item_id: "tools.item_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-webhooks
          description: "List registered webhooks for a Webflow site"
          hints:
            readOnly: true
            openWorld: false
          call: "webflow-data.list-webhooks"
          with:
            site_id: "tools.site_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-webhook
          description: "Create a webhook to receive Webflow site events"
          hints:
            readOnly: false
            destructive: false
          call: "webflow-data.create-webhook"
          with:
            site_id: "tools.site_id"
            triggerType: "tools.triggerType"
            url: "tools.url"
          outputParameters:
            - type: object
              mapping: "$."