Sitecore Community MCP
Gives AI agents direct read/write access to Sitecore instances (SitecoreAI and XM/XP), exposing 121 tools for search, query, create, read, update, delete, media, PowerShell, logging, security and presentation operations. Integrates across four Sitecore API surfaces — the Authoring and Management GraphQL API, the Item Service, GraphQL Edge, and Sitecore PowerShell Extensions — and includes workflow guides for composing pages, bulk updates and diagnosing connection issues.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sitecore Community MCPCreate a new About Us page under Home using the standard template."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sitecore Community MCP
This repository contains the source code for the Sitecore Community MCP server — an open-source Model Context Protocol server that gives AI agents direct read/write access to Sitecore, so you stop copy-pasting between your agent and the Content Editor.
121 tools across search, query, create, read, update, delete, media, PowerShell, logging, security and presentation
Three guides —
guide://compose-page,guide://bulk-updateandguide://diagnose-connection— resources an agent can read mid-task: two common, complex workflows that you'd want to use this MCP for, plus a connection issue self diagnosis helper.Covers four Sitecore API surfaces: the Authoring and Management GraphQL API, the Item Service, GraphQL Edge and Sitecore PowerShell Extensions
Works with SitecoreAI and Sitecore XM/XP (all versions), from any MCP-compatible client
Implements MCP protocol revision 2026-07-28, and answers the older
initializehandshake from the same tool registrations — negotiating down to any revision from2025-11-25to2024-10-07, so a client on either era sees the same toolsReported impact: 5× faster Figma-to-Sitecore workflows and ~70% less manual scaffolding (case study)
Three ways to run it: npm, Docker, or from source
Getting started with Sitecore Community MCP
To run the Sitecore Community MCP server, you need:
Node — the latest long-term support (LTS) release.
A Sitecore XM, XP or SitecoreAI instance. Which parts you enable decides which tools work: the
authoring.*groups need only the Authoring and Management API (normally already on in the cloud) plus a token, while the Item Service and SPE Remoting are off by default and need a config patch. Preparing your Sitecore instance covers all three and how to verify each.
Adding the server to your MCP client
Add the entry below to your client's server map — mcpServers in Cursor, Claude Code and
most other clients, servers in VS Code — and fill in your own endpoints and credentials:
{
"mcpServers": {
"sitecore-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@antonytm/mcp-sitecore-server@latest"],
"env": {
"TRANSPORT": "stdio",
"GRAPHQL_ENDPOINT": "https://xmcloudcm.localhost/sitecore/api/graph/",
"GRAPHQL_SCHEMAS": "edge",
"GRAPHQL_API_KEY": "{6D3F291E-66A5-4703-887A-D549AF83D859}",
"GRAPHQL_HEADERS": "",
"ITEM_SERVICE_DOMAIN": "sitecore",
"ITEM_SERVICE_USERNAME": "admin",
"ITEM_SERVICE_PASSWORD": "b",
"ITEM_SERVICE_SERVER_URL": "https://xmcloudcm.localhost/",
"POWERSHELL_DOMAIN": "sitecore",
"POWERSHELL_USERNAME": "admin",
"POWERSHELL_PASSWORD": "b",
"POWERSHELL_SERVER_URL": "https://xmcloudcm.localhost/",
"AUTHORING_CLIENT_ID": "",
"AUTHORING_CLIENT_SECRET": "",
"TOOL_PROFILE": ""
}
}
}
}TOOL_PROFILE takes a comma-separated list of presets, and unions what each one hides.
Every preset names something absent or unwanted rather than a platform. Four name an API
surface your instance does not serve — no-spe, no-item-service,
no-edge-graphql and no-authoring-api — so an instance missing two of them can
say so. no-account-management is the one that is not about a missing surface: it
hides the twelve tools that create or edit an account on the CM, for a deployment that
would rather an agent could not do that at all (item security, and reading accounts and
roles, are untouched):
TOOL_PROFILE=no-spe,no-item-serviceno-spe is the big one: without SPE installed and its remoting service enabled, roughly
three quarters of this server's tools cannot run, and hiding them is schema an agent no
longer pays for on every turn. An unknown name is reported on stderr and ignored, leaving
the rest of the list in force.
Every setting is documented in Configuration. Agents have a limit
on how many tools they can hold, so before you get far, read
Tool selection and trim the surface with TOOL_PROFILE,
TOOL_GROUPS and DISABLED_TOOLS.
To run the server in a container or from source instead, see Running the server.
Related MCP server: WordPress MCP Server
How this compares to the Sitecore Marketer MCP
Sitecore's own Marketer MCP is a hosted service aimed at marketers on SitecoreAI. This server is the developer-grade counterpart, and on that ground it is the stronger tool:
Sitecore Community MCP | Sitecore Marketer MCP | |
Platforms | SitecoreAI and XM/XP, all versions — including your local Docker CM | SitecoreAI only |
Hosting | Self-hosted (npm, Docker, source); credentials never leave your infrastructure | Hosted by Sitecore; OAuth through the cloud |
Surface | 121 tools across the full developer surface: items, templates, presentation, media, security, indexing, logs, publishing, GraphQL, raw PowerShell | Marketer operations: pages, components, briefs, brand kits, personalization, A/B tests |
Escape hatch |
| Closed tool set |
Layout safety |
| Writes are not validated against placeholder settings |
Tool gating |
| Fixed tool list |
They are complementary rather than exclusive: the Marketer MCP carries the cloud marketing features this server has no API for (briefs, brand kits, personalization variants, A/B tests), and nothing stops a client from connecting both. For building, migrating, auditing and operating Sitecore solutions, this server is the one with the depth.
Documentation and community resources
Preparing your Sitecore instance — SPE Remoting, the Item Service, GraphQL keys, and the config patch that enables them
Running the server — npm, Docker, from source, and the two transports
Tool reference — every tool, grouped by API surface
Configuration — environment variables, transports, timeouts and TLS
Tool selection —
TOOL_GROUPS,DISABLED_TOOLSandTOOL_PROFILEGuides — the
guide://compose-page,guide://bulk-updateandguide://diagnose-connectionresources, and when each is offeredDocker images — the published Linux and Windows images
Changelog — what's new in 2.0 and its breaking changes
Community resources:
Contributions
We are very grateful to the community for contributing bug fixes and improvements. We welcome all efforts to evolve and improve this server; read below to learn how to participate in those efforts.
Contributing Guide
Read our contributing guide to learn about our development process, how to propose bug fixes and improvements, and how to build, debug and test your changes.
License
Sitecore Community MCP is using the Apache 2.0 license.
Support
This is a community project and is not supported by Sitecore.
Issues, bugs and feature requests: open an issue at Antonytm/mcp-sitecore-server/issues.
Questions about Sitecore itself: Sitecore Stack Exchange or the Sitecore Community Slack will serve you better than a GitHub issue.
Available Tools
123 toolsadd-rendering-to-placeholderA
Adds a rendering to a placeholder on a page, refusing it when the placeholder's settings do not allow that component (the allow-list is named in the error). This is the tool to compose a page with: presentation-add-rendering writes whatever it is told, and an invalid layout still saves and renders. Assigns a collision-free DynamicPlaceholderId when the rendering's parameters template defines one, and writes the full parameter set the template declares. Returns the placeholder path a child rendering should target, so a nested build is one call per level. Pass force=true to skip validation for migration or repair work. Read the guide://compose-page resource for the order to run the composition tools in, and for the dynamic placeholder, splitter and GridParameters cases that silently produce a broken page when guessed at.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The full path of the item, database prefix optional (e.g. master:/sitecore/content/Stride/Cova/Home or /sitecore/content/Stride/Cova/Home). Supply this or pageId. | |
| force | No | Skip the placeholder-settings check and add the rendering anyway. For migration and repair work that legitimately has to write a layout the current settings forbid. The rendering item must still exist. | |
| index | No | Position to insert at within the placeholder. Appends by default. | |
| pageId | No | The ID of the page item (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply this or path. | |
| project | No | Overrides the folder searched under /sitecore/layout/Placeholder Settings/Project. Defaults to the project (tenant) folder of the site the item belongs to, and falls back to the whole global Placeholder Settings tree. | |
| database | No | The database to read. Defaults to master, and is ignored when path carries its own prefix. | |
| language | No | The item language. Defaults to the context language. | |
| dataSource | No | The rendering's datasource. Use the local:/Data/<name> form for a page-local datasource, or an item ID for a shared one — create-component-datasource returns the correct form in DatasourceReference. | |
| parameters | No | Values for the rendering's parameters, keyed by parameter name (e.g. {'GridParameters': '{F38CFEF8-...}'}). Every key the parameters template defines is written whether or not it appears here; these are the ones that get a value. Names not defined by the template are rejected rather than written. | |
| finalLayout | No | Which layout to write. Defaults to true (the final layout), which is where authored pages carry their renderings. Set false to write the shared layout. | |
| placeholder | Yes | The placeholder to add the rendering to. The placeholder to resolve. Accepts a bare key ('headless-main', 'container', 'container-{*}') or a full runtime placeholder path ('/headless-main/page-section-1/container-2'), in which case the leaf segment is matched — including against the wildcard keys dynamic placeholders use. Use the exact runtime path for a nested placeholder — that is what gets written to the layout. | |
| renderingId | No | ID of the rendering definition item (e.g. {AD10DB7C-C944-42D9-9563-1F1070CC922E}). Supply this or renderingPath. | |
| renderingPath | No | Path of the rendering definition item (e.g. /sitecore/layout/Renderings/Project/Stride/RichText). Supply this or renderingId. | |
| dynamicPlaceholderId | No | Force a specific DynamicPlaceholderId instead of the scanned max+1. Only use this to reproduce an exact layout; a colliding ID silently merges two placeholders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry readOnlyHint=false/destructiveHint=false, so the description must carry the rest and does: validation refusal with the allow-list named in the error, collision-free DynamicPlaceholderId assignment, template-driven parameter writing, force bypassing validation, and the return of the placeholder path for nested builds. It even flags the silent-breakage cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the primary action and sibling contrast, then layers in behavior. Every sentence carries signal, though the final guide pointer and the parameter-adjacent details make it long enough to be dense on first read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation tool with no output schema, the description covers validation behavior, override path, return value semantics (placeholder path for the child call), and the resource to consult for the tricky nested/dynamic cases. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 contributes behavior beyond field-level docs: force skips the settings check yet still requires the rendering item to exist, and dynamicPlaceholderId overrides the scanned max+1 with a warning about silent merging. These are consequences of parameter values, not just restatements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Adds a rendering to a placeholder on a page') and immediately contrasts it with the sibling presentation-add-rendering, explaining why this tool is the one to use for composition. The scope (single rendering into a placeholder, one call per nesting level) is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (presentation-add-rendering writes whatever it is told), gives the force=true migration/repair exception, and points to guide://compose-page for ordering of the composition tools. When-to-use and when-to-override are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-copy-itemA
Copies a Sitecore item to another parent over the Authoring and Management API. Copies the whole subtree by default; set deepCopy false to copy the item alone. Supply exactly one of id or path for the source, and exactly one of targetParentId or targetParentPath for the destination.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The source item's GUID. Supply this or path. | |
| path | No | The source item's full path. Supply this or id. | |
| database | No | The database holding the item. Defaults to master. | |
| deepCopy | No | When false, copy only the item itself. Defaults to true (the whole subtree). | |
| copyItemName | No | The name for the copy. Defaults to Sitecore's own 'Copy of ...' naming. | |
| targetParentId | No | The GUID of the parent to copy into. Supply this or targetParentPath. | |
| targetParentPath | No | The path of the parent to copy into. Supply this or targetParentId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only and non-destructive, and the description adds meaningful behavior beyond them: subtree copying is the default, deepCopy=false narrows it to the single item, and the copy adopts Sitecore's 'Copy of ...' naming unless overridden. It omits anything about naming collisions or what the new item is named in the response, but the scope disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and then constraints, with no padding or duplicated schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers source, destination, subtree scope, naming default, and database default — enough to invoke correctly for a 7-parameter tool with no output schema. It could say whether the new item's identifier is returned, but that is a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the mutual-exclusivity contract between id/path and targetParentId/targetParentPath that the schema only implies with 'Supply this or ...'. It restates deepCopy's default, which is already in the schema, so it does not go far beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Copies') and resource ('a Sitecore item to another parent') plus the API surface used, which cleanly separates it from authoring-move-item, authoring-create-item, and common-new-item-clone 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the invocation contract explicitly: exactly one of id or path for the source and exactly one of targetParentId or targetParentPath for the destination. It does not, however, state when to prefer copy over move-item or create-item, nor name an alternative, so the routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-create-itemA
Creates a Sitecore item from a template over the Authoring and Management API and returns the created item. The parent must be given as a GUID (the API takes no parent path here) — use authoring-get-item to resolve a path to its ID first.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The new item's name. Sitecore rejects names containing / \ : ? " < > | [ ]. | |
| fields | No | Field values to set on the new item. | |
| parent | Yes | The GUID of the parent item. A path is not accepted — resolve it with authoring-get-item. | |
| database | No | The database to create in. Defaults to master. | |
| language | No | The language to create the first version in, e.g. 'en'. | |
| templateId | Yes | The GUID of the template to create from, e.g. '{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context (returns the created item, parent must be a GUID) but says nothing about auth requirements, failure modes, or what happens when the item already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with what the tool does and immediately followed by the key non-obvious constraint and the pointer to the helper tool. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no output schema, the description covers the action, the return value, and the GUID constraint on parent. It stops short of describing error behavior or versioning/language interactions, but the essentials for a correct call are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed guidance for all six parameters including name character restrictions and template ID format. The description adds the parent-GUID constraint but otherwise defers to 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Creates a Sitecore item from a template') and the API channel ('Authoring and Management API') and return behavior. Beyond that, it distinguishes itself from item-service-create-item by naming authoring-get-item as the path-resolution helper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete prerequisite: parent must be a GUID, and routes the agent to authoring-get-item to resolve a path first. It does not explicitly contrast with item-service-create-item, which is a plausible alternative for item creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-create-item-templateB
Creates a Sitecore data template, with its sections and fields, in one call over the Authoring and Management API. The parent must be a GUID — the folder under /sitecore/templates the template belongs in. Field types are Sitecore's own names, e.g. 'Single-Line Text', 'Rich Text', 'Image', 'General Link', 'Droptree'.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | The template's icon, e.g. 'Office/16x16/document.png'. | |
| name | Yes | The template's name. | |
| parent | Yes | The GUID of the template folder to create in. A path is not accepted — resolve it with authoring-get-item. | |
| database | No | The database to create in. Defaults to master. | |
| language | No | The language to create the template in. | |
| sections | No | The sections and their fields. A template with no sections holds no fields of its own. | |
| baseTemplates | No | GUIDs of templates to inherit from. Page templates normally inherit the site's base page template. | |
| createStandardValuesItem | No | When true, create the __Standard Values item, which is where presentation details and field defaults live. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent already knows this is a non-destructive write; the description adds useful context by naming the Authoring and Management API surface and the GUID-only parent constraint. It does not disclose failure behavior, name-conflict handling, or reversibility, which matters 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose and followed by two compact constraints. No filler, and the most important information (what it creates) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool that builds nested sections and fields, the description covers purpose, parent constraint, and field-type naming but says nothing about what the call returns or how partial failures in nested sections are reported, and there is no output schema to compensate. Annotations cover the safety profile, so this is adequate rather than rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter, section, and field property is already documented inline. The description's notes about the GUID parent and Sitecore field-type names largely restate what the schema already says ('A path is not accepted — resolve it with authoring-get-item'). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Creates a Sitecore data template, with its sections and fields, in one call'), which cleanly separates it from generic item creation like authoring-create-item. It never explicitly names the nearest sibling, authoring-update-item-template, so sibling routing is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the create verb and by the prerequisite that the parent GUID be resolved via authoring-get-item, which usefully points at a sibling. However, there is no explicit when-to-use versus authoring-update-item-template, and no stated exclusions or preconditions beyond the GUID requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-delete-itemADestructive
Deletes a Sitecore item over the Authoring and Management API. By default the item goes to the recycle bin and can be restored; permanently true destroys it outright. Deleting an item deletes its descendants with it. Supply exactly one of id or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The item's GUID. Supply this or path. | |
| path | No | The item's full path. Supply this or id. | |
| database | No | The database holding the item. Defaults to master. | |
| permanently | No | When true, delete outright instead of moving to the recycle bin. Not reversible. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is known. The description adds materially more: the default recycle-bin behavior with restorability, the irreversibility of permanently=true, and the cascade deletion of descendants — exactly the behavioral context annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then the default/permanent distinction, then the cascade warning and targeting constraint. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers reversibility, cascade scope, and argument selection. It omits auth/permission requirements and failure behavior (e.g. locked or published items), which leaves a modest gap but nothing an agent would likely get catastrophically wrong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented; baseline would be 3. The description adds a real constraint the schema does not enforce — 'Supply exactly one of id or path' — which is genuinely useful selection logic beyond the per-field 'supply this or path' text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes a Sitecore item') and names the API surface it operates over. It does not differentiate itself from the sibling item-service-delete-item, so an agent scanning both cannot tell which is preferred without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (single-item deletion, choose id or path) but never states when to prefer this tool over item-service-delete-item, nor any prerequisite such as required permissions or item-lock state. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-get-itemARead-only
Reads a Sitecore item by ID or path over the Authoring and Management API, returning its identity, template and field values. Reads the authoring database, so unpublished content is visible — unlike the Edge query tools. Supply exactly one of id or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The item's GUID, e.g. '{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}'. Supply this or path. | |
| path | No | The item's full path, e.g. '/sitecore/content/Home'. Supply this or id. | |
| version | No | The item version. Defaults to the latest. | |
| database | No | The database to read. Defaults to the endpoint's own default (master). | |
| language | No | The item language, e.g. 'en'. | |
| ownFields | No | When true (the default), return only fields defined on the item's own template rather than every inherited field. | |
| excludeStandardFields | No | When true (the default), omit Sitecore's standard fields (__Created, __Workflow and the rest). Set false when you need one of them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering the safety profile, the description adds meaningful behavioral context beyond annotations: it discloses that reads hit the authoring/master database so unpublished content is visible, which is a genuine semantic trait. It does not mention auth requirements or rate limits, but the added visibility nuance is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with the core purpose, then the distinguishing database behavior, then the input constraint. No filler; every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read tool with no output schema, the description covers purpose, return contents, and database semantics, and all parameters are fully documented in the schema. It is complete enough to invoke correctly, with only minor room to say more about defaulting behavior or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 a real constraint not enforced by the schema: 'Supply exactly one of id or path'. That mutual-exclusivity rule genuinely supplements the per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reads a Sitecore item by ID or path') and describes the return payload (identity, template, field values). It also differentiates from siblings by noting it reads the authoring database 'unlike the Edge query tools', letting an agent distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context for when to use it: reads the authoring database so unpublished content is visible, contrasted against the Edge query tools. It stops short of naming specific sibling alternatives (e.g. item-service-get-item, authoring-get-media-item) or stating explicit when-not-to-use conditions, so it is strong but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-get-item-templateARead-only
Reads a Sitecore data template over the Authoring and Management API, returning its sections and field definitions (name, type, source). Call this before authoring-create-item to learn which fields a template accepts, or before authoring-update-item-template to get the section and field IDs an update needs. Sections report their ID as itemTemplateSectionId; an update supplies that same value as templateSectionId. Supply exactly one of templateId or path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The template's path RELATIVE to /sitecore/templates, with no leading slash — e.g. 'Project/MySite/Page' or 'Sample/Sample Item'. An absolute path is rejected by the endpoint. Supply this or templateId. | |
| database | No | The database holding the template. Defaults to master. | |
| templateId | No | The template's GUID. Supply this or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=true, so the description carries the rest. It discloses what is returned (sections and field definitions with name, type, source), a non-obvious cross-tool contract (itemTemplateSectionId on read maps to templateSectionId on write), and the exactly-one-of constraint on templateId/path. That is well beyond annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying a distinct load: purpose, usage routing, ID mapping contract, and parameter constraint. Front-loaded with the verb and resource, and no sentence is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 3-parameter template fetch with no output schema, the description covers what an agent needs: when to call it, what comes back, how the returned IDs are consumed downstream, and the templateId/path exclusivity rule. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description nevertheless adds the cross-field constraint 'supply exactly one of templateId or path' that the schema only hints at in individual property descriptions. It does not add format details beyond the schema, but the either-or rule is genuinely useful semantic content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Reads') and resource ('Sitecore data template'), plus the transport ('Authoring and Management API') and the concrete payload (sections and field definitions). An agent can distinguish this from siblings like authoring-get-item or common-get-item-template 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names two prerequisite scenarios: call before authoring-create-item to learn accepted fields, and before authoring-update-item-template to retrieve section/field IDs. This is exactly the 'when to use' routing an agent needs, with named alternatives rather than vague context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-get-jobARead-only
Reads one Sitecore background job by name or handle over the Authoring and Management API, returning its state, progress and messages. This is how you find out whether an index rebuild or other queued operation finished. Supply exactly one of jobName or handle.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | The job handle returned when the job was queued. Supply this or jobName. | |
| jobName | No | The exact job name, e.g. 'Index_Update_IndexName=sitecore_master_index'. Supply this or handle. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read. The description adds useful behavior beyond the annotation: the returned fields and the mutual-exclusion rule ('exactly one of jobName or handle'). Missing details like error behavior when neither/both are supplied, but the added context exceeds the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: purpose, usage context, and the parameter constraint, front-loaded and free of filler. Every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with no output schema, the description covers what it does, why you'd call it, what it returns, and how to disambiguate the inputs. Nothing needed to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds real value by stating the exactly-one-of constraint between jobName and handle — the schema lists both as optional with no such rule — so it earns above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Reads), a precise resource (one Sitecore background job), the transport (Authoring and Management API), and the lookup keys (name or handle). It also declares what the return contains (state, progress, messages), which is enough to distinguish it from the sibling list-style tools like authoring-list-jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use-case: 'This is how you find out whether an index rebuild or other queued operation finished.' That tells the agent when to reach for it. It does not name alternatives (e.g. authoring-list-jobs) or say when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-get-media-itemARead-only
Reads a media item over the Authoring and Management API, returning its identity, mime type, size and URL. Use it after authoring-upload-media to get the ID an image field value needs, or to check what is already in the media library. Supply exactly one of id or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The media item's GUID. Supply this or path. | |
| path | No | The media item's full path, e.g. '/sitecore/media library/Project/MySite/hero'. Supply this or id. | |
| database | No | The database holding the media library. Defaults to master. | |
| language | No | The media item's language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safety profile, and the description adds real value on top by enumerating the returned fields, which substitutes for the missing output schema. It does not mention authorization scope, paging, or behavior when the id/path is absent from the requested database.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: capability, then use cases, then the id/path constraint last. Front-loaded purpose and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with no output schema, the description covers purpose, when to call it, and the key argument constraint, so an agent can invoke it correctly. Minor gaps remain around default database/language behavior and what happens when the item is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds the mutual-exclusivity rule 'Supply exactly one of id or path', which the per-property text ('Supply this or path') does not state as strictly. It adds nothing about database/language, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reads a media item') plus the returned fields (identity, mime type, size, URL), which implicitly separates it from media-download (bytes) and generic authoring-get-item. It never names a competing sibling explicitly, so an agent facing authoring-get-item vs authoring-get-media-item must still infer the boundary from the word 'media'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete scenarios — 'after authoring-upload-media to get the ID an image field value needs' and 'check what is already in the media library' — and names the sibling it follows. It stops short of an explicit when-not or an alternative-tool routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-get-siteARead-only
Reads one site's configuration by name over the Authoring and Management API — paths, database, language, device and the editing switches. Use authoring-list-sites first if you do not know the site's name.
| Name | Required | Description | Default |
|---|---|---|---|
| siteName | Yes | The site's name as configured, e.g. 'website'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safe-read profile, so the description only needs to add context. It does add the API surface and the configuration content returned, but says nothing about permissions required, caching, or error behavior on unknown names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what is read and followed by the routing hint. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with annotations covering safety and no output schema, the description is nearly self-sufficient: it says what is read and how to find the name. Only minor gaps (auth/permission context) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter siteName is already documented with an example ('website'). The description's 'by name' adds nothing beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Reads') and resource ('one site's configuration by name') and enumerates the fields returned (paths, database, language, device, editing switches). It clearly distinguishes itself from the sibling authoring-list-sites and other get-* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative and the condition that selects it: use authoring-list-sites first when the site name is unknown. It doesn't address other nearby options (get-site-information, list-sites) or when-not-to-use cases, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-graphqlADestructive
Executes any query or mutation against the Sitecore Authoring and Management GraphQL API and returns the data as JSON. The document is syntax-checked before it is sent. Unlike the Edge endpoint, this one reads and writes the authoring databases, so unpublished content is visible and mutations take effect immediately. Prefer a typed authoring-* tool when one covers the operation; use this for the rest of the schema, with authoring-introspect-schema for the SDL. The API supports no subscriptions, and rejects GET — everything goes over POST, which this tool does for you.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The GraphQL document, e.g. 'query { sites { name rootPath } }' or a mutation. | |
| variables | No | The document's variables as a JSON object string, e.g. '{"itemId": "{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}"}'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that the document is syntax-checked before sending, that it reads/writes the authoring databases (unpublished content visible, mutations immediate), and that the API forbids subscriptions and GET. These are operationally important traits an agent cannot derive from the destructiveHint/openWorldHint flags alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and return format, then layers contrast, routing, and transport constraints. Every sentence contributes, though the closing transport remark ('which this tool does for you') is mildly chatty.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic pass-through GraphQL executor with no output schema, the description covers the return format, safety implications, sibling preference, and transport constraints. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters carry concrete examples, so the schema does the heavy lifting. The description adds no syntax or format guidance for 'query'/'variables' beyond what is already documented, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Executes any query or mutation against the Sitecore Authoring and Management GraphQL API') and the return format ('returns the data as JSON'). It explicitly contrasts with the Edge endpoint and routes to typed authoring-* siblings, so an agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit preference rule ('Prefer a typed authoring-* tool when one covers the operation; use this for the rest of the schema') and names authoring-introspect-schema for the SDL. When-to-use and the fallback role are both stated, nothing left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-introspect-schemaARead-only
Explores the Sitecore Authoring and Management GraphQL schema (items, templates, media, sites, search, publishing, jobs, indexing, workflow, security, identity). With no arguments it returns the operation index: 127 queries and mutations, one line each. Use type: "" for one operation or type in full — for an operation the input types its arguments need are included, so one call is enough to write the document — search: "" to find an operation by what it does, and full: true for the entire SDL (117,188 characters on a live CM). Most of this schema has no typed authoring-* tool, so this is how you find the rest: createUser, createSite, executeWorkflowCommand, addLanguage, archiveItem, cancelPublishing and around a hundred more. Not the Edge schema — that is introspection-graphql-*.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | When true, return the entire schema SDL. Very large — see the tool description for the measured size — so prefer 'type' or 'search'. Combine with includeDescriptions:false to cut it substantially. | |
| type | No | Return the full definition of one named type, or of one root operation (e.g. 'ArticlePage', 'createUser'). For an operation, the input and enum types its arguments reference are included too, so the result is enough to write the document. This is the argument to reach for once the index has told you the name. | |
| search | No | Find types and operations whose name or description matches this keyword (e.g. 'media', 'workflow', 'publish'). Returns names and one-line summaries, not full definitions. | |
| includeDescriptions | No | When false, strip all docstrings from the output. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description goes well beyond that, disclosing the return shape (127 queries/mutations, one line each), a measured size for full: true (117,188 characters on a live CM), that type expands to include referenced input/enum types so one call suffices, and that search returns names/summaries rather than definitions. This is exactly the extra operational context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's scope and mode-selection guidance, and every sentence carries usable information (sizes, examples, sibling disambiguation). It is dense and long, with example operation names clustered in one sentence, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an introspection tool with no output schema, the description fully characterizes return values (index lines, search summaries, full SDL with measured size) and the expansion behavior of type. An agent has everything needed to choose a mode and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 operational meaning: it explains the interaction between full and includeDescriptions ('combine with includeDescriptions:false to cut it substantially'), what type actually returns for an operation, and why search results are lightweight. It reinforces rather than merely repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (explores) and resource (the Sitecore Authoring and Management GraphQL schema), enumerates the domains it covers (items, templates, media, sites, search, publishing, jobs, indexing, workflow, security, identity), and explicitly rules out the Edge schema by naming the introspection-graphql-* sibling. An agent can distinguish this from all other introspection/query tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use guidance per mode: no arguments for the operation index, type for one operation, search for keyword lookup, full for the whole SDL. It also states the broader purpose ('Most of this schema has no typed authoring-* tool, so this is how you find the rest') and names the alternative to avoid ('Not the Edge schema — that is introspection-graphql-*').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-list-jobsARead-only
Lists Sitecore background jobs over the Authoring and Management API. jobName accepts wildcards: '' for every job, 'myjob' for names starting with it, '*myjob' for names ending with it, 'myjob' for names containing it. Omit jobName to list them all. Use this to find out what the instance is busy with, or to locate a job whose exact name you do not know.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Maximum number of jobs to return. | |
| jobName | No | A job name or wildcard pattern, e.g. '*index'. Omit to list every job. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true so the safety profile is known. The description adds genuinely useful behavior beyond that: the full wildcard matching semantics and the fact that omitting jobName returns everything, which is the key invocation nuance for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then wildcard rules, then use case. Every sentence carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description is adequate for correct invocation: action, parameter behavior, and intent are all covered. It does not mention pagination via 'first' or the shape of returned jobs, a minor gap for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline would be 3, but the description goes beyond the schema's terse example by spelling out all four wildcard forms ('*', 'myjob*', '*myjob', '*myjob*') and the omit-to-list-all behavior, directly disambiguating the most error-prone parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists Sitecore background jobs') plus the API surface (Authoring and Management API). The list-vs-get contrast with the sibling authoring-get-job is implied by 'Lists' but never made explicit, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete situations for use: finding out what the instance is busy with, and locating a job whose exact name is unknown. Clear context, but no explicit alternative (e.g. authoring-get-job) or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-list-sitesARead-only
Lists the sites configured on the Sitecore instance over the Authoring and Management API, with each site's root path, start path and root item ID. Usually the first call when working on an instance you have not seen: the root item ID is what authoring-search scopes a subtree search by, and the root path is what item paths hang off. System sites (shell, admin, login and the rest) are hidden unless includeSystemSites is set.
| Name | Required | Description | Default |
|---|---|---|---|
| includeSystemSites | No | When true, also return Sitecore's own internal sites (shell, login, admin, service). Off by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already telegraphs a safe read, so the bar is lower, and the description adds real behavioral context: the returned field set and that system sites (shell, admin, login) are filtered out by default. This is more than the annotation conveys. It does not cover pagination or result size, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and followed by the workflow rationale. It is dense but each sentence carries information (returned fields, why it matters, system-site filtering). Slightly long but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly compensates by naming the returned fields and the relationships they enable (root item ID scopes authoring-search; root path anchors item paths). It also documents the system-site filtering behavior. Nothing essential for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage on the single parameter, the schema already documents includeSystemSites and its default. The description restates the same hiding behavior ('System sites... are hidden unless includeSystemSites is set'), so it adds little beyond the structured field. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the sites configured on the Sitecore instance') and enumerates the returned fields (root path, start path, root item ID). It differentiates itself by naming the Authoring and Management API, but it does not explicitly distinguish itself from close siblings like list-sites or get-site-information. Clear purpose, missing sibling disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong positive guidance: 'Usually the first call when working on an instance you have not seen,' and explains exactly how the outputs feed authoring-search subtree scoping and item paths. It stops short of stating when not to use it or naming the sibling alternative, so it is not fully explicit about the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-move-itemA
Moves a Sitecore item to another parent over the Authoring and Management API, taking its descendants with it. Every link to the item survives the move — prefer this over delete-and-recreate, which breaks them. Supply exactly one of id or path, and exactly one of targetParentId or targetParentPath.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The item's GUID. Supply this or path. | |
| path | No | The item's full path. Supply this or id. | |
| database | No | The database holding the item. Defaults to master. | |
| sortOrder | No | The sort order to give the item under its new parent. | |
| targetParentId | No | The GUID of the parent to move into. Supply this or targetParentPath. | |
| targetParentPath | No | The path of the parent to move into. Supply this or targetParentId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered. The description adds genuinely useful behavior beyond that: descendants move along with the item and all links survive. It does not mention permissions or failure behavior, but this is solid added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences, front-loaded with what the tool does, then the rationale, then the parameter constraint. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, non-destructive move with no output schema and fully covered params, the description supplies the mutation behavior, the key side effect (descendants/links), and the exclusivity rule. It stops short of noting permissions or error conditions, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the individual parameters are already documented and the baseline is 3. The description adds a cross-parameter constraint the schema cannot express: supply exactly one of id/path and exactly one of targetParentId/targetParentPath, which is real semantic value for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (moves) and resource (a Sitecore item to another parent) and adds scope (descendants travel with it). It is clearly distinguishable from siblings like authoring-copy-item, authoring-delete-item and authoring-update-item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to prefer this tool: 'prefer this over delete-and-recreate, which breaks them.' It gives both a recommended condition and a rejected alternative with the reason, so the agent can route correctly without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-publishing-statusARead-only
Reads the status of a publish queued by authoring-publish-item. Returns state (INITIALIZING, QUEUED, RUNNING, ABORTREQUESTED, ABORTED, FINISHED, UNKNOWN), isDone, isFailed and how many items have been processed. Poll this until isDone before treating published content as live.
| Name | Required | Description | Default |
|---|---|---|---|
| publishingOperationId | Yes | The operationId returned by authoring-publish-item, e.g. '4e8ed033-cb59-4484-aa86-a6a165711710;xmc'. Pass it whole, semicolon and suffix included. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds substantial context beyond that by enumerating the state values, disclosing isDone/isFailed and the processed-item count, and instructing polling until isDone. This meaningfully enriches the behavioral picture for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with zero waste; the purpose is front-loaded, then return values, then the polling instruction in priority order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the key return fields (state, isDone, isFailed, processed count) and the polling completion condition. Combined with readOnlyHint, an agent has everything needed to call and use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself fully documents publishingOperationId, including the format example and the semicolon-suffix caveat. The description adds no further parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Reads) plus resource (status of a publish) and ties it to the exact sibling that produces the operation, authoring-publish-item. An agent can distinguish it from the publish/queue tools in the sibling list 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context (use after authoring-publish-item queues a publish) and explicit behavioral guidance ('Poll this until isDone before treating published content as live'). It does not mention alternative status mechanisms such as authoring-get-job, but the when-to-use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-publish-itemA
Queues a publish of one or more items over the Authoring and Management API and returns an operationId. Publishing is asynchronous — the call returns as soon as the job is queued, so poll authoring-publishing-status with the operationId before reporting that content is live. On SitecoreAI the target is 'experienceedge'; on XM/XP it is usually 'web'. Supply exactly one of rootItemIds or rootItemPaths.
| Name | Required | Description | Default |
|---|---|---|---|
| languages | Yes | The languages to publish, e.g. ['en']. Required. | |
| displayName | No | A label for this publish, shown in Sitecore's publishing UI and job list. | |
| rootItemIds | No | GUIDs of the items to publish from. Supply this or rootItemPaths. | |
| rootItemPaths | No | Paths of the items to publish from, e.g. ['/sitecore/content/Home']. Supply this or rootItemIds. | |
| sourceDatabase | No | The database to publish from. Defaults to master. | |
| publishItemMode | No | SMART publishes only what changed; FULL republishes everything under the root regardless. SMART is the default and is what you normally want. | SMART |
| publishSubItems | No | When true, publish the descendants of each root item too. Off by default, so a bare call publishes one item. | |
| targetDatabases | Yes | The publishing targets, e.g. ['experienceedge'] on SitecoreAI or ['web'] on XM/XP. Required. This is the target's *database* name, not the publishing target item's name: on SitecoreAI the item is 'Edge' but the database is 'experienceedge', and 'Edge' is rejected. Read the right values from the 'Target database' field of /sitecore/system/Publishing targets. | |
| publishRelatedItems | No | When true, also publish items the content references, such as media and linked datasources. Off by default — a page can go live with unpublished images without this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes much further by disclosing that the operation is asynchronous, returns as soon as the job is queued, and requires polling to know when content is actually live. That's exactly the behavioral context an agent needs and cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: the action, the async caveat with the follow-up tool named, and the platform-specific target plus the one-of constraint. Front-loaded with the core behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no output schema, the description covers the gaps that matter: return value (operationId), async semantics, the follow-up call, platform-specific target values, and the root-item mutual exclusion. Nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds non-obvious semantics: the mutual exclusion of rootItemIds vs rootItemPaths, and the trap that targetDatabases takes the database name ('experienceedge') not the publishing target item name ('Edge', which is rejected). Those details materially reduce invocation errors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Queues a publish'), resource ('one or more items'), and channel ('Authoring and Management API'), plus the return value (operationId). This clearly separates it from siblings like common-publish-item or authoring-publishing-status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational guidance: poll authoring-publishing-status with the operationId before reporting content is live, and supply exactly one of rootItemIds/rootItemPaths. It also names the correct target per platform. It does not, however, contrast itself against the sibling common-publish-item, so an agent still has to infer which publish tool to choose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-rebuild-indexesA
Starts a rebuild of one or more Sitecore search indexes over the Authoring and Management API and returns the jobs it queued. A full rebuild of sitecore_master_index is expensive and leaves search results incomplete while it runs, so prefer it only when the index is actually stale. Poll the returned job names with authoring-get-job. Use authoring-graphql with 'query { indexes { nodes { name } } }' to list the index names.
| Name | Required | Description | Default |
|---|---|---|---|
| indexNames | Yes | The indexes to rebuild, e.g. ['sitecore_master_index']. Required — this tool will not rebuild every index by accident. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing cost ('expensive'), the side effect that search results are incomplete while it runs, and the asynchronous job model ('returns the jobs it queued'). Annotations only cover the read/destructive flags, so this added operational context is genuinely valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and its result, followed by the cost caveat and the follow-up calls. No filler; each sentence supports a distinct decision the agent must make.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating what is returned (job names) and how to consume it (poll with authoring-get-job). Combined with the value-discovery hint and cost warning, nothing needed to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with an example value, so the baseline is 3. The description adds real value by telling the agent how to discover valid index names via the GraphQL indexes query, which is not derivable from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Starts a rebuild of one or more Sitecore search indexes') plus the API surface and the returned artifact (queued jobs). It does not, however, differentiate itself from the similarly named sibling indexing-rebuild-search-index, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-not condition ('prefer it only when the index is actually stale') and routes follow-up work explicitly to authoring-get-job and authoring-graphql. It stops short of naming an alternative rebuild/indexing tool, so the sibling ambiguity is left for the agent to resolve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-rename-itemA
Renames a Sitecore item over the Authoring and Management API. The item keeps its ID, so links to it survive, but its path changes and any URL derived from the name changes with it. Supply exactly one of id or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The item's GUID. Supply this or path. | |
| path | No | The item's full path. Supply this or id. | |
| newName | Yes | The new name. Sitecore rejects names containing / \ : ? " < > | [ ]. | |
| database | No | The database holding the item. Defaults to master. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false and destructive=false; the description adds real behavioral context by explaining that the item keeps its ID (so links survive) while its path and URL-derived name change. This helps the agent reason about side effects beyond the flat annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, none wasted; the core action is front-loaded and the consequence follows. Structure is clean and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the critical rename semantics and the id/path constraint, while annotations carry the safety profile. Missing only secondary details like permission requirements, which are minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, path, newName, and database are already documented. The description adds the mutual-exclusivity rule for id/path, which reinforces rather than exceeds the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Renames a Sitecore item') and clarifies the outcome that distinguishes it from sibling mutations: the ID is preserved while the path and derived URL change. It does not explicitly name move/copy/update alternatives, but the semantic framing makes the distinction clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage rule ('Supply exactly one of id or path'), which is genuinely actionable. However, it offers no guidance on when to choose rename over siblings like authoring-move-item or authoring-update-item, leaving the selection context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-searchARead-only
Searches a Sitecore index over the Authoring and Management API and returns matching items. Criteria combine on the operator you give each one: MUST is AND, SHOULD is OR, NOT excludes. Useful system fields: '_name', '_fullpath' (the item path), '_path' (matches items under an ancestor, given that ancestor's ID with no braces or dashes), '_template' and '_templatename'. IDs in index values are lowercase and unpunctuated, e.g. '110d559fdea542ea9c1c8a5df7e70ef9'. Returns 10 results unless pageSize says otherwise. A '_path' criterion is the cheap way to read a whole subtree at any depth — one query where item-service-get-item-descendants makes one request per node — at the cost of returning identity fields rather than field values, from the index rather than the database.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | The index to search. Defaults to sitecore_master_index (the authoring content). | sitecore_master_index |
| criteria | Yes | The criteria to match. At least one. | |
| language | No | Restrict results to this language, e.g. 'en'. | |
| pageSize | No | Results per page. The endpoint's own default is 10. | |
| pageIndex | No | Zero-based page to return. Use with pageSize to walk a large result set. | |
| sortField | No | Field to sort by, e.g. '__smallcreateddate'. Omit for relevance order. | |
| sortDirection | No | Sort direction. Only meaningful with sortField. | |
| latestVersionOnly | No | When true, return only the latest version of each item instead of every indexed version. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the rest and does so well: default index, default 10-result page size, pagination via pageSize/pageIndex, relevance vs sortField ordering, and the important caveat that index values are lowercase unpunctuated IDs and that _path results return identity fields rather than field values. This is real behavioral context beyond the safety hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and each subsequent sentence adds distinct operational value (operator semantics, useful fields, ID format, page size, subtree tradeoff). Dense but no filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value context; it does so at a high level (matching items, 10 results by default, identity fields vs field values) but never describes the result shape or total-count/paging metadata. For a search tool with eight parameters this is close to complete, with a minor remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning the schema lacks: the usable system fields ('_name', '_fullpath', '_path', '_template', '_templatename'), the brace/dash-free ancestor-ID syntax for '_path', and the exact ID format example. It does not explain criteriaType behavior or boost in prose, leaving some schema-documented semantics untouched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Searches a Sitecore index over the Authoring and Management API and returns matching items') and immediately distinguishes itself from nearby tools by describing criteria semantics and index-backed behavior. An agent can tell it apart from item-service-search-items and item-service-get-item-descendants 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes one case: use a '_path' criterion to read a whole subtree in one query, versus item-service-get-item-descendants which makes one request per node, and it names the tradeoff (identity fields, index not database). It does not cover when to prefer the other search siblings (item-service-search-items, indexing-find-item) or any when-not conditions, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-update-itemA
Sets field values on an existing Sitecore item over the Authoring and Management API. Only the fields named are touched; set reset true on a field to return it to its template's standard value instead of writing a value. Supply exactly one of id or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The item's GUID. Supply this or path. | |
| path | No | The item's full path. Supply this or id. | |
| fields | Yes | The fields to change. At least one. | |
| version | No | The item version to write. Defaults to the latest. | |
| database | No | The database holding the item. Defaults to master. | |
| language | No | The language version to write, e.g. 'en'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds the partial-update guarantee ('only the fields named are touched'), which usefully bounds the blast radius, but it says nothing about versioning/concurrency, permissions required, or whether writes are published. Reset semantics are already documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then behavior, then the input constraint. Every sentence carries distinct information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with a fully documented schema and annotations covering the safety profile, the description covers purpose, mutation scope, reset, and the id/path rule. It omits version-conflict/concurrency behavior and permission requirements, which keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description adds real value by stating the id/path relationship as a strict XOR ('exactly one'), which the per-field schema text ('Supply this or path') leaves ambiguous. It repeats the reset behavior that the schema already documents, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Sets field values on an existing Sitecore item') and the transport layer (Authoring and Management API), which unambiguously separates it from siblings like authoring-create-item, authoring-delete-item, or authoring-copy-item. It does not explicitly name or differentiate against any sibling, so it lands just below the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the partial-update use case ('Only the fields named are touched') and states a hard input rule ('Supply exactly one of id or path'), but it never says when to choose this tool over overlapping siblings such as item-service-edit-item or authoring-update-item-template. Usage is inferable rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-update-item-templateA
Updates a Sitecore data template over the Authoring and Management API. Sections and fields carrying an ID are updated; those without one are created. Matching is by ID only, never by name: to add a field to a section that already exists you must pass that section's templateSectionId (read it as itemTemplateSectionId from authoring-get-item-template), otherwise the call is rejected for creating a second section of the same name. Nothing is removed unless deleteMissingFields is true — and when it is, every section and field absent from this call is deleted, along with the content stored in them, so read the template first.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | A new icon for the template. | |
| name | No | A new name for the template. Omit to leave it unchanged. | |
| database | No | The database holding the template. Defaults to master. | |
| language | No | The language to write template text in. | |
| sections | No | Sections to update or add. Include templateSectionId / templateFieldId to update rather than create. | |
| templateId | Yes | The GUID of the template to update. | |
| baseTemplates | No | GUIDs of templates to inherit from. This replaces the current list rather than adding to it. | |
| deleteMissingFields | No | When true, delete every section and field not named in this call, discarding their content. Off by default. | |
| createStandardValuesItem | No | When true, create the __Standard Values item if the template does not have one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond them by disclosing that deleteMissingFields deletes every absent section and field plus their stored content, and that the default is off. It also explains the ID-only matching rule and the rejection behavior, which the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the create-vs-update rule, then the ID-matching constraint, then the destructive-flag warning. Every sentence carries operational information; nothing is padding or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no output schema and only two thin annotations, the description covers the highest-risk behaviors (deletion, ID matching, rejection). It stops short of noting permission requirements or the effect of baseTemplates replacement, but those are minor relative to what it does cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 on top: it explains that templateSectionId/templateFieldId are the only match keys and are mandatory when targeting an existing section, and it warns what deleteMissingFields=true actually does. Minor gaps remain (database, language, baseTemplates) that only the schema covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a Sitecore data template over the Authoring and Management API') and immediately distinguishes itself from siblings like authoring-create-item-template and authoring-get-item-template by explaining create-vs-update semantics. An agent can identify the tool's role without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing instructions: read the template first via authoring-get-item-template, pass templateSectionId to add a field to an existing section, and pass templateFieldId to update rather than create. It also names the failure mode (rejection for creating a duplicate section name), which is precisely the when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authoring-upload-mediaADestructive
Uploads a file into the Sitecore media library over the Authoring and Management API and returns the created media item. Does both halves of the documented flow: asks uploadMedia for a pre-signed URL, then POSTs the bytes to it. Source is exactly one of sourceUrl (fetched by this server — use this to import from a live site), filePath (local to the machine running this MCP server), or content (base64). Needs no SPE Remoting, unlike media-upload.
| Name | Required | Description | Default |
|---|---|---|---|
| alt | No | Alt text for the media item. | |
| content | No | The file bytes as base64. Small files only — prefer sourceUrl or filePath for anything sizable. Supply this, sourceUrl or filePath. | |
| database | No | The database holding the media library. Defaults to master. | |
| fileName | No | The file name to upload as, including its extension. Defaults to the name from filePath or sourceUrl. Sitecore reads the extension to decide the media type, so set this when the source has none. | |
| filePath | No | Path to a file on the machine running this MCP server. Refused over the HTTP transport unless MEDIA_LOCAL_FILE_ROOT names a directory to confine it to. Supply this, sourceUrl or content. | |
| itemPath | Yes | Where the item goes, relative to the media library and WITHOUT the '/sitecore/media library/' prefix — e.g. 'Project/MySite/hero'. The last segment is the item's name and must NOT carry a file extension: 'hero', not 'hero.png'. The extension comes from fileName (or the source), and Sitecore reads it to pick the media type — so a '.png' source becomes an Image item with an Alt field, while a '.txt' one becomes a File item that has no Alt. | |
| language | No | The language of the media item. | |
| sourceUrl | No | http(s) URL to fetch the bytes from. Supply this, filePath or content. | |
| versioned | No | When true, create the media item as versioned rather than shared. | |
| overwriteExisting | No | When true, replace the file on an existing item at itemPath instead of failing. | |
| includeExtensionInItemName | No | When true, keep the file extension in the item's name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true/openWorldHint=true, so the description earns credit by adding non-obvious mechanics: the two-step pre-signed-URL-then-POST flow, the HTTP-transport refusal of filePath unless MEDIA_LOCAL_FILE_ROOT confines it, and the returned media item. It stops short of describing overwrite failure/rollback semantics, which matter for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and flow, then alternatives and the sibling distinction. Four sentences are dense but each carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter destructive mutation with no output schema, the description covers the mechanism, the source-selection decision, the return value, and the sibling alternative. The main gap is auth/permission prerequisites and what happens on partial failure, but overall it is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly, including the itemPath extension rule and the source/exclusivity constraint. The description's 'exactly one of sourceUrl, filePath, or content' mirrors what the schema already says, adding reinforcement rather than new meaning — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Uploads a file into the Sitecore media library over the Authoring and Management API') and names the sibling it differs from ('Needs no SPE Remoting, unlike media-upload'). An agent can distinguish it from media-upload and authoring-create-item without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit selection guidance for the three source modes ('use this to import from a live site' for sourceUrl; filePath is local to the MCP server machine; content is base64 for small files) and routes away from media-upload. It does not explicitly state when not to use the tool, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-add-item-versionB
Creates a version of the item in a new language based on an existing language version.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The id of the item to add version for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to add version for (e.g. /sitecore/content/Home). Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| ifExist | No | Append | |
| recurse | No | Process the item and all of its children. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | Language that will be used as source language. If not specified the current user language will be used. | |
| ignoredFields | No | List of fields that should not be copied over from original item. | |
| targetLanguage | No | Language that should be created. | |
| doNotCopyFields | No | Creates a new version in the target language but does not copy field values from the original language. | |
| ifNoSourceVersion | No | Skip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety is covered. The description adds real context by explaining the version is derived from an existing language version (implying field-copy semantics), but it omits behavioral details like what ifExist=OverwriteLatest does or that recurse touches children. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though arguably too terse for a 12-parameter tool and offers no structure to anchor the enum-based options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters, two undocumented enums (ifExist, ifNoSourceVersion), no output schema, and no required fields, the description is thin for the tool's complexity. The schema carries most of the load, but behavior around version overwrite/skip and recursive processing is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents id, path, full, fields, recurse, database, language, targetLanguage, and doNotCopyFields. The description only clarifies the source/target language relationship and leaves enums like ifExist and ifNoSourceVersion (which have no schema description) unexplained. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (creates a version) and resource (item), plus the scoping qualifier 'in a new language based on an existing language version'. It implicitly distinguishes itself from the sibling common-remove-item-version, but never names or contrasts an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but gives no when-to-use guidance, no prerequisites (e.g. source language must have a version), and no alternatives such as authoring-update-item or item-service-edit-item. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-convert-from-item-cloneC
Converts an item from a clone to a fully independent item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to be analysed for clones presence. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to be analysed for clones presence. Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| recurse | No | Converts the whole branch rather than a single item. | |
| database | No | Database to resolve an id against (default master). | |
| passThru | No | Returns the item that was converted from a clone. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the description need not restate safety, but it still leaves key behavior unexplained: whether the clone link is severed permanently, whether the conversion is reversible, and what permissions are required. No contradiction with annotations, but no added behavioral context either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler and a front-loaded verb. It is efficient, though the brevity comes at the cost of the missing context noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Schema coverage is full and annotations exist, so the structured fields carry most of the load, and there is no output schema to explain. Still, the description does not address the notable `recurse` branch-wide effect or the irreversible-looking nature of the conversion, which an agent should know before invoking a mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters. The description adds no parameter-level meaning beyond the schema, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (converts) and resource (an item from a clone), and the outcome (fully independent item) is unambiguous. It does not explicitly contrast itself with the adjacent clone tools (common-new-item-clone, common-get-item-clone), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of prerequisites, and no routing to siblings such as common-new-item-clone. The agent must infer usage entirely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-archiveCRead-only
Gets Sitecore database archives.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | The name of the archive to retrieve. | |
| database | No | The database for which the archives should be retrieved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered, but the description adds nothing beyond that — no note on what an archive result contains, expected size, or whether a database/name is required despite zero required params.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the resource front-loaded. It is efficient, though its brevity edges toward under-specification rather than crisp conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with a fully documented schema this is thin: it omits the distinction from common-get-archive-item, doesn't say what is returned, and gives no guidance on the absence of required parameters. An agent could call it, but not confidently over its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the schema itself fully documents full (diagnostics/unprojected graph), name, and database. The description adds no parameter meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
"Gets Sitecore database archives" states a clear verb and resource, so the basic purpose is legible. However, it does not differentiate from the near-identical sibling common-get-archive-item, leaving the agent to infer the scope difference between an archive and an item within an archive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no prerequisites, and no routing to alternatives. With siblings like common-get-archive-item and common-restore-archive-item present, an agent gets no signal about which to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-archive-itemARead-only
Gets a page of the items found in the specified archive, with the archive's total entry count. Returns the 100 most recently archived entries unless first/skip say otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| skip | No | How many entries to skip before returning any. Defaults to 0. Combine with 'first' to page through the archive; 'Total' in the response says how many entries there are. | |
| first | No | How many entries to return, starting after 'skip'. Defaults to 100. An archive routinely holds thousands of entries, so raise this deliberately rather than by habit. | |
| itemId | No | The ID for the original item that should be processed. | |
| archive | Yes | The name of the archive to use when determining which items to process. | |
| database | Yes | The database for which the archives should be retrieved. | |
| identity | No | The user responsible for moving the item to the archive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering the safety profile, the bar is lower and the description clears it: it adds the ordering semantic ('100 most recently archived entries') and discloses that the response carries the archive's total entry count, neither of which appears in the schema. It does not state permission requirements, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the paging default front-loaded and the return payload appended compactly. Every clause carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, paginated listing tool with no output schema, the description supplies the essentials: ordering, default page size, and that a total count is returned (matching the schema's reference to 'Total'). Only the absence of any note on permissions or what an individual entry contains keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents first, skip, full and their defaults, making the description's restatement of the 100-entry default largely redundant. It adds no meaning for the less obvious parameters (itemId, identity), whose schema text reads as if copied from a different operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource — 'Gets a page of the items found in the specified archive' — plus the secondary payload (total entry count), which clearly separates it from the item-listing siblings. It stops short of naming a specific sibling (e.g. common-get-archive, which lists archives rather than their entries), so an agent must infer the boundary rather than read it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly tells the agent how to page ('Returns the 100 most recently archived entries unless first/skip say otherwise'), which is real usage guidance for the paging parameters. But there is no explicit when-to-use/when-not statement and no routing to common-get-archive or common-restore-archive-item, leaving the sibling choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-cacheARead-only
Gets information about Sitecore caches, with their size and occupancy. Omit name to return every cache. Cache names contain square brackets ('master[items]'); pass one exactly as reported and it is matched literally, or use * / ? for a wildcard.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | The name of the cache to retrieve, e.g. 'master[items]'. Use * or ? for wildcard matching. If not provided, all caches will be returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the description earns credit for adding real behavior: exact literal matching versus wildcard matching, and the square-bracket gotcha in cache names that would otherwise cause silent mismatches. It never states auth or rate-limit behavior, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all load-bearing: purpose and return fields first, then the default behavior, then the matching rules. Zero filler, front-loaded, no repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param, no-required, read-only tool with no output schema, the description covers what is returned (size and occupancy), the default scope, and the tricky matching semantics. It leaves the 'full' projection caveat entirely to the schema, which is acceptable but a minor gap given the schema already flags it as diagnostics-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description adds meaning beyond the schema by warning that names contain square brackets and are matched literally when passed verbatim, versus '*'/'?' for patterns. This disambiguates the most error-prone parameter for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets information about Sitecore caches') plus what the payload contains ('size and occupancy'). No sibling tool targets caches, so there is no ambiguity to resolve against the ~90 item/security siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Omit name to return every cache' gives a clear conditional for the default/no-arg case, and the wildcard guidance tells the agent how to widen a query. It stops short of explicit when-not/alternative routing, but no real alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-databaseCRead-only
Gets information about Sitecore databases.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | The name of the database to retrieve (e.g. 'master', 'core', 'web'). If not provided, all databases will be returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true. The description says nothing about what information is returned, whether 'full' has performance implications (the schema hints at 100,000+ chars but the description never warns about it), or what happens when name is omitted (schema covers this, description does not). Given annotations carry only the safety bit, the description adds almost nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded and with no filler. It is concise, though arguably too terse for the breadth of the common- tool family.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations beyond readOnlyHint and no output schema, the description bears the burden of explaining what a 'database' object contains, whether name defaults to all databases (only in schema), and what 'full' returns. It covers none of this, leaving the agent to infer behavior entirely from parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are well documented within the schema itself (including the 'master'/'core'/'web' examples and the diagnostics warning for 'full'). Description adds no parameter-level meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (get info about Sitecore databases), but provides no differentiation from the many other 'get' siblings in the common- family (e.g. common-get-cache, common-get-item-clone). An agent can't tell from the description whether this returns connection strings, size, status, or names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to, or alternative guidance. With dozens of sibling get- tools, the absence of any routing information is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-cloneCRead-only
Returns all the clones for the specified item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to be analysed for clones presence. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to be analysed for clones presence. Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| database | No | Database to resolve an id against (default master). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not explain what a 'clone' represents, what is returned per item, or how it interacts with the related new/convert clone tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is appropriately sized, though its brevity borders on under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a fully documented schema and no output schema, the description is minimally adequate. It nonetheless omits the nature of a clone and any return-shape context, which would matter given the multiple clone-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (id, path, full, fields, database) are already well documented in the schema, including the id-or-path rule and the full-vs-fields interaction. The description adds no parameter meaning beyond that, which is the expected baseline when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('all the clones for the specified item'), so the agent understands the read operation. However, it does not distinguish itself from the closely related siblings common-new-item-clone and common-convert-from-item-clone, leaving the clone-family boundary to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, prerequisites, or reference to alternatives. With sibling clone tools (new/convert) present, an agent gets no help choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-fieldCRead-only
Gets item fields as either names or fields or template fields.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve field information for. Supply this or path. | |
| name | No | The array of names to include - supports wildcards. | |
| path | No | The path of the item to retrieve field information for. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language that will be analysed. | |
| returnType | No | Includes fields that are defined on 'Standard template'. | |
| includeStandardFields | No | Includes fields that are defined on 'Standard template'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this as a safe read, lowering the bar, but the description adds little beyond restating the returnType options that already exist in the schema. It says nothing about id-vs-path resolution, wildcard name matching, database defaults, or language analysis that would help an agent predict behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded with the verb and resource. It is efficient, though the phrasing "as either names or fields or template fields" is slightly redundant with the returnType enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no output schema and no annotations beyond readOnlyHint, the description is too thin. It omits the id/path requirement, wildcard semantics, database resolution, and the language parameter, leaving significant behavioral gaps that the schema descriptions only partially cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters thoroughly (id/path mutual exclusivity, wildcard support, database default, returnType enum). The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb ("Gets") and resource ("item fields"), and hints at three output modes (names, fields, template fields). However, "as either names or fields or template fields" is awkward and does not distinguish this tool from siblings like common-get-item-template or item-service-get-item, leaving the agent to guess its specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the many sibling get-item tools (common-get-item-template, authoring-get-item, item-service-get-item). The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-referenceBRead-only
Gets item references for a Sitecore item, showing where it is used throughout the system.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve references for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to retrieve references for (e.g. /sitecore/content/Home). Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| version | No | The version of the item to check references for | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language of the item to check references for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, so the description does not need to restate that this is a safe read. It adds a mild scope hint ('where it is used throughout the system') but says nothing about permissions, cost, or how the 'full' diagnostic mode behaves, leaving meaningful gaps given the annotations carry only safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the verb first and the scope clarification second. No wasted text, though the trailing clause slightly overlaps with the word 'references'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a fully documented schema and no output schema, the core information is present. The notable omission is any differentiation from the closely related referrer tools, which is exactly the context an agent needs to choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with id/path, full, fields, version, database, and language all documented in the schema itself. The description adds no additional meaning beyond that baseline, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Gets') and resource ('item references for a Sitecore item') and clarifies intent with 'showing where it is used throughout the system'. However, it does not distinguish itself from the near-identical sibling common-get-item-referrer, leaving the agent unable to tell the two apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of alternatives such as common-get-item-referrer or common-update-item-referrer. The usage is only implied by the verb, and the choice of id vs path is left entirely to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-referrerCRead-only
Gets items referring to a Sitecore item, showing which items reference it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve referrers for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to retrieve referrers for (e.g. /sitecore/content/Home). Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| version | No | The version of the item to check referrers for | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language of the item to check referrers for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered by structured data. Beyond that the description adds nothing: no mention of what a "referrer" result looks like, whether results are paginated or bounded, or performance characteristics, despite there being no output schema to carry that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence is efficient in size, but half of it ("showing which items reference it") is redundant with the first half, so the sentence does not fully earn its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no output schema and no required parameters, the description is too thin: it does not describe the shape or scope of returned referrers, nor clarify the id/path resolution behavior that the schema hints at. An agent has little beyond the schema to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters (id/path mutual exclusion, full being diagnostics-only, fields, version, database, language). The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Gets") and resource ("items referring to a Sitecore item"), so the core action is clear. However, it fails to distinguish itself from the very similarly named sibling common-get-item-reference, and the trailing clause "showing which items reference it" merely restates the verb phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The near-identical sibling common-get-item-reference creates real ambiguity that the description does nothing to resolve, and no prerequisites or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-templateBRead-only
Gets template information for a Sitecore item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve template information for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to retrieve template information for (e.g. /sitecore/content/Home). Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| database | No | Database to resolve an id against (default master). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and 'Gets' is consistent with that safety profile. The description adds little beyond the annotation: it does not explain return format, the implications of the 'full' diagnostics flag, or any auth/rate-limit considerations. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, making it easy to parse. It is perhaps too terse to structure any caveats, but it avoids verbosity entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters and no output schema, so the description could help by summarizing what 'template information' includes (e.g., fields, base templates) or noting the id/path requirement. However, 100% schema coverage already documents the parameters and the read-only annotation covers safety, leaving the description minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents all five parameters, including the id/path mutual exclusivity and the 'full' diagnostics caveat. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Gets') and resource ('template information for a Sitecore item'), making the operation clear. However, it does not distinguish this tool from the similar sibling authoring-get-item-template, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as authoring-get-item-template or common-set-item-template. The description offers only the core action with no context, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-item-workflow-eventCRead-only
Gets entries from the workflow history for the specified item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to have its history items returned. Supply this or path. | |
| path | No | The path of the item to have its history items returned. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| identity | No | The user that has been associated with the enteries. Wildcards are supported. | |
| language | No | The language that will be used as source language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds no behavioral context beyond the purpose statement: nothing about ordering of entries, pagination, whether history is complete, or how the optional identity/language filters affect results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, but it is arguably undersized for a 5-parameter tool, leaving no room for routing or behavioral notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five optional parameters, no output schema, and only a readOnlyHint annotation, the description is only minimally adequate. It does not explain defaults (e.g., master database), what a workflow history entry contains, or how filtering interacts, though the schema descriptions carry the per-parameter load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (id, path, database, identity, language) is already documented in the schema, including the id/path exclusivity and the identity wildcard support. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (gets) and resource (workflow history entries for a specified item), which is meaningfully distinct from siblings like common-new-item-workflow-event and common-invoke-workflow. However, it does not explicitly name or contrast with those siblings, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when a history lookup is appropriate versus invoking a workflow or creating a new event, and no prerequisites stated. The agent must infer usage entirely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-get-sitecore-jobBRead-only
Gets the current Sitecore jobs with their state and progress. Get-SitecoreJob takes no arguments, so every job is returned; read State and IsDone to find the one you want.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that — every job is returned with no filtering, and State/IsDone are the fields to inspect — but says nothing about return shape details, result size, or paging, and there is no output schema to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core capability front-loaded, followed by the practical hint on which fields to read. No filler, though the 'takes no arguments' phrasing is imprecise given the schema's 'full' flag.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries some burden for describing returns; it names State, IsDone and progress, which is a start, but omits job identity fields (e.g. name/id) an agent would need to identify 'the one you want'. It is adequate but incomplete for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'full' parameter is fully documented as a diagnostics-only option in the schema itself. The description adds a mild tension by asserting the tool 'takes no arguments', which slightly undersells the one parameter that exists, but adds no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Gets the current Sitecore jobs with their state and progress'), so an agent immediately knows what is returned. It does not, however, differentiate itself from the close siblings 'authoring-get-job' and 'authoring-list-jobs', leaving the agent to guess which job-retrieval tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage guidance by telling the agent to 'read State and IsDone to find the one you want', which suggests this is a discovery tool rather than a targeted fetch. It offers no explicit when-to-use/when-not-to-use framing versus 'authoring-get-job' or 'authoring-list-jobs', so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-invoke-workflowC
Executes workflow action for a Sitecore item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to have the workflow action executed. Supply this or path. | |
| path | No | The path of the item to have the workflow action executed. Supply this or id. | |
| comments | No | The comment to be saved in the history table for the action. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language that will be used as source language. | |
| commandName | Yes | The name of the workflow command. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false and destructiveHint=false. The description adds nothing about behavior: it does not say the item's workflow state advances, that comments are recorded in history (only the schema hints at this), what permissions are needed, or whether the action is reversible. For a state-mutating tool this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no waste, which is good. But it is terse to the point of under-specification rather than genuinely efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 6-parameter mutation tool with no output schema and only minimal annotations, the description should explain what the workflow action does to the item and any preconditions. It leaves the agent without enough context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (id/path mutual exclusion, comments, database, language, commandName) are already documented in the schema. The description contributes no additional parameter meaning; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a verb ('Executes') and a resource ('workflow action for a Sitecore item'), so the general operation is clear. However, 'workflow action' is never defined (state transition? command invocation?), and the description offers no differentiation from siblings like common-new-item-workflow-event or common-get-item-workflow-event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites such as the item being in a workflow state, and no indication of what happens on failure. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-new-item-cloneC
Creates a new item clone based on the item provided.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to be cloned. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | Yes | The name of the item clone. | |
| path | No | The path of the item to be cloned. Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| recurse | No | Adds the parameter to clone the whole branch rather than a single item. | |
| database | No | Database to resolve an id against (default master). | |
| destination | Yes | The path of a parent item under which the clone should be created. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered. The description adds nothing beyond the operation itself: it doesn't explain Sitecore clone semantics (a clone stays linked to its original and inherits changes), what content is duplicated, or how 'recurse' alters scope. For a mutation tool with meaningful side effects, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no filler, and the verb is front-loaded. It is arguably too terse rather than padded, so conciseness is not the problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 8-parameter mutation tool with no output schema and no annotations explaining clone behavior. The description omits the critical Sitecore distinction that a clone is a live-linked reference rather than a detached copy, and says nothing about destination/name validation or recursion — gaps an agent cannot recover from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters are already documented in the schema (id/path, recurse, fields, database, destination). The description adds no syntax, defaults, or interaction detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Creates a new item clone') and identifies the source ('based on the item provided'). However, it does not differentiate itself from closely related siblings such as common-get-item-clone or common-convert-from-item-clone, leaving the agent to infer which clone-related tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given, and no alternative tools are named. The presence of common-get-item-clone and common-convert-from-item-clone in the sibling list makes this omission notable — the definition never explains how 'new clone' differs from those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-new-item-workflow-eventC
Creates a new entry in the workflow history for a Sitecore item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to have a new history entry added. Supply this or path. | |
| path | No | The path of the item to have a new history entry added. Supply this or id. | |
| text | No | The action comment. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language that will be used as source language. | |
| newState | No | The ID of the new state. If not provided - current item workflow state will be used. | |
| oldState | No | The ID of the old state. If not provided - current item workflow state will be used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations state readOnlyHint=false and destructiveHint=false, so the agent knows this writes data without destroying it. However, the description adds no behavioral context beyond that: it doesn't say whether an entry is appended (history is usually additive), whether it requires the item to be in a workflow, or what happens if the item has no workflow state. With annotations covering only the safety profile, this mutation tool leaves a meaningful disclosure gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It's efficient, though it could have used a second clause to distinguish itself from the state-changing sibling without harming brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter workflow-mutating tool with no output schema, the description is under-specified. It omits when the tool should be preferred, what workflow constraints apply, and any behavioral contract (appending vs. replacing history), leaving the agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (id, path, text, database, language, newState, oldState) are already fully documented in the schema, including default behavior for database and state fallbacks. The description adds no parameter meaning beyond this, which is appropriate given the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Creates) and resource (a new entry in the workflow history for a Sitecore item), differentiating it from the sibling common-get-item-workflow-event, which retrieves rather than creates. It does not, however, explicitly reference the direct alternative common-invoke-workflow, which also modifies workflow state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus a state-changing alternative like common-invoke-workflow, nor any mention of prerequisites such as item lock state, workflow membership, or permissions. The description only implies usage from its name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-publish-itemA
Publishes a Sitecore item. On SitecoreAI there is no web database — content publishes to Edge, which lives on Sitecore's cloud servers only, so this works on deployed environments but a local development CM has no publishing target.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item that should be published. Supply this or path. | |
| path | No | The path of the item that should be published. Supply this or id. | |
| asJob | No | The Sitecore API called to perform the publish is different with this parameter. | |
| target | No | Specifies the publishing target. The default target database is 'web'. | |
| recurse | No | Publishes the subitems with the root item. | |
| database | No | Database to resolve an id against (default master). | |
| fromDate | No | Publishes items newer than the date provided only. An ISO 8601 date or date-time, e.g. '2026-01-31' or '2026-01-31T09:00:00Z'. | |
| language | No | The language of the item that should be published. Supports globbing/wildcards. | |
| publishMode | No | Specifies the Publish mode. | |
| republishAll | No | Republishes all items provided to the publishing job. | |
| compareRevisions | No | Turns revision comparison on. | |
| publishRelatedItems | No | Publishes the related items. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds genuinely new context by explaining that on SitecoreAI publishing goes to Edge on Sitecore's cloud servers and silently fails to have a target on a local dev CM. That is meaningful behavioral information beyond the structured fields. It stops short of covering permissions, async/job behavior, or failure modes, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core action front-loaded and the environment caveat second, so nothing is buried. The second sentence is somewhat long and dash-laden, but every clause carries information an agent needs, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no output schema, the description covers the environment caveat but says nothing about what the call returns (e.g., whether a job id comes back when asJob is set), nor does it differentiate from the near-duplicate publishing sibling. It is adequate but has clear gaps given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters (id/path, target, publishMode, asJob, etc.), which sets the baseline at 3. The description's Edge/cloud remark indirectly illuminates the 'target' parameter (the default 'web' database does not exist on SitecoreAI), but it adds no syntax or parameter-level guidance beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Publishes a Sitecore item'), so the core action is unambiguous. However, the sibling list contains a near-identical tool, 'authoring-publish-item', and the description does nothing to distinguish the two, leaving the agent unable to choose between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a useful environmental condition ('works on deployed environments but a local development CM has no publishing target'), which is an implicit when-not. But it offers no positive when-to-use guidance and no routing to alternatives such as authoring-publish-item or authoring-publishing-status, so the sibling-selection problem is left open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-remove-archive-itemBDestructive
Removes items permanently from the specified archive.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | No | The ID for the original item that should be processed. | |
| archive | Yes | The name of the archive to use when determining which items to remove. | |
| database | Yes | The database for which the archives should be retrieved. | |
| identity | No | The user responsible for moving the item to the archive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds one genuinely useful bit beyond that: 'permanently', which clarifies the removal is irreversible. It says nothing about required permissions, whether a version/clone remains, or the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the destructive action front-loaded and no wasted words. It is efficient, though so terse for a four-parameter destructive operation that the brevity shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema and annotation-covered safety, the description is minimally adequate. It leaves open whether the operation targets a single itemId or every item in the archive, and what identity and database actually constrain, which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, including archive, database, and identity. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies; notably it implies a bulk 'items' scope while itemId is an optional single-item parameter, but it never resolves that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Removes items permanently from the specified archive'), which is clearly distinct from the sibling common-restore-archive-item and common-get-archive-item. It does not, however, explicitly name those siblings or explain the plural-vs-single-item scope, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite (e.g. item must already be archived), and no mention of the inverse operation common-restore-archive-item that an agent should consider instead when the goal is reversible. The agent must infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-remove-item-versionCDestructive
Removes a version of a Sitecore item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to remove version for. Supply this or path. | |
| path | No | The path of the item to remove version for (e.g. /sitecore/content/Home). Supply this or id. | |
| archive | No | Moves the items to the archive rather than recycle bin. | |
| recurse | No | Removes language versions from the item and all of its children. | |
| version | No | Version that should be deleted form the provided item. Version parameter supports globbing so you can delete whole version groups using wildcards. | |
| database | No | Database to resolve an id against (default master). | |
| language | Yes | Language that should be deleted form the provided item. Language parameter supports globbing so you can delete whole language groups using wildcards. | |
| maxRecentVersions | No | Trims the selected language to value specified by this parameter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds nothing beyond them — it does not disclose that removal is irreversible, what happens when the last version is removed, that recursion can affect descendants, or that archive vs recycle bin behavior differs. Purely a restatement of the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficient but so thin that it arguably under-specifies rather than optimizes length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter destructive mutation with recursive and wildcard behavior and no output schema, the description omits the consequences an agent needs: irreversibility, recursive impact on children, and archive-vs-recycle-bin retention. Complete parameter data lives in the schema, but the behavioral context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters (id/path, archive, recurse, version globbing, database, language, maxRecentVersions) are already documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Removes a version of a Sitecore item'), which clearly distinguishes it from item-level deletion siblings like authoring-delete-item or item-service-delete-item. It does not, however, mention its inverse sibling common-add-item-version or otherwise differentiate itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, no preconditions, and no exclusions. The description only restates the operation and gives no routing information for an agent choosing among the many removal/deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-reset-item-fieldCDestructive
Resets item fields, specified as either names, fields or template fields.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to be analysed. Supply this or path. | |
| name | No | Array of field names to include - supports wildcards. | |
| path | No | The path of the item to be analysed. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| includeStandardFields | No | Includes fields that are defined on Standard template. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a write. The description contributes nothing further — it does not explain what an existing field value is replaced with, whether the change is reversible, or whether a publish is required, which is the most important missing behavioral context for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words, and the resource is front-loaded. The terseness is appropriate in form even though it leaves substance unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, zero-required-parameter mutation with no output schema, the description should explain what reset semantics are and what the agent risks losing. It omits all of this, leaving the most consequential aspects of the operation undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters are already documented in the schema. The phrase "names, fields or template fields" loosely maps to the name/includeStandardFields parameters but adds no syntax, wildcard behavior, or id-vs-path resolution detail beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ("resets") and resource ("item fields"), so the domain is identifiable. However, "reset" is ambiguous — it does not say whether fields revert to template/standard defaults, are cleared, or are recomputed, and there is no differentiation from siblings like common-set-item-template or common-get-item-field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when this tool should be used, what preconditions apply, or which sibling covers the task instead. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-restart-applicationBDestructive
Restarts the Sitecore Application pool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds only the target (the application pool); it says nothing about downtime, dropped in-flight requests, required permissions, or scope of impact across the instance — the details that actually matter for a destructive restart.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the scope front-loaded and zero filler. It is efficient, though arguably terse to the point of under-specification rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, instance-wide restart with no parameters and no output schema, the description omits the operational facts an agent needs — that this disrupts the running application, whether it can be safely called at any time, and what state it returns to. The annotations flag destructiveness but nothing explains the consequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No parameter-level information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Restarts') and a specific resource ('the Sitecore Application pool'), so the agent knows exactly what the tool affects. No sibling tool performs a restart, so there is no realistic confusion to disambiguate, but the description also doesn't explicitly differentiate itself from the common-* administrative family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when this should be invoked — no preconditions (e.g., after config or cache changes), no exclusions, and no mention of alternatives. The agent must guess the operational context in which restarting the application pool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-restore-archive-itemB
Restores items to the original database from the specified archive.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | No | The ID for the original item that should be processed. | |
| archive | Yes | The name of the archive to use when determining which items to restore. | |
| database | Yes | The database for which the archives should be retrieved. | |
| identity | No | The user responsible for moving the item to the archive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered, and the description is consistent with them. The description adds the useful fact that items go back to the original database, but omits whether the archive entry is consumed, whether existing items are overwritten, or any permission requirements 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized, though the plural 'items' is mildly ambiguous given the singular itemId parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with no output schema and no annotations covering side effects beyond readOnly/destructive, the description leaves gaps: what happens to the archive copy, whether the caller must supply archive plus database plus itemId together, and what the result is. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so itemId, archive, database, and identity are already documented in the schema. The description only says 'specified archive' and 'original database', adding no syntax or constraint detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: restores archived items back to the original database from a named archive. An agent can understand the core operation, but the description doesn't distinguish it explicitly from adjacent siblings such as common-remove-archive-item or common-get-archive-item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus common-get-archive-item, common-remove-archive-item, or common-new-item-clone, and no mention of prerequisites such as the item first being in the archive. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-set-base-templateADestructive
Adds or removes a base template on a template item. Removing one takes its fields off every item built from the template, along with their values.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the template item. Supply this or path. | |
| path | No | The path of the template item. Supply this or id. | |
| action | Yes | Whether to add the base template or remove it. | |
| database | No | Database to resolve an id against (default master). | |
| template | Yes | The path of the template item to add or remove as a base template. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag readOnlyHint=false and destructiveHint=true, and the description goes beyond that by spelling out the concrete consequence of removal: fields are stripped from every derived item along with their values. This is genuinely useful blast-radius context. It stops short of describing the add-side effects or any permission requirements, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the destructive consequence is front-loaded immediately after the core action. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with full schema coverage, annotations carrying the safety profile, and no output schema, the definition is nearly complete: purpose plus the key destructive side effect. Only the add-side behavior and any id/path resolution nuance are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (id, path, action, database, template) is already documented in the schema. The description adds no format, resolution, or defaulting detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (adds/removes) and a precise resource (a base template on a template item), so the operation is unambiguous. It does not, however, distinguish itself from nearby siblings like common-test-base-template or common-set-item-template, which the agent must sort out on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives such as common-test-base-template (to check) or common-set-item-template (a different template operation). The action enum implies the add/remove branch, but the description never says when to choose this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-set-item-templateC
Sets the item template.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to set the template for. Supply this or path. | |
| path | No | The path of the item to set the template for. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| template | Yes | The path representing the template item. | |
| fieldsToCopy | No | The key-value pairs map the old template fields to the new template fields. The key represents the old template field, and the value represents the new template field. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation, but the description adds nothing beyond that structured signal. It doesn't say what actually changes when a template is assigned, whether existing field values are affected, or whether the operation requires the item id/path plus a resolvable template.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words and no burying of key information. However, it is concise by omission rather than by discipline, so it earns only a middling score for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with a nested object parameter (fieldsToCopy), no output schema, and no annotations explaining consequences, yet the description says nothing about effects or edge cases. For an operation whose whole point is swapping an item's template and remapping fields, that is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage across all five parameters — including the id/path alternative and the fieldsToCopy old-to-new field mapping — the schema already carries the parameter burden. The description contributes no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Sets the item template" restates the tool name almost verbatim, giving no more information than the identifier already did. It does not distinguish this from close siblings like common-set-base-template, common-get-item-template, authoring-update-item-template, or authoring-create-item-template, so an agent cannot tell which one to reach for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The sibling common-set-base-template in particular covers a closely related operation, and the description gives the agent nothing to choose between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-test-base-templateBRead-only
Checks if the item inherits from the specified template.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to сheck template inheritance for. Supply this or path. | |
| path | No | The path of the item to сheck template inheritance for. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| template | Yes | The ID or path of the template to be analyzed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes that this is a safe, non-mutating read. The description adds the 'inherits from' predicate semantics, which clarifies the nature of the check, but it omits behavior such as default database resolution or that the result is a boolean.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no redundant or wasted wording. It is front-loaded and easy to parse, though it is arguably too sparse to earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only boolean check with fully documented params it is close to sufficient, but with no output schema the description should indicate the return shape (a boolean inheritance result) and does not. Response format and default behavior are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, path, database, and template with their fallback logic. The description adds no parameter detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Checks') and resource ('inherits from the specified template'), making the predicate nature of the tool unambiguous. It is distinguishable from siblings like common-set-base-template and common-get-item-template by its boolean-test framing, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus related siblings such as common-get-item-template, common-set-item-template, or common-set-base-template. The single sentence gives no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
common-update-item-referrerC
Updates all references to the specified item to point to a new provided in the -NewTarget or removes links to the item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to be relinked. Supply this or path. | |
| path | No | The path of the item to be relinked. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The language of the item. | |
| newTarget | No | The path to a new item the links should be pointing to. | |
| removeLink | No | Removes all links to the current target item. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations cover the relink/remove semantics, so the description must carry that burden, and it does state that links are updated or removed. But it omits whether this is reversible, what happens to the items whose links are changed, and whether it is destructive (annotations claim destructiveHint=false, yet removing links is arguably destructive); the behavior claim is thin relative to the mutation's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is both under-specified and grammatically broken ('a new provided in the -NewTarget'). It is short but not because it is tight; important decision context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relinking/mutation tool with six parameters, no output schema, and no annotations describing side effects, the description is inadequate. It never explains the mutual exclusivity of id/path, the role of database/language, or the effect on the referencing items, leaving an agent short of what it needs to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented, including the supply-this-or-that relationship for id/path and the newTarget/removeLink meanings. The description adds only a pointer to newTarget and link removal, no syntax or format details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb (updates) and the resource (references to the specified item), and mentions the two operating modes via -NewTarget or removal. However, it does not differentiate itself from the sibling common-get-item-referrer, and the description is grammatically garbled ('point to a new provided in the -NewTarget'), which reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance. It never states how it differs from common-get-item-referrer (read vs write) or when to pick newTarget versus removeLink. The two modes are mentioned but not framed as alternatives the caller must choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configARead-only
Prints the configuration of the Sitecore MCP server. Secrets (passwords, the GraphQL API key, the authorization header) are redacted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe read nature is covered. The description adds meaningful behavioral context beyond that by specifying that secrets (passwords, GraphQL API key, authorization header) are redacted, which is important for an agent to know when interpreting output. It does not describe auth requirements or output format, so it falls just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded and free of redundancy. The first sentence states the core action; the second adds the security-relevant detail about redaction. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only diagnostic tool with no output schema, the description gives an agent everything needed: what is printed and the important caveat that secrets are redacted. No additional context is required to invoke it correctly or interpret the response safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. Per the rubric, a zero-parameter tool receives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Prints") and resource ("configuration of the Sitecore MCP server") with no ambiguity. No sibling tool covers server configuration, so an agent can immediately distinguish it from all other tools in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied for diagnostics or when the current server configuration needs inspection, but the description does not state when to use this tool instead of alternatives or mention any prerequisites. No explicit when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-component-datasourceA
Creates the datasource item for a component, using the Datasource Template and Datasource Location declared on the rendering itself. placement='page-local' (default) creates /Data/ and returns the layout reference form 'local:/Data/' that authored pages use; placement='shared' resolves the rendering's pipe-separated Datasource Location candidates in order and creates the item in the first that exists, returning the item ID to reference it by. Fails naming every candidate it tried when none resolves, rather than guessing at a location. Pass the field values in 'fields' and they are set on the new item.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the new item. Defaults to '<RenderingName> <n>' with the lowest free n, which is the convention the authored pages use (e.g. 'RichText 1'). | |
| path | No | The full path of the item, database prefix optional (e.g. master:/sitecore/content/Stride/Cova/Home or /sitecore/content/Stride/Cova/Home). Supply this or pageId. | |
| fields | No | Field values to set on the new item, keyed by Sitecore field name. | |
| pageId | No | The ID of the page item (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply this or path. | |
| database | No | The database to read. Defaults to master, and is ignored when path carries its own prefix. | |
| language | No | The item language. Defaults to the context language. | |
| placement | No | Where to create the datasource. 'page-local' (default) puts it under <page>/Data, referenced from the layout as local:/Data/<name>, so it lives and dies with the page. 'shared' puts it in the site Data folder that the rendering's Datasource Location resolves to, for content reused across pages. | |
| renderingId | No | ID of the rendering definition item (e.g. {AD10DB7C-C944-42D9-9563-1F1070CC922E}). Supply this or renderingPath. | |
| renderingPath | No | Path of the rendering definition item (e.g. /sitecore/layout/Renderings/Project/Stride/RichText). Supply this or renderingId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare a non-readonly, non-destructive write, so the description carries most of the behavioral load and does so well: it discloses the layout-reference return form for page-local, the item-ID return for shared, and the failure mode ('fails naming every candidate it tried when none resolves, rather than guessing'). Permissions/auth requirements are not addressed, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences that lead with the core action before drilling into placement semantics. Dense but each clause carries information; only the slightly long placement sentence risks over-explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, zero-required creation tool with no output schema, the description supplies the missing return-value semantics and error behavior. It leaves minor gaps around authentication/permissions, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 beyond the schema: it explains placement's effect on path and return value and confirms that 'fields' are set on the new item. The name-defaulting convention is described in both places but the description reinforces it coherently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it 'creates the datasource item for a component', and grounds it in the rendering's Datasource Template and Location. This clearly distinguishes it from generic item creators like authoring-create-item and item-service-create-item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two placement modes and when each applies ('lives and dies with the page' vs 'reused across pages'), which is genuine when-to-use guidance. It stops short of naming alternative sibling tools for other creation scenarios, so it is clear context without explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-allowed-components-by-placeholderARead-only
Lists the renderings a placeholder allows on a given page, read from the placeholder settings items that govern it. Call this before adding a rendering: a placeholder that forbids a component will still accept it silently, and the page will render. Resolves site-level settings first (/Presentation/Placeholder Settings) and falls back to the global tree (/sitecore/layout/Placeholder Settings/Project/...); settingsItemPath in the result says which item answered. Handles dynamic placeholders: a runtime path like /headless-main/page-section-1/container-2 is matched on its leaf segment against wildcard keys such as container-{*}. Allowed control IDs that resolve to no item are reported under 'Unresolved' rather than dropped silently — that is a content defect worth seeing. Found=false means no settings item governs the key, so check the spelling before treating it as unrestricted.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The full path of the item, database prefix optional (e.g. master:/sitecore/content/Stride/Cova/Home or /sitecore/content/Stride/Cova/Home). Supply this or pageId. | |
| pageId | No | The ID of the page item (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply this or path. | |
| project | No | Overrides the folder searched under /sitecore/layout/Placeholder Settings/Project. Defaults to the project (tenant) folder of the site the item belongs to, and falls back to the whole global Placeholder Settings tree. | |
| database | No | The database to read. Defaults to master, and is ignored when path carries its own prefix. | |
| language | No | The item language. Defaults to the context language. | |
| placeholderPath | Yes | The placeholder to resolve. Accepts a bare key ('headless-main', 'container', 'container-{*}') or a full runtime placeholder path ('/headless-main/page-section-1/container-2'), in which case the leaf segment is matched — including against the wildcard keys dynamic placeholders use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite readOnlyHint covering the safety profile, the description adds substantial behavioral context: the two-tier resolution order (site-level then global fallback), which item answered via settingsItemPath, dynamic-placeholder leaf matching against wildcard keys, and how unresolved control IDs and Found=false are surfaced. This is far beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and pre-call guidance are front-loaded, then resolution order and edge cases follow. It is dense and every sentence carries information (resolution order, dynamic placeholders, Unresolved, Found=false), though the length pushes against ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining returns and does so thoroughly — settingsItemPath, Unresolved, and Found=false are all defined with their implications. Nothing material for correct invocation or interpretation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains the bare-key vs full-runtime-path forms of placeholderPath and the leaf-segment matching, and clarifies the project parameter's precedence and fallback. It stops short of detailing path/pageId/database/language interactions beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource — 'Lists the renderings a placeholder allows on a given page' — and immediately grounds it in the placeholder settings items that govern it. An agent can distinguish this from sibling tools like add-rendering-to-placeholder and presentation-get-placeholder-setting 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use context: 'Call this before adding a rendering,' with a concrete consequence ('a placeholder that forbids a component will still accept it silently'). It routes the agent into the add-rendering workflow well, though it doesn't name a specific sibling as an alternative or state when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-pages-by-siteARead-only
Lists the pages of a site. Returns { Matched, Returned, Truncated, Root, SiteName, Pages: [{ ID, Path, Template, TemplateID }] }. An item counts as a page when it has presentation (a layout on the item or on its template's standard values), which is what makes it addressable as a page — not a guess from template naming.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Any item path inside the site, used to work out which site is meant (e.g. /sitecore/content/Stride/Cova/Home). Supply this or siteName. | |
| limit | No | Maximum rows to return (default 500). Matched always reports the true count, and Truncated says whether rows were withheld. | |
| database | No | The database to read. Defaults to the site's own database, or master. | |
| rootPath | No | Scan this subtree instead of the site's home item, e.g. to list one section. Must be inside the site. | |
| siteName | No | The site name as Sitecore knows it (e.g. 'Cova'). Use list-sites to see the names. Supply this or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read safety, and the description goes further by disclosing the exact result envelope (Matched/Returned/Truncated/Root/SiteName/Pages), the truncation contract, and the semantic rule that decides membership (presentation presence, not template naming). It stops short of noting permissions or ordering, but this is far more than the annotations supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then the return shape, then the inclusion rule. Three tight sentences with no filler, though the inclusion clause is somewhat long for the value it carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly supplies the return structure and truncation semantics itself, plus the definition of what qualifies as a page. For a read-only listing tool, an agent has everything needed to invoke and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents path, siteName, limit, database, and rootPath; the description adds nothing about them. Baseline 3 is correct when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the pages of a site') and sharpens it with an inclusion rule that separates a real page from a template-naming guess. It does not, however, name or contrast itself with the obvious sibling search-site-pages, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. With search-site-pages and list-sites among siblings, an agent gets no signal about which to pick for a filtered search versus a full enumeration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-powershell-documentationARead-only
The Sitecore PowerShell Extensions command reference, for writing run-powershell-script scripts. Reveals progressively rather than returning the whole ~510KB corpus: call it with NO arguments first for an index of all 129 commands with one-line summaries, then call it again with 'command' for the full page — syntax, every parameter, and examples — of the one or few you need. 'search' matches names, summaries and page bodies when you know what you want to do but not which cmdlet does it; 'category' lists one group. Do not fetch pages you are not about to use.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Keyword to match against command names, summaries and page bodies — use it when you know the task ('placeholder', 'workflow', 'acl') but not the cmdlet. Returns matching names and summaries, not full pages. | |
| command | No | The command name(s) to return full documentation for, e.g. 'Get-ItemTemplate' or ['Add-Rendering','Get-Rendering']. Case-insensitive. At most 5 per call. | |
| category | No | List only this group of commands: common, indexing, packaging, presentation, provider, security or session. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds real behavioral context the annotations cannot: progressive disclosure, the ~510KB corpus size, the 129-command index shape, and that search returns names/summaries rather than full pages. It stops short of describing pagination or error behavior, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every sentence carries information about call sequencing or return shape. It is dense and slightly long, but nothing is padding; a marginally tighter phrasing would reach 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe returns, and it does: index of 129 commands with one-line summaries, full pages with syntax/parameters/examples, and search results as names and summaries. That is sufficient for an agent to call the tool correctly at each stage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining that calling with NO arguments returns an index, a cross-parameter usage workflow the schema cannot express, and reinforces what 'search' returns versus full pages. This adds genuine meaning over the field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Sitecore PowerShell Extensions command reference) and its concrete purpose (writing run-powershell-script scripts), which cleanly separates it from the run-powershell-script execution sibling. An agent can tell exactly what this returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit call sequence: no args first for the index, then 'command' for full pages, 'search' when you know the task but not the cmdlet, 'category' for one group. It even adds a when-not constraint ('Do not fetch pages you are not about to use'), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-site-informationARead-only
Returns one site's definition plus the paths the composition tools need: the home item, the site-level Placeholder Settings root, the Available Renderings root, the shared Data folder, the site definition item, and the project (tenant) folder used to resolve global placeholder settings. Address the site by name, or by any item path inside it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Any item path inside the site, used to work out which site is meant (e.g. /sitecore/content/Stride/Cova/Home). Supply this or siteName. | |
| database | No | The database to read. Defaults to the site's own database, or master. | |
| siteName | No | The site name as Sitecore knows it (e.g. 'Cova'). Use list-sites to see the names. Supply this or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, so the bar is lower. The description adds valuable beyond-annotation context by disclosing the exact set of paths and roots returned (home item, Placeholder Settings root, Available Renderings root, shared Data folder, site definition, tenant folder), which tells the agent what it can then feed into other tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and then the addressing rule. The middle enumeration is dense but every listed path is informative, so little is wasted, though the list is long enough to slightly burden scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly carries the burden of explaining the return payload, which it does thoroughly, and readOnlyHint covers the safety profile. With 100% schema coverage and zero required params, the description is nearly complete, lacking only explicit guidance on when to prefer it over list-sites or authoring-get-site.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the 'supply this or siteName' either/or. The description restates the addressing model ('by name, or by any item path inside it') but adds no syntax or format detail beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Returns one site's definition plus the paths the composition tools need') and enumerates the exact artifacts returned, so the agent knows precisely what this fetches. It is clearly single-site focused, implicitly distinct from list-sites, but it never names or contrasts a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It hints at usage by noting these are 'the paths the composition tools need,' which implies calling it before composition operations, and explains how to address the site (by name or any item path). However there is no explicit when-to-use/when-not or comparison against alternatives such as list-sites or authoring-get-site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexing-find-itemARead-only
Finds items through the Sitecore Content Search API over SPE. Prefer authoring-search where it is available: it needs no SPE, scopes to a subtree with a '_path' criterion, and pages with a real total. For published content, a search query through query-graphql- is also cheaper than this. Reach for this tool when neither is configured, or when you need an index this server's other surfaces cannot address by name. Dates are ISO 8601 (e.g. '2023-10-01T00:00:00Z'). Returns Skip, First, Returned, HasMore and Items; HasMore is how you know to page, since Content Search reports no total.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | The number of results to skip. Defaults to 0. | |
| first | No | The maximum number of results to return. Defaults to 200, and cannot exceed 500 — page with 'skip' instead. | |
| index | No | The name of the Sitecore index to search in. e.g., 'sitecore_master_index', 'sitecore_web_index'. | sitecore_master_index |
| criteria | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation covers safety, and the description adds genuinely new behavioral context: the return shape (Skip, First, Returned, HasMore, Items) and the critical fact that Content Search reports no total, so HasMore governs paging. It does not cover permissions/auth requirements or failure behavior on a missing index, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then routing guidance, then paging/format notes; every sentence carries information. The sentences are somewhat long and run-on, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly fills that gap by naming the returned fields and the HasMore paging signal, and it resolves routing against the crowded sibling set. It stops short of explaining index availability, auth, or error cases, but is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% and the schema itself is unusually rich (field naming conventions, numeric suffixes, filter enum, range syntax). The description adds only the ISO 8601 date format note, which the schema's 'value' description already states. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Finds) plus resource and mechanism (items via the Sitecore Content Search API over SPE), and explicitly distinguishes itself from candidates an agent might otherwise pick. An agent can tell it apart from authoring-search, item-service-search-items, and query-graphql without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names two preferred alternatives (authoring-search, query-graphql-<schema>), gives reasons for each (no SPE, '_path' subtree scoping, real totals, cheaper for published content), and states the exact condition for reaching for this tool. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexing-get-search-indexARead-only
Get information about Sitecore search indexes, addressed by name. SPE's Get-SearchIndex takes no other filter, so filter the returned rows rather than asking the CM to. IndexingState (Started / Stopped) is reliable; the Summary fields (NumberOfDocuments, IsHealthy, IsClean, OutOfDateIndex) come from the search provider and are not dependable everywhere — on an XM Cloud CM, where every index shares one Solr core, NumberOfDocuments reads 0 and IsHealthy false on an index that is serving queries perfectly well. Run an actual query with indexing-find-item before concluding an index is broken.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | The name of the index to retrieve information for. Supports wildcards. Omit to return every index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the real behavioral burden and does so richly: IndexingState is reliable, the Summary fields come from the search provider and are 'not dependable everywhere,' and the XM Cloud CM Solr-core case explains why NumberOfDocuments reads 0 and IsHealthy false on a healthy index. This is exactly the kind of environment-specific caveat structured fields cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first clause, followed by the operational caveats in descending usefulness. It is denser and longer than typical, but each sentence (filtering guidance, reliability caveat, XM Cloud example, verification step) carries distinct actionable content rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe what comes back, and it does: it names IndexingState and the Summary fields (NumberOfDocuments, IsHealthy, IsClean, OutOfDateIndex) and qualifies their trustworthiness. An agent has everything needed to call the tool and interpret its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'full' and 'name' (wildcards, omit-for-all, diagnostics-only) are already documented in the schema. The description adds only the rationale that Get-SearchIndex accepts no additional filter, which is mild added meaning; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get information about Sitecore search indexes') plus the addressing mechanism ('addressed by name'). It is clearly separable from siblings like indexing-find-item, indexing-rebuild-search-index, and indexing-set-search-index-state, which perform query, rebuild, and state-change operations respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent that SPE's Get-SearchIndex takes no other filter and that filtering must be done on returned rows instead of on the CM. It also gives a concrete escalation path ('Run an actual query with indexing-find-item before concluding an index is broken'), so both when-to-use and when-not-to-trust-the-output are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexing-rebuild-search-indexA
Rebuilds Sitecore search indexes. Omit id and path to rebuild whole indexes — and omit name too to rebuild every index, which is expensive and leaves search results incomplete while it runs. Supply id or path to rebuild only that item's subtree, which is what you want after changing a branch of content. Pass asJob to queue it and poll with common-get-sitecore-job rather than waiting.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Rebuild only this item's subtree. Supply this or path, or neither for whole indexes. | |
| name | No | The index to rebuild; supports wildcards. Omit to rebuild every index when rebuilding whole indexes, or to use 'sitecore_*_index' when rebuilding one item's subtree. | |
| path | No | Rebuild only this item's subtree, e.g. /sitecore/content/Home. Supply this or id, or neither for whole indexes. | |
| asJob | No | Queue the rebuild as a Sitecore job instead of running it inline. | |
| database | No | Database to resolve an id against (default master). | master |
| includeRemoteIndex | No | Whole-index rebuilds only: include remote indexes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the cost profile of a full rebuild and the fact that search results are left incomplete while it runs, plus the async job/polling pattern. These are operationally decisive facts an agent would not otherwise know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, zero filler, front-loaded with the core action and then the mode-selection rules in order of increasing scope. Every clause either sets behavior or routes the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 optional parameters, no output schema, and no enum constraints, the description covers all decision paths (scope selection, async behavior, cost). Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter docs already carry the load and baseline is 3. The description adds interaction semantics the schema states only per-field: the id-vs-path-vs-neither decision and the coupling of name to whole-index vs subtree rebuilds, which is genuinely useful but partially redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Rebuilds Sitecore search indexes') and immediately elaborates the three operating modes. An agent can distinguish it from indexing-find-item and indexing-set-search-index-state 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional guidance for each mode: omit id/path for whole indexes, omit name too for every index (with a cost warning), supply id or path for a subtree 'which is what you want after changing a branch of content,' and pass asJob to poll with common-get-sitecore-job. Names both the alternative tool and the trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexing-set-search-index-stateA
Suspends, stops or resumes Sitecore search indexes. Omit name to act on every index in the matching state. To rebuild an index use indexing-rebuild-search-index; to read the current state use indexing-get-search-index.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The index to act on. Omit to act on all indexes in the matching state. | |
| action | Yes | suspend pauses a running index, stop halts it, resume restarts a paused one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the write nature is already conveyed; the description adds the meaningful behavioral detail that omitting name widens the blast radius to every matching index. It stops short of disclosing anything about permissions, whether suspend survives a restart, or whether the operation is synchronous — real gaps, but smaller given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, bulk-scope caveat second, sibling routing third. No filler and nothing buried at the end that belongs up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter index-state tool with no output schema and clear annotations, the description covers action, scope, and alternatives. It omits operational context such as required privileges or whether state changes persist, which a mutating index operation would ideally mention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both parameters, including the omit-name behavior and the per-action semantics of the enum. The description largely restates what the schema carries, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (suspends, stops, resumes) against a specific resource (Sitecore search indexes), and explicitly distinguishes itself from the two nearest siblings, indexing-rebuild-search-index and indexing-get-search-index. An agent can route correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names both alternatives with the condition that selects them: rebuild vs. this tool, and read state vs. this tool. It also states the bulk case ('Omit name to act on every index in the matching state'), so both the when and the when-not are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
introspection-graphql-edgeARead-only
Explores the Sitecore GraphQL 'edge' schema. With no arguments it returns the root operations plus the Item interface — the whole contract for querying this endpoint, a couple of KB. Use type: "" for one type in full, search: "" to find one, and full: true only when you genuinely need every definition: a delivery schema's full SDL measured 777,501 characters (~194,000 tokens) on a live CM, two thirds of it repeated descriptions. Prefer the typed item/presentation tools when one already answers the question, and authoring-get-item-template or common-get-item-field to read a template's fields — both are far cheaper than the generated per-template types here.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | When true, return the entire schema SDL. Very large — see the tool description for the measured size — so prefer 'type' or 'search'. Combine with includeDescriptions:false to cut it substantially. | |
| type | No | Return the full definition of one named type, or of one root operation (e.g. 'ArticlePage', 'createUser'). For an operation, the input and enum types its arguments reference are included too, so the result is enough to write the document. This is the argument to reach for once the index has told you the name. | |
| search | No | Find types and operations whose name or description matches this keyword (e.g. 'media', 'workflow', 'publish'). Returns names and one-line summaries, not full definitions. | |
| includeDescriptions | No | When false, strip all docstrings from the output. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description has room to add value and does: it quantifies the full-SDL cost (777,501 characters, ~194,000 tokens), explains that two thirds is repeated docstrings, and notes includeDescriptions:false as a mitigating lever. That is strong cost disclosure, but it stops short of describing result shape details such as pagination or truncation behavior on large type responses, keeping it from the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The default behavior is front-loaded in the first clause, then the escalation path, then the size warning, then alternatives — a clean funnel. It is dense and every sentence carries information, but the token-size measurement and repeated cost cautions could be trimmed slightly without losing signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the full burden and does so: it states what the default call returns and roughly how large, what each parameter returns, and where to go instead for cheaper answers. An agent has everything needed to call this correctly and avoid the 194k-token trap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself already documents each parameter thoroughly, so the baseline would be 3. The description lifts this by adding decision-level semantics the schema lacks — that 'type' is the argument to reach for once the index gives you a name, and that 'full' should be reserved for genuine need given its measured size.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Explores the Sitecore GraphQL edge schema') and immediately defines the no-argument default output: root operations plus the Item interface. The 'edge' qualifier implicitly separates it from the master-schema introspection sibling, so an agent can tell which introspection tool it is holding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing is given for every mode: no args for the index, type: for one definition, search: for discovery, and full: true 'only when you genuinely need every definition.' It goes further with negative guidance — prefer typed item/presentation tools, or authoring-get-item-template / common-get-item-field for template fields — naming actual sibling tools to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
introspection-graphql-masterARead-only
Explores the Sitecore GraphQL 'master' schema. With no arguments it returns the root operations plus the Item interface — the whole contract for querying this endpoint, a couple of KB. Use type: "" for one type in full, search: "" to find one, and full: true only when you genuinely need every definition: a delivery schema's full SDL measured 777,501 characters (~194,000 tokens) on a live CM, two thirds of it repeated descriptions. Prefer the typed item/presentation tools when one already answers the question, and authoring-get-item-template or common-get-item-field to read a template's fields — both are far cheaper than the generated per-template types here.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | When true, return the entire schema SDL. Very large — see the tool description for the measured size — so prefer 'type' or 'search'. Combine with includeDescriptions:false to cut it substantially. | |
| type | No | Return the full definition of one named type, or of one root operation (e.g. 'ArticlePage', 'createUser'). For an operation, the input and enum types its arguments reference are included too, so the result is enough to write the document. This is the argument to reach for once the index has told you the name. | |
| search | No | Find types and operations whose name or description matches this keyword (e.g. 'media', 'workflow', 'publish'). Returns names and one-line summaries, not full definitions. | |
| includeDescriptions | No | When false, strip all docstrings from the output. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply only readOnlyHint=true; the description goes well beyond them by quantifying output size (777,501 characters, ~194,000 tokens, two thirds repeated descriptions) and revealing the cheaper paths, which materially changes how an agent budgets context. It also notes the default behavior with no arguments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the default no-argument behavior, then escalates argument by argument, then closes with alternatives. Dense but every sentence carries a distinct decision-relevant fact; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns itself, and it does: root operations plus Item interface at 'a couple of KB', names-and-summaries for search, full SDL with measured size. Nothing needed to call this introspection tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions are already rich, so the baseline is 3; the description adds qualifying guidance such as reaching for 'type' only once the index has supplied a name and hinting at the full/includeDescriptions combination. The remaining parameter semantics (e.g. what 'search' returns) restate the schema rather than extend it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Explores the Sitecore GraphQL master schema') and immediately defines the no-argument contract: root operations plus the Item interface. An agent can distinguish it from introspection-graphql-edge and query-graphql-master from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing rules per argument ('type' for one type in full, 'search' to find one, 'full' only when you genuinely need every definition), names alternatives (typed item/presentation tools, authoring-get-item-template, common-get-item-field), and states a when-NOT-to-use condition for full SDL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-create-itemC
Create a new Sitecore item under parent path with name using template id.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| options | No | ||
| itemName | Yes | ||
| parentPath | Yes | ||
| templateId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of permission/auth requirements, what happens if the item already exists, or how the optional data/options payloads are applied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action verb front-loaded and no filler. The phrasing is slightly awkward ('under parent path with name using template id') but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with five parameters, nested objects, zero schema descriptions and no output schema, the description is too thin. An agent cannot determine how to populate the data/options objects or what the call returns, so key calling details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden, yet it only alludes to the three required parameters (parentPath, itemName, templateId) without format details (path syntax, GUID vs. path for templateId). The nested 'data' and 'options' objects — including database and language selection — are entirely unmentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource — 'Create a new Sitecore item' — and names the key inputs (parent path, name, template id). It does not differentiate itself from the near-duplicate sibling authoring-create-item, which an agent would need to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With sibling tools like authoring-create-item and item-service-edit-item present, the agent gets no signal on which creation path to pick or what prerequisites apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-delete-itemCDestructive
Delete a Sitecore item by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered by structured data. The description adds nothing beyond that: it does not say whether the delete is permanent, what happens to versions, or whether the database/language options change scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and key front-loaded and zero filler. It is efficient, though its brevity is partly under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema and zero parameter documentation, the description is too thin. An agent gets no information on permanence, scoping via options, or how this differs from the other delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only hints at the required id parameter ('by its ID'). The nested options object (version, database, language) is completely undocumented in both the schema and the description, leaving half the parameter surface unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (Sitecore item) plus the lookup key (by its ID), so the operation is unambiguous. However, it does nothing to distinguish itself from the sibling authoring-delete-item, which appears to serve the same purpose, so an agent cannot tell which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites or permissions, and no warning that deletion is permanent. The presence of a similarly named sibling (authoring-delete-item) makes the absence of routing guidance a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-edit-itemC
Edit a Sitecore item by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| data | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows it is a non-destructive mutation, which the 'Edit' wording is consistent with. But the description adds nothing beyond that: it doesn't say whether the edit is partial or full replacement, what happens to fields not supplied, or whether version/language scoping affects the write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is well-formed and appropriately sized, though its brevity reflects under-specification rather than deliberate economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, 0% schema coverage, and a nested 'data' object, the description is too thin. It omits what fields can be edited, how version/language options behave, and any permission or side-effect context an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only clarifies the 'id' parameter ('by its ID'), leaving the required 'data' object (a flat string map of field values) and the 'options' object (version/database/language) entirely unexplained. For a nested-object mutation with two required params, this is a substantial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Edit) and resource (Sitecore item) scoped by ID, so the agent knows the operation type. However, it does not differentiate this tool from close siblings such as authoring-update-item or item-service-create-item/delete-item, leaving the agent to infer which edit/update path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no preconditions, and no mention of alternatives like authoring-update-item or common-set-item-field. The agent has only the name and the one-line purpose to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-get-itemCRead-only
Get a Sitecore item by its ID or path.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item. Supply this or path. | |
| path | No | The path of the item. Supply this or id. | |
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered structurally. The description adds nothing behavioral on top: no note on payload size, performance cost, or that omitting the fields option returns the full heavyweight item. With annotations covering the safety dimension, this sentence contributes almost no extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is appropriately terse, though that terseness partly reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, a nested options object, only 67% parameter coverage, and no behavioral detail, the definition is too thin. An agent gets no help choosing this over the many sibling item-retrieval tools or understanding what a call returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description merely restates the id/path alternatives that the schema already documents ('Supply this or path'). It says nothing about the nested options object, field selection, version, database, or language, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: "Get a Sitecore item by its ID or path." An agent knows it retrieves a single item rather than a collection, and the id/path alternatives are explicit. However, it does nothing to distinguish itself from the many similar siblings such as authoring-get-item, provider-get-item, item-service-get-item-children, or item-service-search-items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. With siblings like item-service-get-item-descendants, item-service-search-items, and at least two other generic 'get item' tools, the description should say which one to pick and under what condition; it offers none of that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-get-item-childrenARead-only
Get the direct children of a Sitecore item by its ID, with all their fields. Pass options.fields to return only the fields you need — the full form is roughly 1.9KB per child.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable context beyond that: the per-child payload size (~1.9KB) and the fact that a full item carries every template field. That payload-cost warning is exactly the kind of behavioral detail annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the core purpose is front-loaded and the performance tip follows. The size figure is repeated in the schema description, a minor redundancy, but the prose itself earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema, the description covers what is returned (children plus their fields) and the cost trade-off, which is the main thing an agent needs. The nested options object's remaining flags are left unaddressed, keeping it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0%, so the description must compensate, and it does explain id and options.fields meaningfully (including cost implications). But options.version, database, language, includeMetadata, and includeStandardTemplateFields remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('direct children of a Sitecore item'), and identifier ('by its ID'), which is precise. 'Direct children' implicitly contrasts with item-service-get-item-descendants, but the sibling is never named, so the agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use rule for the options.fields parameter ('Pass options.fields to return only the fields you need'), which is genuinely useful. However, it offers no guidance on when to prefer this over item-service-get-item-descendants, item-service-get-item, or item-service-search-items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-get-item-descendantsARead-only
Gets every descendant of a Sitecore item by ID, with all their fields. Walks the tree client-side: one request per node, issued sequentially, so a large subtree costs seconds to minutes and returns an unpaged result. For structure only (paths, names, templates) at any depth, authoring-search with a '_path' criterion is one indexed query instead. Truncates at DESCENDANTS_MAX_ITEMS (5000) and says so. See the guide://tool-selection resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries most of the burden and does so well: it discloses the client-side per-node sequential walk, the seconds-to-minutes latency on large subtrees, the unpaged result, and the DESCENDANTS_MAX_ITEMS (5000) truncation with notification. This is exactly the behavioral context an agent needs before invoking an expensive traversal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, all front-loaded with the core purpose before the cost/truncation caveats and the alternative-tool routing. Every sentence adds distinct decision-relevant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a traversal tool with no output schema, the description still conveys return shape (all fields, unpaged), limits (5000-item truncation), and cost profile. Nothing an agent needs to call it correctly or avoid it in favor of a sibling is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low: only the nested `fields` option is documented in the schema, while id, version, database, language, includeMetadata, and includeStandardTemplateFields are bare. The description implies a default of returning all fields (which bears on the `fields` option) but adds no syntax, format, or per-parameter meaning, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Gets every descendant of a Sitecore item by ID, with all their fields'), including the scope-defining detail that descendants rather than just direct children are returned. It is immediately distinguishable from siblings like item-service-get-item-children and authoring-get-item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative ('For structure only ... authoring-search with a "_path" criterion is one indexed query instead') and the condition that selects it. It also routes the agent to the guide://tool-selection resource for further guidance, leaving no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-get-languagesBRead-only
Get Sitecore languages.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds nothing beyond that: no note on whether results are cached, scoped to a site/database, or how large the list might be. With annotations present the bar is lower, but zero added context is still weak.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource, with no filler. It is efficient, though the terseness borders on under-specification for a tool with no other documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should ideally say what the return looks like (e.g. a list of language objects with codes/names). For a simple parameterless read tool the gap is minor but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies per the rubric for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource pair ('Get Sitecore languages'), so an agent knows it returns the instance's language list. No sibling tool covers languages, so there is nothing to differentiate against, and the description doesn't clarify whether this means system languages or item language versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this versus other read/list tools (e.g. authoring-list-sites, item-service-get-item), nor any prerequisites or context. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item-service-search-itemsBRead-only
Search Sitecore items using the ItemService RESTful API. The endpoint's facet breakdown is omitted unless includeFacets is set — it accounted for 96% of the response on a live CM and is rarely what the caller is after.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-based page to return. | |
| term | Yes | The text to search for. | |
| facet | No | Filter the results by a facet, as 'name|value' (e.g. '_language|en'). | |
| fields | No | Restrict each result to these fields. Strongly recommended: a full result carries every field of the item. | |
| database | No | The database to search. Defaults to master. | |
| pageSize | No | Results per page. | |
| includeFacets | No | Include the facet breakdown (names and counts). Off by default: it dominated the payload, 96% of a live one-result search. | |
| includeStandardTemplateFields | No | Include the Standard template's fields. Off by default; a large addition to every result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read, and the description adds concrete response-size context about the facet payload. However, that same 96%/default-off detail is already stated in the includeFacets schema description, so the tool-level text largely repeats structured data rather than adding new behavior (e.g., pagination limits, default database behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool does, followed by the single most important behavioral caveat. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description addresses the key payload gotcha but says nothing about result shape, pagination semantics, or default database behavior. Adequate given the rich schema coverage, but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 8 parameters documented (page, term, facet, fields, database, pageSize, includeFacets, includeStandardTemplateFields), so the baseline is 3. The description only elaborates on includeFacets, which the schema already covers, adding no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Sitecore items) and pins the transport (ItemService RESTful API), which implicitly separates it from the GraphQL-based authoring-search sibling. It never names or contrasts an alternative, so the agent must still infer which search tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance, despite several search-like siblings (authoring-search, indexing-find-item, provider-get-item, search-site-pages). The only conditional phrasing ('rarely what the caller is after') concerns the includeFacets parameter, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-insert-optionsARead-only
Lists the insert options configured for an item — the templates and branches that may be created under it — read from its __Masters field (which inherits from the template's standard values). Each row reports Kind: 'Branch' items copy a whole subtree, 'Template' items create a single item. Note that insert rules are not evaluated (the uiGetMasters pipeline the Content Editor runs is not available on an SitecoreAI CM), so a project that uses them may see more options in the editor than are listed here. IDs that resolve to no item are reported under Unresolved.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The full path of the item, database prefix optional (e.g. master:/sitecore/content/Stride/Cova/Home or /sitecore/content/Stride/Cova/Home). Supply this or itemId. | |
| itemId | No | The ID of the item (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply this or path. | |
| database | No | The database to read. Defaults to master, and is ignored when path carries its own prefix. | |
| language | No | The item language. Defaults to the context language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint annotation: it names the backing field (__Masters), explains inheritance from the template's standard values, defines the Kind values ('Branch' copies a subtree, 'Template' creates one item), and explicitly discloses the key limitation that insert rules are not evaluated on SitecoreAI CM. It even notes where unresolved IDs surface (Unresolved).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in the first clause before adding the __Masters mechanics and the caveat. Dense but every clause carries information; only mild verbosity in the parentheticals keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explaining the row structure (Kind, Unresolved), which is genuinely helpful. A caller still lacks detail on the exact row shape and ordering, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents path, itemId, database, and language. The description adds no parameter-level semantics beyond what is structured, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lists) and resource (insert options configured for an item), then clarifies exactly what those options are: the templates and branches that may be created under it. This is clearly distinguishable from adjacent siblings like authoring-get-item-template or list-site-components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scenario of use is implied (determining what may be created beneath an item), but the description never explicitly states when to prefer this over alternatives, nor does it name any alternative tool. It is adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-site-componentsARead-only
Lists the renderings a site makes available, grouped by its Available Renderings groups (Page Content, Page Structure, FEaaS, Forms, Global on a Stride site). This is the site's component inventory, NOT an allow-list: the groups do not determine where a rendering may be placed. Use get-allowed-components-by-placeholder for that. IDs that resolve to no item are reported under Unresolved per group.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Any item path inside the site, used to work out which site is meant (e.g. /sitecore/content/Stride/Cova/Home). Supply this or siteName. | |
| database | No | The database to read. Defaults to the site's own database, or master. | |
| siteName | No | The site name as Sitecore knows it (e.g. 'Cova'). Use list-sites to see the names. Supply this or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds genuinely useful behavioral context beyond that: the grouping semantics (groups do not determine placement) and that unresolved IDs are surfaced under an 'Unresolved' key per group, which tells the agent how to interpret partial results. It does not cover pagination or return size, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool returns, then the critical scope clarification, then the edge-case behavior. Four compact sentences, none redundant, each earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return shape, and it does so well (grouped by Available Renderings groups, Unresolved per group). The main remaining gap is that it does not mention the shape of individual rendering entries or ordering, but for a list tool this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (path, database, siteName) are already documented with examples and the either/or requirement. The description adds only marginal meaning (path is 'inside the site'), so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (lists the renderings a site makes available) and immediately clarifies the scope by naming the grouping structure. It explicitly distinguishes itself from get-allowed-components-by-placeholder, so an agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-not: 'This is the site's component inventory, NOT an allow-list' and routes the agent to the correct alternative tool with the condition that selects it. Nothing about usage selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-sitesARead-only
Lists the content sites registered on this CM: name, root path, start (home) path, database, hostname and the root item's ID and template. Sitecore's own infrastructure sites (shell, login, service, ...) are filtered out; pass includeSystemSites to see everything Sitecore has registered. Note that 'website' is reported — on XM/XP it is the content site, and on a SitecoreAI CM it shows up rooted at /sitecore/content alongside the real content sites.
| Name | Required | Description | Default |
|---|---|---|---|
| includeSystemSites | No | Include Sitecore's infrastructure sites (shell, login, admin, service, scheduler, ...). Off by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint=true in annotations, the description carries real additional burden and does: it declares that infrastructure sites (shell, login, service) are filtered by default, and it warns about the 'website' entry behaving differently on XM/XP versus SitecoreAI. Those are non-obvious behaviors an agent could otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is returned, then the filtering behavior, then the environment-specific caveat. Nothing is padded, though the trailing 'website' note is a fairly niche aside.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a fully described single parameter, the description covers return shape, default filtering, and an environment caveat; with readOnlyHint present it need not re-explain safety. The only material omission is disambiguation from sibling listing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single boolean, so the schema already documents includeSystemSites. The description's mention of it mostly restates the parameter's effect, adding only light context about Sitecore's own registrations. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Lists the content sites registered on this CM') and it goes further by enumerating exactly which fields come back (name, root path, start path, database, hostname, root item ID/template). It does not differentiate itself from siblings like authoring-list-sites or get-site-information, which read on the same surface, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one conditional usage note ('pass includeSystemSites to see everything'), which is helpful, but that is really parameter usage rather than tool-selection guidance. There is no statement of when to reach for this tool versus the sibling list/get-site tools, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logging-get-logsARead-only
Retrieves Sitecore logs from the CM's data folder over SPE. On a local Docker CM the same files are on a mounted volume, so reading them from disk is cheaper and shows the whole file; use this when you have no filesystem access to the CM. On a deployed SitecoreAI environment the platform collects logs and the data folder may hold little or nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | The date of the log file to retrieve. If not provided, defaults to today. Date format should be in ISO 8601 format (e.g., '2023-10-01T00:00:00Z' | |
| name | No | The name of the log file to retrieve. If not provided, defaults to log.*. Possible options: log, Crawiling.log, Search.log, SPE.log, Client.log, OWin.log, Publising.log. | log |
| tail | No | The number of lines to retrieve from the end of the log file. Defaults to 500. | |
| level | No | The level of the log to retrieve. Defaults to DEBUG. | DEBUG |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds environment-dependent behavior the agent can't infer: retrieval runs over SPE, local Docker duplicates exist on a volume, and SitecoreAI may return little or nothing. It doesn't discuss pagination or output shape, but the added context is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and then the environment caveats. Each sentence earns its place by changing what the agent should do (fetch remotely, prefer disk on Docker, expect emptiness on SitecoreAI).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with full schema coverage and readOnlyHint, the description covers the critical nuance of environment-dependent returns. Return format and pagination are not spelled out, but with tail and level documented in the schema the agent has enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so date, name, tail and level are all documented in the schema itself. The description's phrase 'shows the whole file' lightly contrasts disk reads against the tail behavior, but adds no syntax or format detail beyond what the schema provides, making baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieves) plus resource (Sitecore logs) and the exact source (the CM's data folder over SPE). The agent immediately knows this is remote log fetching via SPE rather than a generic log query, and no sibling competes for the same purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('use this when you have no filesystem access to the CM'), a named alternative condition (Docker CM where reading from disk is cheaper and shows the whole file), and a when-not-to-expect-value case (deployed SitecoreAI where the platform collects logs and the folder may hold nothing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media-downloadA
Downloads a media item's blob from the Sitecore media library via the SPE mediaDownload service. Pass saveTo to write it to a file local to the machine running this MCP server (always do this for anything over ~0.5MB); without saveTo the blob is returned inline as base64, capped at maxBytes. Requires in the CM's SPE services config.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The media item path WITHOUT file extension (e.g. 'Project/Stride/Corporate/Migrated/team-photo' — the '/sitecore/media library/' prefix is optional), or the media item's GUID. | |
| saveTo | No | File path on the machine running this MCP server to write the blob to. When set, the response carries metadata only — no base64. Refused over the HTTP transport unless MEDIA_LOCAL_FILE_ROOT names a directory to confine it to. | |
| database | No | The database holding the media library. Defaults to master. | master |
| maxBytes | No | Inline-response size cap in bytes (default 512000). A blob over the cap errors with its actual size — pass saveTo instead of raising the cap unless you truly need the bytes inline. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false and destructiveHint=false, the description still adds meaningful context: the SPE config requirement, the HTTP-transport refusal unless MEDIA_LOCAL_FILE_ROOT is set, and the error-with-actual-size behavior on the byte cap. It does not contradict the annotations (writing a file to disk is a genuine side effect). The only gap is what the metadata-only response actually contains when saveTo is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences that front-load the core action, then the saveTo/inline fork, then the prerequisite. Every clause carries operative information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly explains both return shapes (base64 inline vs metadata-only file write), plus size caps, transport restrictions, and the config prerequisite. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 decision-relevant meaning: the ~0.5MB threshold for choosing saveTo, and the guidance to prefer saveTo over raising maxBytes. It reinforces rather than duplicates the schema's parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Downloads a media item's blob from the Sitecore media library') and names the underlying mechanism (SPE mediaDownload service). An agent can immediately distinguish this from the media-upload and authoring-get-media-item siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes between the two modes: pass saveTo for anything over ~0.5MB, otherwise the blob returns inline as base64 capped at maxBytes. It also states the configuration prerequisite (mediaDownload enabled in SPE services config), so the agent knows when the call will fail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media-uploadADestructive
Uploads a file into the Sitecore media library via the SPE mediaUpload service and returns the created media item (ID, path, size, mime type). Overwrites an existing item at the destination unless skipExisting is set. Source is exactly one of sourceUrl (fetched by this server — use this to import from a live site), filePath (local to the machine running this MCP server), or content (base64). Requires in the CM's SPE services config.
| Name | Required | Description | Default |
|---|---|---|---|
| alt | No | Alt text to set on the media item after upload. | |
| content | No | The file bytes as base64. Suits small files only — prefer sourceUrl or filePath for anything sizable. Supply this, sourceUrl or filePath. | |
| database | No | The database holding the media library. Defaults to master. | master |
| filePath | No | Path to a file on the machine running this MCP server. Refused over the HTTP transport unless MEDIA_LOCAL_FILE_ROOT names a directory to confine it to. Supply this, sourceUrl or content. | |
| sourceUrl | No | http(s) URL to fetch the bytes from (e.g. an image on the site being migrated). Supply this, filePath or content. | |
| skipUnpack | No | When true, store an uploaded .zip as a single media item instead of unpacking it. | |
| destination | Yes | Media library path for the item, including the file name with extension (e.g. 'Project/Stride/Corporate/Migrated/team-photo.jpg' — the '/sitecore/media library/' prefix is optional), or the GUID of an existing media item to overwrite. The item is named after the file name up to its FIRST dot, with characters Sitecore will not accept in a name removed, so 'v1.2 asset.jpg' becomes an item called 'v1' — avoid dots in the name itself. The response reports the name the item actually got. | |
| skipExisting | No | When true, leave an existing item at the destination untouched instead of overwriting it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavioral context beyond the annotations: overwrite-by-default with an explicit opt-out, the mutually exclusive source modes, the fact that filePath is refused over HTTP unless MEDIA_LOCAL_FILE_ROOT confines it, and the fields returned (ID, path, size, mime type) despite no output schema. This is exactly what a destructive upload tool needs to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and return value, then the overwrite risk, then the source modes and prerequisite. No filler; every clause carries information an agent needs before invoking.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description covers what it does, what it returns, what it overwrites, the source options, and the server-side prerequisite. Annotations already carry the destructive/open-world profile, so nothing essential is missing before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 is the baseline, but the description adds cross-parameter framing the schema only states piecemeal: 'Source is exactly one of sourceUrl, filePath, or content', plus scenario guidance that sourceUrl is for importing from a live site. It reinforces rather than extends the destination naming semantics, which live entirely in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Uploads a file into the Sitecore media library') plus the mechanism ('via the SPE mediaUpload service') and the return shape. An agent immediately knows what happens. It stops short of 5 because a near-identical sibling, authoring-upload-media, exists and is never named or differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives actionable context — the SPE config prerequisite ('Requires <mediaUpload enabled="true">') and a scenario hint ('use this to import from a live site') — but never says when to choose this tool over authoring-upload-media or how it relates to media-download. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-add-placeholder-settingC
Adds a placeholder setting to an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to add the placeholder setting to. Supply this or path. | |
| key | Yes | The key of the placeholder setting to add. | |
| path | No | The path of the item to add the placeholder setting to. Supply this or id. | |
| database | No | The context database. Sent when addressing the item or the placeholder setting by ID -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The language version of the item to add the placeholder setting to. | |
| finalLayout | No | Specifies layout to add the rendering placeholder setting to. If 'true', the final layout is used, otherwise - shared layout. | |
| placeholderSettingId | No | The ID of the placeholder setting to add. Supply this or placeholderSettingPath. | |
| placeholderSettingPath | No | The path of the placeholder setting to add. Supply this or placeholderSettingId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered, but the description adds nothing beyond the name: no detail on overwrite behavior if the setting already exists, idempotency, required item state, or permissions. For a mutation with no output schema, the description should carry more of that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though arguably so terse that it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, mutually exclusive addressing options, a layout-selection flag, a mutation operation, and no output schema, the description does not supply enough for confident invocation. The agent must fall back entirely on schema text and has no notion of failure modes or post-conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the id/path, placeholderSettingId/placeholderSettingPath alternatives, database default and finalLayout semantics. The description adds no parameter meaning beyond that, which is the correct baseline 3 when structured fields do the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('adds a placeholder setting') to a specific target ('an item'), so the agent knows what operation is performed. It does not, however, differentiate this tool from closely related siblings such as presentation-add-rendering, presentation-set-rendering-parameter, or presentation-remove-placeholder-setting, leaving the agent to infer which presentation mutation applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. that the item must have a layout), and no mention of alternatives or when NOT to use it. The agent gets no routing help between this and the other presentation-* mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-add-renderingA
Adds a rendering to presentation of an item. Writes whatever it is told: use get-allowed-components-by-placeholder first, or add-rendering-to-placeholder, if the layout has to stay valid.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to add the rendering to. Supply this or path. | |
| path | No | The path of the item to add the rendering to. Supply this or id. | |
| index | No | The index at which the Rendering should be inserted. | |
| database | No | The context database. Sent when addressing the item or the rendering by ID -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The language version of the item to add the rendering to. | |
| dataSource | No | The rendering data source. | |
| finalLayout | No | Specifies layout to add the rendering to. If 'true', the final layout is used, otherwise - shared layout. | |
| placeHolder | Yes | The placeholder to add the rendering to. | |
| renderingId | No | The ID of the rendering to add. Supply this or renderingPath. | |
| renderingPath | No | The path of the rendering to add. Supply this or renderingId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds genuinely useful behavior beyond them: 'Writes whatever it is told' discloses that no component-validity check is performed, which explains the risk of an invalid layout. It does not mention permissions, index handling, or what happens to existing renderings at the target placeholder.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and immediately followed by the caution and alternatives. Nothing is repeated from the schema or annotations, and every clause carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema but full parameter documentation and annotations, the description supplies purpose, the key behavioral caveat, and routing advice to safer alternatives. Minor gaps remain (layout side effects, index semantics, error behavior), but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 10 parameters, so the schema already explains id/path, database, finalLayout, renderingId vs renderingPath, etc. The description adds no parameter-level detail of its own, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a rendering to presentation of an item'), which is far more than a restatement of the name. It does point at related tools (get-allowed-components-by-placeholder, add-rendering-to-placeholder), but it does not distinguish itself from the nearest siblings such as presentation-set-rendering or presentation-switch-rendering, which also mutate layout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the safer alternatives and the condition that selects them ('...if the layout has to stay valid'), so the agent knows when this raw-write path is inappropriate. It stops short of stating positively when this tool is the right choice, but the conditional guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-get-layoutARead-only
Gets the layout definition item assigned to an item -- the Sitecore layout item itself (e.g. 'Headless Layout'), not the renderings placed on the page. Use presentation-list-renderings to see a page's components.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve layout for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to retrieve layout for. Supply this or id. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| language | No | Specifies the item language to retrieve layout. | |
| finalLayout | No | Specifies layout to be retrieved. If 'true', the final layout is retrieved, otherwise - shared layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine behavioral context beyond that: it clarifies that the returned object is the layout definition item (e.g. 'Headless Layout') rather than the renderings, which is the key semantic distinction an agent needs. It adds no auth, pagination, or size caveats, though the schema's 'full' description covers the size concern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both earning their place: the first pins the exact return semantics, the second routes to the alternative. The distinguishing scope statement is front-loaded before the alternative reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with a fully documented 6-parameter schema and a readOnlyHint annotation, the description supplies what the structured data cannot: what the returned layout item actually is versus renderings, plus an alternative. No output schema exists, so clarifying the return semantics is valuable; only minor gaps (finalLayout/shared-layout implication) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (id/path mutual option, full, fields, language, finalLayout) is already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('gets the layout definition item assigned to an item') and sharply delimits scope by contrasting it with renderings placed on the page. Names the sibling presentation-list-renderings, so an agent can distinguish it from adjacent presentation tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to presentation-list-renderings when the goal is a page's components, which is a real alternative in this sibling set. It stops short of a full when/when-not matrix (no mention of finalLayout vs shared layout choice or when to prefer this over presentation-get-layout-device), so it's clear context rather than complete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-get-layout-deviceARead-only
Gets a layout device by name, or the default device when name is omitted. On a headless site there is usually only the Default device.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | Name of the device to return, e.g. 'Default'. Omit for the default device. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the bar is lower; the description adds genuine behavior beyond annotations by documenting the default-device fallback when name is omitted and the headless-site single-device case. It stops short of describing the returned device structure or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the core lookup behavior front-loaded and the situational caveat second. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with a fully documented schema and readOnlyHint, the description covers the essentials, including the non-obvious default behavior. There is no output schema and the description doesn't hint at the returned shape, which is a minor remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters are documented in the schema (name, full, fields), including the warning that 'full' is diagnostics-only and very large. The description only restates the name-omitted default, so it adds nothing beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a layout device') plus the key default-fallback behavior when name is omitted, which is a precise scoping statement. It doesn't explicitly contrast with the closely named sibling presentation-get-layout, but the resource is distinct enough that an agent can differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The headless-site note ('there is usually only the Default device') gives useful context for interpreting results, implying the tool's typical use. However, it never states when to prefer this over presentation-get-layout or presentation-list-renderings, so usage is only implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-get-placeholder-settingCRead-only
Gets placeholder setting assigned on an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The id of the item to get placeholder setting for. Supply this or path. | |
| key | No | The key filter. | |
| path | No | The path of the item to get placeholder setting for. Supply this or id. | |
| database | No | The content database. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The language version of the item to retrieve placeholder setting for. | |
| uniqueId | No | The placeholder setting unique id. | |
| finalLayout | No | Specifies layout holding the placeholder setting. If 'true', the final layout is used, otherwise - shared layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the safety profile is covered. The description adds little beyond that – it doesn't explain what a placeholder setting contains, whether it requires specific permissions, or what the return shape looks like (no output schema). It provides minimal extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, efficient sentence that front-loads the action and resource. No wasted words. It is appropriately sized for the amount of information it conveys, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 100% schema coverage, annotations, and no output schema, the description is minimally adequate. It does not explain return values, error conditions, or edge cases (e.g., what happens if both id and path are omitted). An agent could call it correctly based on the schema but might lack context for error handling or interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 7 parameters with meaningful descriptions. The description adds no parameter-specific information beyond what is already in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (placeholder setting assigned on an item). However, it does not differentiate from siblings like presentation-get-layout or presentation-get-rendering, nor does it clarify what a 'placeholder setting' is versus a rendering parameter. The purpose is clear but not distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives, no exclusions. The description only says what it does, not when to choose it over other presentation or authoring get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-get-renderingCRead-only
Gets rendering definition on an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The id of the item to retrieve rendering for. Supply this or path. | |
| path | No | The path of the item to retrieve rendering for. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| language | No | The item language filter. | |
| uniqueId | No | The rendering definition unique id. | |
| dataSource | No | The rendering data source filter. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| placeholder | No | The rendering datasource filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered, but the description adds nothing beyond 'Gets' — no mention of scoping, filtering behavior, or what a 'rendering definition' contains. For a query tool with 8 optional parameters and non-obvious semantics (finalLayout, uniqueId), the description should disclose more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and no hedging — front-loaded and efficient. However, it is arguably under-specified rather than truly concise, so it does not earn a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 8 parameters covering a domain-specific concept (rendering definitions, placeholders, data sources, final vs shared layout), the one-line description leaves an agent without enough context to know what it will receive or how this differs from its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter documentation already lives in the schema (id/path alternatives, database default, finalLayout semantics). The description adds no additional parameter meaning, which is the expected baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (Gets) and a resource (rendering definition on an item), but 'rendering definition' is ambiguous — it reads almost identically to sibling tools like presentation-list-renderings, presentation-get-layout, and presentation-get-rendering-parameter. An agent cannot reliably tell from this sentence alone which of those to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many sibling presentation-* read/set/add/remove tools, and no prerequisites or conditions are stated. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-get-rendering-parameterCRead-only
Gets rendering parameter for a rendering placed on an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item holding the rendering. Supply this or path. | |
| name | No | The name of the rendering parameter to get. | |
| path | No | The path of the item holding the rendering. Supply this or id. | |
| database | No | The context database. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The item language varsion. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| renderingUniqueId | Yes | The unique ID of the rendering holding the rendering parameter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this is a safe read, so the safety profile is covered by structured data. The description adds essentially no behavioral context beyond the operation itself — no note on return shape, what happens when the parameter does not exist, or how id/path addressing affects the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though at this brevity it also forgoes the scoping detail that a tool with id/path duality might benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter tool with no output schema and a readOnly annotation, the description is minimally adequate — the schema fills in all parameters and the annotation covers safety. However, it gives no help with the non-trivial id-vs-path addressing model or finalLayout semantics, so it is only just sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (id vs path addressing, database, language, finalLayout, renderingUniqueId) are fully documented in the schema. The description contributes no additional parameter meaning, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (gets) and a specific resource (rendering parameter for a rendering placed on an item), so an agent can tell it retrieves a parameter value rather than the rendering itself. It stops short of explicitly contrasting with the close sibling presentation-get-rendering, leaving that distinction to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as presentation-get-rendering or presentation-list-renderings. The agent must infer the correct call from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-list-renderingsARead-only
Lists the renderings placed on an item — the components that make up the page. This is the tool to use to see a page's composition; presentation-get-layout returns the assigned layout definition item instead. Returns one row per rendering: Index (position in the device's rendering list, which is what presentation-add-rendering and presentation-set-rendering address), Placeholder (the full placeholder path), RenderingName, RenderingID, Datasource and UniqueId. Set includeParameters to add each rendering's Parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item whose renderings to list (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply this or path. | |
| path | No | The path of the item whose renderings to list (e.g. master:/sitecore/content/Home). Supply this or id. | |
| database | No | The database containing the item. Defaults to master, and is only used with id — a path carries its own prefix. | |
| language | No | The item language. Defaults to the context language. | |
| finalLayout | No | Which layout to read. Defaults to true (the final layout), which is the effective presentation for the page. Set false to read the shared layout only. | |
| placeholder | No | Only list renderings in this placeholder. Supports wildcards, e.g. '*main*'. | |
| includeParameters | No | Include each rendering's raw Parameters string. Off by default: on an SXA or Stride site the URL-encoded parameter blobs are the largest part of the response by far (they more than doubled a 25-rendering page), and they are rarely what the caller is after. Use presentation-get-rendering-parameter to read a single one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint already covers the safety profile, but the description adds real behavioral context: the row-per-rendering return shape, the field list, and a concrete performance warning that includeParameters can more than double the response on an SXA/Stride page. It doesn't cover auth or pagination, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the sibling boundary, then the return contract and the one behavioral knob. Every sentence carries information and none is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in by enumerating the returned fields and their meaning, and covers the default/optional behavior of includeParameters. An agent has everything needed to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description nonetheless adds meaning by explaining why includeParameters is off by default (large URL-encoded blobs) and clarifying that Index is the position that add/set-rendering address, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (renderings placed on an item) and immediately scopes it as 'the components that make up the page.' It explicitly distinguishes itself from the sibling presentation-get-layout, so an agent can pick correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (presentation-get-layout) and the condition that selects it ('returns the assigned layout definition item instead'), and points to presentation-get-rendering-parameter for reading a single parameter. When-to-use and the sibling boundary are both explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-merge-layoutC
Merges final and shared layouts of an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to merge layout for. Supply this or path. | |
| path | No | The path of the item to merge layout for. Supply this or id. | |
| database | No | The database to merge layout for. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | |
| language | No | The item language to merge layout for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this mutates but is not destructive. However, the description does not explain what 'merging' actually does — whether the shared layout is overwritten, whether conflicts are resolved, or what permissions are required. It adds little behavior beyond the annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler and the key information front-loaded. It is efficient, though perhaps too terse to be fully useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description omits what a merge operation produces and how final vs. shared layout precedence is resolved. The annotations only cover the safety profile, leaving a significant behavioral gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, path, database, and language fully, including the id/path exclusivity and database prefix behavior. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Merges') and the exact resources involved ('final and shared layouts of an item'). This distinguishes it reasonably from siblings like presentation-get-layout and presentation-set-layout, though it doesn't name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus presentation-set-layout, presentation-reset-layout, or presentation-get-layout. The agent must infer the scenario purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-remove-placeholder-settingCDestructive
Removes placeholder setting from an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The id of the item to remove placeholder settings from. Supply this or path. | |
| key | No | The placeholder setting key to remove. | |
| path | No | The path of the item to remove placeholder settings from. Supply this or id. | |
| database | No | Database to resolve an id against (default master). | master |
| language | No | The item language filter. | |
| uniqueId | No | The placeholder setting unique id to remove. | |
| finalLayout | No | Specifies layout holding the placeholder setting. If 'true', the final layout is used, otherwise - shared layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, and the description's 'Removes' is consistent with that. However, it adds nothing beyond the annotation: no statement of irreversibility, no note that the removal is permanent or that the setting can be re-added, and no auth/permission context for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, but it is thin for a 7-parameter destructive tool. Conciseness is achieved at the cost of any useful framing, so it sits at minimum viable rather than strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 7-parameter mutation with no output schema and only hint-level annotations, the description should say more: which of key vs uniqueId identifies the setting, the id/path resolution rule, and that finalLayout selects shared vs final layout. None of that is in the prose, leaving the agent dependent on the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 7 parameters documented in-schema, including the id-or-path alternative and the finalLayout layout scope. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: removing a placeholder setting from an item. It is unambiguous about what is deleted, but it offers no differentiation from close siblings like presentation-remove-rendering, presentation-remove-rendering-parameter, or presentation-remove-placeholder-setting's counterpart operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the other presentation-removal tools, nor any prerequisites (e.g., that the setting must exist, or which layout scope applies). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-remove-renderingCDestructive
Removes renderings from an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to remove rendering from. Supply this or path. | |
| path | No | The path of the item to remove rendering from. Supply this or id. | |
| database | No | The database of the item to remove rendering from. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | |
| language | No | The item language filter. | |
| uniqueId | Yes | The rendering definition unique id. | |
| dataSource | No | The rendering data source filter. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| placeholder | No | The rendering placeholder filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether removal is irreversible, whether one or many renderings are affected, whether a layout version must be published, or what permissions are needed. For a destructive mutation it contributes no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is appropriately compact, though the brevity shades into under-specification rather than distilled precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive eight-parameter mutation with no output schema and only destructiveHint from annotations. A one-sentence description leaves consequences, scope, and interaction with layout/finalLayout behavior unexplained, which is not enough context for an agent to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters including uniqueId, finalLayout, and dataSource are already documented in the schema; baseline 3 applies. The description adds no filtering syntax or default behavior beyond what the schema states, and its plural wording slightly obscures whether uniqueId targets a single rendering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Removes renderings from an item'), so the agent knows this deletes presentation renderings rather than layout or placeholder settings. However, it does not differentiate itself from close siblings such as presentation-remove-rendering-parameter or presentation-reset-layout, and the plural 'renderings' mildly clashes with the required single uniqueId in the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The agent gets no help deciding between this tool, presentation-remove-rendering-parameter, or presentation-reset-layout for removing presentation data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-remove-rendering-parameterCDestructive
Removes the specified rendering parameter from the rendering placed on an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item holding the rendering. Supply this or path. | |
| name | No | The name of the rendering parameter to remove. | |
| path | No | The path of the item holding the rendering. Supply this or id. | |
| database | No | The context database. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The item language varsion. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| renderingUniqueId | Yes | The unique ID of the rendering holding the rendering parameter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'removes' is consistent with that. However, it adds no context beyond the annotations: it does not say whether the parameter must currently exist, what happens if the rendering or parameter is not found, or whether the change is layout-scoped (the schema's finalLayout hint is not reflected here).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Appropriately sized for the action, though it is so terse that it leaves behavioral gaps that conciseness does not excuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema covers parameter semantics and no output schema exists, so return values need no explanation. For a destructive mutation, though, the description omits any mention of side effects, error behavior, or whether the removal is scoped to final vs shared layout despite finalLayout being a meaningful parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 7 parameters, so the schema already documents id/path/database/language/finalLayout/renderingUniqueId semantics in detail, including the finalLayout default. The description contributes nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (removes) and resource (rendering parameter on an item's rendering), which is enough to distinguish it from the get/set siblings in the presentation family. It does not explicitly name an alternative tool, but the action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus presentation-set-rendering-parameter or presentation-remove-rendering, and no prerequisites stated. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-reset-layoutCDestructive
Resets the layout of an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to reset the layout for. Supply this or path. | |
| path | No | The path of the item to reset the layout for. Supply this or id. | |
| language | No | Specifies the item language to reset layout for. | |
| finalLayout | No | Specifies layout to be reset. If 'true', the final layout is reset, otherwise - shared layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds nothing beyond that: it doesn't say what a reset destroys, whether the prior layout is recoverable, or how shared vs final layout anchoring behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words and the verb front-loaded. It is efficient, though it verges on under-specification rather than tight conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with four parameters and no output schema, the definition is too thin. It omits what happens to the existing layout, whether a publish is required, and any impact on placeholders/renderings, leaving an agent under-informed despite the destructive annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents id/path/language/finalLayout, including the shared-vs-final distinction. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (resets) and resource (layout of an item), which is better than a bare tautology. However, 'reset' is ambiguous about what the layout reverts to, and it does nothing to distinguish this from close siblings like presentation-merge-layout, presentation-set-layout, or presentation-get-layout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this versus set-layout or merge-layout, nor any precondition. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-set-layoutC
Sets layout for an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to set the layout for. Supply this or path. | |
| path | No | The path of the item to set the layout for. Supply this or id. | |
| database | No | The database the layout is read from. Only used with layoutId; layoutPath carries its own prefix (e.g. master:/sitecore/layout/...). | master |
| language | No | The language of the item to set layout for. | |
| layoutId | No | The ID of the layout to set for the item. Supply this or layoutPath. | |
| layoutPath | No | The path of the layout to set for the item. Supply this or layoutId. | |
| finalLayout | No | Specifies layout to be updated. If 'true', the final layout is set, otherwise - shared layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds nothing about whether an existing layout is overwritten, whether id/path resolution needs read access first, or what happens when both shared and final layouts exist. For a mutation tool this leaves real behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding, so nothing is wasted. But the brevity here reflects under-specification rather than well-earned conciseness, so it sits at the minimum viable level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutating presentation tool with seven parameters and no output schema needs more than one sentence. The description omits the required one-of semantics for id/path and layoutId/layoutPath, the overwrite behavior, and how this differs from the merge and reset layout siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, including the id-or-path and layoutId-or-layoutPath alternatives and the shared-vs-final meaning of finalLayout. The description contributes nothing beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb ('Sets') and resource ('layout for an item'), so the basic action is identifiable. However, it does not distinguish itself from close siblings like presentation-merge-layout or presentation-reset-layout, all of which also act on an item's layout, leaving an agent to guess which mutation applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as merge-layout or reset-layout. The agent gets no routing signal at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-set-renderingC
Updates a rendering placed on an item with new values.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item holding the rendering. Supply this or path. | |
| path | No | The path of the item holding the rendering. Supply this or id. | |
| index | No | New index of the rendering in the layout. | |
| database | No | The context database. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The language version of the item holding the rendering. | |
| uniqueId | Yes | The unique ID of the rendering. | |
| parameter | No | New rendering parameters if specified. | |
| dataSource | No | New rendering data source if specified. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| placeholder | No | New rendering placeholder value if specified. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/non-destructive profile is covered and the description does not contradict it. But the description adds nothing beyond that: it does not say whether unspecified fields are preserved or cleared, whether 'parameter' replaces the whole parameter set, or whether this only affects the final layout by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding or redundancy. It is efficient, though its brevity borders on under-specification rather than true economy of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no output schema and a crowded presentation-related sibling set, the description omits update semantics (merge vs replace), layout-scope behavior, and any routing guidance. The rich schema covers inputs, but the description leaves meaningful gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 10 parameters, including the id-vs-path rule, finalLayout default, and database prefix behavior, so the schema does the heavy lifting. The description adds no parameter meaning beyond the schema's own coverage, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Updates') and resource ('a rendering placed on an item'), so the basic operation is unambiguous. However, it does nothing to distinguish itself from close siblings like presentation-add-rendering, presentation-switch-rendering, presentation-remove-rendering, or presentation-set-rendering-parameter, which an agent would need to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus its siblings (add / switch / remove / set-rendering-parameter), nor any prerequisite context such as needing the layout to exist first. The agent is left to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-set-rendering-parameterC
Adds and updates the specified rendering parameter from the rendering placed on an item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item holding the rendering. Supply this or path. | |
| path | No | The path of the item holding the rendering. Supply this or id. | |
| database | No | The context database. Only sent when addressing by id -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The item language varsion. | |
| parameter | Yes | The rendering parameter to add or update. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| renderingUniqueId | Yes | The unique ID of the rendering holding the rendering parameter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows it's a non-destructive write. The description adds no behavioral context beyond that – no mention of required permissions, what happens on conflict, or side effects. With annotations providing only a minimal safety profile, the description carries the burden for mutation semantics and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, but it is grammatically convoluted and slightly misleading ('from the rendering' for an add/update operation). It is concise but not well-structured or front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, no annotations beyond basic safety, and siblings that could be confused, the description is incomplete. It doesn't explain what happens to existing parameters, whether it merges or replaces, or how it relates to other presentation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters in detail (id/path alternation, database context, finalLayout behavior). The description adds no parameter semantics beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Adds and updates') and a resource ('specified rendering parameter from the rendering placed on an item'), which is clearer than a tautology. However, it is grammatically awkward and doesn't clearly distinguish itself from siblings like presentation-set-rendering or presentation-add-rendering. The phrase 'from the rendering' is confusing for an operation that adds/updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus presentation-set-rendering, presentation-add-rendering, or presentation-remove-rendering-parameter. No context about prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presentation-switch-renderingA
Switches an existing rendering on an item with an alternate one. The switched instance gets a NEW uniqueId (SPE regenerates it); the tool returns one row per switched instance with the new UniqueId, RenderingID, Placeholder and Datasource — use that UniqueId for any follow-up call, the old one no longer exists.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item holding the renderings. Supply this or path. | |
| path | No | The path of the item holding the renderings. Supply this or id. | |
| database | No | The context database. Sent when addressing by ID -- a path carries its own database prefix (e.g. master:/sitecore/content/Home). | master |
| language | No | The language version of the item holding the renderings. | |
| uniqueId | No | The unique ID of the rendering instance to switch. Supply this, oldRenderingId or oldRenderingPath. | |
| finalLayout | No | Target the final layout (default true), where list-renderings' uniqueIds live. False = shared only. | |
| newRenderingId | No | The ID of the new rendering. Supply this or newRenderingPath. | |
| oldRenderingId | No | The ID of the rendering to switch; every instance of it on the item is switched. Supply this, oldRenderingPath or uniqueId. | |
| newRenderingPath | No | The path of the new rendering. Supply this or newRenderingId. | |
| oldRenderingPath | No | The path of the rendering to switch; every instance of it on the item is switched. Supply this, oldRenderingId or uniqueId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds critical behavior the annotations cannot convey: the instance receives a NEW regenerated uniqueId, the old one ceases to exist, and one row is returned per switched instance keyed by the new UniqueId. This is exactly the non-obvious, high-risk detail an agent must know before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads the action, the second carries the essential behavioral and return-value caveats. No filler, no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no output schema, the description supplies the two things the structured data cannot: the ID-regeneration side effect and the shape of the return row. An agent has everything needed to call it and to chain follow-up calls correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 10 parameters is already documented (including the 'supply this or that' alternatives). The description adds no parameter-specific meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Switches') and resource ('an existing rendering on an item') with the replacement target ('an alternate one'). This clearly distinguishes it from siblings like presentation-add-rendering, presentation-set-rendering, and presentation-remove-rendering, which perform different layout mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit post-invocation guidance ('use that UniqueId for any follow-up call, the old one no longer exists'), which is valuable. However, it never states when to choose this tool over alternatives such as presentation-set-rendering or presentation-add-rendering, leaving the selection criterion implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provider-get-itemBRead-only
Gets a Sitecore item by path, ID, Sitecore query or URI.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to retrieve (e.g. {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}). Supply exactly one of path, id, query or uri. | |
| uri | No | The URI of the item to retrieve (e.g. sitecore://master/home). Supply exactly one of path, id, query or uri. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to retrieve (e.g. /sitecore/content/Home). Supply exactly one of path, id, query or uri. | |
| query | No | The Sitecore query to execute (e.g. /sitecore/content/home/*/*). Supply exactly one of path, id, query or uri. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| version | No | The version of the item to retrieve | |
| database | No | The database containing the item. Defaults to master, and is also the drive an id, query or uri resolves against. | |
| language | No | The language of the item to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds no behavioral context beyond that - no note that exactly one identifier must be supplied, no warning about the cost of the full object graph, no database/language default behavior - even though the schema hints at several of these.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and lookup modalities come first and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema and many near-duplicate siblings, the description is minimally adequate: the schema carries the parameter burden, but the lack of sibling routing and of the exactly-one-identifier constraint leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (including the mutually exclusive id/uri/path/query set and the 'full' cost warning) is already documented. The description's restatement of the four lookup forms adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (Sitecore item) and enumerates the accepted lookup forms (path, ID, query, URI), so the agent knows what the tool returns. However, it offers no differentiation from the many sibling getters (item-service-get-item, authoring-get-item, common-get-item-field, etc.), which is exactly where an agent would need help.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives among the large family of get-item tools. The only usage signal is implicit in the list of identifier forms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query-graphql-edgeADestructive
Executes a GraphQL query against the Sitecore 'edge' endpoint and returns the data as JSON. The query is syntax-checked before it is sent. Note what the endpoint can see: 'edge' serves published content only (unpublished master changes are invisible to it), while 'master' / preview schemas read the authoring database. Use introspection-graphql-edge for the schema SDL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The GraphQL query document, e.g. 'query($path: String!) { item(path: $path, language: "en") { id name } }'. | |
| variables | No | The query's variables as a JSON object string, e.g. '{"path": "/sitecore/content/Home"}'. Parsed and sent as the GraphQL variables object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: the query is syntax-checked before being sent, and the endpoint only sees published content. However, annotations declare readOnlyHint=false and destructiveHint=true, and the description never hints that the document can contain mutations or otherwise change state — an agent reading only the prose would assume a safe read. The visibility/validation details earn credit, but the destructive capability is left undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste: the core action and return type come first, then the syntax-check behavior, then the endpoint-visibility caveat and schema-discovery pointer. Each sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers the return format, validation behavior, endpoint semantics, and where to find the SDL. The one gap is that a destructive-capable tool should say what can be sent (query vs. mutation) and any auth expectations; otherwise it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents both 'query' (with an example document) and 'variables' (with a JSON-string example). The description adds no syntax or format meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Executes a GraphQL query against the Sitecore "edge" endpoint'), the return format (JSON), and explicitly contrasts itself with the 'master'/preview path and points to introspection-graphql-edge for the SDL. An agent can pick this over query-graphql-master and introspection-graphql-edge without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear selecting condition: 'edge' serves published content only, while 'master'/preview read the authoring database, which effectively tells the agent when to choose the sibling instead. It also routes schema discovery to introspection-graphql-edge. It stops short of explicit when-not guidance (e.g., whether mutations are permitted here), so it falls just below the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query-graphql-masterADestructive
Executes a GraphQL query against the Sitecore 'master' endpoint and returns the data as JSON. The query is syntax-checked before it is sent. Note what the endpoint can see: 'edge' serves published content only (unpublished master changes are invisible to it), while 'master' / preview schemas read the authoring database. Use introspection-graphql-master for the schema SDL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The GraphQL query document, e.g. 'query($path: String!) { item(path: $path, language: "en") { id name } }'. | |
| variables | No | The query's variables as a JSON object string, e.g. '{"path": "/sitecore/content/Home"}'. Parsed and sent as the GraphQL variables object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is partly covered. The description adds genuinely useful behavior ('the query is syntax-checked before it is sent') and the endpoint-visibility rule, but it never mentions that this endpoint can execute GraphQL mutations or other writes — a notable omission for a tool flagged destructive, and one that leaves the annotation unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then the syntax-check behavior, then the endpoint/routing note. Every sentence carries information; the only mild slack is that the edge-vs-master aside is about endpoint selection rather than this tool's mechanics, but it is still decision-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states that data is returned as JSON, and it covers error-adjacent behavior (pre-send syntax checking) plus endpoint semantics. The main remaining gap is write/mutation capability, which the destructive annotation implies but the description never confirms.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (query, variables) carry their own examples and format notes in the schema. The description adds no syntax, escaping, or variables-handling detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Executes a GraphQL query against the Sitecore master endpoint') and the return form (JSON), then distinguishes the endpoint from its sibling by explaining that 'edge' serves published content only while 'master'/preview schemas read the authoring database. An agent can tell query-graphql-master apart from query-graphql-edge and authoring-graphql 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear selection criterion (master/preview reads the authoring DB and sees unpublished changes, edge does not) and routes schema discovery to a named alternative, introspection-graphql-master. It stops short of explicitly stating 'use query-graphql-edge when you only need published content', so the routing is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run-powershell-scriptADestructive
Runs a PowerShell script and returns the output. Before writing a script that changes many items, read the guide://bulk-update resource: it carries the pattern a mass write needs (every ID resolved from the instance, a named subtree as the root, a dry run the user approves, BeginEdit/EndEdit with a per-item try/catch).
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | The Powershell script to run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered by structured data. The description adds genuinely useful behavioral context beyond that: the mass-write pattern (dry run the user approves, BeginEdit/EndEdit with per-item try/catch, IDs resolved from the instance). It omits execution environment, permission requirements, and timeout/output-size limits, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, zero filler. The second sentence is long but every clause is actionable (the resource to read and the specific pattern it carries).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool whose destructive/open-world nature is declared via annotations, the description covers purpose, return behavior, and a safe-workflow pointer. It stops short of stating execution prerequisites (auth/permissions, host context) that would matter for an arbitrary code-execution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema fully documents 'script'. The description adds no syntax, format, or constraint detail about the script argument itself; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Runs a PowerShell script') plus the return behavior ('returns the output'). No sibling tool competes for arbitrary script execution — get-powershell-documentation only retrieves documentation — so the agent can route unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit conditional: before writing a script that changes many items, read guide://bulk-update. That is clear, actionable context. However, it never says when NOT to reach for this tool (e.g. single-item edits better served by item-service-edit-item or authoring-update-item), so the alternative-routing half is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-site-pagesARead-only
Searches a site's pages by name or title, case-insensitively, on a substring match against Name, display name, Title and NavigationTitle. Returns { Matched, Returned, Truncated, Root, SiteName, Pages: [{ ID, Path, Template, TemplateID }] }. An item counts as a page when it has presentation (a layout on the item or on its template's standard values), which is what makes it addressable as a page — not a guess from template naming.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Any item path inside the site, used to work out which site is meant (e.g. /sitecore/content/Stride/Cova/Home). Supply this or siteName. | |
| limit | No | Maximum rows to return (default 500). Matched always reports the true count, and Truncated says whether rows were withheld. | |
| query | Yes | The text to look for in the page's name, display name, Title or NavigationTitle. | |
| database | No | The database to read. Defaults to the site's own database, or master. | |
| rootPath | No | Scan this subtree instead of the site's home item, e.g. to list one section. Must be inside the site. | |
| siteName | No | The site name as Sitecore knows it (e.g. 'Cova'). Use list-sites to see the names. Supply this or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint already covering the safety profile, the description adds real behavioral context: it spells out the return shape (Matched/Returned/Truncated/Root/SiteName/Pages) and the page-addressability rule, which prevents agents from assuming template-name heuristics. It stops short of stating permission requirements, performance characteristics, or how the default 500-row cap interacts with large sites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the verb+match semantics, then the return shape, then the page definition. Dense but every clause carries information; the page-definition sentence could arguably be trimmed but it earns its place by preventing false negatives/positives from template-name guessing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description documents the return envelope including truncation fields, and the schema covers all six parameters with defaults and the path/siteName either-or. The main gap is routing guidance against the many sibling search and page-listing tools, which is left to the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 genuinely adds semantics the schema does not: the query is case-insensitive and substring-based, and it enumerates the four fields searched. That is meaningful matching behavior an agent cannot derive from the parameter schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search a site's pages) and pins down the matching semantics (case-insensitive, substring, against Name/display name/Title/NavigationTitle). The explicit definition of what qualifies as a 'page' (has a layout, directly or via template standard values) separates it from generic item-search siblings like item-service-search-items and authoring-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the tool is site-scoped and page-only, and parameters reference 'list-sites' for site names, so an agent can infer it should use this instead of full-tree item search. But there is no explicit when-to-use/when-not, no named alternative (e.g. get-pages-by-site, item-service-search-items), and no statement that path or siteName is required to resolve the site at call time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-add-role-memberC
Adds a member to a Sitecore role.
| Name | Required | Description | Default |
|---|---|---|---|
| members | Yes | The members to add to the role (comma-separated list of users or roles, e.g. 'sitecore\user1,sitecore\user2') | |
| identity | Yes | The identity of the role to add members to (e.g. 'CustomRole' or full path 'sitecore\CustomRole') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the write-but-non-destructive profile is already covered. The description adds nothing beyond that: no idempotency behavior, no permission requirements, no indication of what happens when a member is already in the role.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though the extreme brevity borders on under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully documented parameters, no nested objects, and no output schema, the structured fields carry most of the load. The description is minimally sufficient but omits any behavioral or failure-mode context an agent would want for a mutation call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters documented including format examples and comma-separated syntax. The description contributes no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (adds) and resource (member to a Sitecore role), so the operation is unambiguous. It does not distinguish itself from nearby siblings such as security-remove-role-member or security-get-role-member, but the action itself is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the related security role tools, and no mention of prerequisites such as the role needing to exist first. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-disable-userCDestructive
Disables the Sitecore user account.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety profile is partly covered. However, the description adds nothing beyond them: it does not say whether the change is reversible (or that security-enable-user reverses it), whether active sessions are revoked, or what permissions are required for a destructive account mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with zero filler. It is efficient, though the terseness is also the source of the definition's missing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive account-mutation with an undocumented required parameter and no output schema, the definition is far too thin. It should at minimum identify the identity format, the reversibility, and how it differs from remove-user and unlock-user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single required 'identity' parameter is completely undocumented — it is unclear whether this is a username, domain-qualified login, email, or GUID. The description does not compensate for that gap in any way.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (disables a Sitecore user account), so an agent knows exactly what operation runs. It does not distinguish itself from close siblings such as security-enable-user, security-remove-user, or security-unlock-user, which share the same resource and similar verbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given and no alternatives are named, even though the sibling list contains obvious confusables (remove-user for deletion, unlock-user for lockouts, enable-user for reversal). The agent must infer that 'disable' is a reversible soft-deactivation rather than a removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-enable-userC
Enables the Sitecore user account.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and 'Enables' is consistent with that. Beyond the annotations, though, the description says nothing about what enabling actually does (login capability, effect on existing sessions/permissions) or what permissions are required. It adds no behavioral context of its own.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the action is front-loaded. However, its brevity comes from under-specification rather than disciplined editing, so it does not earn top marks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing account tool with no output schema and an undocumented parameter, the description is far too thin. It omits what the operation affects, required privileges, and the identity format, leaving the agent to guess before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'identity' has 0% schema description coverage and the description never mentions it. It is unclear whether identity is a username, an email, or a domain-qualified account name, and the description does nothing to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Enables') and resource ('the Sitecore user account'), so the agent knows exactly what state change occurs. It does not, however, differentiate this from close siblings like security-unlock-user or security-set-user, which also modify account state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this rather than security-disable-user (the inverse), security-unlock-user, or security-set-user, and no mention of prerequisites such as admin rights. Usage must be inferred entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-export-accountA
Exports (serializes) a Sitecore user or role to the CM's own filesystem and returns the file path. Requires SPE 8.0 or later — earlier versions fail with a NullReferenceException (SPE issues #1369, #1370). On SitecoreAI prefer Sitecore CLI serialization.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Exact server-side file to serialize to. Not with root. | |
| root | No | Server-side directory to serialize into. Defaults to Sitecore's serialization folder. Not with path. | |
| identity | Yes | The account to export, e.g. 'sitecore\admin' or 'sitecore\Author'. | |
| accountType | Yes | Whether the identity names a user or a role. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial context beyond them: the side effect is a filesystem write on the CM server, the response is a file path, the operation throws a NullReferenceException on pre-8.0 SPE (with issue references), and it should be avoided on SitecoreAI. This is exactly the kind of behavioral disclosure that earns a top score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with purpose and output, followed by the version prerequisite and platform caveat. No filler, though the parenthetical issue references and version caveat add some density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the return value (file path), discloses the write side effect and its environment requirements, and warns about failure modes. An agent has everything needed to decide whether to call it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (path, root, identity, accountType) are already documented, including their mutual exclusivity. The description adds no parameter-level detail such as path syntax or how identity strings interact with accountType, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Exports (serializes) a Sitecore user or role'), names the destination ('the CM's own filesystem'), and reveals the return value ('the file path'). An agent immediately knows this is a file-producing export operation, distinct from the read/get and import/remove security siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear routing rule for SitecoreAI ('prefer Sitecore CLI serialization') and a hard prerequisite ('Requires SPE 8.0 or later'). It does not explicitly name security-import-account as the inverse tool or state when-not-to-use on CM, so guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-current-userCRead-only
Get the current Sitecore user.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so safety is covered. The description adds no behavioral traits beyond that – it does not explain what 'current user' means in this context (e.g., tied to authentication, returns limited fields) or any side effects. With annotations present, the bar is lower, but this description offers no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. It is front-loaded and appropriately sized, though it could be slightly more specific about scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (read-only, one optional parameter, no output schema), the description is minimally adequate. However, it fails to clarify how 'current user' is determined (e.g., from authentication context) or what fields are returned, which might be important given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single optional parameter 'full' is fully documented in the schema, including its effect and warnings. The description appropriately does not repeat this, so baseline 4 applies for zero required parameters and high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the current Sitecore user' states a clear verb and resource, identifying it as a read operation. However, it does not distinguish it from the sibling 'security-get-user', which presumably retrieves a specified user, leaving potential ambiguity without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus security-get-user or other security tools. There is no mention of context (e.g., current authenticated session) or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-domainBRead-only
Get Sitecore domains. Omit name to return every domain.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | No | The domain to return, e.g. 'sitecore'. Omit for all domains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and the description adds no behavioral context beyond that: no indication of result size, ordering, or permissions. Its only substantive claim — omitting name returns everything — merely repeats the schema's own parameter description verbatim, so the description carries little incremental value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the action and scope come first. The second sentence is largely redundant with the schema, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only getter with no output schema and no required parameters, the description is adequate but thin: the agent learns the verb, resource, and the omit-name behavior, but nothing about the shape of the returned domain data. It is the minimum viable coverage rather than a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents both `name` and the diagnostics-only `full` flag. The description restates the `name` behavior without adding format, case-sensitivity, or interaction details between the two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get Sitecore domains" states a specific verb and resource, and the name/verb pairing makes it easy to distinguish from the write siblings security-new-domain and security-remove-domain. It stops short of explicitly naming those siblings or scoping itself against security-get-user/security-get-role, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Omit name to return every domain" gives a selection rule for one parameter, which implies the two usage modes (single domain vs. all domains). There is no guidance on when to prefer this tool over the other security-get-* tools, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-item-aclBRead-only
Gets the access control list (ACL) of a Sitecore item — the rules set on the item itself. Narrow it with identity or filter to one account.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to get ACL for. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item to get ACL for (e.g. /sitecore/content/Home). Supply this or id. | |
| filter | No | Return only the rules for accounts matching this wildcard pattern (e.g. 'sitecore\*'). | |
| database | No | Database to resolve an id against (default master). | |
| identity | No | Return only the rules for this exact account (e.g. 'sitecore\Author'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read, so the bar is lower. The description adds useful scoping context ('rules set on the item itself'), clarifying this is item-level ACL rather than effective/inherited permissions, but discloses nothing about output structure or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, and the em-dash clause plus the narrowing sentence both earn their place. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full schema coverage and a readOnly annotation, the description covers scope and result-narrowing adequately. It omits any description of the returned ACL entry structure, but no output schema exists to carry that, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented, giving a baseline of 3. The description adds only a usage framing for identity/filter ('narrow... to one account'), which is marginal beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Gets') and resource ('access control list (ACL) of a Sitecore item'), and the clause 'the rules set on the item itself' narrows the scope helpfully. It doesn't explicitly name a sibling (e.g. security-set-item-acl / security-test-item-acl) to differentiate, so it falls short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'Narrow it with identity or filter to one account,' which is parameter-level advice rather than when-to-use guidance. There is no statement of when to prefer this over security-test-item-acl or the set counterpart, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-roleARead-only
Get Sitecore roles, by exact identity or by wildcard filter. Supply exactly one of identity or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| filter | No | Wildcard pattern, e.g. 'sitecore\*' or '*Author*'. Supply this or identity. | |
| identity | No | Exact role name, e.g. 'sitecore\Author'. Supply this or filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, so the bar is lower. The description does add one real behavioral fact not explicit in the schema: identity and filter are mutually exclusive ('exactly one'). It still omits return shape and result-size behavior (the 'full' flag's 100,000+ char caveat lives only in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both earning their place: purpose/scope first, invocation constraint second. No filler, no restatement of the name, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and for a low-complexity read tool with fully documented params and readOnlyHint coverage, the description supplies what an agent needs to select and invoke it. Only a brief note on what is returned (a list of roles) is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the exact-vs-wildcard distinction and the mutual-exclusivity rule already implied by the schema ('Supply this or identity'), adding marginal but not new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get Sitecore roles') and clarifies the two lookup modes (exact identity vs wildcard filter), which separates it from siblings like security-get-role-member. Clear and specific, though it never names an alternative tool to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an operational invocation rule ('Supply exactly one of identity or filter') but says nothing about when this tool is preferred over related siblings such as security-get-role-member or security-get-domain. Usage is implied by the constraint rather than framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-role-memberCRead-only
Get members of a Sitecore role.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| recurse | No | If set to true, gets all members recursively (including members of nested roles) | |
| identity | Yes | The identity of the role to get members from (e.g. 'sitecore\Author') | |
| roleOnly | No | If set to true, only gets role members (excluding users) | |
| userOnly | No | If set to true, only gets user members (excluding roles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safe-read profile, so the description needn't repeat it. Beyond that, the description adds nothing: it doesn't state whether results are paginated, how large member lists behave, or what shape the members take. For a list tool with no output schema, that is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It is arguably terse relative to a 5-parameter tool, but nothing in it is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a fully documented schema and a readOnly annotation, the description only needs to round out usage and result expectations. It supplies neither, leaving the agent without guidance on recursion defaults or output shape, though the schema carries most of the calling burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (identity, recurse, roleOnly, userOnly, full) are already documented in the schema, including the notable 'very large, diagnostics only' warning on full. The description repeats none of this, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get members of a Sitecore role'), which separates it from security-get-role (the role itself) and security-add-role-member / security-remove-role-member (mutations). However, it never names those siblings or clarifies the distinction explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives mentioned. An agent must infer from the name alone that this is the read counterpart to add/remove-role-member and distinct from get-role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-get-userARead-only
Get Sitecore users, by exact identity or by wildcard filter. Supply exactly one of identity or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| filter | No | Wildcard pattern, e.g. 'sitecore\*'. Supply this or identity. | |
| identity | No | Exact account name, e.g. 'sitecore\admin'. Supply this or filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes this is a safe read, so the bar is lower. The description adds the useful 'exactly one of' exclusivity rule, but discloses nothing about return volume, paging, or what happens with zero matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core purpose is front-loaded and the constraint follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with three fully documented optional parameters, the description covers what is needed to call it correctly. Since there is no output schema, a brief note on the returned fields/format would have fully closed the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents full, filter, and identity. The description reinforces the identity/filter exclusivity but omits the 'full' parameter and its heavy-payload warning, adding little beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (Sitecore users) plus the retrieval modes (exact identity or wildcard filter). The resource name 'users' distinguishes it from sibling security tools like security-get-role and security-get-domain, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete usage constraint, 'Supply exactly one of identity or filter,' which tells the agent how to call it. However, it offers no guidance on when to prefer this tool over adjacent read tools or how the two modes differ in result shape.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-import-accountADestructive
Imports (deserializes) a Sitecore user or role from the CM's filesystem, overwriting the account's current state with the serialized one. The .user / .role file must exist — export it first with security-export-account. On SitecoreAI prefer Sitecore CLI serialization.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Exact server-side .user / .role file to deserialize. Not with root. | |
| root | No | Server-side directory to deserialize from. Defaults to Sitecore's serialization folder. Not with path. | |
| identity | Yes | The account to import, e.g. 'sitecore\admin' or 'sitecore\Author'. | |
| accountType | Yes | Whether the identity names a user or a role. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuine value beyond that by spelling out what is destroyed ('overwriting the account's current state with the serialized one') and the filesystem dependency. It does not describe reversibility or return behavior, but the key destructive consequence is explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the operation and its destructive consequence, followed by prerequisite and platform caveat. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description supplies the prerequisite, the destructive semantics, and a platform-specific alternative, and annotations cover the safety profile. It is essentially complete, with only minor omissions (reversibility, error conditions) left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the path/root mutual exclusion and the identity/accountType semantics. The description adds only the incidental '.user / .role file' framing, so baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Imports (deserializes) a Sitecore user or role') plus scope ('from the CM's filesystem'), which cleanly distinguishes it from siblings like security-export-account, security-new-user, and security-set-user. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite and routing: the .user/.role file must already exist and should be created with security-export-account first, plus a platform-specific alternative (Sitecore CLI on SitecoreAI). It stops short of stating when not to use this tool versus other account-mutation tools, so it is clear context without full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-new-domainC
Creates a new Sitecore domain.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| name | Yes | The name of the domain to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, covering the basic safety profile. The description adds nothing beyond that: no mention of required admin permissions, whether the domain is created empty, or what happens if the name already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clean sentence with zero waste and the action front-loaded. It is efficient but perhaps too minimal to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter creation tool with full schema coverage and annotations, this is minimally viable. It stops short of mentioning permission requirements or side effects that an agent performing a security mutation would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (name, full) are already documented in the schema, including the 'full' diagnostics warning. The description adds no parameter meaning on top, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Creates a new Sitecore domain'), so an agent knows exactly what the tool does. However it does nothing to distinguish itself from siblings like security-new-role, security-new-user, or security-get-domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the other security-new-* tools or when a domain is the right construct. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-new-roleC
Creates a new Sitecore role.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| identity | Yes | The identity of the role to create (e.g. 'CustomRole' or full path 'sitecore\CustomRole') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating-but-non-destructive profile is covered. The description adds nothing beyond that: it does not say what happens if the role already exists, whether the operation is idempotent, what permissions are required, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, but it is under-specified rather than concise — the entire description is essentially a restatement of the tool name with no additional information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description omits anything an agent would want before writing: duplicate-role behavior, required permissions, and the shape of the result. The annotations cover only the coarse safety profile, leaving the behavioral picture incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a helpful example of both short and full-path identity formats plus a clear warning that 'full' produces very large diagnostic output. The description adds no parameter meaning of its own, so the baseline of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Creates a new Sitecore role'), which clearly separates it from siblings like security-remove-role, security-get-role, and security-new-domain. It stops short of naming an alternative or disambiguating from related role tools, so it earns 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus security-add-role-member, security-new-user, or security-export/import-account, nor any prerequisite (e.g. admin context) or condition under which creation should be avoided. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-new-userC
Creates a new Sitecore user.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| No | |||
| comment | No | ||
| enabled | No | ||
| fullName | No | ||
| identity | Yes | ||
| password | No | ||
| portrait | No | ||
| profileItemId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write operation. The description adds nothing beyond that: it does not mention required permissions, duplicate-handling behavior, password policies, or any side effects, so it provides no behavioral context beyond what annotations already supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is structurally clean and gets straight to the point, though its extreme brevity for a 9-parameter creation tool makes it minimally informative rather than optimally sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, only 1 required, low schema coverage, no output schema, and minimal annotations), the description is far too sparse. It omits usage guidance, parameter details, and behavioral context, leaving the agent with insufficient information to invoke the tool correctly beyond its basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 9 parameters with only 11% schema description coverage, and the description does not mention a single parameter. It does not clarify the required identity, the roles of email, password, enabled, fullName, comment, or the diagnostic 'full' parameter, leaving all parameter semantics unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Creates) and resource (Sitecore user), making the tool's intent clear. However, it does not differentiate this tool from sibling creation tools like security-new-role, security-new-domain, or security-import-account, which would require the agent to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as security-import-account, security-set-user, or security-new-role. The description offers no context, prerequisites, or exclusions, leaving the agent to guess based solely on the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-remove-domainBDestructive
Removes a Sitecore domain.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the domain to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the safety profile. The description adds no further behavioral context such as irreversibility, permissions required, or effects on related items.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool, the annotations and schema cover the essentials. However, the description offers no additional context about the removal's impact or any constraints, leaving it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is fully documented in the schema. The description adds no extra meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Removes') and resource ('Sitecore domain'), making the operation clear. It does not explicitly differentiate itself from siblings like security-new-domain or security-get-domain, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any prerequisites or warnings beyond the implicit destructive nature. The description simply states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-remove-roleCDestructive
Removes a Sitecore role.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | The identity of the role to remove (e.g. 'CustomRole' or full path 'sitecore\CustomRole') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether removal is irreversible, what happens to existing role members or assigned ACLs, or what permissions are required. For a destructive operation this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero padding and the verb-resource pair front-loaded. It is efficient but so terse that it borders on under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive mutation with no output schema and no annotation detail beyond the destructive hint. The description should say what happens on success/failure, whether member assignments are affected, and any prerequisite permissions; none of that is present, leaving the agent to call it blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'identity' parameter is fully documented in the schema, including the accepted path form. The description adds no format, resolution, or error-handling detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Removes a Sitecore role'), so an agent can tell it apart from security-new-role or security-remove-role-member by name. However, it makes no explicit differentiation from those siblings in the text, and gives no scope detail (e.g. whether removal is permanent or path-based).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives such as security-remove-role-member (which removes a member from a role, not the role itself) or security-remove-user. An agent must infer the distinction purely from the tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-remove-role-memberCDestructive
Removes members from a Sitecore role.
| Name | Required | Description | Default |
|---|---|---|---|
| members | Yes | The members to remove from the role (comma-separated list of users or roles, e.g. 'sitecore\user1,sitecore\user2') | |
| identity | Yes | The identity of the role to remove members from (e.g. 'CustomRole' or full path 'sitecore\CustomRole') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the danger is conveyed. The description adds nothing beyond that: no mention of irreversibility, whether identities are case-sensitive, what happens if a member is absent, or whether the operation is transactional across the comma-separated list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description is too thin. It should say what is destroyed (role membership entries only, not the users/roles themselves), whether the action is reversible, and confirm behavior when a listed member is not in the role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters documented including a comma-separated example for 'members' and a path example for 'identity'. Baseline 3 applies since the schema already carries full semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (removes) and resource (members) scoped to Sitecore roles. Clear enough to distinguish from security-add-role-member and security-get-role-member, though it doesn't explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites. With sibling security-add-role-member right there, a routing hint would have been trivial to add, but none is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-remove-userCDestructive
Removes the Sitecore user.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds no behavioral context beyond restating removal: it does not mention permissions, reversibility, side effects, or what happens to related data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is efficient, though extremely terse for a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive one-parameter tool, the description should at least clarify the identity format and any prerequisites. Annotations cover the safety signal, but the description leaves key invocation details absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required 'identity' parameter. The description never explains whether identity is a username, email, GUID, or domain-qualified name, so it fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Removes' plus 'the Sitecore user.' An agent can identify the operation, but the description does not distinguish it from nearby siblings such as security-disable-user or security-remove-role-member.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no alternative tool recommendation, and no prerequisite or warning. The agent must infer all usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-set-item-aclADestructive
Changes the access rules on a Sitecore item. action 'add' appends one rule and leaves the others; 'replace' discards every existing rule on the item and leaves only this one; 'clear' removes all rules and adds nothing. Read the current rules with security-get-item-acl and check effective rights with security-test-item-acl.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item (e.g. /sitecore/content/Home). Supply this or id. | |
| action | Yes | add appends a rule; replace discards all existing rules and leaves only this one; clear removes all rules. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| database | No | Database to resolve an id against (default master). | master |
| identity | No | The account the rule applies to, e.g. 'sitecore\Author'. Required for add and replace; not allowed for clear. | |
| passThru | No | Return the processed item, projected to its identity. | |
| accessRight | No | The access right the rule covers, e.g. 'item:read'. Required for add and replace; not allowed for clear. | |
| propagationType | No | How far the rule propagates: Entity is this item only, Descendants the whole subtree. Sitecore has no children-only propagation. | Entity |
| securityPermission | No | Whether the rule allows or denies the right, or allows/denies inheritance of it. | AllowAccess |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description adds genuine value by spelling out exactly what each mode destroys ('replace' discards every existing rule, 'clear' removes all rules and adds nothing). It doesn't mention required permissions or the response shape, but the destructive semantics are made concrete beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the destructive action semantics are front-loaded and the sibling routing is placed at the end. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no output schema but full annotation coverage and 100% schema coverage, the description covers purpose, mode semantics, and related-tool routing adequately. Missing only peripheral details like auth requirements or return behavior, which are minor given the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (including the action enum, identity, accessRight, propagationType, securityPermission) is documented in the schema itself. The description restates the action semantics but adds no syntax or format detail beyond the structured fields, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Changes the access rules on a Sitecore item') and immediately distinguishes itself from the sibling read tools by naming security-get-item-acl and security-test-item-acl. An agent can tell what this tool does and where it sits in the security family 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The add/replace/clear explanation effectively tells the agent which mode to pick, and it explicitly routes to security-get-item-acl for reading current rules and security-test-item-acl for checking effective rights. It stops short of stating when NOT to use the tool or any prerequisite permissions, so it's strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-set-item-lockADestructive
Locks or unlocks a Sitecore item for editing. Independent of delete protection — use security-set-item-protection for that.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item (e.g. /sitecore/content/Home). Supply this or id. | |
| force | No | action 'lock' only: take the lock even if another user holds it. | |
| action | Yes | Whether to lock the item or release its lock. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| database | No | Database to resolve an id against (default master). | |
| passThru | No | Return the item, projected to its identity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is covered. The description adds the useful behavioral context that this is independent of delete protection, but does not explain side effects such as what happens to an existing lock held by another user or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with the disambiguation clause immediately following. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete enough for a lock/unlock mutation: schema covers all 8 parameters and annotations cover the safety profile, and the description clarifies scope relative to protection. No output schema exists, but the return shape is not essential to correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (force, action, id/path, full, passThru) is documented in the schema itself. The description adds no parameter-level detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (locks/unlocks) and resource (Sitecore item for editing), and explicitly distinguishes itself from the sibling security-set-item-protection. An agent can identify the tool's job and its boundary 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (security-set-item-protection) and the condition that separates the two concerns (editing lock vs delete protection). It does not spell out when lock vs unlock applies, but that is covered by the action enum, so the guidance is clear though not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-set-item-protectionADestructive
Protects or unprotects a Sitecore item against deletion and renaming. Independent of the editing lock — use security-set-item-lock for that.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item. Supply this or path. | |
| full | No | Return the unprojected .NET object graph. Very large (100,000+ chars/item); diagnostics only. | |
| path | No | The path of the item (e.g. /sitecore/content/Home). Supply this or id. | |
| action | Yes | Whether to protect the item or remove its protection. | |
| fields | No | Extra Sitecore field names to include, e.g. ['Title']. Ignored when full is true. | |
| database | No | Database to resolve an id against (default master). | |
| passThru | No | Return the item, projected to its identity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true), so the bar is lower. The description adds real value on top by defining what protection actually does to the item — blocks deletion and renaming — and clarifies the independence from the editing lock, which prevents a common misuse. Auth requirements and persistence details remain unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste, purpose front-loaded and the sibling disambiguation following immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema and full schema description coverage, the description covers purpose, scope, and sibling routing adequately. It leaves return behavior to the schema and doesn't discuss permission requirements, a minor gap but not a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, path, database, action, fields, full, and passThru. The description adds no parameter-level meaning beyond that, which makes the baseline 3 the correct score rather than a higher one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (protects/unprotects), the resource (a Sitecore item), and precisely what is being protected against (deletion and renaming). It explicitly distinguishes itself from the adjacent sibling security-set-item-lock, so an agent can route between the two without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool (security-set-item-lock) and the concept that separates them (the editing lock), giving clear context for when to pick this one. It stops short of full when-not guidance (e.g., required permissions or when protection should be avoided), so it isn't a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-set-userC
Updates properties of a Sitecore user account.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email for the user | ||
| comment | No | Comment for the user | |
| enabled | No | Enable or disable the user | |
| fullName | No | Full name of the user | |
| identity | Yes | The identity of the user to update (e.g. 'admin' or full path 'sitecore\admin') | |
| password | No | The new password for the user | |
| portrait | No | Portrait for the user | |
| startUrl | No | Start URL for the user | |
| profileItemId | No | Profile item ID for the user | |
| clientLanguage | No | Client language for the user | |
| isAdministrator | No | Set the user as an administrator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety is covered. But the description adds nothing beyond the annotation baseline: it doesn't disclose that 'identity' must reference an existing account, that unspecified properties are left untouched, whether password changes here bypass or duplicate security-set-user-password, or what happens on a missing user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding or redundancy. It's tight, though its brevity is achieved by omitting information rather than by efficient phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 11-parameter mutation tool with no output schema, sitting in a crowded family of user-mutation siblings, needs more than one sentence. There is no guidance on partial updates, required identity resolution, or the relationship to security-set-user-password, security-enable-user, and security-disable-user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every one of the 11 parameters is already documented, and the baseline of 3 applies. The description adds no semantic value beyond the schema, contributing nothing about field interaction or partial-update semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Updates) and resource (Sitecore user account properties), distinguishing it from read-only siblings like security-get-user. However, it doesn't differentiate from the dense set of user-mutation siblings (security-set-user-password, security-enable-user, security-disable-user, security-unlock-user), so an agent can't tell from the description alone whether this is the general updater or the specialized one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no exclusions. Given the sibling list contains security-set-user-password, security-enable-user, security-disable-user, and security-unlock-user, an agent faces genuine ambiguity about which tool handles a given mutation, and the description resolves none of it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-set-user-passwordA
Sets a new password for a Sitecore user. Supply either 'oldPassword' (validated before the change) or 'resetPassword: true' (an administrative reset that does not need the current password) — SPE offers no third way to change a password.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | The identity of the user to update the password for (e.g. 'admin' or full path 'sitecore\admin') | |
| newPassword | Yes | The new password for the user | |
| oldPassword | No | The user's current password, validated before the change. Supply this or 'resetPassword: true'. | |
| resetPassword | No | Administrative reset: change the password without knowing the current one. Supply this or 'oldPassword'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation nature is covered; the description adds that oldPassword is validated before the change and that resetPassword bypasses the current-password requirement as an administrative action. It does not mention that an administrative reset typically requires elevated privileges or what happens on validation failure, leaving a modest gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and then the mode-selection rule. No filler; the em-dash clause adds a genuine constraint rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation with no output schema, the description covers the essential branch logic and both parameter paths are fully documented in the schema. It omits permission requirements for the administrative reset and failure behavior, which are the main remaining details an agent would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'supply either oldPassword or resetPassword: true' restates what the schema already says in each parameter's own description, adding little beyond the mutual-exclusivity framing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sets a new password for a Sitecore user'), which is immediately distinguishable from sibling mutations like security-set-user, security-disable-user, and security-unlock-user. It does not explicitly name a sibling or contrast itself with them, but the resource+action combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context for the two invocation modes (validated old password vs. administrative reset) and asserts there is no third path, which helps an agent pick the right call shape. It stops short of saying when to prefer this tool over siblings such as security-set-user or security-new-user, so no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-test-accountCRead-only
Tests if a Sitecore user exists and has specific properties.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | The identity of the user to test (e.g. 'admin' or full path 'sitecore\admin') | |
| accountType | No | The type of account to test (defaults to 'All') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes that this is a safe, non-mutating operation, and 'Tests' is consistent with that. The description adds that it checks existence and properties, but it does not disclose the return semantics (boolean vs. error vs. object) or what 'specific properties' means, which matters for a test tool. With annotations carrying the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though the brevity comes at the cost of the vagueness noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what a 'test' returns, and it does not. For a tool whose whole value is the test result, the absence of return-value semantics leaves an agent unable to interpret or rely on the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both identity and accountType are fully documented in the schema itself, including the enum values and the format example. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Tests') and a resource ('Sitecore user'), so the general purpose is inferable. However, 'has specific properties' is vague about what is actually being checked, and the description never distinguishes this tool from the sibling security-get-user, which reads similar data. There is also mild tension between the name ('account') and the text ('user') even though accountType allows Role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided, and no alternative is named despite security-get-user and security-test-item-acl existing as close siblings. An agent cannot tell from the description when this test is preferable to simply reading the user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-test-item-aclBRead-only
Tests whether a user or role has specific access rights to a Sitecore item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The ID of the item to test access rights on. Supply this or path. | |
| path | No | The path of the item to test access rights on (e.g. /sitecore/content/Home). Supply this or id. | |
| database | No | Database to resolve an id against (default master). | |
| identity | Yes | The identity of the user or role to test (e.g. 'sitecore\admin') | |
| propType | No | The propagation type for the access right | |
| accessRight | Yes | The access right to test (e.g. 'item:read', 'item:write') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes this is a safe read operation, consistent with the verb 'Tests'. The description adds the identity scope (user or role) but says nothing about what the result looks like or what happens on denial; with annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is efficient, though so brief that it leaves behavioral and return-value context unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a permission-test tool with six parameters and no output schema, the description does not explain what the test returns (boolean, effective rights, etc.) or how id/path/database interact. Adequate given the rich schema, but the missing return semantics is a real gap for a 'test' tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself fully documents id, path, database, identity, propType, and accessRight. The description adds no parameter detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Tests) and resource (whether a user or role has specific access rights to a Sitecore item). The verb 'Tests' is distinguishable from sibling operations like security-get-item-acl and security-set-item-acl, though the description does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies usage (checking permissions), but there is no explicit when-to-use, when-not-to-use, or reference to alternatives such as security-get-item-acl or security-set-item-acl. An agent must infer the scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-unlock-userA
Unlocks a Sitecore user account that has been locked out due to failed login attempts.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | The identity of the user to unlock (e.g. 'admin' or full path 'sitecore\admin') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation-but-non-destructive profile is already covered. The description clarifies the state being reversed (a failed-login lockout), which is useful, but says nothing about required permissions, side effects, or whether it affects only the lockout counter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with verb and resource plus the qualifying condition. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive action with full schema coverage and no output schema, the description is nearly complete. Only the lack of permission/authorization context and sibling disambiguation keeps it from the top mark.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'identity' parameter, including format examples, so the schema carries the parameter burden. The description adds no additional syntax or format detail; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (unlocks) and resource (Sitecore user account) and adds the triggering condition (locked out due to failed login attempts). This implicitly separates it from security-enable-user and security-disable-user, which act on account status rather than lockout state, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The locked-out-due-to-failed-logins condition implies when this tool applies, but there is no explicit guidance on prerequisites or which sibling to prefer (e.g. enable-user vs unlock-user for a disabled account). Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
123 tool updates
v2.0.3- First observed
add-rendering-to-placeholder - First observed
authoring-copy-item - First observed
authoring-create-item - First observed
authoring-create-item-template - First observed
authoring-delete-item - First observed
authoring-get-item - First observed
authoring-get-item-template - First observed
authoring-get-job - First observed
authoring-get-media-item - First observed
authoring-get-site - First observed
authoring-graphql - First observed
authoring-introspect-schema - First observed
authoring-list-jobs - First observed
authoring-list-sites - First observed
authoring-move-item - First observed
authoring-publish-item - First observed
authoring-publishing-status - First observed
authoring-rebuild-indexes - First observed
authoring-rename-item - First observed
authoring-search - First observed
authoring-update-item - First observed
authoring-update-item-template - First observed
authoring-upload-media - First observed
common-add-item-version - First observed
common-convert-from-item-clone - First observed
common-get-archive - First observed
common-get-archive-item - First observed
common-get-cache - First observed
common-get-database - First observed
common-get-item-clone - First observed
common-get-item-field - First observed
common-get-item-reference - First observed
common-get-item-referrer - First observed
common-get-item-template - First observed
common-get-item-workflow-event - First observed
common-get-sitecore-job - First observed
common-invoke-workflow - First observed
common-new-item-clone - First observed
common-new-item-workflow-event - First observed
common-publish-item - First observed
common-remove-archive-item - First observed
common-remove-item-version - First observed
common-reset-item-field - First observed
common-restart-application - First observed
common-restore-archive-item - First observed
common-set-base-template - First observed
common-set-item-template - First observed
common-test-base-template - First observed
common-update-item-referrer - First observed
config - First observed
create-component-datasource - First observed
get-allowed-components-by-placeholder - First observed
get-pages-by-site - First observed
get-powershell-documentation - First observed
get-site-information - First observed
indexing-find-item - First observed
indexing-get-search-index - First observed
indexing-rebuild-search-index - First observed
indexing-set-search-index-state - First observed
introspection-graphql-edge - First observed
introspection-graphql-master - First observed
item-service-create-item - First observed
item-service-delete-item - First observed
item-service-edit-item - First observed
item-service-get-item - First observed
item-service-get-item-children - First observed
item-service-get-item-descendants - First observed
item-service-get-languages - First observed
item-service-search-items - First observed
list-insert-options - First observed
list-site-components - First observed
list-sites - First observed
logging-get-logs - First observed
media-download - First observed
media-upload - First observed
presentation-add-placeholder-setting - First observed
presentation-add-rendering - First observed
presentation-get-layout - First observed
presentation-get-layout-device - First observed
presentation-get-placeholder-setting - First observed
presentation-get-rendering - First observed
presentation-get-rendering-parameter - First observed
presentation-list-renderings - First observed
presentation-merge-layout - First observed
presentation-remove-placeholder-setting - First observed
presentation-remove-rendering - First observed
presentation-remove-rendering-parameter - First observed
presentation-reset-layout - First observed
presentation-set-layout - First observed
presentation-set-rendering - First observed
presentation-set-rendering-parameter - First observed
presentation-switch-rendering - First observed
provider-get-item - First observed
query-graphql-edge - First observed
query-graphql-master - First observed
run-powershell-script - First observed
search-site-pages - First observed
security-add-role-member - First observed
security-disable-user - First observed
security-enable-user - First observed
security-export-account - First observed
security-get-current-user - First observed
security-get-domain - First observed
security-get-item-acl - First observed
security-get-role - First observed
security-get-role-member - First observed
security-get-user - First observed
security-import-account - First observed
security-new-domain - First observed
security-new-role - First observed
security-new-user - First observed
security-remove-domain - First observed
security-remove-role - First observed
security-remove-role-member - First observed
security-remove-user - First observed
security-set-item-acl - First observed
security-set-item-lock - First observed
security-set-item-protection - First observed
security-set-user - First observed
security-set-user-password - First observed
security-test-account - First observed
security-test-item-acl - First observed
security-unlock-user
TDQS
Scored across 123 tools
Many tools overlap across different backends (authoring vs item-service vs common vs provider for item CRUD; multiple search, publish, index rebuild, and media upload tools). The descriptions often explicitly guide selection, so boundaries are not indistinguishable, but the sheer volume and parallel surfaces create real misselection risk.
Names are consistently kebab-case and mostly follow a category-verb-noun pattern (security-get-user, authoring-create-item, presentation-list-renderings). Minor deviations exist: some tools lack a category prefix (config, list-sites, run-powershell-script) and verbs vary (new vs create, get vs list).
123 tools is an extreme mismatch for a single MCP server; even a broad CMS domain does not justify this surface, and the dimension calibrates 50+ tools as 1. Many operations could be consolidated or exposed through fewer generic entry points.
Coverage spans items, templates, media, presentation, security, publishing, indexing, workflow, archives, jobs, logs, and raw GraphQL, with generic GraphQL fallbacks for untyped operations. No obvious dead ends for the Sitecore administration domain.
Maintenance
Related MCP Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
30+ marketing data tools for AI agents: keywords, SERP, backlinks, AI visibility, app store & commerce intelligence, Reddit/LinkedIn/Facebook/YouTube research, web search, page extraction, site audit, image & video generation, one-shot marketing apps. Bring your own API key from supamarketers.com — per-tool pricing in Credits.
Direct access to 60+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Sitecore CMS through GraphQL API, providing item operations, version control, navigation, and content management capabilities. Supports natural language commands and slash command menu interface for querying Sitecore items, templates, and hierarchies.3MIT
- AlicenseCqualityCmaintenanceEnables AI agents to manage WordPress sites with 190+ tools for content management, theme/plugin customization, file system operations, WooCommerce, and complete site control through natural language.10046 npm56MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with commercetools APIs to manage products, categories, orders, carts, and customer data. It provides a comprehensive set of tools for both read-only and full-access operations through secure authentication methods.4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides AI agents with direct read/write access to Sitecore CMS through 100+ tools across Item Service, GraphQL, and PowerShell APIs.67 npmApache 2.0