@prc/schema-seo registers two WordPress Abilities for AI SEO suggestions and deterministic reading-score analysis.
Ability index
| Ability | Permission | Side effects |
|---|---|---|
prc-schema-seo/suggest | edit_posts | Read-only AI suggestions |
prc-schema-seo/reading-score | edit_posts | Read-only computation (no AI) |
Both set show_in_rest: true and MCP public tool meta. Optional site_id runs against a multisite blog (defaults to the content site; returns plugin_inactive_on_site when inactive).
prc-schema-seo/suggest
| Field | Value |
|---|---|
| Label | Suggest SEO Metadata |
| Category | data-retrieval |
| Source | includes/ai-experiment/class-seo-ai-ability.php |
Generates AI suggestions for SEO title, meta description, and social sharing text from post content.
Input
-
post_idnumber required -
Post to analyze.
-
fieldsarray -
Which fields to generate.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
Output
-
suggestionsobject -
Suggested title, description, og_title, og_description.
-
errorstring -
Error message when generation fails.
No fields match this filter.
prc-schema-seo/reading-score
| Field | Value |
|---|---|
| Label | Analyze Reading Level |
| Category | data-analysis |
| Source | includes/class-reading-score.php |
| Idempotent | true |
Calculates Flesch-Kincaid Reading Ease and Grade Level for a post or arbitrary text. Accepts either post_id or raw text (text wins). For post_id, analyzes post content only (excerpt excluded) so scores match the editor Reading Score panel. word_count uses the Gutenberg @wordpress/wordcount algorithm.
Input
-
post_idnumber -
Post ID to analyze when text is omitted.
-
textstring -
Raw text; takes precedence over post_id.
-
site_idnumber -
Optional multisite blog ID.
No fields match this filter.
Output includes reading_ease, grade_level, grade_label, ease_label, word_count, and related sentence/syllable counts from the ability schema.