Advanced Custom Fields runs on approximately two million WordPress sites. Before today, Respira could read ACF values through generic post-meta calls, but agents lost the field definitions, the repeater structure, the flexible-content layout names, the relationship resolution, and every other piece of ACF-native intelligence. v6.6.0 fixes that. 54 new tools, every field type, every ACF Pro surface, snapshot-backed, dry-run previewable, license-tier gated.
What ships today
One PHP class. One MCP tool file. One detection hook. One data-driven dispatcher. Zero breaking changes. Upgrade in place from any 6.x version and ACF tools register themselves on the next request if ACF is installed on the site.
The 54 tools break into five groups:
- Field operations (18). Reads and writes for any field value on any post. Field group CRUD. Validation and search across the entire field definition surface.
- ACF Pro repeaters, flexible content, galleries (18). Row-level and layout-level ops for ACF Pro's composable field types.
- ACF Pro options pages (8). Site-wide settings stored on ACF options pages.
- Relationships and post objects (6). Follow relationships in either direction. User-profile fields first-class alongside post-scoped fields.
- Terms and bulk (4). Read and write fields on taxonomy terms. Clone between posts. Bulk-update up to 500 posts in one call.
Safety on every write
Every ACF write is wrapped with the same safety envelope Respira applies to every other builder-native tool. Before_edit snapshot via the existing Respira snapshot engine. Pass dry_run: true to preview the change without touching the database. Per-call audit log entry with action, resource type, resource ID, timestamp. Per-tier scope gating enforced in the PHP handler: reads on Lite, writes on Maker, bulk operations on Builder.
The license gate is not a marketing veneer. The backend issues scopes on the API key based on the user's plan, and the PHP handler checks each gate independently. A Lite-tier key calling acf_update_field gets a 403 respira_acf_write_scope_required with a remediation hint. A Maker-tier key calling acf_bulk_update_fields gets 403 respira_acf_bulk_scope_required. Both messages point at the pricing page so the error is actionable.
A concrete example
Update a product spec sheet across 100 products in one call. The agent reads all products matching a SKU pattern, diffs their spec_sheet ACF field against a single source of truth, then routes the 100 writes through acf_bulk_update_fields. Each product gets its own before/after snapshot. One approval entry covers the batch.
respira_acf_bulk_update_fields({
post_ids: product_ids,
fields: {
warranty_months: 24,
country_of_origin: 'Portugal'
}
}) If warranty and country were stored as separate top-level fields in a repeater, the agent would walk each product with acf_update_repeater_row instead. Either shape works, and the tool surface is explicit enough that the agent can pick the right one.
Why ACF is part of core Respira, not a paid add-on
WooCommerce lives in a separate add-on plugin because it is a distinct commerce surface with its own license. ACF is different. It is a foundational field API that roughly thirty percent of WordPress sites depend on for their content model. Gating access to it behind a paid tier would mean that a Lite-plan user with an ACF-heavy site could not read their own content through the agent. That is not the product I want to ship. ACF tools are in core, reads are free on Lite, writes on Maker and above, bulk on Builder and above.
Tested
17 direct-handler assertions via a mu-plugin probe covering read, write, bulk, dry-run (returns preview, no side effect), Pro gating, write-scope gating, bulk-scope gating, audit log entries. 54 HTTP assertions against the full endpoint surface using a real encrypted API key on wp-now plus ACF 6.8.0. 54 MCP client roundtrip assertions through WordPressClient.dispatchAcfTool(). Every path exercised, every error code surfaced, every gate verified.
What's next
v6.6.0 lays the groundwork for the public tools catalog at respira.press/tools — a filterable index of all 234 Respira tools across 22 categories with license badges, safety indicators, and an Abilities API comparison table. Catalog data is generated and versioned with this release. The catalog landing page ships next.
Release notes at respira.press/releases/6.6.0. Full changelog in the repo.
Join the conversation
0 comments · Respira accountNo comments yet. Be the first to weigh in.