Skip to main content
Glama

WordPress theme conversion status

wordpal_theme
Read-onlyIdempotent

Answer "does this WordPress block theme convert to Drupal with WordPal". The WordPal gallery converts every block theme on wordpress.org each night. With slug: one theme and its routes. Without slug: counts by status and the most installed themes.

  • version: the theme version wordpress.org lists now. run: the run the gallery shows. run.theme_version is the version it converted, which can be older.

  • run.status (exact, diff, failed) is a verdict on the home page only. exact: its markup has no difference and its screenshot matches the WordPress screenshot. diff: the markup differs, the screenshots differ, or the two pages could not be compared. failed: no pair of home page screenshots, as when the conversion fails.

  • Filters combine: status (run.status), tag, q. count: themes that pass all three. by_status: themes that pass tag and q, per status.

  • Row: slug, name, installs, version, and run with status, routes_measured, routes_matching, markup_diffs_total. Up to eight pages are compared per theme. markup_diffs_total sums their markup differences.

  • theme: the row, plus author, tags and page_url. Its run adds plugins to install first, convert_command, reason when failed, wordpal_release and image links.

  • run.routes: route, markup_outcome (match, diff, skipped, error) and markup_diffs. A markup difference is an element, a class, an attribute or an inline style that differs.

  • A route whose screenshots were compared also has visual_outcome (match, diff, unstable, error), visual_bands, visual_changed, wp_height and drupal_height.

  • wp_only_rows and drupal_only_rows: pixel rows that one screenshot alone has. visual_bands and visual_changed count the rows both screenshots have.

  • history: every run the gallery has shown for the theme, newest first, home page only. direction (improved, regressed, same, changed) compares a run with the run before.

  • next_offset is absent on the last page.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "wordpal_theme"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoFilter: part of a slug or of a theme name, in any case.
tagNoFilter: a wordpress.org tag slug, for example blog.
slugNoA wordpress.org theme slug, for example twentytwentyfive. Returns that theme and its routes. The filters do not apply.
limitNoThemes to return, 1 to 50 (default 20).
offsetNoSkip this many themes in the same ranked order. Pass the previous page's next_offset.
statusNoFilter: exact, diff or failed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

With no output schema, the description carries the full burden of return-value disclosure and does so: it defines run.status verdicts (exact/diff/failed), what markup_outcome and visual_outcome mean, what markup_diffs_total sums, and that next_offset is absent on the last page. It also notes the nightly refresh cadence. This is well beyond what the annotations (readOnly, idempotent, non-destructive) already provide.

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

Conciseness4/5

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

Purpose is front-loaded and the rest is dense bullet-style field documentation with no filler. It is long, but nearly every clause conveys distinct structural information the agent cannot get elsewhere, since there is no output schema; a slight deduction for blending input-mode guidance and return documentation in one unbroken block.

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

Completeness5/5

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

For a read-only, closed-world, six-parameter query tool with no output schema, the description supplies the entire response contract — rows, theme detail, routes, visual comparison fields, history, and pagination sentinel. Nothing an agent needs to interpret a result correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it states that slug returns the theme and its routes and that filters do not apply in that mode, and that count is 'themes that pass all three' filters while by_status is per-status. That clarifies the interaction between q/tag/status in a way the schema descriptions do not.

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?

The opening sentence states the exact question the tool answers — whether a WordPress block theme converts to Drupal with WordPal — which is a specific verb+resource scope. The nightly-gallery framing makes it unambiguous what dataset backs the answer, and no sibling tool overlaps this domain.

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 explicitly partitions usage by mode: 'With slug: one theme and its routes. Without slug: counts by status and the most installed themes,' and explains how filters combine. There are no true alternatives among the siblings, so the absence of a 'use X instead' clause is not a real gap.

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