Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Webflow MCP server

Vendor MCP
Open markdown

The Webflow MCP connector routes your AI agent's tool calls to Webflow's own MCP server through Scalekit. Each user signs in to Webflow once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 40 tools.

Tools
40
What they doRead · write · destructive
7 · 10 · 237 read10 write23 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Manage CMS collections: create, update, publish, and delete collections, fields, and collection items on a site
  • Build and edit pages: add elements, components, and HTML sections to pages, then edit text, styles, links, and images
  • Manage styles and variables: create, update, and remove styles and design variables, including variable modes
  • Publish sites: list sites, create pages, update page settings, and publish site changes live
  • Read site analytics: pull traffic trends, top pages, engagement events, and time on page from Webflow Analyze
  • Handle forms and comments: read form submissions and reply to Designer comment threads on a page

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Webflow MCP connection

    In AgentKit > Connections, create a Webflow MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Webflow MCP server, so you don't need to register an OAuth app.

  4. 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.actions
    const connector = 'webflowmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Webflow MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'webflowmcp_webflow_guide_tool',
    toolInput: { context: 'YOUR_CONTEXT' },
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • webflowmcp_ask_webflow_aiAsk Webflow AI any question about the Webflow API and get a direct answer.Read-only

    Ask Webflow Ai

    Ask Webflow AI any question about the Webflow API and get a direct answer.

    Inputs

    contextstringrequired
    Description of what the user is trying to accomplish, used to select the right action.
    messagestringrequired
    Your question about the Webflow API.
  • webflowmcp_data_analyze_toolRead Webflow Analyze report data for a site, including traffic timeseries, ranked pages, ranked dimensions, ranked engagement events, and aggregate or bucketed time on page.Read-only

    Data Analyze Tool

    Read Webflow Analyze report data for a site, including traffic timeseries, ranked pages, ranked dimensions, ranked engagement events, and aggregate or bucketed time on page. Includes guide actions for building Analyze queries and resolving engagement event rows to page elements, component instances, and CMS context.

    Inputs

    actionsarrayrequired
    Executed sequentially. Each item must include label and exactly one action property.
    contextstringrequired
    Description of what the user is trying to accomplish, used to select the right action.
  • webflowmcp_element_snapshot_toolCapture a visual snapshot of a Designer element for debugging and visual feedback.Read-only

    Element Snapshot Tool

    Capture a visual snapshot of a Designer element for debugging and visual feedback.

    Inputs

    actionobjectrequired
    No description.
    contextstringrequired
    Brief description of why this tool is being called in context of the user goal (15-25 words, third-person).
    siteIdstringrequired
    The unique ID of the Webflow site. Get it from the data_sites_tool if not known.
  • webflowmcp_get_asset_previewGet an image preview of a site asset by its asset ID.Read-only

    Get Webflow Asset Preview

    Get an image preview of a site asset by its asset ID. Fetches the asset's metadata, downloads the smallest available image variant (or the original file when no variants exist), and returns the image content. Works with any image content type (e.g. JPG, PNG, GIF, WEBP); non-image files and files larger than 2 MB return an error instead of an image. Returns a 404 error if the asset does not exist or has been deleted.

    Inputs

    asset_idstringrequired
    The asset ID to preview. Discover asset IDs via data_assets_tool > list_assets.
    contextstringrequired
    Description of what the user is trying to accomplish, used to select the right action.
  • webflowmcp_get_image_previewDesigner Tool - Get image preview from url.Read-only

    Get Image Preview

    Designer Tool - Get image preview from url. this is helpful to get image preview from url. Only supports JPG, PNG, GIF, WEBP, WEBP and AVIF formats.

    Inputs

    contextstringrequired
    Brief description of why this tool is being called in context of the user goal (15-25 words, third-person).
    siteIdstringrequired
    The unique ID of the Webflow site. Get it from the data_sites_tool if not known.
    urlstringrequired
    The URL of the image to get the preview from
  • webflowmcp_get_more_toolsCheck for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.Read-only

    Get More Tools

    Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.

    Inputs

    briefstringrequired
    Describe the use case, what the user wants to accomplish, why existing tools are insufficient, and any relevant Webflow context.
    categorystringrequired
    The category of the capability you are looking for.one of CMSSITESPAGESELEMENTSCOMPONENTSSTYLESASSETSVARIABLESCUSTOM_CODECOMMENTSWEBHOOKSWORKFLOWSSEOENTERPRISEFORMSLOCALIZATIONPUBLISHINGINTERACTIONSECOMMERCEREDIRECTSBACKUPSWORKSPACEAIDOCSSKILLSOTHER
    contextstringrequired
    A short description of your goal and what kind of tool would help accomplish it.
  • webflowmcp_webflow_guide_toolRetrieve Webflow tool usage guidelines and recommended workflows before performing any actions.Read-only

    Webflow Guide Tool

    Retrieve Webflow tool usage guidelines and recommended workflows before performing any actions.

    Inputs

    contextstringrequired
    Brief description of why this tool is being called in context of the user goal (15-25 words, third-person).
  • webflowmcp_asset_toolDesigner Tool - Upload an image from a publicly accessible URL as a Webflow asset.Write

    Designer Asset Tool

    Designer Tool - Upload an image from a publicly accessible URL as a Webflow asset. Other asset and folder management is handled by data_assets_tool.

    Inputs

    actionsarrayrequired
    Executed sequentially. Each item must include label and exactly one action property.
    contextstringrequired
    Description of what the user is trying to accomplish, used to select the right action.
    siteIdstringrequired
    Webflow site ID. Discover with list_sites.