Update Form Styling is a WordPress ability from Fluent Forms — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.
Install Free Plugin →Update Form Styling
WriteChange a form's theme preset and/or custom CSS.
Needs the Fluent Forms MCP server switched on in FluentForm → Settings → MCP, and WordPress 6.9+ so wp_register_ability() exists (abilities are only registered when the function is present). Reaching the server also requires a logged-in WordPress user holding at least one FluentForm capability. Each ability additionally checks a specific FluentForm capability (e.g. fluentform_dashboard_access, fluentform_forms_manager, fluentform_entries_viewer, fluentform_manage_entries, fluentform_view_payments, fluentform_settings_manager) via the plugin's own Acl system, and every write ability requires a two-step dry_run → confirm_token round-trip through WriteGuard before anything is persisted. Note (from source comments): a WordPress role granted FluentForm access via the Role Manager passes every per-ability capability check, including delete-submission and bulk delete_permanently — the real boundary for such a user is 'has FluentForm access, restricted to their form scope', not per-tool separation; only individually-assigned 'specific forms' managers are gated the way each ability's declared capability implies.
What it does
Updates a form's styler_theme (preset id, always writable) and/or custom css. Writing css requires the caller to additionally hold the unfiltered_html WordPress capability — the same gate the admin styler enforces — and any css value is run through fluentformSanitizeCSS, which blanks and rejects the whole value if it contains an HTML tag (guarding against a </style><script> breakout). Structured styler_styles are read-only here (edit them in the form styler UI) and custom JS is not editable through MCP at all; unknown keys are rejected rather than silently dropped. The write runs inside a row-locked transaction that re-verifies the form's style state hasn't changed since the dry-run preview, refusing with STATE_CHANGED if it has. Requires dry_run:true first to preview the before/after and obtain a confirm_token, then a repeat call with the same values plus confirm_token to execute.
See it in action
You ask your AI assistant
"Change form 12's theme to the default preset."
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| form_id | integer | Yes | Required. The form to restyle. |
| styler_theme | string | No | Theme preset id (e.g. ffs_default). |
| css | string | No | Custom CSS (requires the unfiltered_html capability). |
| dry_run | boolean | No | Preview the change without writing; returns a confirm_token. |
| confirm_token | string | No | The token from the dry_run preview, required to execute. |
| idempotency_key | string | No | Optional; a retry with the same key will not act twice. |
Returns
On dry_run: the form_id and a changes object showing the from/to for each requested field (styler_theme and/or a preview of the css), plus a confirm_token. On execute: the form_id and an updated array naming which keys (styler_theme, css) were written.
Permission
Requires the fluentform_forms_manager capability; writing css additionally requires the unfiltered_html WordPress capability.
More Fluent Forms abilities
Add Submission Note
Attach an internal staff note to one entry; not visible to the submitter.
Bulk Update Submissions
Apply one action — read, unread, trashed, favorite, unfavorite, or permanent delete — to up to 200 entries at once.
Create Form
Create a new form from a title and an ordered list of fields, or a basic contact form by default.
Create or Update Email Notification
Create a new email notification or update an existing one — including its recipient.
Delete Submission
Permanently delete one entry and its uploaded files.
Get Form
Load one form's full detail, including its field schema, so the agent knows the exact field keys used in submissions.