A Node.js server implementing Model Context Protocol (MCP) for Webflow using the Webflow JavaScript SDK. Enable AI agents to interact with Webflow APIs. Learn more about Webflow's Data API in the developer documentation.
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.
- Node.js 22.3.0 or higher
Note: The MCP server currently supports Node.js 22.3.0 or higher. If you run into version issues, see the Node.js compatibility guidance.
- Go to
Settings → Cursor Settings → MCP & Integrations
. - Under MCP Tools, click
+ New MCP Server
. - Paste the following configuration into
.cursor/mcp.json
(or add thewebflow
part to your existing configuration):
{
"mcpServers": {
"webflow": {
"command": "npx mcp-remote https://mcp.webflow.com/sse"
}
}
}
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.
- Save and close the file. Cursor will automatically open an OAuth login page where you can authorize Webflow sites to use with the MCP server.
- Open your site in the Webflow Designer, or ask your AI agent:
Give me a link to open <MY_SITE_NAME> in the Webflow Designer
- In the Designer, open the Apps panel (press
E
). - Launch your published "Webflow MCP Bridge App".
- Wait for the app to connect to the MCP server.
Try these in your AI chat:
Analyze my last 5 blog posts and suggest 3 new topic ideas with SEO keywords
Find older blog posts that mention similar topics and add internal links to my latest post
Create a hero section card on my home page with a CTA button and responsive design
- Enable developer mode:
Help → Troubleshooting → Enable Developer Mode
. - Open developer settings:
File → Settings → Developer
. - Click
Get Started
or edit the configuration to openclaude_desktop_config.json
and add:
{
"mcpServers": {
"webflow": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.webflow.com/sse"]
}
}
}
- Save and restart Claude Desktop (
Cmd/Ctrl + R
). An OAuth login page will open to authorize sites.
- Open your site in the Webflow Designer, or ask your AI agent:
Give me a link to open <MY_SITE_NAME> in the Webflow Designer
- In the Designer, open the Apps panel (press
E
). - Launch your published "Webflow MCP Bridge App".
- Wait for the app to connect to the MCP server.
Analyze my last 5 blog posts and suggest 3 new topic ideas with SEO keywords
Find older blog posts that mention similar topics and add internal links to my latest post
Create a hero section card on my home page with a CTA button and responsive design
To reset your OAuth token, run the following command in your terminal.
rm -rf ~/.mcp-auth
Please see the Node.js compatibility guidance on Webflow's developer docs.
If you are having issues starting the server in your MCP client e.g. Cursor or Claude Desktop, please try the following.
- Go to Webflow's API Playground, log in and generate a token, then copy the token from the Request Generator
- Replace
YOUR_WEBFLOW_TOKEN
in your MCP client configuration with the token you copied - Save and restart your MCP client
Run the following commands to confirm you have Node and NPM installed:
node -v
npm -v
Sometimes clearing your NPM cache can resolve issues with npx
.
npm cache clean --force
If npm -v
doesn't work for you but sudo npm -v
does, you may need to fix NPM global package permissions. See the official NPM docs for more information.
Note: if you are making changes to your shell configuration, you may need to restart your shell for changes to take effect.
See the ./tools
directory for a list of available tools
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.
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.