Webflow's MCP Server provides a protocol implementation that allows AI agents to interact with Webflow APIs through the Model Context Protocol. This server enables AI assistants to manage your Webflow sites, pages, collections, and custom code through natural language commands.
Settings
→ Cursor Settings
→ MCP
+ Add New Global MCP Server
{
"mcpServers": {
"webflow": {
"command": "npx mcp-remote https://mcp.webflow.com/sse"
}
}
}
Settings
→ Developer
Edit Config
claude_desktop_config.json
, add:{
"mcpServers": {
"webflow": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.webflow.com/sse"]
}
}
}
Windsurf - Settings
→ Advanced Settings
Cascade
section → Add Server
→ Add custom server +
{
"mcpServers": {
"webflow": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.webflow.com/sse"]
}
}
}
Save
to open the OAuth login.If you experience issues, reset your OAuth tokens with:
rm -rf ~/.mcp-auth
Use this configuration template:
{
"mcpServers": {
"webflow": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"WEBFLOW_TOKEN": "<YOUR_WEBFLOW_TOKEN>"
}
}
}
}
+ Add New Global MCP Server
<YOUR_WEBFLOW_TOKEN>
with your tokenEdit Config
claude_desktop_config.json
and paste the configuration<YOUR_WEBFLOW_TOKEN>
with your tokenVerify both are installed by running:
node -v
npm -v
npm cache clean --force
If you need to use sudo
for npm commands, follow the NPM docs to fix permissions.
sites - list; // List all sites
sites - get; // Get site details
sites - publish; // Publish site changes
pages - list; // List all pages
pages - get - metadata; // Get page metadata
pages - update - page - settings; // Update page settings
pages - get - content; // Get page content
pages - update - static - content; // Update page content
collections - list; // List collections
collections - get; // Get collection details
collections - create; // Create a collection
collection - fields - create - static; // Create a static field
collection - fields - create - option; // Create an option field
collection - fields - create - reference; // Create a reference field
collection - fields - update; // Update a custom field
collections - items - create - item - live; // Create items
collections - items - update - items - live; // Update items
collections - items - list - items; // List collection items
collections - items - create - item; // Create collection items (staged)
collections - items - update - items; // Update collection items (staged)
collections - items - publish - items; // Publish collection items
custom code - add - inline - site - script // Register an inline script for a site
custom code - get - registered - site - script - list // List all scripts registered to a site
custom code - get - applied - site - script - list //Get all scripts applied to a site
custom code - delete site custom code // Remove scripts from a site
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 are not supported and will result in errors.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.