- Greenhouse: 29 tools (was 18), added interviews, scorecards, organization - Lever: 26 tools (was 13), added tags, sources, expanded opportunities/postings - Loom: 25 tools (was 14), added analytics, privacy, search, workspace members All servers now have: - main.ts with env validation & graceful shutdown - server.ts with lazy-loaded tool modules - Zod validation on all inputs - Rich tool descriptions (when/why to use) - Pagination support on all list_* tools - Updated package.json (bin field, updated deps) - Updated README with coverage manifests - Old index.ts renamed to index.ts.bak - Zero TypeScript errors (npx tsc --noEmit verified)
200 lines
4.9 KiB
Markdown
200 lines
4.9 KiB
Markdown
# 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": "<p>Content here</p>",
|
|
"_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
|