@prc/block-forms registers Jetpack Forms–shaped WordPress Abilities under prc-block-forms/* for VIP MCP and other Abilities consumers. Category: forms.
Jetpack’s jetpack-forms/* abilities are unregistered (and kept off REST/MCP) so agents use this surface. Extend the disabled slug list with prc_block_forms_disabled_jetpack_abilities.
Ability index
| Ability | Permission | Side effects |
|---|---|---|
prc-block-forms/list-forms | edit_posts | Read-only |
prc-block-forms/get-form | edit_post for the form (or edit_posts) | Read-only; forwardTo redacted |
prc-block-forms/create-form | edit_posts | Creates a form CPT |
prc-block-forms/delete-form | delete_post for the form | Trashes form (not permanent) |
prc-block-forms/get-responses | prc_form_responses_capability (default manage_options) | Read-only |
prc-block-forms/update-response | responses cap | Spam/inbox, unread, or permanent delete (trash) |
prc-block-forms/bulk-update-responses | responses cap | Bulk spam / read / unread |
prc-block-forms/get-status-counts | responses cap | Read-only |
All listed abilities set show_in_rest: true and MCP public tool meta.
Sources: includes/abilities/class-form-abilities.php, includes/abilities/class-form-response-abilities.php
Form abilities
prc-block-forms/list-forms
Lists form CPT posts with response counts, status, and edit URLs.
Input
-
pagenumber -
Page number.
-
per_pagenumber -
Forms per page (1–100).
-
searchstring -
Search by title.
-
statusenum -
Filter by status.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/get-form
Returns form metadata, parsed form-input-* fields, folder counts, and redacted block content. Sensitive actionConfig values such as forwardTo are presence-only.
Input
-
idnumber required -
Form CPT ID.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/create-form
Creates a form. Prefer status=draft unless the user asked to publish. Empty content yields a minimal shell with a submit button.
Input
-
titlestring required -
Form title.
-
contentstring -
Serialized block markup.
-
statusenum -
Initial status. Downgraded to draft without publish_posts.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/delete-form
Moves a form to the trash. Does not permanently delete.
Input
-
idnumber required -
Form CPT ID.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
Response abilities
prc-block-forms/get-responses
List or fetch responses. Folder semantics: publish / inbox for inbox, spam for spam. trash returns an empty list with a note — PRC hard-deletes; there is no soft-trash folder.
Input
-
idsarray -
Fetch specific response IDs.
-
pagenumber -
Page number.
-
per_pagenumber -
Page size (1–100).
-
form_idnumber -
Filter by form CPT ID.
-
parentarray -
Source post ID(s) where the form was embedded.
-
statusenum -
Folder filter.
-
is_unreadboolean -
Unread-only or read-only when set.
-
searchstring -
Search content and sender.
-
beforedate -
ISO8601 upper bound.
-
afterdate -
ISO8601 lower bound.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/update-response
Mark spam/inbox, toggle unread, or permanently delete with status=trash.
Input
-
idnumber required -
Response ID.
-
statusenum -
publish/inbox restores; spam folders; trash hard-deletes.
-
is_unreadboolean -
Read/unread toggle.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/bulk-update-responses
Input
-
actionenum required -
Bulk action.
-
idsarray required -
Response IDs.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
prc-block-forms/get-status-counts
Returns { inbox, spam, unread } (non-spam unread). No trash folder count.
Related
- REST API — admin DataViews HTTP surface for the same data
- Architecture
- User guide