de_page_tool
Manage Webflow site pages by creating pages and folders, switching between pages, and retrieving current page details.
Instructions
Designer Tool - Page tool to perform actions like create page, create page folder, get current page, switch page
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The ID of the site. DO NOT ASSUME site id. ALWAYS ask user for site id if not already provided or known. use sites_list tool to fetch all sites and then ask user to select one of them. | |
| actions | Yes |
Implementation Reference
- src/tools/dePages.ts:75-81 (handler)Handler function for 'de_page_tool'. Proxies the call to an internal 'page_tool' via RPC and handles response formatting with error catching.async ({ siteId, actions }) => { try { return formatResponse(await pageToolRPCCall(siteId, actions)); } catch (error) { return formatErrorResponse(error); } }
- src/tools/dePages.ts:21-73 (schema)Zod input schema for 'de_page_tool', defining siteId (via SiteIdSchema) and actions array supporting create_page, create_page_folder, get_current_page, switch_page.inputSchema: z.object({ ...SiteIdSchema, actions: z.array( z.object({ create_page: z .object({ page_name: z .string() .describe("The name of the page to create"), meta_title: z .string() .describe("The meta title of the page to create"), meta_description: z .string() .optional() .describe("The meta description of the page to create"), page_parent_folder_id: z .string() .optional() .describe( "The id of the parent page folder to create the page in" ), }) .optional() .describe("Create new page"), create_page_folder: z .object({ page_folder_name: z .string() .describe("The name of the page folder to create"), page_folder_parent_id: z .string() .optional() .describe( "The id of the parent page folder to create the page folder in" ), }) .optional() .describe("Create new page folder"), get_current_page: z .boolean() .optional() .describe("Get current page active on webflow designer"), switch_page: z .object({ page_id: z.string().describe("The id of the page to switch to"), }) .optional() .describe("Switch to a page on webflow designer"), }) ), }),
- src/tools/dePages.ts:15-82 (registration)Registers the 'de_page_tool' on the McpServer with title, description, inputSchema, and handler function.server.registerTool( "de_page_tool", { title: "Designer Page Tool", description: "Designer Tool - Page tool to perform actions like create page, create page folder, get current page, switch page", inputSchema: z.object({ ...SiteIdSchema, actions: z.array( z.object({ create_page: z .object({ page_name: z .string() .describe("The name of the page to create"), meta_title: z .string() .describe("The meta title of the page to create"), meta_description: z .string() .optional() .describe("The meta description of the page to create"), page_parent_folder_id: z .string() .optional() .describe( "The id of the parent page folder to create the page in" ), }) .optional() .describe("Create new page"), create_page_folder: z .object({ page_folder_name: z .string() .describe("The name of the page folder to create"), page_folder_parent_id: z .string() .optional() .describe( "The id of the parent page folder to create the page folder in" ), }) .optional() .describe("Create new page folder"), get_current_page: z .boolean() .optional() .describe("Get current page active on webflow designer"), switch_page: z .object({ page_id: z.string().describe("The id of the page to switch to"), }) .optional() .describe("Switch to a page on webflow designer"), }) ), }), }, async ({ siteId, actions }) => { try { return formatResponse(await pageToolRPCCall(siteId, actions)); } catch (error) { return formatErrorResponse(error); } } );
- src/tools/dePages.ts:8-13 (helper)Helper function that proxies the page tool call to an internal RPC 'page_tool'.const pageToolRPCCall = async (siteId: string, actions: any) => { return rpc.callTool("page_tool", { siteId, actions: actions || [], }); };
- src/mcp.ts:63-63 (registration)Top-level call to registerDEPagesTools within registerDesignerTools, which registers 'de_page_tool' among designer tools.registerDEPagesTools(server, rpc);