Skip to main content
Glama

Inspect WordPress registries

inspect_registry
Read-onlyIdempotent

Trace WordPress registries—post types, taxonomies, hooks, REST routes, and more—to the plugin, theme, or core file that registered them. Find the source of runtime behavior without var_dump.

Instructions

See what the running WordPress has registered and which plugin, theme or core file registered it — the questions a developer answers with var_dump. kind selects the registry: post_types and taxonomies (all of them, including ones hidden from REST, with rest_base, supports, rewrite and owner); meta (register_meta keys per object type plus the most frequent unregistered postmeta keys with an owner guess); blocks (block types with dynamic flag, attribute count, supports, block.json source, styles, variations, plus block patterns); shortcodes (callback file:line); rest_routes (methods, callback file:line, and routes whose permission_callback is __return_true flagged public); hooks (busiest hooks, or every callback on one hook with priority and file:line); cron (events with next run, schedule, overdue and orphan flags); image_sizes; menus_locations; sidebars; capabilities (each role's caps added/removed versus a fresh install); scripts_styles (handles registered during REST). Needs the companion plugin.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesWhich registry to read. hooks and rest_routes are the usual starting points when debugging 'where does this behaviour come from'.
limitNoMaximum rows per list in the response. Every list also reports its untruncated total.
filterNoNarrow the result. A case-insensitive substring on names for most kinds; a namespace such as "wc/v3" for rest_routes; an exact hook name such as "the_content" for hooks (lists its callbacks — a partial name lists matching hooks instead); for meta, start with "_" or pass "protected" to include underscore-prefixed keys.
site_idNoWhich configured WordPress site to act on. Optional — with a single site configured it is used automatically; with several, the default site is used unless you name one. Run list_sites for valid ids.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description only needs to add contextual behavior. It does so richly: it notes the companion plugin requirement, the inclusion of hidden-from-REST entries, owner guesses for postmeta, permission_callback public-route flags, overdue/orphan cron flags, and the REST-scoped scripts/styles handles. This gives an agent accurate expectations beyond what annotations or schema alone 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?

The core purpose is front-loaded in the first sentence, and the rest is a compact semicolon-separated enumeration of the 13 kinds with their most useful details. It is dense but each clause earns its place by explaining what data a given kind returns. The format is a long single sentence rather than a bulleted list, so it sacrifices a little scannability without wasting words.

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?

Given the absence of an output schema, the description does a good job conveying what each registry output will contain, including file:line callbacks, flags, totals, and owner guesses. It also covers the prerequisite companion plugin and the filter semantics. It could still be more explicit about the exact response shape and behavior when the companion plugin is missing, but the current level is sufficient for an agent to select and invoke the tool confidently.

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 schema already documents kind, limit, filter, and site_id. The description adds value by explaining what each registry kind contains, including details like dynamic flags, callback file:line, and role cap diffs. It does not need to repeat schema mechanics; the supplement is meaningful but not essential because the schema already covers the parameter meanings.

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 description uses a specific verb and resource: 'See what the running WordPress has registered and which plugin, theme or core file registered it.' It enumerates the concrete registries (post_types, taxonomies, meta, blocks, etc.), making the tool's scope unmistakable and distinct from sibling inspection tools. The var_dump framing immediately conveys the developer-oriented purpose.

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?

The description gives clear context for when to use the tool: anytime one wants to know what WordPress has registered or who registered it, especially when debugging behavior. It also provides guidance within the tool by calling out hooks and rest_routes as usual starting points. It does not explicitly contrast with sibling tools like list_roles or inspect_plugin, but the purpose is stated clearly enough to imply appropriate use.

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

Deploy Server

Other Tools