Skip to main content
Glama

WordPress: Wp widget set

wordpress_specialist_wp_widget_set
Destructive

Replace a WordPress widget area's entire contents with supplied widgets, using block HTML/tree for block areas or text settings for legacy areas.

Instructions

[UNIFIED] Full-replace a widget area's contents. Block-kind areas accept any widget with raw (block HTML) or blocks (block tree, server serialises). Legacy areas accept text widget settings only this round — other legacy widget types remain read-only. Caller-side kind is ignored: area kind is determined by the area itself; block↔legacy conversion is a theme-level decision, not an MCP one. S-23: HTML payloads are sanitised via wp_kses_post unless the caller has unfiltered_html. Requires Airano MCP Bridge v2.17.0+ and manage_options.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "site": "<site>",
      "area_id": "<area_id>",
      "widgets": "<widgets>"
    },
    "name": "wordpress_specialist_wp_widget_set"
  }
}

Input Schema

NameRequiredDescriptionDefault
siteYes
area_idYes
widgetsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.14.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructive=true and not idempotent; the description goes well beyond them by disclosing that this is a whole-area overwrite, that HTML is sanitised via wp_kses_post unless the caller has unfiltered_html, and that Airano MCP Bridge v2.17.0+ with manage_options is required. The read-only limitation for non-text legacy widget types is a genuinely useful behavioral constraint.

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?

Front-loaded with the core action, then constraints in descending importance; no filler sentences. Minor drag from internal shorthand ('S-23', '[UNIFIED]') and dense em-dash clauses that cost a little readability without adding agent-facing meaning.

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?

For a destructive three-parameter mutation with no output schema, the definition covers preconditions, payload forms, sanitisation behavior, and an important capability limitation. It does not say what happens to existing widget ordering/IDs or what the response reports, but the essentials for calling it safely are present.

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 coverage is 0%, so the description carries the burden. It succeeds for `widgets`, explaining the `raw` (block HTML) and `blocks` (server-serialised block tree) forms and the `text` settings for legacy areas, but `site` and `area_id` receive no explanation at all, leaving part of the gap unaddressed.

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?

States a specific verb and resource: "Full-replace a widget area's contents." The 'full-replace' phrasing distinguishes it from a partial widget edit and from the read-only siblings (wp_widget_get, wp_widget_areas_list) without needing to name them.

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?

Gives clear conditional guidance: block-kind areas accept raw/blocks widgets, legacy areas accept only text widget settings this round, and the caller's `kind` is ignored because the area decides. It stops short of naming alternatives (e.g. use wp_widget_get to inspect before replacing), so it is clear context rather than explicit when/when-not routing.

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