Assemble pages, navigation and contact forms

Use these operations to finish a site's structure from a connected MCP client. Open POM AI → Settings → MCP and enable the write gates needed below. Every write keeps the current WordPress user's permissions; OAuth connections also need the operation's discovered scopes.

Pages and reusable content

pom_site_get_content reads editable content with a revision. pom_site_save_content previews or saves pages, posts, POM reusable blocks and supported public custom post types through WordPress. Supply post_type and a stable slug, plus optional title, content, excerpt, status, parent and menu order. Supply id to edit an existing item. New items default to draft. Preview first; applying requires its expected_revision.

A duplicate slug is refused rather than silently creating another item. Existing items cannot change content type. Publishing requires the content type's publish capability. The content write gate must be open. Media and WooCommerce objects retain their dedicated tools.

Use wp_get_site_pages to read front, posts and privacy assignments. wp_set_site_pages changes only the supplied assignments at the expected revision and requires Allow option writes plus manage_options. Assigning or clearing the privacy page also requires WordPress manage_privacy_options, which maps to manage_network on standard multisite. A site administrator without that capability can still change authorized front/posts assignments separately. Assigned pages must be editable and published. The static front page and posts page must differ.

Create legal pages using information supplied by the site owner, assign the privacy page and link them from the footer. Page creation and cookie controls do not establish that the site's legal text is complete or appropriate for its actual services.

  1. Read wp_get_menu_locations after choosing the header layout.
  2. Preview and create a uniquely named menu with wp_create_menu.
  3. Use wp_create_menu_item to add pages or links.
  4. Assign the menu with wp_assign_menu_location, using a registered location, the menu_id and the revision from the location read or preview. A menu ID of zero unassigns that location. Other assignments are preserved.
  5. Repeat for the mobile location and check both menus in the browser.

Menu operations require Allow content writes and edit_theme_options. Locations can change when the header configuration changes; refresh before assigning them.

POM Forms

  1. Activate the forms_system optional group using typed settings, then refresh.
  2. Read pom_site_get_form_contract for the native layout schema, current schema_version, reserved field names and permitted configuration keys. Use pom_site_find_forms to search existing forms, in pages of 50.
  3. Preview pom_site_create_form with a unique title, then apply at its returned revision. It creates a draft form.
  4. Read pom_site_get_form and prepare a layout with stable field, step, row and column IDs. pom_site_save_form accepts the form id, optional layout, partial config and status (draft or active). Preview before applying with expected_revision.
  5. Embed [web_form id="FORM_ID"] in a page. Review required fields, validation messages and the intended notification recipients before accepting real submissions.

Form writes use POM Forms' native validation and versioned saves. They require Allow content writes, manage_options and native Forms permissions. Layouts, messages, navigation buttons, privacy clauses, notification routes and presentation settings are supported. Advanced integrations and credentials are excluded from the editable configuration. A read omits those values. Older forms requiring migration must first be opened and saved in the form builder.

Use the returned schemas instead of guessing property names. For example, the submit button caption is navigation_buttons.submit.label. A field's stable ID and submitted name are different properties; the submitted name must not use a native reserved name.

Related: Site plans, menu items, site options.