Custom dataPro
ACPT MCP for post types, meta groups and option pages
ACPT models custom fields in three levels rather than two, and that shapes every ACPT MCP call GoBuildWP Pro makes. A meta group holds meta boxes, which are the tabs or panels in the editor; each box holds the fields. The abilities expose that hierarchy as it is, write values through ACPT's own save function, and tell the agent when a definition it just created will not be visible yet.
Create a Property post type with a General tab (price, bedrooms) and a Location tab (address), then fill it on the first listing.
wppilot/acpt-check-setupReadReports version, the minimum check, license_active and counts of existing types, taxonomies, groups and option pages.
wppilot/acpt-create-post-typeWriteSaves the property type; ACPT registers it with WordPress on the next init, not during this request.
wppilot/acpt-get-field-type-schemaReadReturns the advanced options for Number before the group is defined.
wppilot/acpt-create-field-groupWriteCreates one meta group with two meta boxes, general and location, attached to property.
wppilot/create-postWriteOn a later request after property registration, creates the draft listing and retains the returned post ID before writing fields.
wppilot/acpt-write-valuesConfirm firstWrites price and bedrooms under the general box and the address under the location box of the listing post, which was created in a later request; results are per field.
- Edition
- Pro
- Abilities
- 24
- Requires
- WordPress 6.9+, PHP 8.0+, ACPT 2.0.52+
Abilities
ACPT abilities by effect
Inspect11
acpt-check-setupCheck ACPT Setupacpt-get-field-group-schemaGet ACPT Field Group Schemaacpt-get-field-type-schemaGet ACPT Field Type Schemaacpt-get-option-pageGet ACPT Option Pageacpt-get-post-typeGet ACPT Post Typeacpt-get-taxonomyGet ACPT Taxonomyacpt-list-field-groupsList ACPT Field Groupsacpt-list-option-pagesList ACPT Option Pagesacpt-list-post-typesList ACPT Post Typesacpt-list-taxonomiesList ACPT Taxonomiesacpt-read-valuesRead ACPT Values
Create and change8
acpt-create-field-groupCreate ACPT Field Groupacpt-create-option-pageCreate ACPT Option Pageacpt-create-post-typeCreate ACPT Post Typeacpt-create-taxonomyCreate ACPT Taxonomyacpt-edit-field-groupEdit ACPT Field Groupacpt-edit-option-pageEdit ACPT Option Pageacpt-edit-post-typeEdit ACPT Post Typeacpt-edit-taxonomyEdit ACPT Taxonomy
Reference: /docs/reference/acpt
Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.
Data model
ACPT's own tables, and meta for values
ACPT keeps its definitions in its own wp_acpt_* tables: post types, taxonomies, meta groups with their boxes and fields, and option pages. A separate wp_acpt_belong table records which post types, taxonomies or option pages each meta group belongs to. There is no PHP-registration route, so every record the abilities list is editable.
Field values are written with save_acpt_meta_field_value(), so ACPT's hooks and its type-specific serialisation for files, dates and repeaters run. ACPT's own site says meta data goes to WordPress post meta by default. Targets are a post, term or user by numeric id, or an option page by its menu slug; ACPT does not store meta on comments.
Because values are addressed as box and field, the write shape nests each field value under its box name, then its field name. An agent that thinks in flat ACF-style groups has to know which box a field sits in first, which is what the schema read with include_fields is for.
Limits
ACPT limits worth knowing before a write
- Every definition change (post type, taxonomy, meta group, option page) lands in ACPT's own tables and is recorded without an undo. Value writes to a post target can be rolled back.
- Option pages save without a valid ACPT licence, but the menu page only appears in wp-admin when the licence is valid and pages are enabled; values on them still read and write.
- Edits patch top-level keys but replace arrays: sending meta_boxes, supports or labels replaces the whole list, so fetch the current state first.
- Deleting a post type leaves its posts in wp_posts under an unregistered type unless delete_posts is true; deleting a meta group leaves the stored values behind.
- Forms, dynamic blocks, datasets and ACPT's WooCommerce features are not exposed.
Worked example
Modelling a listing type end to end
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
The listing opens with two tabs of filled fields. Creating the post in the same request as the post type fails with Invalid post type, because the registration has not run yet, so the steps have to be split. The type and group definitions cannot be undone from the change log; the value write can.
After registration and the next init request, create the post through the shared create-post operation and retain its returned ID before acpt-write-values. Verify live capabilities and field-schema editability, then reread the saved values.
acpt-check-setupReports version, the minimum check, license_active and counts of existing types, taxonomies, groups and option pages.
acpt-create-post-typeSaves the property type; ACPT registers it with WordPress on the next init, not during this request.
acpt-get-field-type-schemaReturns the advanced options for Number before the group is defined.
acpt-create-field-groupCreates one meta group with two meta boxes, general and location, attached to property.
create-postOn a later request after property registration, creates the draft listing and retains the returned post ID before writing fields.
acpt-write-valuesWrites price and bedrooms under the general box and the address under the location box of the listing post, which was created in a later request; results are per field.
Working with ACPT
Connect Claude to ACPT and read the model first
An ACPT MCP session goes better when the first ten minutes are read-only. acpt-check-setup reports the ACPT version, whether it meets the 2.0.52 floor GoBuildWP Pro requires, whether the ACPT licence is active and how many post types, taxonomies, meta groups and option pages exist. acpt-list-post-types then gives each type's post_count, and acpt-list-field-groups can be filtered by what a group belongs to, so a question such as 'which meta groups are attached to the property type' is one call with belongs_to customPostType and find property.
Ask for acpt-get-post-type with include_meta_groups set when you want the whole picture of one type in a single answer. Under the Read Only profile all of this works, and none of it is logged as a change.
Choosing ACPT field types before the group exists
ACPT's type names are case-sensitive and more granular than most field plugins: Post, PostObject and PostObjectMulti are separate types, as are Image, Gallery and ImageSlider, and Address and AddressMulti. The list also carries Currency, Length and Weight, plus Barcode, QRCode, Rating and Table. A payload that says text instead of Text is not the same request.
That is why acpt-get-field-type-schema exists. Calling it for each type the agent plans to use returns the advanced options that type accepts, and the agent can then write a meta group payload that ACPT does not have to guess about. It costs one read per type and avoids a group that saves but behaves differently in the editor.
How an ACPT write can half succeed
acpt-write-values returns a result per field with status ok or error rather than one verdict for the batch. If a listing gets price, bedrooms and address in one call and the address is malformed, price and bedrooms can still be saved. The agent should read the results array and report the failures by box and field name, then re-run only those fields, instead of assuming nothing changed.
The target address also differs by object. Posts, terms and users take numeric IDs; an option page takes its menu_slug string. ACPT keeps no meta on comments, so a comment target is not available for values even though a meta group can name comments in its location rules.
- Write to a post target when you can: those value writes can be rolled back from the change log.
- For bulk work across many posts, fields-bulk-update-values accepts ACPT fields addressed as box_name.field_name, with a dry run first.
- Read the values back with acpt-read-values for the same group and boxes before telling anyone the job is done.
Slugs, reserved names and retiring a type
acpt-create-post-type rejects WordPress's reserved slugs, including post, page, attachment, wp_block and wp_navigation, and the post type name has to stay within twenty lowercase characters. Choose the slug as if it were permanent: the editing abilities can change labels and settings, but content stored under an old slug does not move by itself.
When a type is no longer wanted, the default delete removes ACPT's definition and leaves every post in wp_posts under a type that nothing registers. Passing delete_posts true removes those posts too, and nothing in the change log brings them back. Take a backup, export what you need, and treat that flag as a separate decision from removing the definition.
Questions
ACPT questions
Why doesn't the ACPT option page my agent created show in the admin menu?
ACPT only registers the menu page when its licence is valid and pages are enabled. The record exists and its values can be read and written through the abilities, so activating the licence makes it appear.
What is the difference between a meta group, a meta box and a field in ACPT?
The group is the container attached to a post type, taxonomy or option page; boxes are the panels or tabs inside it; fields are the inputs. Values are addressed by box and field name together.
Why does creating a post fail right after the agent creates the post type?
ACPT registers post types and taxonomies on the init hook. Within the same request the type does not exist yet, so the post insert has to happen in a separate call.
Can the agent remove an ACPT post type together with its posts?
Only when it passes delete_posts=true, which is a permanent delete. By default the definition goes and the posts stay, orphaned.
Where these facts come from
GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.
ACPT is a separate product; no partnership or endorsement is implied.