# AI Engine for WordPress (com.meowapps/ai-engine): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.meowapps%2Fai-engine/versions/latest)
- Connected to: https://connect.meowapps.com/mcp
- Homepage: https://meowapps.com/ai-engine/
- Scoring rules: v2
- Tools: 30
- Average: 37.1 / 100 (Rain)
- Near-identical pairs: 0

This page shows how AI Engine for WordPress (com.meowapps/ai-engine)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: 30 tools. Above 25, models start to tell tools apart less well.

## Tools

- `wp_count_terms`: 16 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: taxonomy.
  - Minor: String arguments with no constraint or example: taxonomy.
  - Minor: Says nothing about what it returns.
- `wp_update_term`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: term_id, taxonomy, name, slug, description, parent.
  - Minor: String arguments with no constraint or example: taxonomy, name, slug, description.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: term_id. Name the tool or the place that returns it, or models look it up first.
- `wp_count_media`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: after, before.
  - Minor: String arguments with no constraint or example: after, before.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `wp_count_posts`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_type.
  - Minor: String arguments with no constraint or example: post_type.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `wp_get_post_meta`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ID, key.
  - Minor: String arguments with no constraint or example: key.
  - Minor: Says nothing about what it returns.
- `wp_get_post_terms`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ID, taxonomy.
  - Minor: String arguments with no constraint or example: taxonomy.
  - Minor: Says nothing about what it returns.
- `wp_update_comment`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: comment_ID, fields, fields.comment_content, fields.comment_approved.
  - Minor: String arguments with no constraint or example: fields.comment_content, fields.comment_approved.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `wp_update_media`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ID, title, caption, description, alt.
  - Minor: String arguments with no constraint or example: title, caption, description, alt.
  - Minor: Says nothing about what it returns.
- `wp_get_taxonomies`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_type.
  - Minor: String arguments with no constraint or example: post_type.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `wp_add_post_terms`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ID, taxonomy, terms, append.
  - Minor: String arguments with no constraint or example: taxonomy.
  - Minor: The meaning of the boolean argument append is unclear.
  - Minor: Says nothing about what it returns.
- `wp_create_comment`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_id, comment_content, comment_author, comment_author_email, comment_author_url, comment_approved.
  - Minor: String arguments with no constraint or example: comment_content, comment_author, comment_author_email, comment_author_url, comment_approved.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: post_id. Name the tool or the place that returns it, or models look it up first.
- `wp_create_post`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_title, post_content, post_excerpt, post_status, post_type, post_name.
  - Minor: String arguments with no constraint or example: post_title, post_content, post_excerpt, post_status, post_type, post_name.
  - Minor: Says nothing about what it returns.
- `wp_create_term`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: taxonomy, term_name, slug, description, parent.
  - Minor: String arguments with no constraint or example: taxonomy, term_name, slug, description.
  - Minor: Says nothing about what it returns.
- `wp_delete_post`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ID.
  - Minor: Says nothing about what it returns.
- `wp_get_terms`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: taxonomy, search, parent, limit.
  - Minor: String arguments with no constraint or example: taxonomy, search.
  - Minor: Says nothing about what it returns.
- `wp_set_featured_image`: 37 / 100
  - Major: Arguments without a description: post_id, media_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: post_id. Name the tool or the place that returns it, or models look it up first.
- `wp_update_note`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: note_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: note_id. Name the tool or the place that returns it, or models look it up first.
- `wp_update_post`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: fields, fields.post_title, fields.post_content, fields.post_status, fields.post_name, fields.post_excerpt, fields.post_category.
  - Minor: String arguments with no constraint or example: fields.post_title, fields.post_content, fields.post_status, fields.post_name, fields.post_excerpt.
  - Minor: Says nothing about what it returns.
- `wp_upload_media`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: title, description, alt.
  - Minor: String arguments with no constraint or example: title, description, alt.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `wp_get_posts`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_type, post_status, search, after, before, limit, offset, paged.
  - Minor: String arguments with no constraint or example: post_type, post_status, search, after, before.
  - Minor: No `required` list, so every argument is optional.
- `wp_get_media`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: search, after, before, limit.
  - Minor: String arguments with no constraint or example: search, after, before.
  - Minor: No `required` list, so every argument is optional.
- `wp_create_note`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: content.
  - Minor: Says nothing about what it returns.
- `wp_get_site_info`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `wp_list_block_patterns`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `wp_get_comments`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: post_id, status, search, limit, offset, paged.
  - Minor: String arguments with no constraint or example: status, search.
  - Minor: No `required` list, so every argument is optional.
- `wp_get_post`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: ID.
- `wp_get_post_types`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `wp_alter_post`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `wp_write_blocks`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `wp_get_post_snapshot`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
