Skip to main content
Glama

mcp-easy-ai__wp_list_themes

Read-only

Lists all installed WordPress themes. Optional: skip_update_check (boolean, default true: read WordPress's stored update data and contact nobody; false deletes it and asks wordpress.org again first, as wp theme list does — only for a user with update_themes). Returns { themes: [{ stylesheet (theme folder name / identifier), name, version, status ("active"/"inactive"), author, update_available (boolean), new_version (only when an update is available), update ("none" | "available" | "unavailable" | "version higher than expected"), update_version, update_unavailable_reason, auto_update (boolean: in WordPress's auto-update list), requires (WordPress version), requires_php, active_parent (true for the parent of the active child theme, whose status stays "inactive"), enabled (multisite only: "network,site" | "network" | "site" | "no"; null on a single site) }], total, warnings }. The active theme has status="active". update_available and new_version come from WordPress's stored update data (the same data App… Through Royally: its server marks it read-only, so it runs straight away.

Input Schema

NameRequiredDescriptionDefault
site_idNoSite to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com)
skip_update_checkNoDefault true: read the update data WordPress already stored, with no outbound request. false: delete it and ask wordpress.org again before listing, as `wp theme list` does without --skip-update-check (needs update_themes).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint), the description discloses the real side effect of skip_update_check=false — deleting WordPress's stored update data and making an outbound call to wordpress.org — plus the required capability. That is meaningful added context for an agent choosing a mode. It loses a point because the closing sentence is garbled/truncated and only vaguely restates the read-only behavior already covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is correctly front-loaded, but the body is one long run-on sentence enumerating every return field, and the tail is visibly corrupted ("the same data App… Through Royally: its server marks it read-only"). That bloat and the garbled ending reduce readability even though the intended content is useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly takes on the job of documenting the return envelope: themes array fields, total, warnings, active-theme status, active_parent semantics, and multisite `enabled`. The only gap is the corrupted sentence about the update-data source, which leaves that provenance detail partly unreadable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both site_id and skip_update_check are already documented in the schema, including the default and the update_themes requirement. The description largely restates that same content rather than adding syntax or edge-case detail beyond it. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

First sentence states a specific verb and resource: "Lists all installed WordPress themes." It is unambiguous and clearly distinct from siblings such as wp_get_active_theme (single theme) and wp_list_plugins (different resource). An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the two modes clearly: default reads stored update data with no outbound request, while skip_update_check=false forces a fresh wordpress.org check and requires the update_themes capability. It does not, however, name alternative sibling tools (e.g. wp_get_active_theme) or say when to prefer those, so routing guidance is clear but not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources