Skip to main content
Glama

Fabrement

Create block

fabrement-create-block

Create an EMPTY block record and get its ids; it renders nothing until submit-version. SEARCH FIRST, THEN DECIDE: list-blocks {search}. A block close to the ask is a question, not an answer — reusing it changes every page already placing it, a new one does not. Ask the person when it is ambiguous. A name already taken is refused and the answer names the block holding it. Say the TITLE when you report back, never the id — "Hero Split Dark", not "block 9321". Title: must start with an ASCII letter; letters, digits, spaces and hyphens. type "header"/"footer" makes a site-template part; "default" a content section. Rules: get-skill-doc {id:"block-contract"} for a content block; a header follows {id:"header-contract"}, a footer {id:"footer-contract"} — read the one for the block's type before the first call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoBlock kind: "default" (content block, the default), "header" or "footer" (site-template parts).
titleYesHuman title (e.g. "Hero Split Dark"). It is slugified, and the SLUG is what is checked: it must start with an ASCII letter and hold only lowercase letters, digits and hyphens. So spaces and hyphens are fine, a leading digit is not, and a non-ASCII title has nothing to slugify to.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesWordPress block id — the blockId every other TOOL expects. Plumbing: never name a block by it when writing to a person.
typeYes
uuidYes
titleYesWhat this block IS CALLED. Use it whenever you mention the block to a human.
kebabNameYesSlug half of the registered name ("fabrement/<kebabName>") — for markup, not for prose.
pascalNameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that the created record is empty, that it renders nothing until submit-version, that a taken name is refused with the holding block named in the response, and that title/slug validation applies. It also prescribes the reporting format (title, not id). This is unusually rich behavioral context for a mutation tool.

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?

Every sentence carries real information and the most critical constraint (empty record, search first) is front-loaded. However the density, non-standard '{search}' placeholder notation and heavy dash usage make it harder to parse than necessary.

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?

An output schema exists so return values need not be explained, and the description still covers creation semantics, collision behavior, validation, prerequisite contract docs, and reporting format. Nothing an agent needs to call this correctly is missing.

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 100% and both parameters already carry detailed descriptions including the slugify rules and enum meanings, so the description is largely restating what the schema provides ('type "header"/"footer" makes a site-template part'). It adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

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 ('Create an EMPTY block record and get its ids') and immediately clarifies scope: the record renders nothing until submit-version. It distinguishes the tool from siblings like list-blocks and submit-version by naming them, so an agent can tell Create from List from Submit without opening any schema.

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

Usage Guidelines5/5

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

Explicit routing: 'SEARCH FIRST, THEN DECIDE: list-blocks {search}', plus a nuanced rule for when a similar existing block is a 'question, not an answer'. It names the alternative (reuse vs. new), states when to defer to the person ('Ask the person when it is ambiguous'), and lists prerequisites (read the matching skill doc before the first call).

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