pages_update_page_settings
Modify Webflow page settings such as SEO, openGraph, visibility, and access. Update page properties like slug, title, or locale for improved site management and customization.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| localeId | No | ||
| page_id | Yes |
Implementation Reference
- src/tools/pages.ts:101-115 (handler)The handler function that calls the Webflow API to update page settings using the provided page_id, optional localeId, and body payload.async ({ page_id, localeId, body }) => { try { const response = await getClient().pages.updatePageSettings( page_id, { localeId, body, }, requestOptions ); return formatResponse(response); } catch (error) { return formatErrorResponse(error); } }
- Zod schema defining the input body for updating page settings, including SEO, Open Graph, and other page metadata.export const WebflowPageSchema = z.object({ id: z.string().describe("Unique identifier for a Page."), siteId: z.string().optional().describe("Unique identifier for the Site."), title: z.string().optional().describe("Title of the page."), slug: z .string() .optional() .describe("Slug of the page (derived from title)."), parentId: z .string() .optional() .describe("Unique identifier for the parent folder."), collectionId: z .string() .optional() .describe( "Unique identifier for the linked collection, NULL id the Page is not part of a collection." ), createdOn: z.date().optional().describe("Date when the page was created."), lastUpdated: z .date() .optional() .describe("Date when the page was last updated."), archived: z .boolean() .optional() .describe("Indicates if the page is archived."), draft: z.boolean().optional().describe("Indicates if the page is a draft."), canBranch: z .boolean() .optional() .describe("Indicates if the page can be branched."), isBranch: z .boolean() .optional() .describe("Indicates if the page is Branch of another page."), isMembersOnly: z .boolean() .optional() .describe( "Indicates whether the Page is restricted by Memberships Controls." ), seo: z .object({ title: z .string() .optional() .describe("The Page title shown in search engine results."), description: z .string() .optional() .describe("The Page description shown in search engine results."), }) .optional() .describe("SEO-related fields for the page."), openGraph: z .object({ title: z .string() .optional() .describe("The title supplied to Open Graph annotations."), titleCopied: z .boolean() .optional() .describe( "Indicates the Open Graph title was copied from the SEO title." ), description: z .string() .optional() .describe("The description supplied to Open Graph annotations."), descriptionCopied: z .boolean() .optional() .describe( "Indicates the Open Graph description was copied from the SEO description." ), }) .optional(), localeId: z .string() .optional() .describe( "Unique identifier for the page locale. Applicable when using localization." ), publishedPath: z .string() .optional() .describe("Relative path of the published page."), });
- src/tools/pages.ts:88-116 (registration)Registers the pages_update_page_settings tool with the MCP server inside the registerPagesTools function.server.tool( "pages_update_page_settings", "Update page settings including SEO metadata, Open Graph data, slug, and publishing status.", { page_id: z.string().describe("Unique identifier for the page."), localeId: z .string() .optional() .describe( "Unique identifier for a specific locale. Applicable when using localization." ), body: WebflowPageSchema, }, async ({ page_id, localeId, body }) => { try { const response = await getClient().pages.updatePageSettings( page_id, { localeId, body, }, requestOptions ); return formatResponse(response); } catch (error) { return formatErrorResponse(error); } } );