Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ace29cf
refactor: enhance deComponents and deElement tools with additional ac…
viratatwebflow Mar 5, 2026
8e03f70
refactor: standardize request options and improve default values in C…
viratatwebflow Mar 6, 2026
45ccd30
refactor: improve deStyle tool descriptions and remove deprecated fun…
viratatwebflow Mar 6, 2026
fa2b06a
refactor: enhance deVariable tool with custom value support and impro…
viratatwebflow Mar 6, 2026
2a942c1
refactor: enhance deComponents and deElement tools with improved vali…
viratatwebflow Mar 9, 2026
961b965
feat: add webhook tools registration to enhance integration capabilities
viratatwebflow Mar 12, 2026
6e2c447
chore: update zod dependency to version 3.25.76 for improved validati…
viratatwebflow Mar 12, 2026
c9837d1
Merge pull request #83 from webflow/virat/webhook-tool
viratatwebflow Mar 12, 2026
67edd63
refactor: standardize request options and enhance enterprise tools wi…
viratatwebflow Mar 17, 2026
bef4438
Merge pull request #85 from webflow/idsc-1440
viratatwebflow Mar 17, 2026
0b5d574
refactor: enhance tools registration with access token support (#88)
viratatwebflow Mar 17, 2026
c4a8bc2
feat(ai): add list-workflows public MCP tool (#86)
bertenator Mar 17, 2026
afb338c
feat(ai): add execute_workflow and get_workflow_execution_status to d…
bertenator Mar 18, 2026
2b8e1b9
fix(tools): ensure proper handling of customDomains and improve docum…
viratatwebflow Mar 19, 2026
62979a5
feat(deVariable): add rename, delete, and query variable functionalit…
viratatwebflow Mar 19, 2026
6269f56
feat(deStyle): add query_styles functionality to enhance style queryi…
viratatwebflow Mar 19, 2026
92a8bc6
refactor(deStyle): change parent_style_name to parent_style_names as …
viratatwebflow Mar 23, 2026
01d2b53
feat(deElement): introduce whtml_builder tool for HTML and CSS elemen…
viratatwebflow Mar 23, 2026
f0c3651
feat: Component Tool - Improved Component Creation + Retrieval (#94)
memo-pineda Mar 25, 2026
5c81881
fix(workflows): update workflow endpoints to match new API naming (#98)
bertenator Mar 25, 2026
ef2bc4e
feat(workflows): add list_workflow_runs action to data_workflows_tool…
bertenator Mar 26, 2026
4a2f92e
feat(deComponents, deElement): enhance creation_position options for …
viratatwebflow Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"express": "^5.1.0",
"socket.io": "^4.8.1",
"webflow-api": "3.2.1",
"zod": "^3.24.2"
"zod": "3.25.76"
},
"devDependencies": {
"@types/cors": "^2.8.19",
Expand Down
12 changes: 11 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,31 @@ function getClient() {
return webflowClient;
}

// Return the Webflow access token
function getAccessToken() {
if (!process.env.WEBFLOW_TOKEN) {
throw new Error("WEBFLOW_TOKEN is missing");
}
return process.env.WEBFLOW_TOKEN || "";
}

// Configure and run local MCP server (stdio transport)
async function run() {
const server = createMcpServer();
const { callTool } = await initDesignerAppBridge();
registerMiscTools(server);
registerTools(server, getClient);
registerTools(server, getClient, getAccessToken);
registerDesignerTools(server, {
callTool,
getClient,
getAccessToken,
});

//Only valid for OSS MCP Version.
registerLocalTools(server, {
callTool,
getClient,
getAccessToken,
});

const transport = new StdioServerTransport();
Expand Down
15 changes: 13 additions & 2 deletions src/mcp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {
registerLocalDeMCPConnectionTools,
registerCommentsTools,
registerEnterpriseTools,
registerWebhookTools,
registerWorkflowsTools,
} from "./tools";
import { RPCType } from "./types/RPCType";

Expand All @@ -31,7 +33,7 @@ export function createMcpServer() {
},
{
instructions: `These tools give you access to the Webflow's Data API. If you are ever unsure about anything Webflow API-related, use the "ask_webflow_ai" tool.`,
}
},
);
}

Expand All @@ -45,7 +47,8 @@ export const requestOptions = {
// Register tools
export function registerTools(
server: McpServer,
getClient: () => WebflowClient
getClient: () => WebflowClient,
getAccessToken: () => string,
) {
registerAiChatTools(server);
registerCmsTools(server, getClient);
Expand All @@ -55,6 +58,14 @@ export function registerTools(
registerSiteTools(server, getClient);
registerCommentsTools(server, getClient);
registerEnterpriseTools(server, getClient);
registerWebhookTools(server, getClient);
}

export function registerWorkflowTools(
server: McpServer,
getAccessToken: () => string
) {
registerWorkflowsTools(server, getAccessToken);
}

export function registerDesignerTools(server: McpServer, rpc: RPCType) {
Expand Down
Loading
Loading