# ACF MCP server: Advanced Custom Fields tools for Claude and ChatGPT

> Read and write Advanced Custom Fields from Claude or ChatGPT: field groups, repeaters, flexible content, galleries, options pages, and bulk edits with undo.

Source: https://www.respira.press/tools/acf

---

The ACF MCP tools catalog

# Advanced Custom Fields MCP tools

58 tools for Advanced Custom Fields: field reads and writes, field group management, ACF Pro repeaters, flexible content, galleries, options pages, relationships, and bulk operations across up to 500 posts.

58tools

1category

100%writes snapshot-backed

[Browse the full 234-tool catalog](https://www.respira.press/tools) [Install the CLI](https://www.respira.press/cli) 

## Advanced Custom Fields(58)

Advanced Custom Fields (ACF) powers flexible content models across approximately 2 million WordPress sites. Respira’s ACF tools cover field reads and writes, field group management, repeater and flexible content operations, options pages, and relationship fields. Every write creates a snapshot and routes through your approval settings, so bulk ACF updates never corrupt a site.

`wordpress_create_acf_field_group`

Create an ACF (Advanced Custom Fields) field group. Requires ACF (free or Pro) active on the site — call wordpress\_get\_site\_context first to confirm. Stored in wp\_option respira\_custom\_acf\_field\_groups and registered via acf\_add\_local\_field\_group() on acf/init. Use to bind structured fields (text, number, image, post relation) to specific post types via the location rules. Note: groups created this way are registered locally, so they are read-only in the ACF admin UI and editable only via these tools. The response includes \`field\_hints\` when a field looks like it picked the wrong type or width.

write lite needs acf 

`wordpress_update_acf_field_group`

Update a Respira-owned ACF field group. Use to add/remove fields, change location rules, or rename the group.

destructive lite needs acf 

`wordpress_delete_acf_field_group`

Delete a Respira-owned ACF field group. Existing field values on posts stay in postmeta but stop appearing in edit screens. Restore by recreating the group with the same key.

destructive lite needs acf 

`wordpress_list_acf_field_groups`

List every ACF field group Respira created. Requires ACF active. Refuses with respira\_acf\_not\_active otherwise.

read lite needs acf 

`respira_acf_get_field`

Read a single ACF field value from a post. Works for all field types. Returns null if the field is not set.

read maker needs acf 

`respira_acf_get_fields`

Read every ACF field value attached to a post. Returns a map of field\_name to value.

read maker needs acf 

`respira_acf_update_field`

Update a single ACF field value on a post. Creates a before/after snapshot for rollback. Supports dry\_run.

write maker needs acf 

`respira_acf_update_fields`

Bulk-update multiple ACF fields on a single post in one snapshot. Fields is a map of field\_key to value.

write maker needs acf 

`respira_acf_delete_field`

Remove a single ACF field value from a post. Does not delete the field definition, only the stored value.

destructive maker needs acf 

`respira_acf_list_field_groups`

List every ACF field group registered on the site, with title, location rules, and status.

read maker needs acf 

`respira_acf_get_field_group`

Fetch a single ACF field group by key, including every field definition inside it.

read maker needs acf 

`respira_acf_create_field_group`

Create a new ACF field group. Provide name, location\_rules, and an array of fields.

write maker needs acf 

`respira_acf_update_field_group`

Update properties on an existing ACF field group. Changes is a partial field group object.

write maker needs acf 

`respira_acf_delete_field_group`

Delete an ACF field group. The group definition is removed; existing field values on posts are retained.

destructive maker needs acf 

`respira_acf_export_field_group`

Export a field group as JSON. Useful for moving a group between staging and production.

read maker needs acf 

`respira_acf_import_field_group`

Import a field group from JSON. Auto-generates a new group key if none provided.

write maker needs acf 

`respira_acf_clone_field_group`

Duplicate an existing field group under a new name. Field keys are regenerated to avoid collisions.

write maker needs acf 

`respira_acf_validate_field`

Validate a value against a field definition without writing. Returns {valid, message}.

read maker needs acf 

`respira_acf_get_field_object`

Fetch the full field definition object for a given field key.

read maker needs acf 

`respira_acf_search_fields`

Full-text search across every registered ACF field definition (name, label, instructions).

read maker needs acf 

`respira_acf_bulk_get_fields`

Read the same ACF field keys from multiple posts in one call. Max 500 post IDs.

write maker needs acf 

`respira_acf_compare_fields`

Diff ACF field values between two posts. Returns per-field {a, b, equal}.

read maker needs acf 

`respira_acf_get_repeater`

Get every row from a repeater field. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_repeater_row`

Get a single row by zero-based index from a repeater field. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_add_repeater_row`

Append a new row to a repeater field. Values is a map matching the repeater sub-fields. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_update_repeater_row`

Update values on a specific row of a repeater field by zero-based index. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_delete_repeater_row`

Remove a row from a repeater field by zero-based index. ACF Pro only.

destructive maker needs acf\_pro 

`respira_acf_reorder_repeater`

Reorder repeater rows by providing new\_order: the list of old indexes in new sequence. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_count_repeater_rows`

Count how many rows are stored in a repeater field. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_flexible_content`

Get every layout (block) from a flexible content field. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_flexible_layout`

Get a single layout from a flexible content field by zero-based index. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_add_flexible_layout`

Append a new layout to a flexible content field. Layout\_type must match one of the layouts defined on the field. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_update_flexible_layout`

Update values inside a specific layout of a flexible content field. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_delete_flexible_layout`

Remove a layout from a flexible content field by zero-based index. ACF Pro only.

destructive maker needs acf\_pro 

`respira_acf_reorder_flexible_layouts`

Reorder layouts inside a flexible content field. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_get_gallery`

List images stored in a gallery field with attachment metadata. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_update_gallery`

Replace the gallery with a new array of attachment IDs. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_add_to_gallery`

Append a single image to a gallery field. No-op if the image is already in the gallery. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_remove_from_gallery`

Remove a single image from a gallery field. ACF Pro only.

destructive maker needs acf\_pro 

`respira_acf_reorder_gallery`

Reorder images in a gallery field. new\_order is a list of attachment IDs in new sequence. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_list_options_pages`

List every ACF options page registered on the site. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_option`

Read a single option value from an ACF options page. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_options`

Read every option stored on an ACF options page. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_update_option`

Update a single option on an ACF options page. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_update_options`

Bulk-update multiple options on an ACF options page. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_delete_option`

Remove a single option value from an ACF options page. ACF Pro only.

destructive maker needs acf\_pro 

`respira_acf_create_options_page`

Register a new ACF options page at runtime. page\_config must include page\_title. ACF Pro only.

write maker needs acf\_pro 

`respira_acf_export_options`

Export every option value from an ACF options page as JSON. ACF Pro only.

read maker needs acf\_pro 

`respira_acf_get_relationship`

Read the related post IDs stored in a relationship field.

read maker needs acf 

`respira_acf_update_relationship`

Set the related post IDs on a relationship field. Fully replaces existing relationships.

write maker needs acf 

`respira_acf_get_reverse_relationships`

Find every post that references the given post ID through any ACF field (relationship, post object, post object array).

read maker needs acf 

`respira_acf_get_post_object`

Read a post object field, returning a normalized {ID, post\_title, post\_type} structure.

read maker needs acf 

`respira_acf_get_user_field`

Read an ACF field attached to a user profile.

read maker needs acf 

`respira_acf_update_user_field`

Update an ACF field attached to a user profile.

write maker needs acf 

`respira_acf_get_term_field`

Read an ACF field attached to a taxonomy term.

read maker needs acf 

`respira_acf_update_term_field`

Update an ACF field attached to a taxonomy term.

write maker needs acf 

`respira_acf_clone_fields`

Copy selected ACF field values from a source post to a target post. Requires Builder tier or above (bulk scope).

write maker needs acf 

`respira_acf_bulk_update_fields`

Apply the same field updates across up to 500 posts. Each post gets its own snapshot. Requires Builder tier or above.

write maker needs acf 

## All tools, all builders

Need the complete picture? Browse every Respira MCP tool across 32 categories with filters for operation, license tier, and safety feature.

[See the full tools catalog →](https://www.respira.press/tools) 

### 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,847,540 

Live from the ecosystem · updates as the agent ships

WordPress sites connected 

3,458

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)
