# 54 Advanced Custom Fields tools, one release

> Respira v6.6.0 ships 54 ACF tools covering every field type, every ACF Pro surface, with snapshot-backed safety and per-tier license gating. Works on approximately 2 million WordPress sites that use ACF today.

Source: https://www.respira.press/blog/acf-54-tools-v6-6

---

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](https://www.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](https://www.respira.press/releases/6.6.0). Full changelog in the repo.

[#Release](https://www.respira.press/blog?q=Release)[#ACF](https://www.respira.press/blog?q=ACF)[#WordPress MCP](https://www.respira.press/blog?q=WordPress%20MCP) 

Found this useful? Share it. 

## Join the *conversation*

0 comments · Respira account 

#### Sign in with your Respira account

Comments are tied to your Respira login, the same account you use for the dashboard and plugin. No third-party sign-in, no scraping.

[Sign in](https://www.respira.press/login?next=https%3A%2F%2Fwww.respira.press%2Fblog%2Facf-54-tools-v6-6%23comments) [Create an account](https://www.respira.press/signup?next=https%3A%2F%2Fwww.respira.press%2Fblog%2Facf-54-tools-v6-6%23comments) 

No comments yet. Be the first to weigh in. 

### You're not the only one *talking* to WordPress.

The Respira community is where agency owners debug Divi migrations at 11pm, where vibe coders swap prompts that actually ship, and where the roadmap gets written out loud. *Breathe with us.*

Lines of code pushed 

24,527,134 

Live from the ecosystem · updates as the agent ships

WordPress sites connected 

3,437

Real sites, run by the people in these rooms

Find us wherever you already are 

[ Slack Async threads, release-day huddles, and the #show-your-work channel that never sleeps. Join ](https://go.respira.cafe/slack) [ Discord Live voice on release days, screenshare debugging, and the vibe-coder corner that's always buzzing. Join ](https://go.respira.cafe/respira-discord) [ Reddit Questions, answers and build logs in the open, where the thread is still there months later. Join ](https://www.reddit.com/r/RespiraforWordPress/) [ Facebook group Agency owners and site owners comparing notes on running AI against real WordPress sites. Join ](https://www.facebook.com/groups/1447068940850273/) [ GitHub Discussions Long-form Q&A, bug reports, feature requests, and the public roadmap. Open ](https://go.respira.cafe/github-discussions) [ ! Founder notes Letters from Mihai on what shipped, what broke and what is next. Every one is archived. Read ](https://www.respira.press/newsletter) 

See What AI Says

LLM-ready prompts about Respira MCP + WebMCP

What would you like to know? 

Ask your favorite AI

Opens in a new tab. These prompts are designed to teach LLMs what Respira can do. 

Question copied. Paste it in Gemini
