Skip to content

Commit e582be3

Browse files
adjusted instructions
1 parent 0ed3d91 commit e582be3

File tree

1 file changed

+97
-131
lines changed

1 file changed

+97
-131
lines changed

README.md

Lines changed: 97 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
1-
# Webflow's Official MCP Server
1+
# Webflow's MCP server
22

33
A Node.js server implementing Model Context Protocol (MCP) for Webflow using the [Webflow JavaScript SDK](https://github.com/webflow/js-webflow-api). Enable AI agents to interact with Webflow APIs. Learn more about Webflow's Data API in the [developer documentation](https://developers.webflow.com/data/reference).
44

55
[![npm shield](https://img.shields.io/npm/v/webflow-mcp-server)](https://www.npmjs.com/package/webflow-mcp-server)
6-
[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com/?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fwebflow%2Fmcp-server)
6+
![Webflow](https://img.shields.io/badge/webflow-%23146EF5.svg?style=for-the-badge&logo=webflow&logoColor=white)
77

8-
## Prerequisites
8+
## Prerequisites
99

1010
- [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
1111
- [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
1212
- [A Webflow Account](https://webflow.com/signup)
1313

14-
## 🚀 Getting started (OAuth remote MCP server)
14+
## 🚀 Remote installation
1515

16-
Get started by installing Webflow's remote MCP server, which uses OAuth to authenticate with your Webflow sites, and a companion app that syncs your live canvas with your AI agent.
17-
18-
For local installation, see the [NPM package documentation](https://www.npmjs.com/package/webflow-mcp-server).
16+
Get started by installing Webflow's remote MCP server. The remote server uses OAuth to authenticate with your Webflow sites, and a companion app that syncs your live canvas with your AI agent.
1917

2018
### Requirements
2119

@@ -25,6 +23,8 @@ For local installation, see the [NPM package documentation](https://www.npmjs.co
2523
2624
### Cursor
2725

26+
#### Add MCP server to Cursor
27+
2828
1. Go to `Settings → Cursor Settings → MCP & Integrations`.
2929
2. Under MCP Tools, click `+ New MCP Server`.
3030
3. Paste the following configuration into `.cursor/mcp.json` (or add the `webflow` part to your existing configuration):
@@ -39,9 +39,9 @@ For local installation, see the [NPM package documentation](https://www.npmjs.co
3939
}
4040
```
4141

42-
> Tip: Prefer a project-level `mcp.json` to avoid repeated auth prompts across multiple Cursor windows. See Cursor’s docs on configuration locations.
42+
> Tip: You can create a project-level `mcp.json` to avoid repeated auth prompts across multiple Cursor windows. See Cursor’s docs on [configuration locations.](https://docs.cursor.com/en/context/mcp#configuration-locations)
4343
44-
4. Save and close the file. Cursor will automatically open an OAuth login page where you can authorize the Webflow sites and install the companion app.
44+
4. Save and close the file. Cursor will automatically open an OAuth login page where you can authorize the Webflow sites.
4545

4646
#### Open the Webflow Designer
4747

@@ -55,7 +55,7 @@ Give me a link to open <MY_SITE_NAME> in the Webflow Designer
5555
#### Open the MCP Webflow App
5656

5757
1. In the Designer, open the Apps panel (press `E`).
58-
2. Launch "Webflow MCP Bridge App" (installed during OAuth).
58+
2. Launch your published "Webflow MCP Bridge App".
5959
3. Wait for the app to connect to the MCP server.
6060

6161
#### Write your first prompt
@@ -74,7 +74,9 @@ Find older blog posts that mention similar topics and add internal links to my l
7474
Create a hero section card on my home page with a CTA button and responsive design
7575
```
7676

77-
### Claude Desktop
77+
### Claude desktop
78+
79+
#### Add MCP Server to Claude desktop
7880

7981
1. Enable developer mode: `Help → Troubleshooting → Enable Developer Mode`.
8082
2. Open developer settings: `File → Settings → Developer`.
@@ -91,27 +93,70 @@ Create a hero section card on my home page with a CTA button and responsive desi
9193
}
9294
```
9395

94-
4. Save and restart Claude Desktop (`Cmd/Ctrl + R`). An OAuth login page will open to authorize sites and install the companion app.
96+
4. Save and restart Claude Desktop (`Cmd/Ctrl + R`). An OAuth login page will open to authorize sites.
9597

9698
#### Open the Webflow Designer
9799

100+
#### Open the MCP Webflow App
101+
102+
1. In the Designer, open the Apps panel (press `E`).
103+
2. Launch your published "Webflow MCP Bridge App".
104+
3. Wait for the app to connect to the MCP server.
105+
106+
#### Write your first prompt
107+
108+
```text
109+
Analyze my last 5 blog posts and suggest 3 new topic ideas with SEO keywords
110+
```
111+
112+
```text
113+
Find older blog posts that mention similar topics and add internal links to my latest post
114+
```
115+
116+
```text
117+
Create a hero section card on my home page with a CTA button and responsive design
118+
```
119+
120+
---
121+
98122
## Local Installation
99123

100-
1. **Get your Webflow API token**
124+
You can also configure thee MCP server to run locally. This requires:
125+
126+
- Creating and registering your own MCP Bridge App in a Webflow workspace with Admin permissions
127+
- Configuring your AI client to start the local MCP server with a Webflow API token
128+
129+
### 1. Create and publish the MCP bridge app
130+
131+
Before connecting the local MCP server to your AI client, create and publish the Webflow MCP Bridge App in your workspace.
132+
133+
1. Register a Webflow App in your Workspace. Follow the [Register an App](https://developers.webflow.com/data/v2.0.0/docs/register-an-app) guidance for more details.
134+
2. Clone the MCP Bridge App code:
135+
```bash
136+
git clone https://github.com/virat21/webflow-mcp-bridge-app
137+
cd webflow-designer-mcp-bridge-app
138+
```
139+
3. Configure the app with your App credentials:
140+
- Set your Client ID and Client Secret in a `.env` file for the App you registered.
141+
- See the app repo’s README for exact variables and build steps.
142+
4. Build and publish the Designer Extension to your workspace:
143+
- Build per the repo instructions.
144+
- Publish the App to your workspace via the Webflow Dashboard → Workspace settings → Apps & Integrations → Develop→ your App → “Publish Extension Version” and upload your `bundle.zip` file.
145+
146+
Once published to your workspace, open your MCP Bridge App in a site on your workspace from the Designer’s Apps panel.
101147

102-
- Go to [Webflow's API Playground](https://developers.webflow.com/data/reference/token/authorized-by)
103-
- Log in and generate a token
104-
- Copy the token from the Request Generator
105-
![Get API Token](https://prod.ferndocs.com/_next/image?url=https%3A%2F%2Ffiles.buildwithfern.com%2Fwebflow-preview-6a549203-c0da-4038-8adf-1dbed286cb83.docs.buildwithfern.com%2F2025-03-28T17%3A56%3A04.435Z%2Fassets%2Fimages%2Fapi-key-playground.png&w=3840&q=75)
148+
### 2. Configure your AI client
106149

107-
2. **Add to your AI editor**
150+
#### Cursor
151+
152+
Add to `.cursor/mcp.json`:
108153

109154
```json
110155
{
111156
"mcpServers": {
112157
"webflow": {
113158
"command": "npx",
114-
"args": ["-y", "webflow-mcp-server@0.6.0"],
159+
"args": ["-y", "webflow-mcp-server@latest"],
115160
"env": {
116161
"WEBFLOW_TOKEN": "<YOUR_WEBFLOW_TOKEN>"
117162
}
@@ -120,32 +165,47 @@ Create a hero section card on my home page with a CTA button and responsive desi
120165
}
121166
```
122167

123-
**For Cursor:**
168+
#### Claude desktop
169+
170+
Add to `claude_desktop_config.json`:
171+
172+
```json
173+
{
174+
"mcpServers": {
175+
"webflow": {
176+
"command": "npx",
177+
"args": ["-y", "webflow-mcp-server@latest"],
178+
"env": {
179+
"WEBFLOW_TOKEN": "<YOUR_WEBFLOW_TOKEN>"
180+
}
181+
}
182+
}
183+
}
184+
```
124185

125-
1. Go to Settings → Cursor Settings → MCP
126-
2. Click `+ Add New Global MCP Server`
127-
3. Paste configuration
128-
4. Replace `YOUR_WEBFLOW_TOKEN` with the token you copied earlier
129-
5. Save and **restart** Cursor
186+
### 3. Use the MCP server with the Webflow Designer
130187

131-
**For Claude Desktop:**
188+
- Open your site in the Webflow Designer.
189+
- Open the Apps panel (press `E`) and launch your published “Webflow MCP Bridge App”.
190+
- Wait for the app to connect to the MCP server, then use tools from your AI client.
132191

133-
1. Open Settings → Developer
134-
2. Click `Edit Config`
135-
3. Open `claude_desktop_config.json` in a code editor and paste configuration
136-
4. Replace `YOUR_WEBFLOW_TOKEN` with the token you copied earlier 5. Save and **restart** Claude
192+
### Optional: Run locally via shell
193+
194+
```bash
195+
WEBFLOW_TOKEN="<YOUR_WEBFLOW_TOKEN>" npx -y webflow-mcp-server@latest
196+
```
137197

138198
## ❓ Troubleshooting
139199

140200
If you are having issues starting the server in your MCP client e.g. Cursor or Claude Desktop, please try the following.
141201

142-
### Ensure you have a valid Webflow API token
202+
### Make sure you have a valid Webflow API token
143203

144204
1. Go to [Webflow's API Playground](https://developers.webflow.com/data/reference/token/authorized-by), log in and generate a token, then copy the token from the Request Generator
145205
2. Replace `YOUR_WEBFLOW_TOKEN` in your MCP client configuration with the token you copied
146206
3. Save and **restart** your MCP client
147207

148-
### Ensure you have the Node and NPM installed
208+
### Make sure you have the Node and NPM installed
149209

150210
- [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
151211
- [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
@@ -173,113 +233,19 @@ Note: if you are making changes to your shell configuration, you may need to res
173233

174234
## 🛠️ Available tools
175235

176-
### Sites
177-
178-
```
179-
sites - list; // List all sites
180-
sites - get; // Get site details
181-
sites - publish; // Publish site changes
182-
```
183-
184-
### Pages
185-
186-
```
187-
pages - list; // List all pages
188-
pages - get - metadata; // Get page metadata
189-
pages - update - page - settings; // Update page settings
190-
pages - get - content; // Get page content
191-
pages - update - static - content; // Update page content
192-
```
193-
194-
### Components
195-
196-
```
197-
components - list // List all components in a site
198-
components - get - content // Get component content (text, images, nested components)
199-
components - update - content // Update component content for localization
200-
components - get - properties // Get component properties (default values)
201-
components - update - properties // Update component properties for localization
202-
```
203-
204-
### CMS
205-
206-
```
207-
collections - list; // List collections
208-
collections - get; // Get collection details
209-
collections - create; // Create a collection
210-
collection - fields - create - static; // Create a static field
211-
collection - fields - create - option; // Create an option field
212-
collection - fields - create - reference; // Create a reference field
213-
collection - fields - update; // Update a custom field
214-
collections - items - create - item - live; // Create items
215-
collections - items - update - items - live; // Update items
216-
collections - items - list - items; // List collection items
217-
collections - items - create - item; // Create collection items (staged)
218-
collections - items - update - items; // Update collection items (staged)
219-
collections - items - publish - items; // Publish collection items
220-
```
236+
See the `./tools` directory for a list of available tools
221237

222-
### Custom Code
223-
224-
```
225-
custom code - add - inline - site - script // Register an inline script for a site
226-
custom code - get - registered - site - script - list // List all scripts registered to a site
227-
custom code - get - applied - site - script - list //Get all scripts applied to a site
228-
custom code - delete site custom code // Remove scripts from a site
229-
```
230-
231-
### Components
232-
233-
```
234-
components - list; // List all components for a site
235-
components - content - get; // Get static content from a component definition
236-
components - content - update; // Update content within a component definition for secondary locales
237-
components - properties - get; // Get the default property values of a component definition
238-
components - properties - update; // Update the default property values of a component definition for secondary locales
239-
```
240-
241-
### Ask Webflow AI
242-
243-
```
244-
ask - webflow - ai; // Search Webflow Docs using AI search
245-
```
246-
247-
# 🗣️ Prompts & Resources
238+
# 🗣️ Prompts & resources
248239

249240
This implementation **doesn't** include `prompts` or `resources` from the MCP specification. However, this may change in the future when there is broader support across popular MCP clients.
250241

251-
# 🚧 Development mode
252-
253-
If you want to run the server in development mode, you can install dependencies and run the server using the following command:
254-
255-
1. Clone and install:
256-
257-
```shell
258-
git clone git@github.com:webflow/mcp-server.git
259-
cd mcp-server
260-
npm install
261-
```
262-
263-
2. Add your token to a `.env` file at the root of the project:
264-
265-
```shell
266-
# .env
267-
WEBFLOW_TOKEN=<YOUR_WEBFLOW_TOKEN>
268-
```
269-
270-
3. Start development server:
271-
272-
```shell
273-
npm start
274-
```
275-
276-
## 📄 Webflow Developer resources
242+
## 📄 Webflow developer resources
277243

278244
- [Webflow API Documentation](https://developers.webflow.com/data/reference)
279245
- [Webflow JavaScript SDK](https://github.com/webflow/js-webflow-api)
280246

281-
## ⚠️ Known Limitations
247+
## ⚠️ Known limitations
282248

283-
### Static Page Content Updates
249+
### Static page content updates
284250

285251
The `pages_update_static_content` endpoint currently only supports updates to localized static pages in secondary locales. Updates to static content in the default locale aren't supported and will result in errors.

0 commit comments

Comments
 (0)