Custom dataPro
Admin and Site Enhancements MCP for custom fields and content types
Admin and Site Enhancements bundles dozens of modules, but this Admin and Site Enhancements MCP surface covers only its content modelling: Custom Field Types (field groups and values) and Custom Content Types (post types and taxonomies). Both are ASE Pro modules with their own on-off switch. Without a valid ASE Pro licence, post type and taxonomy definitions are saved but never registered; field groups and values can still be read and written at the database level, though whether ASE shows them in the editor without a licence is not established here. The page starts there, because that is where most failed calls come from.
Add a Rating number field to our Review Fields group and set it to 4 on review 233.
wppilot/ase-check-setupReadNeeds pro_active, pro_licensed and cft_module_active all true, and returns the group, post type and taxonomy counts.
wppilot/ase-get-field-groupReadWith include_fields: true, returns the full fields array the edit will be built from.
wppilot/ase-edit-field-groupWriteSends the complete fields array plus rating; the array replaces the stored one atomically, so omitting a field drops it.
wppilot/ase-write-valuesWriteWrites rating: 4 to post 233 and reports each field's outcome separately; a partial failure does not abort the rest.
wppilot/ase-read-valuesReadReads back with the default api format and only fields that hold a value.
- Edition
- Pro
- Abilities
- 18
- Requires
- WordPress 6.9+, PHP 8.0+, Admin and Site Enhancements 8.7.0+
Limits
Why an ASE call is refused
- On ASE Free only the setup check registers. Field groups, values, post types and taxonomies all need ASE Pro.
- Pro installed without a valid licence still saves asenha_cpt and asenha_ctax rows, but ASE does not register those types, so nothing appears in the admin sidebar. Field group and value reads and writes still succeed at the database level; check ASE's own screens before relying on them without a licence.
- Post type slugs that collide with core types (post, page, attachment, wp_template and others) and taxonomy slugs like category or post_tag are refused, and an existing slug cannot be renamed; that takes a delete and a create.
- Creates can be undone (the new definition is trashed); edits and deletes of definitions cannot. Value writes to a post can be rolled back, term and options values cannot.
- Deleting a post type keeps its posts unless force_delete_content is true, and deleting a taxonomy keeps its terms unless force_delete_terms is true.
Data model
Posts for definitions, a side table for term values
ASE stores each definition as a post: asenha_cpt for post types, asenha_ctax for taxonomies and asenha_cfgroup for field groups. Labels are post meta on those rows; creating a post type through the ability generates all 31 cpt_label_* keys from the singular and plural names, and a taxonomy gets 26 ctax_label_* keys.
Field values on a post are ordinary post meta. Values on a term are not: ASE writes them to a custom table, wp_asenha_cfgroup_values_for_terms, so get_term_meta() returns nothing for them and only ase-read-values sees them. Options-page values are addressed by the page slug.
The module switches live in ASE's single settings option, admin_site_enhancements, as enable_custom_field_types and enable_custom_content_types. The abilities do not flip them; with a switch off, every call in that module returns ase_module_disabled.
Abilities
Admin and Site Enhancements abilities by effect
Inspect8
Create and change7
Reference: /docs/reference/ase
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.
Worked example
Adding a field to an existing group
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
The review shows its rating in the editor and anywhere the field is output. The value change can be rolled back; the group edit is logged without an undo because ASE addresses the group by key and may advance its field-id counter.
Check licensed ASE Pro and the separate CFT and CCT module switches before the rating example. CFT availability alone does not authorize a Pro-only operation. Inspect every field failure before accepting the result.
ase-check-setupNeeds pro_active, pro_licensed and cft_module_active all true, and returns the group, post type and taxonomy counts.
ase-get-field-groupWith include_fields: true, returns the full fields array the edit will be built from.
ase-edit-field-groupSends the complete fields array plus rating; the array replaces the stored one atomically, so omitting a field drops it.
ase-write-valuesWrites rating: 4 to post 233 and reports each field's outcome separately; a partial failure does not abort the rest.
ase-read-valuesReads back with the default api format and only fields that hold a value.
Modelling content in ASE
Building a new content type in ASE, in dependency order
A typical request is a small directory: a Venues post type, a Region taxonomy attached to it, and a field group with address, capacity and booking email shown only on venues. With Admin and Site Enhancements the agent should build it in that order. ase-create-post-type needs a slug of up to twenty characters, a plural title and labels.singular; ase-create-taxonomy takes the post types it attaches to; ase-create-field-group comes last, because its location rules point at the post type that now exists.
Each create is idempotent. Re-sending an identical definition returns created false instead of a duplicate, which makes a retry after a dropped connection harmless. Sending the same key or slug with different data is refused with ase_field_group_exists, ase_post_type_slug_conflict or ase_taxonomy_slug_conflict, so an agent cannot overwrite an existing definition by accident while thinking it is creating one. Duplicate field names inside one fields array are caught as ase_field_name_collision before anything is saved.
Finish by checking the result as an editor would see it: the post type in the admin menu, the taxonomy box on a venue, and the field group on the venue edit screen and nowhere else. If the menu item is missing, go back to ase-check-setup before suspecting the definition.
Renaming labels without regenerating them
When a client decides Venues should be called Locations, two different changes hide in that sentence. The visible names are labels, and changing labels.singular or labels.plural through ase-edit-post-type does not regenerate the auto-built cpt_label_* keys; screens such as Add New Location keep the old wording until each string is overridden through labels_full. Read the current set first with ase-get-post-type and include labels_full, then send only the strings that should change.
The slug is the second change, and it cannot be edited at all. Renaming it means deleting the definition and creating a new one. Deleting keeps the existing posts in wp_posts unless force_delete_content is true, but those posts still carry the old post type name, and a new definition with a new slug does not adopt them. Moving them across is a database change in its own right, so for most clients the honest advice is to change the labels and leave the slug alone.
Repairing older field groups and reading values for an audit
Field groups created by hand, by an import or by an earlier tool sometimes lack keys ASE's canonical shape expects. ase-edit-field-group repairs them as a side effect: passing the fields array normalises every field to ASE's full key set, and touching show_in_rest_api fills the complete extras block. Re-saving a group through the ability with its own current fields is therefore a deliberate fix, not a no-op, and worth doing on staging first.
For content audits, remember what ase-read-values hides by default. only_with_values is true, so empty fields are dropped from the answer. That keeps context small on a full post, but when the question is which venues have no booking email, set it to false or the gaps will not appear. The format option matters too: api returns ASE-processed values for display, input returns what the edit form expects, and raw returns the database string, which is the one to compare when two values look the same on screen but differ in storage.
Questions
Admin and Site Enhancements questions
Does the ASE MCP cover redirects, code snippets or login protection?
No. The abilities cover ASE's content modelling modules only. ASE's other modules are not exposed as abilities.
Why can't I see ASE field values on a category with get_term_meta?
ASE keeps term field values in its own wp_asenha_cfgroup_values_for_terms table, not in term meta. Use ase-read-values with a term target.
An agent created a Books post type but it is missing from the menu. Why?
Either the Custom Content Types module is off or ASE Pro is not licensed. ase-check-setup reports pro_licensed and cct_module_active; both must be true for the type to register.
What happens if the agent writes to a tab or heading field?
Those are layout-only and store nothing. That field reports ase_layout_field_write while the other fields in the same call still save.
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.
Admin and Site Enhancements is a separate product; no partnership or endorsement is implied.