Skip to main content
Glama

nucleo-model-set

Idempotent

Save a WordPress content model—post types, taxonomies and field groups—in one JSON document, with partial saves, validation, dry-run diffs and confirmed destructive changes.

Instructions

Saves the content model. Format: {"schema": 1, "postTypes": [{"slug", "singular", "plural", "public"?, "hasArchive"?, "rewrite"?, "supports"?, "icon"?}], "taxonomies": [{"slug", "singular", "plural", "postTypes"?, "hierarchical"?, "public"?}], "fieldGroups": [{"id", "title", "location": {"postType"} or {"taxonomy"}, "fields": [{"key", "type", "label", ...}]}]}. "singular" and "plural" are the labels. Partial save: postTypes, taxonomies and fieldGroups that you do not send stay as saved; a key you send replaces the whole list (send [] to empty it). Slugs: lowercase, post types max 20 characters, taxonomies max 32; reserved_slug = a WordPress slug (post, page, category, wp_...) or a type registered by another plugin or the theme (model-get "unmodeled" shows them: add a field group to them instead). Every rule is checked before anything is written. Destructive changes need their ids in "confirm". With "dryRun" nothing is written. Full rules and field types: catalog-get {topic: model}.

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": {
      "model": "<model>"
    },
    "name": "nucleo-model-set"
  }
}

Input Schema

NameRequiredDescriptionDefault
modelYesContent model document. Missing postTypes, taxonomies or fieldGroups keep their saved value.
dryRunNoReturn the diff without saving.
confirmNoIds of destructive changes to accept, for example "field:dettagli/prezzo".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, the description discloses real behavior: all rules are checked before anything is written (atomic validation), unspecified lists keep their saved value, and destructive edits require their ids in 'confirm'. The only soft spot is tension with destructiveHint=false, since the tool can in fact perform destructive changes when confirmed, though the gating makes this more a nuance than a contradiction.

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?

Roughly 150 words for a nested-document write tool, front-loaded with the purpose and document format before the rules. The pseudo-JSON format string is dense and slightly awkward to parse, but essentially every sentence carries operative information and none is filler.

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 complex nested-object mutation with no output schema, the description covers format, partial-save behavior, slug constraints, validation timing, dryRun, and confirmation ids, with an escape hatch to the catalog for full rules. What is left implicit is what the tool returns (a diff? the saved model?) and the relationship to the validate sibling.

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 substantial meaning: the full document shape, which sub-keys are optional (marked with ?), the partial-save rule per list, the confirm id format ('field:dettagli/prezzo'), and a pointer to catalog-get {topic: model} for field types. It earns above baseline despite deferring exhaustive field-type detail.

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

Purpose4/5

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

The opening 'Saves the content model' states a specific verb and resource, and the format block makes the write scope concrete (postTypes, taxonomies, fieldGroups). It does not, however, contrast itself with nucleo-model-validate, so an agent must infer on its own whether a validation pass belongs before the save.

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?

Usage context is unusually concrete: partial-save semantics ('a key you send replaces the whole list (send [] to empty it)'), the reserved-slug path ('add a field group to them instead'), and the dryRun/confirm options. It stops short of explicit when-not-to-use guidance or of routing pre-save checks to the validate sibling.

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