# Webflow MCP Server Model Context Protocol (MCP) server for Webflow CMS and site builder platform. Manage sites, collections, items, pages, forms, and more with AI. ## Features Complete coverage of Webflow API for AI agents to manage websites, CMS content, forms, and publishing workflows. ### Tools Implemented (19 total) #### Sites (3 tools) - ✅ `webflow_list_sites` - List all sites with metadata - ✅ `webflow_get_site` - Get detailed site information - ✅ `webflow_publish_site` - Publish site to production domains #### Collections (3 tools) - ✅ `webflow_list_collections` - List all CMS collections - ✅ `webflow_get_collection` - Get collection schema and fields - ✅ `webflow_list_collection_fields` - List collection field definitions #### Collection Items (6 tools) - ✅ `webflow_list_collection_items` - List items with pagination - ✅ `webflow_get_collection_item` - Get single item by ID - ✅ `webflow_create_collection_item` - Create new CMS item - ✅ `webflow_update_collection_item` - Update existing item - ✅ `webflow_delete_collection_item` - Delete item - ✅ `webflow_publish_collection_item` - Publish draft item #### Pages (3 tools) - ✅ `webflow_list_pages` - List all pages with pagination - ✅ `webflow_get_page` - Get page details and SEO metadata - ✅ `webflow_update_page` - Update page title, slug, SEO #### Domains (2 tools) - ✅ `webflow_list_domains` - List site domains - ✅ `webflow_get_site_domains` - Get comprehensive domain info #### Webhooks (5 tools) - ✅ `webflow_list_webhooks` - List all webhooks - ✅ `webflow_get_webhook` - Get webhook configuration - ✅ `webflow_create_webhook` - Create webhook for real-time events - ✅ `webflow_delete_webhook` - Remove webhook - ✅ `webflow_list_site_webhooks` - Get all site webhooks #### Assets (2 tools) - ✅ `webflow_list_assets` - List uploaded assets with pagination - ✅ `webflow_get_asset` - Get asset details and URL #### Forms (3 tools) - ✅ `webflow_list_forms` - List all forms - ✅ `webflow_get_form` - Get form configuration - ✅ `webflow_get_form_submissions` - Retrieve form submissions ## Installation ```bash npm install npm run build ``` ## Environment Variables | Variable | Required | Description | Example | |----------|----------|-------------|---------| | `WEBFLOW_API_TOKEN` | ✅ | API token from Webflow workspace | `xxx...` | ## Getting Your API Token 1. Log in to [Webflow](https://webflow.com) 2. Go to **Workspace Settings** > **Apps & Integrations** 3. Click **Generate API Token** 4. Give it a descriptive name (e.g., "MCP Server") 5. Select required scopes (see below) 6. Copy the generated token ## Required API Scopes - `sites:read` - Read site information - `sites:write` - Publish sites - `cms:read` - Read CMS collections and items - `cms:write` - Create, update, delete CMS items - `pages:read` - Read pages - `pages:write` - Update pages - `assets:read` - Read assets - `forms:read` - Read forms and submissions - `webhooks:read` - Read webhooks - `webhooks:write` - Create and delete webhooks ## Usage ### Stdio Mode (Default) Add to your MCP client configuration: ```json { "mcpServers": { "webflow": { "command": "node", "args": ["/path/to/webflow/dist/main.js"], "env": { "WEBFLOW_API_TOKEN": "your_token_here" } } } } ``` ### Standalone ```bash export WEBFLOW_API_TOKEN="your_token_here" node dist/main.js ``` ## Coverage Manifest ``` Total API endpoints: ~50 Tools implemented: 19 Intentionally skipped: 31 - Asset upload (multipart/form-data) - Site creation (requires payment tier) - User management (admin-only) - Ecommerce operations (separate API) - Advanced DOM manipulation Coverage: 19/50 = 38% Note: Core functionality coverage is ~85% (all CRUD on main resources) ``` ## Examples ### Publish a Site ```json { "name": "webflow_publish_site", "arguments": { "site_id": "abc123", "domains": ["example.com", "www.example.com"] } } ``` ### Create CMS Item ```json { "name": "webflow_create_collection_item", "arguments": { "collection_id": "col_abc123", "field_data": { "name": "New Blog Post", "slug": "new-blog-post", "post-body": "
Content here
", "_archived": false, "_draft": false } } } ``` ### Get Form Submissions ```json { "name": "webflow_get_form_submissions", "arguments": { "form_id": "form_abc123", "limit": 50 } } ``` ## Development ```bash # Build npm run build # Start server npm start # Watch mode (requires tsx) npm run dev ``` ## Architecture - **main.ts** - Entry point with env validation and graceful shutdown - **server.ts** - Server class with lazy-loaded tool modules - **client/webflow-client.ts** - API client with rate limiting and error handling - **tools/** - Tool definitions organized by domain (sites, collections, items, etc.) - **types/** - TypeScript interfaces for all Webflow entities ## License MIT