Skip to content
Back to skills

Webflow

ASecurity

Manage Webflow sites via the official Webflow MCP server -- pages, CMS, assets, components, styles, variables, custom code, comments, localization, and publishing. Covers the headless Data API tools and the Designer API tools (which need the Webflow Designer open in the foreground). Use when: reading, auditing, or editing a Webflow site; building or duplicating pages; managing CMS collections or assets; or adding legal/marketing pages. This plugin ships the Webflow MCP server; just authentica...

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added August 31, 2026
ai-agentspythonrustgogitapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned August 31, 2026

npx -y skills add Yesterday-AI/skills --skill webflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Webflow?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Webflow
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/yesterday-ai-webflow/badge)](https://www.skillsdirectory.com/skills/yesterday-ai-webflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: webflow
description: >
  Manage Webflow sites via the official Webflow MCP server -- pages, CMS,
  assets, components, styles, variables, custom code, comments, localization,
  and publishing. Covers the headless Data API tools and the Designer API
  tools (which need the Webflow Designer open in the foreground). Use when:
  reading, auditing, or editing a Webflow site; building or duplicating pages;
  managing CMS collections or assets; or adding legal/marketing pages.
  This plugin ships the Webflow MCP server; just authenticate (OAuth).
metadata:
  category: productivity
  author: Yesterday
  version: "1.0"
  upstream: https://github.com/webflow/mcp-server
compatibility: >
  This plugin ships the Webflow MCP server via .mcp.json (remote HTTP). It
  auto-registers when the plugin is enabled; authenticate with OAuth on first
  use. No API key.
---

# Webflow πŸͺ‚

Read and edit Webflow sites through the official Webflow MCP server: pages,
CMS, assets, components, styles, variables, custom code, comments,
localization, and publishing.

## Setup

This plugin **ships the Webflow MCP server** (`.mcp.json` β†’ `webflow`, remote
HTTP at `https://mcp.webflow.com/mcp`). It registers automatically when the
plugin is enabled β€” no `claude mcp add`, no API key.

You only need to **authenticate (OAuth)** once:

1. Call the `authenticate` tool, open the returned URL, authorize.
2. The real tools load automatically once the flow completes. If the
   `localhost/callback` page errors, pass the full address-bar URL to
   `complete_authentication`.

Verify with a real call before claiming success β€” e.g. `data_sites_tool`
β†’ `list_sites`. "Connected" in `/mcp` is not proof; run a tool.

> Standalone (no plugin)? Add the server by hand:
> `claude mcp add webflow --transport http https://mcp.webflow.com/mcp`.

## Two tool tiers β€” read this first

| Tier | Tools | Needs Designer open? |
|---|---|---|
| **Data API** (REST) | `data_sites_tool`, `data_pages_tool`, `data_cms_tool`, `data_assets_tool`, `data_scripts_tool`, `data_comments_tool`, `data_localization_tool` | No β€” works headless |
| **Designer API** (live canvas) | `de_page_tool`, `de_component_tool`, `element_tool`, `element_builder`, `whtml_builder`, `style_tool`, `variable_tool`, `asset_tool`, `element_snapshot_tool` | **Yes** |

Designer tools require the **Webflow Designer open in a browser tab, in the
foreground**, with the MCP Bridge app running. When the tab goes to the
background or idle, calls **time out / "Unable to connect"** β€” the server
returns a Bridge-app link; share it as a markdown link and ask the user to
reopen the Designer and keep it foreground, then retry.

Always call `webflow_guide_tool` **once** at the start of a Designer session
(the server requires it before other tools). `ask_webflow_ai` answers
Webflow how-to questions.

## Core workflows

### Inventory / audit (headless)

`data_sites_tool list_sites` β†’ per site: `data_pages_tool list_pages`,
`data_cms_tool get_collection_list`, `data_scripts_tool get_registered_scripts`
+ `get_site_scripts`, `data_comments_tool list_comment_threads`. Assets,
components, styles, variables need the Designer (`asset_tool`,
`de_component_tool get_all_components`, `style_tool get_styles`,
`variable_tool get_variable_collections`).

### Create a page

There is **no Data-API create-page**. Either `de_page_tool create_page`
(blank β€” no nav/footer, since those are per-page unless componentized), or
have the user **duplicate** an existing page in the Pages panel (keeps
nav/footer/styles), then edit content via MCP. Set slug/SEO with
`data_pages_tool update_page_settings`.

### Replace rich-text body

`whtml_builder` into the content container with one root `<div>` (`<p>`,
`<strong>`, `<br>`, `<a href="mailto:…">`), supply matching CSS via the `css`
param, then `remove_element` the old block. Verify with `element_snapshot_tool`.

### Add a link across pages (no components)

If the footer/nav is duplicated per page, repeat per page: `switch_page` β†’
**verify** with `get_current_page` β†’ `query_elements` (filter by style) to
find the wrapper β†’ `element_builder` a `TextLink` with the existing style +
`set_link` (page). Snapshot to confirm.

### Publish

`data_sites_tool publish_site` (or the user clicks Publish). **Publishing
pushes every staged change since the last publish**, not just yours β€” warn the
user and have them preview first.

## Gotchas

- **Never assume `site_id`** β€” `list_sites` and confirm. Data tools require it explicitly.
- **`get_all_elements` output is huge** β€” it often exceeds the token limit and is saved to a file; slice it with python (`read()[A:B]`) or parse in a subagent. Prefer `query_elements` with filters when you can.
- **Active-page drift**: `switch_page` does not always stick; element ops fail with "parent not found" if the canvas is on another page. Always `get_current_page` to verify before building.
- **`set_text` on a RichText** collapses formatting β€” use `whtml_builder` for structured content.
- **Inherited styles**: new plain blocks can inherit `text-align: justify`, bold display fonts, etc. from the body. Set `font-family` / `font-weight` / `text-align` explicitly and snapshot.
- **Verify visually**: `element_snapshot_tool` after every structural edit. Don't trust the success message alone.
- **Nothing is live until published.** Treat publish as outward-facing β€” get explicit confirmation; never publish unprompted.

## Safety

Read-only Data tools (`list_*`, `get_*`) are always safe. Treat any
write (create/update/delete elements, CMS items, scripts) and `publish_site`
as consequential and outward-facing β€” confirm scope first, and let the user
own the publish.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.