Jake Shore d25ea2031b Gold standard upgrade: greenhouse, lever, loom
- 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)
2026-02-14 05:52:42 -05:00

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