AI Agent

Build pages, forms and popups by chatting with AI, undo what it changed, see every change it made, and let AI apps such as Claude Code use the same tools over MCP.

XPAC Agent lets you build your site by chatting with AI. Ask for "a contact form with name, email and message on a new Contact page", and the agent makes the form and the page for you. Attach a screenshot of a design, or paste the address of a page you like, and it builds that page in the same layout, with your theme's fonts.

The agent works through tools. XPAC Agent brings the WordPress ones (pages, images, menus, and the site's name, colours and fonts), and Forms, Popups, Analytics, Notifications, User Profiles and the XPAC add-ons each bring their own. Those plugins' tools stay switched off until XPAC Agent is installed and active. XPAC Agent also adds the switches, the chat under XPAC → AI Agent, an Undo for each change, a log of every change AI made, and one MCP server that AI apps such as Claude Code, Claude Desktop, Cursor and VS Code can connect to.

Requirements

WordPressWhat works
Below 6.9Nothing. XPAC Agent does not start.
6.9The tool switches, the MCP server, connecting AI apps, undo and the activity log.
7.0 or laterEverything, including the chat and generating images.

XPAC Agent needs PHP 8.0 or later. Only administrators can open XPAC → AI Agent.

The chat talks to AI through WordPress's own AI client. Connect a provider, such as OpenAI, Anthropic or Google, under Settings → Connectors. AI apps connected over MCP bring their own AI, so they do not need a provider on your site.

Connect an AI app makes an application password, which WordPress offers only on sites served over HTTPS, apart from local development sites.

Set it up

Install and activate XPAC Agent, and the XPAC plugins whose tools you want: Forms, Popups, Analytics, Notifications and any add-ons.

Connect an AI provider under Settings → Connectors. You only need this for the chat.

Go to XPAC → AI Agent → Tools and turn on Let AI agents use XPAC tools. It is off on a new site. Each plugin's tools are on their own tab, and every tool starts on; turn off any you do not want AI to use, or use Turn all off for a whole plugin, then save.

Open Chat and ask for something. Start with "List my forms" to check that everything is connected.

To use the same tools from Claude Code, Claude Desktop, Cursor or VS Code, open Connection and click Connect an AI app. See Connect AI apps over MCP.

The screens

Everything is under XPAC → AI Agent. The sidebar lists Chat and Activity under Agent, and Tools and Connection under Configuration.

ScreenUse
ChatTalk to the agent. Your conversations are listed beside it.
ActivityEvery change AI made on the site, from the chat and from AI apps. See Activity.
ToolsThe master switch, then one tab per plugin (Analytics, Forms, Login, Notifications, Popups, Social Login, User Profiles, WordPress) with a switch for each of its tools.
ConnectionServe the tools to AI apps over MCP, copy the MCP address, connect an AI app, see and revoke your Connected apps, and check that the chat has an AI provider.

On the Tools screen, each tab lists its tools under Reads, Creates and Changes. Under each switch it says what the tool does, and either Runs without asking. or Asks you first unless the call is harmless.: such a tool waits for your Allow in the chat when a call would change something visitors see, cost money or send something off your site (see What waits for Allow). Turn all on and Turn all off switch a whole tab, and a tab with some tools off shows how many are on, such as 6/8. While the master switch is off, the tabs are hidden and no XPAC tool exists for any AI, in the chat or over MCP.

When the agent runs several tools in a row, the chat folds them into one line, such as 5 actions, with the links they made below it. Click the line to list the calls, and a call's arrow to see what it was given and what it returned. A run with a failed or declined action opens by itself. A finished action that can still be taken back shows Undo (see Undo).

While the agent works, a line under the conversation shows which step it is on and for how long, and the Send button turns into a stop button (Stop after this step), which stops the agent once the current step ends. By default, one message can lead to twelve steps at most. When the agent reaches that, it stops and says so; click Continue to let it go on.

A message can be up to 20,000 characters. Over the last 500, the box counts down how many are left.

Ready-made requests

A new chat asks What should we build? and offers ready-made requests. Each one comes from XPAC Agent or an active XPAC plugin and shows only while every switch it needs is on. The chat shows the first six that can run, in the order below. Clicking one fills in the message box for you to finish; nothing is sent until you send it. A request that needs one more thing from you, such as the address of the page to recreate, leaves the cursor where you type it. Clicking Build a landing page from a screenshot also opens the file picker, so you can attach the design straight away.

RequestWhat it makesShows when
Lead-gen landing pageA draft landing page with a sign-up form, and a draft popup with the same form for visitors about to leave. You add what the page offers. With an integration add-on, it also asks the agent to switch on a spam protection you have set up, if there is one, and to connect the form to your email list.Read the theme's colours and fonts, Create pages and posts, Create forms and Create popups are on.
Build a landing page from a screenshotA draft page built from a design you attach.Create pages and posts is on, and the chat can take images.
Contact page with a formA contact form with name, email and message on a new Contact page, each message emailed to the site admin.Create forms and Put forms on pages are on.
Login and sign-up pagesSign in, Create account, Forgot password and Reset password pages for new subscribers, linked to each other, built as drafts from what your site already has. The agent shows you the links, then publishes the pages and switches them on once you agree. With Read menus and Change menus on, it also adds Sign in and Create account links to the main menu.Read the sign-in setup, Build sign-in pages and Change the sign-in settings are on.
Newsletter sign-up popupA draft popup with an email sign-up form that opens after 10 seconds on every page, at most once a week per visitor. With an integration add-on, it connects the form to your email list.Create forms and Create popups are on.
Account area with profile pageA signed-in only My account page where users change their name, email address and password, a redirect on the sign-in form to it, and a Create account page. It reuses the sign-in pages you already have. With Read menus and Change menus on, it also adds Sign in, Create account and My account links to the main menu.Read the sign-in setup, Build sign-in pages, Change the sign-in settings and Change a form's title, status and settings are on.
Google sign-inGoogle set up under User Profiles → Social Login: the agent tells you how to make the Google OAuth client with the callback address, saves the Client ID and secret you paste, switches Google on, and adds Google buttons to your registration and login forms.Read the Social Login setup, Change the Social Login settings and Add sign-in buttons to a form are on.
Recreate a page from a URLA draft page rebuilt from a web page. You add the address.Read web pages by address and Create pages and posts are on.
Verify new accounts by emailA Verify your email page with a form that sends the link again, email confirmation switched on for your sign-up form, and only confirmed accounts allowed to sign in.Read the sign-in setup, Read a form's auth action, Build sign-in pages, Set a form's auth action and Change the sign-in settings are on.
How your notifications are doingA table of your notification types with their on-site and email switches and how each is emailed, then the failed deliveries grouped by cause, and one fix to try. It changes nothing.List notification types and List deliveries are on.
What came in through your formsA table of your forms and their submissions, the main themes of the 20 newest, and unread ones that look like they need a reply. It changes nothing.See the list of forms and Read submissions are on.
Check your sign-in setupWhich pages and forms run sign-in, whether anyone can register, what role new accounts get, and anything broken. It changes nothing.Read the sign-in setup is on.
Sharper email subjectsEvery emailed notification type's subject rewritten as a short, specific line that keeps its tags, shown to you old against new before the ones you accept are saved. You add the voice the emails should have. With Send a test email on, it also sends you a test of each one saved.List notification types, Read an email template and Change an email template are on.
Notification preferences pageA draft page where signed-in users choose which notifications they get on the site and by email, and how to publish it.Add a preferences page is on.
Send sign-ups to your email listConnects a form that collects email addresses to the email marketing integration set up on your site, and asks which one when more than one fits.See the integrations, Browse where an integration can send and Connect forms to integrations are on, which needs an integration add-on, with See the list of forms and Read a form's fields and settings.
How your popups are doingA table of each popup's opens, conversion rate and dismissal rate over 30 days, and one change to try. It changes nothing.See the list of popups and Read popup performance are on.

AI apps connected over MCP get every request whose switches are on, including the ones past the sixth, as ready-made prompts (see What an AI app gets).

Attach images

Show the agent what you mean: a screenshot of a design to rebuild, a logo, a photo of a sketch on paper.

  • Click Attach images under the message box, paste a screenshot with Ctrl+V (⌘+V on a Mac), or drop image files anywhere on the chat.
  • A message can hold up to four images: PNG, JPEG, WebP or GIF, each up to 10 MB and 40 megapixels. When your server's upload limit is lower than 10 MB, that limit counts. A message can be images alone.
  • An image longer than 2048 pixels on its long side is scaled down first.
  • Click an image in the conversation to see it larger.
  • The model has to be one that reads images. Automatic picks one for you. If the model you picked cannot, a note beside the images says so, with Use Automatic.
  • Each step shows the model the images of your latest two messages that have any. Older ones are left out to keep each step small; attach an image again if the agent needs it later.

Your images are not added to the media library. They are kept privately in your site's uploads folder, only you can open them, and deleting the conversation deletes them. When you ask the agent to put an image on a page, it adds a copy to the media library then, once.

What the agent can do

The tools you get depend on which XPAC plugins are active. The switch labels below are the ones on the Tools screen.

WordPress

These come with XPAC Agent itself, whatever else is active:

SwitchThe agent can
Find pages and postsSearch pages, posts and other content by title or text.
Read pages and postsRead a page's title, status, details and blocks. A long page is read a part at a time.
Create pages and postsBuild a whole page or post in one go, from headings, text, lists, images, buttons, columns, covers, FAQs, videos, galleries, social links and more, laid out in sections with the theme's colours. It can also set the slug, excerpt, parent page, page template, featured image, categories and tags.
Change, publish and trash pages and postsChange part of a page or rewrite it, retitle it, publish or unpublish it, or move it to the trash.
Read the theme's colours and fontsRead your theme's palette, font sizes, fonts, spacing and page widths, so new pages match the rest of your site.
Read web pages by addressRead a public web page: its headings, text, links, buttons and images, and its main colours and fonts.
Find images in the media librarySearch the images you already have.
Add images to the media libraryAdd an image you attached in the chat, or one from a web address.
Generate imagesMake a new image with your AI provider and add it to the media library. Each image is billed by the provider.
Read the site's name, front page and menusRead the title, tagline, logo, icon, front page and posts page, and where the theme shows menus.
Change the site's name, logo, icon and front pageChange the title, tagline, logo, icon, front page and posts page.
Read menusRead a menu's links and the places that show it.
Change menusReplace a menu's links, or make the menu a place in the theme shows when it has none yet.
Change the site's colours and fontsChange palette colours, and the colours and fonts of text, headings, links and the background.
Undo agent changesTake back a change an agent made, within 7 days, when you ask it to.

This is how you build a page from a picture or another site:

  • From a screenshot or a sketch: attach the image to your message and ask, for example, "build this as a new page". The agent matches its layout, colours and words rather than pasting the screenshot in. To put a photo on the page, attach it and say where it goes.
  • From a web address: paste the address and ask for a page like it. The agent reads the page first, then builds your own version with your theme's colours. Write your own words for anything you publish; do not copy someone else's content.

New pages are drafts until you ask for them to be published. If someone edits a page in the editor while the agent is working on it, the agent reads it again rather than writing over their change. A chat image or web image is added to the media library only once, however many times the agent uses it.

The agent reads only public web pages. It cannot open addresses on your own network, such as localhost or 192.168.x.x, or pages behind a login.

  • FAQs: a question that opens to show its answer. Several can share a group, so only one is open at a time.
  • Videos: YouTube and Vimeo only. When you give the address of a player, or paste a video's embed code, the agent uses the video's own page instead, because that is the address WordPress turns into a player.
  • Galleries: a grid of images, from one to eight columns.
  • Social links: an icon for each of your profiles. The agent picks the network from the address; one it does not recognise gets a plain link icon.

The site's name, logo, menus, colours and fonts

Before it changes these, the agent reads where they really show on your theme. Some themes draw their own header, footer or logo in their code, or show a pattern of their own on the front page instead of the page you set. The agent tells you when that is so, for example "The theme draws its own logo; a logo set here shows nowhere." It cannot change a part the theme writes in its own code; that is changed in the theme.

  • Title and tagline take up to 200 and 300 characters. The icon must be a square image. The front page and posts page must be different published pages.
  • Menus work on block themes. On a classic theme, the agent points you to Appearance → Menus. The agent reads a menu before it replaces it, so it never writes over a change it has not seen, and each change leaves a revision. A menu holds up to 100 items.
  • Log in / Log out in a menu: ask for it, and the agent adds WordPress's own Log in/out block, which shows Log in to visitors and Log out to people who are signed in. With User Profiles and a published login page, Log in opens that page and brings the visitor back afterwards. It goes at the top level of a menu, not in a submenu. Put it last: WordPress draws it outside the menu's list of links, so anywhere else it splits that list in two. A search box, page list, site title, site logo, home link or icon can be added to a menu the same way; a submenu holds only links, submenus and page lists.
  • Colours and fonts: the agent changes palette colours, and the colours of the background, text, headings and links, and the fonts of text and headings, from the fonts your theme offers. It does not install new fonts. Everything else in your site's styles, custom CSS included, is kept, and the Site Editor keeps a revision.

These three changes always wait for Allow in the chat, because they show on every page at once. A page cache can keep showing the old title or menu until it is cleared.

Generated images

Generate images needs WordPress 7.0 and a connected provider with a model that makes images.

  • Each image is billed by your provider, so in the chat it always waits for Allow. The agent is told to make one only when you ask for a new picture, and to use images you already have otherwise.
  • When you ask again with the same words in the same shape, the agent reuses the image it made the first time, and nothing is billed. Letter case and spaces around the words do not count.
  • Images are square unless you ask for landscape or portrait.
  • Only administrators can generate images, in the chat and from AI apps.

Forms

With Forms active:

SwitchThe agent can
See the list of formsList the forms you can edit, with how many submissions each has.
Read a form's fields and settingsRead a form's fields, settings and integration connections.
Create formsBuild a whole form in one go: fields, success message, redirect, email notifications, submission limits, opening dates and sign-in requirement.
Add fields to a formAdd one field, by default just before the submit button.
Change a form's fieldsChange a field's label, options, whether it is required, and more.
Remove fields from a formRemove a field. Answers already saved stay with their submissions.
Change a form's title, status and settingsChange the title, publish or unpublish the form, and change its settings.
Move forms to the trashMove a form to the trash. Its submissions stay, and pages that show it show nothing in its place.
Put forms on pagesAdd a form to an existing page, or make a new page for it.
Read submissionsRead what people submitted, newest first. It can narrow the list to unread, starred, spam or trash, or search the answers.

A new page the agent makes stays a draft unless you ask for it to be published. A new form is different: it is published straight away unless you ask for a draft. It still shows nowhere until it is on a published page.

  • A form in the trash comes back from the Trash under Forms, or when you ask the agent to change its status.
  • Submissions are read sparingly. Every answer the agent reads is sent to your AI provider. So it reads 10 submissions at a time unless it asks for more, and 50 at most. An answer longer than 500 characters is cut, and says so. The agent can ask for only the fields it needs.
  • A hidden field keeps its value. It always sends the value saved in the form. A visitor cannot change it, and a submit link cannot set it. So a notification sent to an address in a hidden field always goes where the form says.

With Multi-Step Form active, the agent can also split a form into steps.

Popups

With Popups active:

SwitchThe agent can
See the list of popupsList popups, with whether each one can open and, if not, why.
Read a popup's content and display rulesRead a popup's content and each of its rules.
Create popupsMake a popup from headings, text, buttons, images, spacers and an XPAC form, usually with its display rules.
Change a popup's title, status and contentRename, publish, unpublish or rewrite a popup.
Move popups to the trashMove a popup to the trash, which takes it off the site at once.
Add and change display rulesAdd a rule, or change where, when and how an existing one opens the popup.
Remove display rulesRemove a rule.
Put buttons that open popups on pagesAdd a button that opens the popup to an existing page or a new one.
Read popup performanceRead the counts from the Popups Overview (could have opened, opened, closed and clicked), with rates.

A new popup is saved as a draft unless you ask for it to be published.

  • Size: a lightbox opens small, medium, large, or at your theme's content width, which is the default. A floating bar is always full width.
  • Buttons are filled, or outline for a quieter one such as "No thanks".
  • Scrolling: a rule can open the popup once a visitor scrolls past a point, or when a visitor who was past it scrolls back up.
  • Closing: a rule sets whether the popup has a close button, closes with Escape, and, for a lightbox, closes on a click outside it. Escape can be turned off only while the popup has a close button or a button that closes it, so a keyboard can always close it.
  • Reading a popup back gives every part of its content with all its settings, so what the agent sends back unchanged stays the same.
  • Moving a popup to the trash names the published pages whose button for it visitors stop seeing. It can be restored under XPAC → Popups, with its display rules.

Notifications

With Notifications active:

SwitchThe agent can
List notification typesList each notification type with its section, its on-site and email switches, and how it is emailed.
Change a notification typeTurn a type's on-site notice or email on or off, for every user.
Read an email templateRead a type's email subject, on-site text and icon, email body and the tags it can use.
Change an email templateChange a type's email subject, on-site text or on-site icon.
Send a test emailSend you one test email of a type. No user gets it.
List deliveriesList recent emails and webhook sends, with their status and error.
Retry failed deliveriesQueue failed deliveries to be sent again.
Add a preferences pageMake a draft page holding the Notification Preferences block, where users choose what they get.
  • A type's switches come back. Changing a type runs straight away, and its action shows Undo, which puts the switches back as they were.
  • A template change waits. The subject, on-site text or icon it replaces is not kept, so the agent asks you first, every time. The email body is read, never changed: edit it under XPAC → Notifications → Templates.
  • A retry waits. It emails users again, so the agent asks you first.
  • A test goes to you. The test email goes to the administrator in the chat, as the type's template reads now.
  • The preferences page is a draft. Once it is published, every notification email links to it, or to the first published page that already holds the block.

Analytics

With Analytics active, four tools read your site's own traffic. They only read, so they never wait for Allow, and only administrators can use them.

SwitchThe agent can
Read traffic totalsRead visits, views, daily visitors, bounce rate, visit time and events for a period, against the one before, with the top channels, pages, devices and events.
Read top pages and sourcesList the top pages, entry and exit pages, site searches, pages not found, channels, referrers, UTM values, devices, browsers, systems or events.
Read event countsCount how often form, popup, download, click and other events happened, and on what. A form or popup comes with its title.
Read goal conversionsRead converting visits and the conversion rate of each goal set up under XPAC → Analytics → Goals.

The agent reads the last 30 days unless you ask for another period, and can compare it with the period before or the same period a year earlier. A range of your own can cover up to 365 days. The figures are your site's own record, in its time zone. Daily visitors count a person once per day, there is no country or returning-visitor data, and a rate that cannot be worked out is reported as not known, never as zero.

Login

With User Profiles active, the Login tab lets the agent build your site's own sign-in, sign-up, password and profile pages, and set them up on User Profiles → Forms:

SwitchWhat it does
Read the sign-in setupReads each kind's form and page on User Profiles › Forms and pages, the registration and access settings, and what is broken.
Read a form's auth actionReads how a form signs people in, registers them, changes their profile or resets a password.
Build an auth formCreates a sign-in form; with assign, its page too, like Create on User Profiles › Forms and pages.
Set a form's auth actionGives a form a sign-in action; with assign, makes it the one its kind uses.
Change the sign-in settingsSets the pages, email verification, the registration role, logging in after registration, who can register, Public Profiles, and signed-in only and onboarding pages.
Build sign-in pagesBuilds several sign-in forms and pages at once, as drafts or live.
  • A whole sign-in flow in one step. Build sign-in pages makes whichever of Sign in, Create account, Forgot password, Reset password, Verify your email and My account you ask for. They stay drafts, and nothing site-wide changes, until you agree to publish them; then each becomes the form and page its row on User Profiles → Forms uses. The agent reads your setup first and reuses the pages you already picked; it builds a new one in place of one only when you ask it to.
  • Set up like Create. Asked to set a form up for its task, Build an auth form makes the form and its page the way Create on User Profiles → Forms does, and Set a form's auth action makes a form the one its task uses. Without that, they build or change the form only, as before. Update password has a form and no page: put its form on your account page.
  • Forms come ready. A login form asks for an email, a username or either, and a password. A registration form asks for an email, a password checked for strength and its confirmation, any of username, names, display name, nickname, website and bio, and a consent box if you want one. On a profile form only the fields a user fills in change; a new email address takes effect once its owner confirms it by mail, and a new password needs the current one. Profile fields you name go into the form too.
  • Pages built together work together. Built with a My account page, the login form, and a registration form that signs new users in, send them there. Built with a Verify your email page, the registration form asks new accounts to confirm their address and the login form lets only confirmed accounts in, unless you say otherwise.
  • Roles. The agent gives new accounts only a role you may give yourself that carries no admin powers, such as Subscriber, Contributor or Author. It never gives Administrator or Editor, or any role with powers like theirs, even when you ask, never makes one the role new accounts get, and will not open registration while that role is one. A sign-up form never gives such a role anyway (see Role safety). The agent never puts a role on a profile form, since every user who saves it would get it.
  • Who can do what. Change the sign-in settings, and publishing the pages, need someone who may set up sign-in, an administrator by default. Anyone can register and the default role need an administrator. A registration form needs an account that can add users.
  • The reset and verification pages need their form first. The links in password and verification emails land on those pages, so the agent picks one only once it holds its published form.
  • Access settings. Change the sign-in settings also sets the Access group on User Profiles → Forms: signed-in only pages and post types, verified accounts for them, onboarding pages in order, mandatory onboarding, keeping users out of wp-admin and where users go after confirming their email. It will not make a sign-in page signed-in only or an onboarding page, since signed-out visitors could no longer reach it.
  • Mistakes are refused, not saved. The agent cannot match an account detail to a field the form does not have, put a password anywhere but a password field, or leave out what the task needs, such as the email on a registration form. It will not switch off the form a task uses; another form for the same task can be switched off. Read the sign-in setup lists what is broken.
  • Check the pages in a private window. Signed in, the login and registration pages send you to your account page, and the reset page shows Not Found to anyone who did not open it from a reset email's link.
  • Sign-in buttons. Asked for them, the agent adds them to the login and registration forms it builds. Visitors see a button once its provider is set up.

Social Login

With User Profiles active, the Social Login tab lets the agent set up sign-in providers, put their buttons into forms and choose what a provider sign-up fills:

SwitchWhat it does
Read the Social Login setupReads which sign-in providers are set up, the sign-in switches, and which forms hold sign-in buttons.
Add sign-in buttons to a formAdds sign-up or sign-in buttons, such as Google or GitHub, to a registration or login form.
Read the sign-up dataReads which profile field each piece of sign-in data fills, and the extra permissions.
Change the sign-up dataChanges which profile field each piece of sign-in data fills, and the extra permissions.
Change the Social Login settingsSwitches providers on or off and saves their keys; secrets are never shown again.
  • Secrets go in and never come back. The agent can save a provider's client secret or private key you paste, but never reads one back: results say only whether one is saved. Client IDs show.
  • The form needs its sign-in task first. Sign-in buttons work only in a form that signs people up or in. Give the form its task with Set a form's auth action first.
  • Asking twice changes nothing. A form that already has a provider's button keeps it as it is; only the missing buttons are added.
  • Who can do what. Everything but adding buttons needs someone who may set up sign-in, an administrator by default. Add sign-in buttons to a form needs Forms, and someone who can edit forms.

User profiles

With User Profiles active, the User Profiles tab lets the agent shape the profile fields your users fill in and the field sets that group them, and look after users:

SwitchWhat it does
List profile fieldsLists the field sets and the profile fields in each, with how many forms and answers use them.
Read a profile fieldReads one profile field: its type, help text, choices, rules and the forms that hold it.
Add a profile fieldAdds a profile field to a field set.
Change a profile fieldChanges a profile field's label, type, help text, choices, rules or field set.
Delete a profile fieldMoves a profile field to the trash. Users' saved answers stay.
Add a field setAdds a field set to group profile fields.
Change a field setRenames, describes or moves a field set.
Delete a field setDeletes an empty field set.
List usersFinds users by name, email, role or status, without their profile values.
Read a userReads one user: roles, sign-in methods and every profile field's value, never a password.
Change a user's profileChanges a user's saved profile values. Never a password.
Remove a user's photoRemoves the photo a user uploaded.
Change the password rulesSets how strong a password must be and whether people can show it.
Put profile fields in a formPuts profile fields into a form, before its submit button or a field.
  • Passwords never. No tool reads, sets or returns a password.
  • The admin's email is locked. The agent does not change an administrator's Email Address.
  • The same locks as the screen. A field's key never changes. The five built-in fields (first name, last name, nickname, email and password) stay in the Account set and cannot be deleted, and a field's type changes only before anyone answers it.
  • A new field shows nowhere yet. It reaches users once a form holds it.
  • Who can do what. Every tool needs an administrator, or whoever xpac_user_profiles_capability lets manage users and profile fields. Changing a user also needs the right to edit that user.

Connect forms to integrations

With at least one integration add-on active, four more switches appear in the Forms group: See the integrations, Browse where an integration can send, Connect forms to integrations and Disconnect forms from integrations.

The agent can then check which integrations are ready, look up where each one can send (a list, an audience, a table and its fields), and connect a form to it with its fields matched up. It can also make a connection send only when the answers meet your conditions.

This works with Airtable, Brevo, Campaign Monitor, GetResponse, Klaviyo, Mailchimp, SendGrid, TouchBasePro, Webhooks, Zapier, Zoho Campaigns and Submission To Post.

The agent never sees or enters an account's API key. Connect each account in its own settings first. When one is not ready, the agent tells you what is missing and where to set it. It never takes a webhook signing secret either, and the chat shows Webhooks and Zapier addresses partly hidden, because they work like passwords.

Spam protection

With Akismet, Cloudflare Turnstile or Google reCAPTCHA active, the agent can switch each one on or off for a form when it creates or changes the form. It can switch one on only after you have set that add-on up; if you have not, it tells you what is missing.

With Forms Auto Submit active, the Make submit links switch appears. The agent can then make a link that submits a form with preset answers when someone opens it. Each link works once, until it expires: one hour by default, anywhere from five minutes to seven days.

The form must be published, with Auto Submit turned on. The agent can switch Auto Submit on for the form when it creates or changes it. A link leaves out confirmation fields, which are filled in from the field they confirm, and a form with a required consent box gets no link. Read the Auto Submit warnings before sending links: email scanners can open a link before the person does.

Conditional fields

The agent can show, hide or disable a field depending on another field's answer, such as "show Company only when Account type is Business". A field can have up to 20 conditions, matched all together or any one of them. The agent can also remove a field's conditions.

What waits for Allow

In the chat, anything that only reads your site, or makes something new that visitors cannot see yet, runs straight away. Anything that changes what visitors see or other services get, that removes or trashes something, that costs money, or that could send your data off the site, waits. A change to a draft page or post runs straight away. Most changes to forms and popups wait even on a draft (see the table). The chat shows a card with the full input the tool will get, and nothing happens until you click Allow. Decline tells the agent no.

The agent wants toIt waits
Read anything on your site, or read analyticsNever.
Read a web page, or add an image from a web addressWhen the address did not come from you: its site is not one you typed in the conversation or your own, and the exact address did not appear in something the agent read.
Add an image you attached to the media libraryNever.
Generate an imageAlways.
Create a page or postWhen it would be published or private.
Change a page or postWhen it is published, private or scheduled, or when the change publishes it, makes it private or moves it to the trash.
Change the site's name, logo, icon, front page or posts page, a menu, or the site's colours and fontsAlways.
Undo a change itselfAlways. Your own Undo button does not wait.
Create a formWhen a notification goes to an address outside your site, or the redirect leaves your site.
Add a fieldWhen the form is published or scheduled. On a draft, when a new hidden field would make a notification email an address outside your site.
Change or remove a field, change a form's title, status or settings, or move a form to the trashAlways.
Put a form, or a button that opens a popup, on a pageWhen the page already exists, or when you asked for the new page to be published.
Connect a form to an integrationWhen the form is published or scheduled. Also on a draft, when it sends answers to a web address outside your site, as Webhooks and Zapier do.
Disconnect a form from an integrationAlways.
Make a submit linkNever.
Create a popupWhen it is published with display rules.
Add a display ruleWhen the popup is published or scheduled and the rule is on.
Change a popup, move it to the trash, change a rule or remove a ruleAlways.
Build a sign-in, sign-up, password or profile formWhen it sets the form up as a task's form, gives new accounts a role, signs them in after registration, or its redirect leaves your site.
Give a form a sign-in task, or take it awayWhen it makes the form the one its task uses, when the form is published or scheduled, or when it gives new accounts a role.
Add sign-in buttons to a formWhen the form is published or scheduled.
Change the sign-in settingsAlways.
Build sign-in pagesWhen it publishes them, turns on Anyone can register, or gives new accounts a role. Building drafts alone runs straight away.
Add a profile field, add or change a field setNever.
Change a profile fieldWhen a form holds it or users have answered it.
Delete a profile field or a field setAlways.
Read usersNever.
Change a user's profile, or remove a user's photoAlways.
Change the password rulesWhile a form holds the Password field.
Put profile fields in a formWhen the form is published or scheduled.
Change the sign-up data or the Social Login settingsAlways.
Turn a notification type's on-site notice or email on or offNever; Undo puts it back.
Change an email template's subject, on-site text or on-site iconAlways.
Retry failed deliveriesAlways.
Send a test email, or add a preferences pageNever.

Why these wait:

  • A published form or popup is live. A change shows to visitors at once, and a new connection sends the next visitor's answers to another service. A draft is not live, so adding a field, a connection or a new display rule to a draft runs straight away. Other changes to a form or popup still wait. A scheduled form counts as published, because it goes live on its date without anyone being asked again.
  • An existing page may be live. Adding to it, or publishing a new one, changes what visitors see.
  • The site's name, menus, colours and fonts show on every page.
  • Sign-in settings and roles decide who gets in. Publishing sign-in pages, opening registration or giving new accounts a role changes who can make an account on your site and what that account can do.
  • Some settings send things off your site. A notification to an outside address, a redirect to another site, or a connection to an outside web address sends visitors or their answers elsewhere.
  • A web address can carry your data out. A page the agent reads could tell it to open an address with what the conversation holds written into it, such as submissions it just read. Opening that address alone would send them. So a web address runs straight away only when it came from you or from something the agent read.
  • Images cost money. Your provider bills each one.
  • A retry emails users again, and a template change keeps no copy of the subject, on-site text or icon it replaces.
  • Moving to the trash and undoing change what is already there.

How the cards work:

  • When several actions wait, Allow all and Decline all answer them together.
  • Once one action in a reply waits, every later action in that reply waits too, because your answer to the first can change what the others mean.
  • Sending a new message declines whatever is waiting.
  • If the agent was interrupted mid-step, a card can say an action may already have run. Check the result before allowing it again.

Read the card before you allow it

Submissions and page content can carry text that visitors typed. The agent is told to treat that text only as data, never as instructions, and to tell you when such text tries to give it orders. Still, check that the input on each card is what you asked for.

Undo

Every change the agent makes, in the chat or from an AI app connected to the MCP address, keeps a copy of what it replaced for 7 days, so you can take it back.

In the chat, a finished action whose change can still be taken back shows Undo after its links. Click it and the change is put back. The action stays in the conversation, greyed out and marked Undone, and a run of actions counts them, such as 2 undone. Undo does not ask the AI or start a new step; the agent is only told that you undid the change. While an undo runs, the rest of the conversation waits for it. A message you were typing stays in the box.

Your own Undo buttons in the chat work whether or not Undo agent changes is on, and even while Let AI agents use XPAC tools is off.

Undo takes back:

  • Pages and posts: content, title, excerpt, status, slug, parent page, order, page template, featured image, categories and tags. A page moved to the trash comes back out of it.
  • Forms: fields, title, status, settings and integration connections. A form moved to the trash comes back.
  • Popups: content, title, status, size and display rules.
  • Anything the change created, such as a page, form, popup or menu: it goes to the trash.
  • The site's settings: title, tagline, logo, icon, front page and posts page.
  • The sign-in settings: the pages on User Profiles → Forms, email verification, the Access settings, Anyone can register and the role new accounts get, and which form each task uses. Pages the change published go back to drafts, and when it built sign-in pages, one Undo takes back the pages, their forms and the settings together.
  • Users: the profile values a change saved. A removed photo cannot come back, and the action says so.
  • Social Login: the provider switches and keys, and the sign-up data.
  • Notifications: a type's on-site and email switches.
  • Profile fields and field sets: a field's label, type, help text, choices, rules and field set; a trashed field comes back. A field set gets its name, description and place back, a deleted one is made again, and a new one is deleted while it holds no fields.
  • The site's colours and fonts.
  • Menus.
  • Images the change added to the media library: they are deleted, unless a page or post shows the image, it is a featured image, or it is the site's logo or icon. Then it is kept, and a note under the action says so.

What undo leaves alone:

  • A category or tag the change created stays. The page's categories and tags are put back as they were.
  • A change whose copy would be larger than 2 MB, or could not be stored, keeps nothing and shows no Undo. While Undo agent changes is on, the action's details say why: "This change cannot be undone: what it replaced was too large to keep." or "This change cannot be undone: what it replaced could not be stored."
  • A failed action keeps nothing.
  • An undo is not recorded itself, so there is no redo.

When undo says no:

  • Something changed since. If you, another administrator or the editor changed the page, form or setting after the agent did, the action says what would be lost, such as "Page "About us" changed after this edit; undoing puts back the version before it and the later changes are lost." Click Undo anyway to put back the version from before the agent's change, or Keep.
  • A later agent change comes first. When the agent changed the same thing again later, Undo stays off and says Undo the later change first. Undo the later one, then this one.
  • After 7 days the action no longer shows Undo, and an AI app is told "This change is too old to undo."
  • The plugin that made the change is not active. A change a plugin keeps in its own place, such as a popup's display rules, needs that plugin to take it back. The action says "The plugin that made this change is not active, so it cannot be undone." Activate the plugin again, then click Undo.
  • Only part of it came back. When some of a change can be put back and some cannot, the action says "Only part of this change could be undone." Check what it touched, and fix the rest by hand.
  • Only the person who made the change can undo it. Deleting a conversation, or the user who made it, removes its undo copies too.

AI apps undo in their own way. While Undo agent changes is on, each change an app makes comes back with an undo token and the time it expires. Ask the app to take the change back, and it hands that token to Undo agent changes. The same rules apply, and the app is told to use it only when you ask. In the chat, the agent can use the same tool when you ask it to undo something, and that waits for Allow.

Activity

XPAC → AI Agent → Activity lists every change AI made on your site, from the chat and from AI apps connected to the MCP address. Use it to see what an AI app did while you were not watching, or who asked for a change. Every administrator sees every change, including other administrators' and every app's.

  • What is listed: each action that could change something and actually ran. Reading is not listed, and neither is an action you declined, one that was switched off or one refused before it started.
  • Columns: When, Change (the switch's label, the title of what it touched and its links), Result, Source (Chat and the model, or AI app and the app's name and version) and By. Duration is hidden; turn it on from the view options. Under By, a user who was deleted reads Deleted user, and one removed with Erase Personal Data reads Anonymised user.
  • Result: Done, Failed, Running, or Did not finish for an action that never reported back within 15 minutes. Allowed marks one you approved in the chat.
  • Filters: Source, Result, Tool and Person. Search changes matches titles and tool names.
  • View details shows the input as the log summarised it, the error if any, what it touched and the tool's name. For a change from your own chat, Open conversation takes you to it. Another administrator's conversation is named, not opened, and a deleted one says so.
  • How long: 90 days. The line under the heading says so.

The log is kept small and free of secrets. It never stores what a tool answered, only whether it worked, the ids and title of what it touched, and up to three links on your site. What the tool was given is summarised by rules:

  • anything named like a password, an API or private key, a token or another secret reads [redacted];
  • email addresses read [email], and web addresses keep only their site;
  • short one-line text is kept, and longer text reads as its length, such as (412 characters);
  • a list reads as its length, such as (3 items), so visitors' answers never show; only a short list of numbers, such as ids, is kept.

These rules go by the shape of the input, not by knowing each tool, so a short piece of personal data in a field with a plain name can still show.

Choose a model

The menu under the message box picks the model for your chats. Each administrator picks their own. Automatic, the default, lets WordPress pick a model that can use tools from the providers you connected.

The menu lists the models your connected providers offer that can run the agent. Dated snapshots of a model and deep-research models are left out. The menu is hidden when there is no model to pick, and locked while the agent is working. If the model you picked is not available when the chat calls it, for example because its provider was disconnected, WordPress uses another one instead of failing. On Automatic, the menu also names the model that wrote the latest reply.

Generating images does not use this menu. It asks for the newest image model each connected provider offers.

The token figure

Beside the model name, the chat shows how many tokens the conversation has sent to the AI provider so far, such as 12.4k tokens sent. It counts the tokens the provider reports; it does not show how many of them the provider had cached.

Every step sends the agent's instructions, the tool descriptions and the whole conversation again, so this number grows with each step. Large results from earlier in a long conversation are sent in short form to keep it down. Start a new chat for a new task to keep each conversation small. A conversation that grows too long for the model stops with "This conversation is too long for the model. Start a new chat.", and offers New chat instead of Retry.

Connect AI apps over MCP

AI apps that speak MCP, such as Claude Code, Claude Desktop, Cursor and VS Code, can use the same tools as the chat. They use their own AI, so this works from WordPress 6.9 without a provider under Connectors.

On XPAC → AI Agent → Tools, make sure Let AI agents use XPAC tools and at least one tool are on.

On Connection, make sure Serve these tools to AI apps over MCP is on, and save. It starts on.

Click Connect an AI app and pick your app: Claude Code, Claude Desktop, Cursor, VS Code or Other app. XPAC makes a new application password for your account, named after the app, such as "Claude Code via XPAC Agent", and shows what to paste into the app.

Copy each part with its Copy button and paste it where the dialog says. Click Test connection; it answers with how many tools the app will see, such as Connected: 43 tools. Then click Done.

The password is shown once

It exists only in the dialog and is never saved on the page. If you close the dialog before copying anything, it asks first. To connect the app later, revoke that connection and make a new one. The app acts as you and can use every tool that is on, so anyone with the password can too.

Where each app takes it

The dialog names the site in each app after your site's address, such as example-com. When the file already lists other servers, add only the new entry inside it.

AppWhat you paste, and where
Claude CodeA command. Run it in a terminal on the computer where you use Claude Code; it adds the site for every project there. Type /mcp in Claude Code to see the site connected.
Claude DesktopAn entry for claude_desktop_config.json. In Claude Desktop, open Settings → Developer → Edit Config and add it, then quit Claude Desktop fully and open it again. It connects through mcp-remote, a small third-party bridge that npx fetches from npm, so Node.js 18 or later must be installed.
CursorAn entry for ~/.cursor/mcp.json. Open Cursor Settings → MCP → Add new global MCP server and add it. Keep it in that global file, not in a project's file that could be committed.
VS CodeAn entry for your MCP user configuration. Run MCP: Open User Configuration from the Command Palette and add it. Keep it there, not in a file you commit: VS Code drops headers from a .mcp.json file.
Other appThe MCP address, the username, the application password, the Authorization header, and the same as one JSON entry. Give the app the address and have it send the Authorization header with every request, or give it the username and password.

Claude.ai web connectors need the site on a public HTTPS address and their Request headers option, which is in beta. Apps that sign in only with OAuth, such as ChatGPT, cannot connect this way.

Connected apps

Under the button, Connected apps lists the apps you connected: the app, its password's name, when it was created, and when it was last used or Never used. WordPress notes the last use at most once a day. Revoke asks first, and then the app's password stops working at once.

  • Each administrator sees, connects and revokes only their own apps. The same passwords also show on your profile under Users → Profile → Application Passwords.
  • An account can have 10 connected apps at a time, and connect at most 5 within 10 minutes.
  • Connecting needs an account that can edit posts, and application passwords turned on for the site and for you.
  • The list stays on the screen while Serve these tools to AI apps over MCP is off, so you can still revoke an app.
  • A password made here opens only the MCP address. The rest of the site's REST API and XML-RPC refuse it, so a leaked config reaches only the tools that are on.
  • Deleting XPAC Agent revokes every password it made. Deactivating it does not, and while it is deactivated these passwords are no longer limited to the MCP address: revoke them first if you turn the plugin off for good.

Connect by hand

Any application password works too. Create one under Users → Profile → Application Passwords, copy the MCP address from Connection (it looks like https://your-site.example/wp-json/xpac/mcp), and have the app send the username and application password as HTTP Basic authentication. For Claude Code:

claude mcp add --transport http xpac "https://your-site.example/wp-json/xpac/mcp" \
  --header "Authorization: Basic $(printf 'your-username:xxxx xxxx xxxx xxxx xxxx xxxx' | base64)"

The app signs in as that user, and each tool checks that user's permissions, so pick a user who is allowed to do what you want AI to do, and no more. The user must be able to edit posts. A password made by hand is not limited to the MCP address. Point the app at the MCP address: changes made through other routes into the site are not listed under Activity and cannot be undone.

What an AI app gets

  • Instructions. When the app connects, it is told what the tools are for, your site's name, address, language and time zone, and each plugin's guidance, without the lines about the chat's Allow step. It is also told that nothing waits for Allow over this connection, and to make sure you want a change before it changes or removes content or sends form answers to another service.
  • Ready-made prompts. The requests in the chat's Ready-made requests arrive as prompts, named after the plugin and the request, such as xpac-forms-contact-page. One that needs one more thing takes it as an argument, such as the page's address for xpac-wp-page-from-url.
  • An undo token with each change, while Undo agent changes is on (see Undo).

AI apps do not show Allow cards

The Allow and Decline cards belong to the chat. Over MCP nothing waits: an app connected with Connect an AI app acts as you and can use every tool that is on straight away. Tools that can change or remove things are marked that way, so an app that respects those marks asks first. Every change still shows under Activity and can be undone. Turn off tools you do not want apps to use.

To stop all AI apps at once, turn off Serve these tools to AI apps over MCP. The chat keeps working.

Privacy and security

  • Your API keys stay with WordPress. The chat goes through WordPress's AI client, and keys stay under Settings → Connectors. XPAC Agent never sees them, and its tools never take or return passwords or secret keys.
  • What reaches the AI provider. Your messages, the images you attach, the tool descriptions and what the tools return are sent to the provider you connected. When you ask the agent to read submissions, what visitors typed is sent too. When it generates an image, your description of the image is sent. Over MCP, what the tools return, submissions included, goes to the app and the AI it uses.
  • Tools run as you. In the chat, every tool runs as the administrator who is signed in and checks that person's permissions. Over MCP, tools run as the application password's user; with Connect an AI app, that is you.
  • Conversations are private to each administrator. They are stored in your site's database, and other administrators cannot open yours. The list shows your 50 most recent; older ones are kept. Delete one with the bin button beside it in the list. Images you attach are stored in wp-content/uploads/xpac-agent/, where the web server is told not to serve them and each file has a random name; only you can open yours, through the chat. Deleting a user under Users deletes their conversations, images and undo copies too.
  • The activity log is the site's record. Every administrator can read it. It never stores what a tool answered, and its rules leave out secrets and visitors' form answers (see Activity). A change is kept 90 days. WordPress's privacy tools cover it: Export Personal Data hands a person their changes, under "AI agent activity" in the export, and Erase Personal Data keeps each change as the record of what happened but removes the person, the app and the conversation it came from.
  • Undo copies are private. A copy of what a change replaced, such as a page's content or a form's settings, is kept for 7 days. Only the person who made the change can use it, and it is never sent to the AI provider or an app.
  • App passwords open only MCP. A password made by Connect an AI app is shown once, stored by WordPress as a hash like any application password, and refused everywhere on the site except the MCP address.
  • Replies cannot load outside content. Answers are shown as formatted text. HTML shows as plain text, and images the AI writes are not loaded, only their description, so a reply cannot quietly send your conversation to another site.
  • Deleting the plugin removes its data. Deactivating XPAC Agent keeps your conversations, settings, activity log and undo copies. Deleting it under Plugins removes every conversation and its images, the activity log, the undo copies, the tool switches and each administrator's model choice, and revokes every application password it made. Images the agent added to the media library, generated ones included, stay there. On a multisite network, it cleans up the site it is deleted from, and revokes its application passwords on every site.

Troubleshooting

ProblemCheck
The chat says Connect an AI providerConnect one under Settings → Connectors, then click Check again.
The chat says Needs WordPress 7.0The chat needs WordPress 7.0. On 6.9, the tools already work for AI apps over MCP.
The chat says AI is turned off on this siteWordPress reports AI switched off, by the WP_AI_SUPPORT setting or a plugin. Whoever manages the site can turn it back on.
The chat says Turn on toolsTurn on Let AI agents use XPAC tools under Tools.
The chat says No tools to work withEvery tool is off, or no active XPAC plugin brings one. Activate Forms, Popups or Analytics, or turn tools on under Tools.
The chat says the conversation is too long for the modelClick New chat and carry on there. Asking again in the same conversation is refused the same way.
A tool is missingIts plugin is inactive, or its switch is off. Integration tools need an integration add-on, steps need Multi-Step Form, submit links need Forms Auto Submit, the Analytics tools need Analytics, and the Login, Social Login and User Profiles tools need User Profiles with Forms. Generate images needs WordPress 7.0. A tool's switch is kept while its plugin is inactive.
A ready-made request is missing from a new chatEach one shows only while every switch it needs is on, and the chat shows six at most. The screenshot request also needs a chat that can take images.
The agent says an integration is not readyFinish connecting that account in its own settings. The agent names what is missing.
The agent says a field can only be changed in the block editorSome fields, such as ones another plugin adds, are read-only to the agent. Edit them in the form editor.
The agent will not give new accounts the Administrator or Editor roleIt never gives a role with admin powers, and a sign-up form never gives one either. Give that role to the person under Users.
The agent says a registration form needs a capability you do not haveA sign-up form creates accounts, so it needs someone who may add users. On a multisite network that is a super admin, unless Network Settings lets site administrators add new users.
The agent says a login page or another sign-in page is already setIt reuses the pages on User Profiles → Forms. Ask it to use that page, or to build a new one in its place.
The agent will not pick a reset password or account verification pageThat page needs its published form first, because the emailed links land there. Ask the agent to build the form and put it on the page.
The login or registration page sends you to your account page, or the reset page shows Not FoundYou are signed in, or the reset page was not opened from a reset email's link. Check the pages in a private window.
Log in still opens the WordPress login screenThe Login row on User Profiles → Forms must read Ready. Inside wp-admin, WordPress's own login screen stays.
Log in / Log out cannot go in a submenuIt goes at the top level of a menu only, best as the last item.
The agent stopped after a number of stepsClick Continue.
The chat says No connected AI model can read imagesConnect a provider that offers a model which reads images, such as OpenAI, or send the message without them.
An image is refused as too large, or the chat says the site's answer to the images could not be readAttach fewer or smaller images. Your server's upload limit may be lower than 10 MB; whoever manages the site can raise it.
A page from a screenshot has the screenshot pasted on itSay "match this design" rather than "use this image". The agent places an image on the page only when you ask it to.
The agent says no connected AI provider can make imagesConnect a provider with an image model under Settings → Connectors. Generate images also needs WordPress 7.0, and only administrators can use it.
The agent cannot change the menu or logo, or says the theme draws itYour theme writes that part in its own code, so no tool can change it. Change it in the theme. On a classic theme, change menus under Appearance → Menus.
A new title or menu does not show on the siteA page cache can keep the old one. Clear it.
Undo is greyed out with Undo the later change firstThe agent changed the same thing again later. Undo that later action first.
Undo says the page changed after this editSomeone changed it after the agent did. Undo anyway puts back the version from before the agent's change and loses the later changes; Keep leaves it as it is.
An action has no UndoUndo lasts 7 days, only the person who made a change can undo it, and actions that only read change nothing to take back. A failed action keeps nothing, and neither does a change too large to keep.
Undo says the plugin that made this change is not activeActivate that plugin again, then click Undo.
Activity does not list something the agent didOnly changes are listed, not reads, and only actions that ran.
Connection shows no MCP address, or the address answers 404Turn on Let AI agents use XPAC tools, at least one tool, and Serve these tools to AI apps over MCP, and save.
Connect an AI app is greyed outThe line under it says why: the MCP switch is not saved yet, no tool is on, application passwords need HTTPS or are turned off for the site or your account, or your account already has 10 connected apps. While Let AI agents use XPAC tools or Serve these tools to AI apps over MCP is off, the button does not show at all.
Connecting says you connected several AI apps in the last few minutesYou can connect 5 apps within 10 minutes. Wait a few minutes and try again.
Test connection says the site answered as if no password was sentYour web server may be removing the Authorization header before WordPress sees it. Click Open Site Health: its Authorization header test says whether it does. If that test passes, revoke the connection and make a new one.
Test connection says there is no MCP server at this addressTurn on Serve these tools to AI apps over MCP, switch at least one tool on, and save.
Test connection says the address could not be reached from this browserCheck that the site's address opens in this browser, and that nothing between it and the site blocks the request.
Claude Desktop does not connectQuit it fully and open it again, and check that Node.js 18 or later is installed. On a site with a self-signed certificate, add NODE_EXTRA_CA_CERTS to the entry's env, with the path of that certificate.
An AI app cannot sign inRevoke its connection and connect it again, then click Test connection. For a password made by hand, check the username and password, that the site uses HTTPS, and that the user can edit posts.
An app's password is refused outside the MCP addressPasswords made by Connect an AI app open only the MCP address. Use a password made by hand for anything else.
An AI app was set up with /wp-json/xpac-forms/mcpForms no longer runs its own MCP server. Point the app at the address on Connection.
The AI agents page in Forms settings is goneIts switches moved to XPAC → AI Agent → Tools. Your master switch and the tools you had switched off there were carried over.

For developers

Any plugin can bring tools, ready-made requests and undo for its own data by registering WordPress abilities and describing them to XPAC Agent through filters, without loading an Agent class. See the Agent hook reference.

On this page