Skip to main content
Glama
Degree-AS
by Degree-AS

degree-dynamicweb-mcp

npm node license

Build and edit a DynamicWeb 10 site by asking for it, instead of clicking through the Admin UI. This is an MCP server: it gives Claude, Cursor, Copilot, or your own agent code 45 tools over the DynamicWeb Admin API - item types, fields, pages, paragraphs, products, and the PIM data model.

"Create an OpeningHours item type with a title and a repeatable list of day/hours rows,
 then add it to the Contact page."

  → dw_itemtype_create ×2   (the row type, then the parent with an itemrelation field)
  → dw_itemtype_sync_schema (XML alone does not create the database columns)
  → dw_itemtype_health      (confirms every field has a column)
  → dw_paragraph_create + dw_paragraph_set_fields

Three things make this usable rather than merely possible:

  • Writes are proved, not assumed. DW answers "ok" whether or not a value was stored, so set_fields reads the item back and returns what it now holds. A typo in a SystemName is an error listing the valid names, not a silent no-op.

  • Schema drift is visible. Deploying item type XML does not touch the database; a field whose column is missing saves without error and keeps nothing. dw_itemtype_health reports exactly that.

  • The other ~1800 endpoints are reachable. dw_api_searchdw_api_endpoint_schemadw_api_call covers whatever has no dedicated tool.

Install

Get a token from DynamicWeb Admin: Settings > Developer > API Keys > New, with full access. Then, for Claude Code:

claude mcp add dynamicweb -s project \
  --env DW_BASE_URL=https://your-dw-instance \
  --env DW_API_TOKEN=your-token \
  -- npx -y @degree-as/dynamicweb-mcp

Any other client wants the same four values in its config file:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

Restart the client, then ask it to run dw_area_list - a list of your websites means the URL and token are both good.

Only the path and the top-level key differ.

Client

File

Top-level key

Claude Code

.mcp.json in the project

mcpServers

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json · %APPDATA%\Claude\… (Win)

mcpServers

Cursor

.cursor/mcp.json or ~/.cursor/mcp.json

mcpServers

Windsurf

~/.codeium/windsurf/mcp_config.json

mcpServers

Cline

its MCP settings UI, or the same JSON

mcpServers

VS Code / Copilot

.vscode/mcp.json

servers, plus "type": "stdio"

Zed

settings.json

context_servers, plus "source": "custom"

Continue.dev

~/.continue/config.yaml

mcpServers, as YAML

DW_BASE_URL defaults to https://localhost:38547 and is the only optional variable; DW_API_TOKEN is required. Against localhost the server disables TLS verification so DW's self-signed dev certificate is accepted - anywhere else the certificate must be valid.

It is a standard stdio MCP server - tools only, no prompts or sampling - so any framework can spawn it with the four values above. OpenAI Agents SDK (Python):

async with MCPServerStdio(
    name="DynamicWeb",
    params={
        "command": "npx",
        "args": ["-y", "@degree-as/dynamicweb-mcp"],
        "env": {"DW_BASE_URL": "https://your-dw-instance", "DW_API_TOKEN": "your-token"},
    },
    cache_tools_list=True,
) as dw:
    agent = Agent(name="DW editor", mcp_servers=[dw])

The JS SDK's MCPServerStdio is equivalent but wants explicit connect()/close(). LangChain goes through langchain-mcp-adapters; Pydantic AI, Mastra, Vercel AI SDK and n8n each have their own stdio MCP client.

ChatGPT and the OpenAI Responses API do not work yet. They never spawn a local process - OpenAI's servers call your endpoint over HTTP - and this server speaks stdio only. Adding a Streamable HTTP entrypoint is planned; src/server.ts is already transport-agnostic, so the server itself will not change.

Related MCP server: TeamDesk MCP Server

Safety

These tools write to a live CMS. Of the 45, 23 only read, 12 create or update, and 10 destroy data: every _delete, plus dw_itemtype_clean_table, dw_product_bulk_discount (overwrites DefaultPrice across a whole group, no undo), and dw_api_call (the caller picks the endpoint).

Each tool declares MCP annotations - readOnlyHint, destructiveHint, idempotentHint - so a client can warn before a destructive call or auto-approve a read. Whether it does is the client's choice, not this server's. There is no dry-run and no confirmation step here: point it at staging before production.

Tools

45 tools, all prefixed dw_, grouped by the DynamicWeb concept they act on.

Item Types

Tool

Description

dw_itemtype_list

List all item types

dw_itemtype_get

Get item type details and restrictions

dw_itemtype_create

Create item type with fields, groups, and restrictions in one call

dw_itemtype_update_settings

Update settings (name, category, icon, availability, etc.)

dw_itemtype_update_restrictions

Update restrictions (allowed parents, children, websites, etc.)

dw_itemtype_delete

Delete an item type

Schema maintenance

Deploying item type XML does not touch the database. Until the schema is synced, a field whose column is missing saves without error and keeps nothing.

Tool

Description

dw_itemtype_health

Report fields whose DB column is missing, and columns the XML no longer declares

dw_itemtype_sync_schema

Reload item type XML and create the missing tables and columns

dw_itemtype_usages

List the pages and paragraphs that use an item type

dw_itemtype_clean_table

Destructive. Delete orphaned rows from an item type's table

After deploying new XML: dw_itemtype_sync_schema, then dw_itemtype_health. The sync endpoint answers "ok" even when it aborted partway, so the health check is what tells you whether it worked - and /Files/System/Log/items/ActivationWorkflow holds the real errors. An item type whose table is missing entirely does not appear in the health report at all.

Fields

Tool

Description

dw_field_list

List fields on an item type

dw_field_save

Add or update a field

dw_field_delete

Delete a field

dw_field_types

List all available editor types from the DW instance (not hardcoded)

Pages

Tool

Description

dw_page_list

List pages, optionally filtered by area or parent

dw_page_get

Get a page with all item fields

dw_page_create

Create a page under a parent

dw_page_set_fields

Set item field values on a page

dw_page_delete

Delete a page

dw_area_list

List all areas (websites)

Paragraphs

Tool

Description

dw_paragraph_list

List paragraphs on a page

dw_paragraph_get

Get a paragraph with all item fields

dw_paragraph_create

Create a paragraph on a page

dw_paragraph_set_fields

Set item field values on a paragraph

dw_paragraph_delete

Delete a paragraph

dw_page_set_fields and dw_paragraph_set_fields verify their own write. A field name the item type does not declare is an error that lists the names it does have, and after saving they read the item back and return what it now holds. DW answers "ok" whether or not a value was stored, so a typo in a SystemName used to be indistinguishable from a successful write.

Products

Tool

Description

dw_product_list

List products, optionally filtered by group or search

dw_product_get

Get a single product (full model incl. CustomFields/CategoryFields). Returns {found: false} for a missing product rather than an API error

dw_product_update

Update top-level fields, customFields, and categoryFields on a product

dw_product_delete

Delete one or more products

dw_product_bulk_discount

Apply a percentage discount to DefaultPrice across a group or product list

dw_product_update accepts three input maps:

  • fields - top-level product fields (Name, DefaultPrice, Stock, etc.)

  • customFields - global product custom field values, keyed by SystemName

  • categoryFields - product category field values, keyed by SystemName

Product Schema

Manage the PIM data model: product categories (groups of attributes) and product fields (the attributes themselves).

Tool

Description

dw_product_field_type_list

List the 15 product field types (TypeId + aliases)

dw_product_category_list

List product categories

dw_product_category_save

Create or update a product category

dw_product_category_delete

Delete categories (3-step DW workflow handled internally)

dw_product_field_list

List fields belonging to a category

dw_product_field_save

Create or update a field on a category (accepts type aliases)

dw_product_field_delete

Delete fields from a single category

Files

Tool

Description

dw_files_list

List files in a directory, optionally filtered by extension

dw_files_directories

List subdirectories

Delivery API (read-only)

Tool

Description

dw_content_areas

Fetch areas from Delivery API

dw_content_pages

Fetch pages with content

dw_content_paragraphs

Fetch paragraphs with content

API Discovery

Tool

Description

dw_api_search

Search the Swagger spec for endpoints by keyword

dw_api_endpoint_schema

Get request/response schema for an endpoint

dw_api_call

Raw call to any Admin API endpoint

Reference

When creating fields, you can use short aliases instead of full .NET class names:

Alias

Editor

text

TextEditor

longtext

LongTextEditor

richtext

RichTextEditor

richtextlight

RichTextEditorLight

file / image

FileEditor

folder

FolderEditor

media

MediaEditor

link

LinkEditor

itemlink

ItemLinkEditor

itemrelation

ItemRelationListEditor

number

IntegerEditor

decimal

DecimalEditor

date

DateEditor

datetime

DateTimeEditor

checkbox

CheckboxEditor

checkboxlist

CheckboxListEditor

dropdown

DropDownListEditor

radiolist

RadioButtonListEditor

editablelist

EditableListEditor

color

ColorEditor

colorswatch

ColorSwatchEditor

itemtype

ItemTypeEditor

itemtab

ItemTypeTabEditor

user

UserEditor

singleuser

SingleUserEditor

usergroup

SingleUserGroupEditor

geolocation

GeolocationEditor

googlefont

GoogleFontEditor

hidden

HiddenFieldEditor

password

PasswordEditor

Any full .NET editor class name is also accepted. Use dw_field_types to discover all available editors from your DW instance.

Repeatable lists (itemrelation)

itemrelation (ItemRelationListEditor) creates a repeatable list of child items — the generic way to model FAQ items, rows, persons, etc. (instead of fixed numbered slots like Question1..5). It needs two extra params:

Param

Required

Description

itemRelationType

yes

systemName of the child item type the list holds. Create it first.

itemSource

no

where items live. Default CurrentParagraph (rows stored on the owner).

Create the child item type first, then the parent:

// 1) child row
dw_itemtype_create { systemName: "OpeningHoursRow", fields: [
  { name: "Label", systemName: "Label", type: "text" },
  { name: "Value", systemName: "Value", type: "text" },
]}
// 2) parent with the repeatable list
dw_itemtype_create { systemName: "OpeningHours", fields: [
  { name: "Title", systemName: "Title", type: "text" },
  { name: "Rows",  systemName: "Rows",  type: "itemrelation", itemRelationType: "OpeningHoursRow" },
]}

The tool emits the required EditorConfiguration + EditorFields (Item type / Item source) and the Int32 underlying type automatically.

Product fields use a different system - integer TypeId from FieldTypeAll, not editor class names:

Alias

TypeId

Name

text / text255

1

Text (255)

longtext

2

Long text

checkbox

3

Checkbox

date

4

Date

datetime

5

Date/Time

number / integer

6

Integer

decimal

7

Decimal

link

8

Link

file

9

File

text100

10

Text (100)

text50

11

Text (50)

text20

12

Text (20)

text5

13

Text (5)

richtext / editor

14

Editor

list / dropdown

15

List

Numeric TypeId is also accepted directly. Use dw_product_field_type_list to fetch the live list from your DW instance.

Symptom

Cause

DW_API_TOKEN not set on startup

env block missing or misplaced in the config - it belongs inside the server entry

DW API error 401

Token wrong, expired, or from a different instance

DW API error 403 on some tools only

API key lacks full access - recreate it with broader rights

Non-JSON response

DW_BASE_URL points at the frontend or a login redirect, not the Admin API root

fetch failed / self-signed certificate

Remote host with an untrusted certificate, or DW not running

Tools missing after an upgrade

Client caches the old process - restart it fully

Development

npm install
npm run dev      # tsx, hot reload
npm run build    # tsc
npm run start    # compiled
src/
  index.ts    stdio entrypoint - env, process-level policy, transport
  server.ts   createServer() - registers every tool, knows no transport
  client.ts   DwClient - the three DW API calling conventions, documented in its header
  utils.ts    shared Zod and response helpers
  tools/      one module per concept, each exporting registerXTools(server, client)

A new tool module means one import and one entry in registrars in server.ts. A new tool needs annotations beside its description, or clients cannot tell whether it writes. The server version comes from package.json, so a release bumps one file. After changes, npm run build and restart your client - clients cache the tool list at startup.

A second transport (Streamable HTTP, for ChatGPT and the Responses API) is a new entrypoint beside index.ts, not a change to server.ts.

Available Tools

41 tools
dw_api_callA

Make a raw call to any DynamicWeb Admin API endpoint. For GET: provide params as query params. For POST: choose bodyMode. - 'model' (default) — wraps your model in {"Model": ...}. Used by most Save endpoints that create new records. - 'raw' — sends your model as the top-level body (no wrapper). Used by delete-style commands (e.g. ProductDelete, ItemTypeDelete). Supports params in the URL. - 'update' — sends {RunUpdateIndex?, QueryData, model} and appends ?Query.Type=queryType. Used to UPDATE existing records via screen commands (e.g. ProductSave). For update mode: pass queryType (e.g. 'ProductById'), queryData (identifies the record: {Id, LanguageId, QueryContext:{screenTypeName:'ProductEdit'}}), and optionally extraFields (e.g. {RunUpdateIndex:true}).

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointYesEndpoint name without leading slash, e.g. 'NavigationAll'
methodNoGET
paramsNoQuery parameters (used by GET and POST-raw)
modelNoBody for POST
bodyModeNoHow to wrap the body: 'model' | 'raw' | 'update'model
queryTypeNoRequired for bodyMode='update'. E.g. 'ProductById', 'ProductsAll'
queryDataNoRequired for bodyMode='update'. Identifies the record, e.g. {Id:'PROD1', LanguageId:'LANG1', QueryContext:{screenTypeName:'ProductEdit'}}
extraFieldsNoExtra top-level body fields for bodyMode='update' (e.g. {RunUpdateIndex:true})

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It transparently explains the three body modes, their wrapping behavior, and how parameters like queryType and queryData are used in update mode. It does not disclose potential side effects or idempotency, but covers the essential behavioral details for a raw API call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but well-structured with bullet points for the three body modes. It front-loads the overall purpose in the first sentence. However, there is some redundancy in listing and describing each mode, and could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters with complex behavior across three modes. The description covers all modes, explains each parameter's context, and gives examples. It lacks description of the return value (no output schema), but given the tool's generic nature, the response is variable. Overall, it is fairly complete for the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 88% schema coverage, the description adds significant meaning beyond the input schema. It clarifies how parameters interact (e.g., queryType and queryData are required for update mode, extraFields adds top-level fields), and provides context for each parameter's role. For example, 'params' are described as used by GET and POST-raw, and bodyMode alternatives are explained with examples.

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

Purpose5/5

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

The description clearly states the tool's purpose as making a raw call to any DynamicWeb Admin API endpoint, using a specific verb ('Make') and resource ('raw call to any DynamicWeb Admin API endpoint'). It distinguishes itself from sibling tools by being the generic raw call tool, while siblings are specialized for specific operations.

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

Usage Guidelines4/5

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

The description provides detailed context on when to use each bodyMode (model for saves, raw for deletes, update for updates) and specifies that GET uses params and POST uses bodyMode. It gives explicit examples for each mode, but does not explicitly mention when to use sibling tools instead of this generic call.

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

dw_api_endpoint_schemaA

Get the full request/response schema for a specific DynamicWeb Admin API endpoint. Use this before calling an unknown endpoint to understand its parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesEndpoint path, e.g. '/NavigationSave' or 'MediaFolderAll'
methodNoPOST

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states it retrieves a schema but does not mention whether it is read-only, has side effects, or any other behavioral traits. For a read-only retrieval tool, this is insufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no unnecessary words, and front-loads the core purpose. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (schema retrieval) and absence of output schema, the description is fairly complete. It provides the usage context and purpose, though it could optionally mention that the returned schema is JSON.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning by implying that the path and method together identify the endpoint. However, it does not elaborate on the parameters beyond what the schema provides. With 50% schema coverage (method lacks a description), the tool description could have compensated but did not.

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

Purpose5/5

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

The description clearly states the tool retrieves the full request/response schema for a specific DynamicWeb Admin API endpoint. It uses a specific verb (Get) and resource (schema) and distinguishes from siblings like 'dw_api_call' which actually calls the endpoint.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool before calling an unknown endpoint to understand its parameters. This provides clear context on when to use it, though it does not explicitly mention when not to use it or name alternatives.

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

dw_area_listB

List all DynamicWeb areas (websites/channels).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states that it lists areas, but does not disclose any behavioral traits such as being read-only, side effects, or return format. The description is minimal and lacks transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the verb and resource. Every word is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no annotations, and no output schema, the description is adequate for a simple list operation. However, it does not mention the output format or any additional context, which could help the agent understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so per guidelines the baseline is 4. The description adds no parameter information, but it is not needed.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'DynamicWeb areas (websites/channels)', providing a specific purpose. It is not a tautology and adds value, but does not explicitly differentiate from sibling tools like dw_content_areas.

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

Usage Guidelines2/5

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. The description only states what it does, without any context on prerequisites, when not to use, or related tools.

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

dw_content_areasA

Fetch all areas (websites) from DynamicWeb Delivery API. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

The description includes a behavioral note about no authentication required, which is helpful. However, it does not mention other aspects like output format, pagination, or any side effects. Since there are no annotations, the description carries the full burden, but the tool is simple.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the action and key detail (no auth). Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, no output schema), the description is contextually complete for a basic fetch-all operation. It clarifies the resource type and authentication requirement, though it could mention the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is trivial (100%). According to the rules, with zero parameters, the baseline score is 4. The description does not add parameter info because none exist.

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

Purpose4/5

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

The description clearly states the tool fetches all areas (websites) from the DynamicWeb Delivery API. The verb 'Fetch' and resource are specific, but it does not distinguish from the sibling tool 'dw_area_list', which likely serves a similar purpose.

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

Usage Guidelines2/5

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 instead of alternatives like dw_area_list or other fetch tools. The description lacks usage context or exclusions.

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

dw_content_pagesB

Fetch pages from DynamicWeb Delivery API. Returns pages with their item fields (content). Use pageId to get a specific page, or areaId to list all pages in a website.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdNoSpecific page ID
areaIdNoArea/website ID
urlNoResolve page by URL path, e.g. '/om-oss'
pageSizeNo
pageNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only operation but does not explicitly state safety, authentication needs, rate limits, or other behavioral traits. The description adds minimal value beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no fluff: first sentence states purpose, second clarifies output, third gives parameter guidance. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output schema and does not describe return format, pagination behavior, or handling of large result sets. The description hints at listing all pages but omits how pageSize and page control pagination, leaving gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60% (descriptions for pageId, areaId, url; missing for pageSize and page). The description adds usage context for pageId and areaId but not for pagination parameters. Baseline is 3 given moderate coverage, and the description provides some but not full compensation.

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

Purpose4/5

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

The description clearly states it fetches pages from the DynamicWeb Delivery API and returns item fields. It specifies three parameter-based access methods (pageId, areaId, url), which distinguishes it from sibling tools like dw_page_list and dw_page_get, though it does not explicitly differentiate.

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

Usage Guidelines3/5

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

The description provides guidance on when to use each parameter (pageId for a specific page, areaId for all pages in a website, url for resolving by path). However, it does not advise when to use this tool over alternatives (e.g., creation or deletion), leaving the agent to infer from context.

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

dw_content_paragraphsA

Fetch paragraphs (content blocks) from DynamicWeb Delivery API. Returns paragraphs with their item fields. Use pageId to get all paragraphs for a specific page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesPage ID to fetch paragraphs for
itemTypeSystemNameNoFilter by item type systemName

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It describes a read operation but lacks details on error handling, authentication, or side effects, which is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three clear, front-loaded sentences, each serving a purpose without extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple parameters, the description covers core functionality. It could mention the Delivery API context more explicitly but is sufficient for a fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context for pageId ('to get all paragraphs for a specific page') but not for itemTypeSystemName, offering marginal additional value.

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

Purpose5/5

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

The description clearly states the tool fetches paragraphs from the DynamicWeb Delivery API, returns item fields, and distinguishes usage from sibling tools like dw_paragraph_list by specifying the Delivery API context.

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

Usage Guidelines4/5

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

It advises using pageId to get paragraphs for a page, providing clear usage context. However, it does not explicitly mention when not to use this tool or list alternatives, but the sibling set implies differentiation.

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

dw_field_deleteC

Delete a field from a DynamicWeb item type.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemTypeSystemNameYes
fieldSystemNameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It does not state whether the operation is irreversible, what prerequisites are required (e.g., field existence), or any side effects. A delete operation should at least imply irreversibility or destructive nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly conveys the action. It is front-loaded with the key information, though it could be slightly expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It does not mention return values, error handling, or confirm whether the field must exist prior to deletion. A more thorough description would include expected outcomes and constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning to the two parameters. While parameter names are somewhat self-explanatory, they are not formally explained, and the description fails to clarify concepts like 'system name' or provide any example values.

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

Purpose4/5

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

The description clearly states 'Delete a field from a DynamicWeb item type' with a specific verb and resource. It distinguishes the tool from siblings like dw_field_list and dw_field_save by the delete action, but does not highlight what makes this tool unique among similar field operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as dw_field_save or dw_field_list. There is no mention of prerequisites, conditions, or when not to use it.

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

dw_field_listA

List all fields for a DynamicWeb item type. Returns systemName, type, required for each field.

ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYesItem type systemName

TDQS

A4/5.0
Behavior4/5

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

Despite no annotations, the description discloses the return values ('systemName, type, required') and the read-only nature via 'List,' which suffices for transparency given the tool's simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the purpose and return info with zero waste, earning their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, input, and output adequately for a simple list tool without output schema, though it omits error handling or ordering details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description reinforces that the parameter is the item type but adds no new semantic details beyond the schema's own description.

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

Purpose5/5

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

The description clearly states the action ('List all fields') and resource ('a DynamicWeb item type'), making it specific and distinct from sibling tools like dw_field_delete or dw_field_types.

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

Usage Guidelines3/5

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

The description implies usage for listing fields of an item type but provides no explicit guidance on when not to use it (e.g., for deleting fields) or alternatives among siblings.

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

dw_field_saveB

Add or update a field on a DynamicWeb item type.

Set isNew: true to add a new field. Set isNew: false to update existing.

IMPORTANT: RichTextEditor requires EditorConfiguration — this tool handles that automatically.
ParametersJSON Schema
NameRequiredDescriptionDefault
itemTypeSystemNameYes
nameYesDisplay name
systemNameYesPascalCase field key
typeYesShort alias (text, longtext, richtext, file, image, link, itemlink, media, checkbox, number, dropdown) or full .NET editor class name. Use dw_field_types to discover available types.
isNewNo
requiredNo
groupNoField group systemName. Default: 'General'.General

TDQS

B3.1/5.0
Behavior2/5

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

Reveals automatic handling of RichTextEditor configuration, but with no annotations, the description must disclose more. Missing details on permissions, destructiveness, return values, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with three short paragraphs; front-loaded with purpose. No redundant information, but structure could be improved with bullet points for parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks details on output, success/failure indication, prerequisites (e.g., item type existence), and overall mutation behavior. For a tool with 7 parameters and no output schema, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds value by explaining isNew's role and hinting at type discovery via dw_field_types. Schema covers 57% of parameters with descriptions; the description supplements moderately but does not cover all parameters comprehensively.

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

Purpose4/5

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

Clearly states the tool adds or updates a field on a DynamicWeb item type, distinguishing between new (isNew: true) and existing fields. Differentiated from siblings like dw_field_delete and dw_field_list, though not explicitly compared.

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

Usage Guidelines3/5

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

Provides guidance on using isNew flag and recommends dw_field_types for discovering type aliases. Lacks explicit when-to-use or alternatives, such as when to use product field tools or when not to use this tool.

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

dw_field_typesA

List all available field editor types from this DynamicWeb instance. Fetches the authoritative list from the DW AddIn registry — not hardcoded. Returns full .NET class names and short aliases you can use in dw_field_save and dw_itemtype_create.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations; description states it fetches from AddIn registry (not hardcoded) but lacks details on read-only nature, error handling, or performance. Adequate but could add more 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences without waste: purpose, data source, output usage. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains output format and how to use it, which is sufficient for a simple list tool. Lacks mention of whether data is cached or always live. Reasonably complete given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100% (trivially). Description adds no extra param info but doesn't need to. Baseline for zero parameters is appropriate.

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

Purpose4/5

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

Clearly states it lists field editor types from the DW AddIn registry, and mentions output format. Implicitly differentiates from sibling tools like dw_product_field_type_list by specifying usage in dw_field_save and dw_itemtype_create, but does not explicitly contrast.

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

Usage Guidelines4/5

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

Explicitly tells when to use: before using field types in dw_field_save or dw_itemtype_create. Does not provide 'when not to use' or alternatives, but context is clear.

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

dw_files_directoriesC

List subdirectories in a DynamicWeb directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryPathNoDirectory path, e.g. '/Files/Images'/Files

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description fails to disclose behavioral traits such as whether the listing is recursive, hidden directories included, or permissions required. It only states the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence which is appropriate for simplicity, but it lacks sufficient detail to be truly concise; it is under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no annotations, the description should provide more context. It does not explain behavior like recursion, return format, or edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter description 'Directory path'. The tool description adds no extra meaning beyond the schema, only confirming 'subdirectories'.

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

Purpose5/5

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

The description clearly states 'List subdirectories in a DynamicWeb directory.' with a specific verb and resource, and it distinguishes from sibling dw_files_list which presumably lists files.

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

Usage Guidelines2/5

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 like dw_files_list. The description is purely functional without context.

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

dw_files_listB

List files in a DynamicWeb directory. Optionally filter by file extensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryPathNoDirectory path, e.g. '/Files/Images', '/Files/Uploads'/Files
extensionsNoComma-separated extensions to filter client-side, e.g. 'png,jpg,webp,svg'

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must convey behavioral traits. Only states listing and filtering; does not disclose read-only nature, permissions, limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no unnecessary words. Front-loaded with primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output schema and does not describe return format or pagination. Missing context about depth of listing or what is returned for each file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds 'List files in a DynamicWeb directory' for directoryPath, but does not add significant meaning beyond schema's existing descriptions.

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

Purpose5/5

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

Specifically states verb 'List', resource 'files in a DynamicWeb directory', and optional filtering by extensions. Distinguishes from sibling tools like dw_files_directories.

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

Usage Guidelines3/5

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

Provides basic usage context (directory path, optional filter) but no explicit guidance on when to use this tool versus alternatives like dw_files_directories for directory listing.

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

dw_itemtype_createA

Create a new DynamicWeb item type with fields and restrictions in one operation.

Category conventions:
- Page item types → category: "" (top-level)
- Layout/config → category: "Layout"
- Article paragraphs → category: "Paragraphs/Article"
- Landing paragraphs → category: "Paragraphs/Landing"

For Page item types, set restrictions.allowedChildItemTypes to the paragraph systemNames that editors can add.
For Paragraph item types, leave restrictions.allowedChildItemTypes empty.
ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYesPascalCase, no spaces. This is the contract with the frontend registry.ts.
nameYesHuman-readable name shown in DW Admin
descriptionNo
categoryNoCategory path. Use '' for page types, 'Paragraphs/Landing' or 'Paragraphs/Article' for paragraphs.Paragraphs/Landing
iconNoUnicons icon name, e.g. 'uil-desktop', 'uil-file-alt', 'uil-arrow-circle-right'uil-file-alt
pageDefaultViewNoparagraph
fieldForTitleNoWhich field to use as the item title in DW AdminTitle
includeInUrlIndexNo
fieldsNoFields to add to the item type
restrictionsNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the operation creates in one step and gives behavioral instructions for allowedChildItemTypes. However, it lacks details on side effects (e.g., systemName uniqueness, reversibility, error behavior) and does not mention return value or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear one-sentence summary, a bulleted list of conventions, and two targeted sentences on allowedChildItemTypes. Every sentence serves a purpose, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, nested objects, no output schema), the description covers important usage patterns but omits return value information and error handling. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60% (likely underestimated, as all top-level parameters have descriptions). The description adds value beyond the schema by providing category conventions and usage patterns for allowedChildItemTypes. Baseline is 3 due to high schema coverage, and the description minimally supplements it.

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

Purpose5/5

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

The description clearly states the tool creates a new DynamicWeb item type with fields and restrictions in one operation. It identifies the specific verb (create) and resource (item type), and distinguishes from sibling tools like dw_itemtype_update_settings or dw_itemtype_delete.

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

Usage Guidelines4/5

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

The description provides clear context for use, including category conventions and instructions for allowedChildItemTypes. While it does not explicitly compare to siblings, the purpose is unambiguous, and the category rules help the agent decide when to use this tool for creating item types.

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

dw_itemtype_deleteC

Delete a DynamicWeb item type by systemName.

ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states the basic action and does not mention side effects, permissions, reversibility, or cascading deletes. The destructive nature is implicit from the name but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at 9 words. It is front-loaded with the verb. However, conciseness comes at the cost of crucial details, making it borderline under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete operation with one parameter, no output schema, and no annotations, the description lacks essential context such as return value, confirmation, error handling, and impact on related entities. Incomplete for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add parameter meaning. It adds 'by systemName' which is obvious from the parameter name. It does not clarify the format, case sensitivity, or source of the systemName.

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

Purpose5/5

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

The description clearly states the action (delete), the resource (DynamicWeb item type), and the identifier (by systemName). It distinguishes from sibling tools like dw_itemtype_create, dw_itemtype_get, etc.

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

Usage Guidelines2/5

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, no prerequisites, no consequences of deletion, and no mention of when not to use. The description is silent on usage context.

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

dw_itemtype_getA

Get a single DynamicWeb item type by systemName, including all restrictions.

ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYesExact systemName, e.g. 'HeroBanner'

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description relies on the word 'Get' to indicate a read operation, but it does not confirm lack of side effects or disclose any behavioral traits such as authentication requirements or rate limits. It adds context about restrictions but leaves other behaviors implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose. Every word contributes meaning, with no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter input and no output schema, the description is relatively complete. It specifies the identifier and what is included (restrictions). It could mention the return format or that the systemName is case-sensitive, but the context is sufficiently covered for a straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a description for the systemName parameter. The description adds no additional meaning beyond the schema, so it meets the baseline. The parameter semantics are adequately handled by the schema.

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

Purpose5/5

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

The description clearly states the action (Get), the resource (DynamicWeb item type), the identifier (by systemName), and includes context (including all restrictions). This distinguishes it from sibling tools like dw_itemtype_list which retrieves multiple items.

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

Usage Guidelines3/5

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

The description implies usage when you have a specific systemName, but it does not explicitly state when to use this tool versus alternatives like dw_itemtype_list or when not to use it. No guidance on prerequisites or context is provided.

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

dw_itemtype_listA

List all DynamicWeb item types. Returns systemName, name, category, fieldsCount, enabledFor.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description indicates a list operation, implying it is non-destructive, but with no annotations, it doesn't explicitly state this or disclose other behaviors like rate limits or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. Front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with no parameters, the description covers the return fields adequately. Could mention pagination but not necessary for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds nothing about parameters, but since there are none, this is fine. Baseline 4.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'all DynamicWeb item types', and specifies the fields returned. It distinguishes from siblings like 'dw_itemtype_get' which retrieves a single item type.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, but the sibling tools imply this is for listing all item types while others cover specific operations.

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

dw_itemtype_update_restrictionsA

Update restrictions on an existing DynamicWeb item type.

Only pass the restriction arrays you want to change — omitted ones are left untouched.
Most common use: adding allowed paragraph types to a Page item type so editors can add content blocks.
Example: allowedChildItemTypes: ["HeroBanner", "RichText", "CTABlock"]
ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYes
allowedWebsitesNoArea IDs or '*' for all
allowedParentTypesNoPage parent types, e.g. ['RegularPage']
allowedSectionsNoTree sections, e.g. ['*']
allowedParentItemTypesNoParent item type systemNames
allowedChildItemTypesNoParagraph systemNames allowed as children on a Page item type
allowedChildTypesNoAllowed child page types

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the incremental update behavior ('omitted ones are left untouched'), which is critical. Could mention reversibility or permissions, but the key behavior is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each valuable: purpose, usage rule, common use case, example. No redundant information, well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description covers usage pattern and partial update behavior. Missing details on error handling or what happens if systemName doesn't exist, but adequate for most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (86%), but the description adds important semantics: only modify passed arrays. This clarifies that arrays are optional despite schema showing only systemName as required. The example also provides concrete usage.

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

Purpose5/5

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

The description clearly states the tool updates restrictions on a DynamicWeb item type, differentiating from sibling tools like 'update_settings' by specifying the resource as 'restrictions'. It also gives a common use case.

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

Usage Guidelines4/5

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

Explicitly advises to only pass arrays to change, with omitted ones untouched. Provides an example with allowedChildItemTypes. Does not explicitly mention when not to use but context from name and sibling tools implies distinction.

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

dw_itemtype_update_settingsA

Update Settings fields on an existing DynamicWeb item type. Only pass the fields you want to change — omitted ones are preserved from current state.

Corresponds to the Settings tab in DW Admin (General, Availability, Title for new items, Advanced sections).

ParametersJSON Schema
NameRequiredDescriptionDefault
systemNameYesSystemName of the item type to update
nameNoDisplay name shown in DW Admin
descriptionNoDescription text
categoryNoCategory path, e.g. 'Paragraphs/Landing'. Use '' for top-level page types.
iconNoUnicons icon name, e.g. 'uil-file-alt', 'uil-desktop'
enabledForNoAvailability checkboxes. e.g. ['Pages'] or ['Paragraphs']
fieldForTitleNoWhich field to use as the item title in DW Admin, e.g. 'Title'
titleNoTitle template for new items, e.g. '{{Title}}'
allowModuleAttachmentNoAdvanced: Allow module attachment checkbox
allowColorSchemesNoAdvanced: Allow color schemes checkbox
pageDefaultViewNoAdvanced: Default view in page — 'page' = Item, 'paragraph' = Paragraph
baseNoAdvanced: Inherited from — systemName of base item type

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It reveals the partial update behavior (preserving omitted fields) and the admin tab correspondence. However, it does not mention side effects, authentication requirements, rate limits, or error handling, which are relevant for a mutation tool with 12 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences followed by a third sentence summarizing the admin tab correspondence. It is front-loaded with the action and key behavior (partial update). Every sentence adds value, and there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters and no output schema, the description covers the core use case (update settings, partial update) and maps to the UI. However, it lacks details on return values, error scenarios, or prerequisites. The schema descriptions cover parameter syntax, but the description could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema—it groups parameters into 'General, Availability, Title for new items, Advanced sections' but doesn't explain any parameter further. This is adequate but not exceptional.

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

Purpose5/5

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

The description explicitly states it updates settings on an existing DynamicWeb item type, and distinguishes from sibling tools like dw_itemtype_create (create), dw_itemtype_delete (delete), and dw_itemtype_update_restrictions (update restrictions). The verb 'Update' and resource 'Settings fields on an existing DynamicWeb item type' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description clearly advises to only pass fields to change, with omitted ones preserved, which is a key usage guideline. It also maps the tool to the Settings tab in DW Admin, providing context. However, it doesn't explicitly state when to use alternatives (e.g., create vs update), but the purpose is clear enough.

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

dw_page_createA

Create a new DynamicWeb page under a parent page.

Steps: 1) Creates blank page via PageCreate 2) Sets name, item type, publication via PageSave.
After creating, use dw_page_set_fields to populate item fields.
ParametersJSON Schema
NameRequiredDescriptionDefault
parentPageIdYesParent page ID
areaIdNoArea ID (auto-detected from parent if omitted)
nameYesInternal page name (shown in tree)
itemTypeYesPage item type systemName, e.g. 'CaseStudyPage', 'ArticlePage'. Use dw_itemtype_list to find available types.
publishedNo
showInMenuNo
treeSectionNoTree section: Navigation, Header, or FooterNavigation

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only outlines internal steps without disclosing side effects, permissions, error handling, or return behavior, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no wasted words, and structured as numbered steps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output description or return value (no output schema), no error handling guidance, and does not explain what happens after creation despite moderate complexity (7 parameters).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, so baseline is 3. The description adds minimal additional meaning beyond the schema, only hinting at parameter usage in steps.

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

Purpose5/5

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

The description clearly states 'Create a new DynamicWeb page under a parent page' with a specific verb and resource, and distinguishes from sibling tool dw_page_set_fields by mentioning it as a follow-up.

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

Usage Guidelines4/5

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

Provides a clear follow-up action (use dw_page_set_fields) but does not explicitly state when to use this tool over alternatives or any when-not-to-use scenarios.

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

dw_page_deleteB

Delete a DynamicWeb page by ID. This is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYes

TDQS

B3.4/5.0
Behavior3/5

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

The description explicitly states that the deletion is irreversible, a critical behavioral trait. However, no annotations exist and the description does not cover other potential behaviors like permission requirements or cascading effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no unnecessary words; efficient and front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete with one parameter, the description covers basics but lacks context about implications (e.g., impact on related content areas, paragraphs). More context would help the agent given many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only mentions 'by ID', hinting at the pageId parameter, but adds no detail about format, source, or how to obtain valid IDs. With 0% schema coverage, this is insufficient.

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

Purpose5/5

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

The description clearly states the verb 'Delete' and the resource 'DynamicWeb page by ID', distinguishing it from sibling tools like dw_page_create, dw_page_get, etc.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool over alternatives such as dw_page_set_fields or dw_page_list. No prerequisites or context for usage are mentioned.

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

dw_page_getB

Get a single DynamicWeb page by ID, including all item fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesPage ID (numeric string)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It only states that the tool retrieves a page and all its fields, but omits key details such as read-only nature, error handling (e.g., missing page), or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no extraneous information. It front-loads the core action and resource, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is nearly complete. It could clarify that this only retrieves pages (not other entities like paragraphs), but sibling tool names provide that context. The phrase 'all item fields' hints at the response richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'pageId', which has a clear description in the schema ('Page ID (numeric string)'). The description adds 'including all item fields', which relates to output rather than parameter semantics, so it provides minimal extra value beyond the schema.

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

Purpose5/5

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

The description clearly states 'Get a single DynamicWeb page by ID, including all item fields.' It uses a specific verb ('get') and resource ('DynamicWeb page'), and distinguishes from sibling tools like dw_page_list (which lists pages) and dw_page_create (which creates pages).

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

Usage Guidelines2/5

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. While siblings exist for listing, creating, or updating pages, the description offers no contextual hints about selection criteria or prerequisites.

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

dw_page_listA

List DynamicWeb pages. Filter by areaId (website ID) or parentPageId.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaIdNoArea (website) ID to filter by
parentPageIdNoParent page ID to get child pages

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only states it lists pages, but doesn't disclose behavioral traits like pagination, authentication, or effects of omitting filters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence with no fluff. Front-loaded with core action and filtering context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with optional filters, but missing details like pagination behavior, combined filter logic, and return value structure. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions; description adds no new meaning beyond restating schema fields. Baseline score applies.

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

Purpose5/5

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

Description clearly states verb 'List' and resource 'DynamicWeb pages', with explicit filtering options. Distinguishes from sibling tools like dw_page_get or dw_area_list.

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

Usage Guidelines3/5

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

Implies usage via filtering, but no explicit guidance on when to use this tool versus alternatives (e.g., dw_page_get for a single page).

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

dw_page_set_fieldsA

Set item fields on a DynamicWeb page.

Fetches the current page, updates field values in its pageItem structure, then saves. fields is a key-value map where keys are field SystemNames and values are the content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesPage ID
fieldsYesMap of fieldSystemName -> value

TDQS

A3.5/5.0
Behavior3/5

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

The description explains the process: 'Fetches the current page, updates field values in its pageItem structure, then saves.' It also clarifies the fields parameter. However, it does not disclose whether fields are merged or overwritten, error handling (e.g., page not found), or side effects like triggering workflows. With no annotations, the description carries full burden but is partially adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences), front-loaded with the main purpose, and free of unnecessary details. Every sentence adds value: action statement, process summary, and parameter clarification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (fetch-update-save) and the presence of many sibling tools, the description is adequate but not thorough. It does not explain return values, error behavior, or how to obtain pageId. However, for a simple field-setting operation, it provides the essential flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes the parameters. The description adds nuance for 'fields' by explaining it is a key-value map with field SystemNames as keys, which slightly exceeds the schema's description. For 'pageId', no additional meaning is added. Hence, baseline 3 with minor enhancement.

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

Purpose5/5

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

The description clearly states the action: 'Set item fields on a DynamicWeb page.' It specifies the resource (DynamicWeb page) and the operation (setting fields). This distinguishes it from sibling tools like dw_page_get (read) and dw_field_save (field definitions).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, scenarios, or when not to use it. For example, it does not differentiate from dw_page_create (which might set fields on creation) or dw_page_update (which might update other properties).

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

dw_paragraph_createA

Create a new paragraph on a DynamicWeb page.

Creates the paragraph via ParagraphSave with the specified item type.
Use dw_paragraph_set_fields after creation to populate content fields.

sort: paragraphs are ordered ascending. Use 100, 200, 300... for easy re-ordering.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesPage ID to add the paragraph to
itemTypeYesParagraph item type systemName, e.g. 'HeroBanner'
sortNo
activeNo

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses that paragraphs are ordered ascending via the sort field and hints at future reordering, but lacks details on error handling (e.g., invalid pageId or itemType), permissions, or side effects. Since no annotations are provided, the description carries full burden, and while it adds context beyond the schema, it is insufficient for a complete behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short sentences: the first stating purpose, the second giving next-step guidance, and the third explaining sort ordering. No extraneous information, and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 input parameters, no output schema, and sibling tools, the description adequately covers the creation step and directs to dw_paragraph_set_fields for content population. However, it does not describe the return value (likely the paragraph ID) or possible errors, making it incomplete for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (pageId and itemType have descriptions, sort and active do not). The description adds meaning to the sort parameter by explaining the ordering convention and suggesting values. However, it does not explain the active parameter or its defaults beyond the schema, and it does not fully compensate for the missing schema descriptions of all parameters.

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

Purpose5/5

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

The description clearly states the tool creates a new paragraph on a DynamicWeb page, using 'Create a new paragraph' and specifying the mechanism (ParagraphSave) and item type. It differentiates from sibling tools like dw_paragraph_set_fields by indicating it is for creation only and that field population is a separate step.

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

Usage Guidelines4/5

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

The description provides explicit guidance to use dw_paragraph_set_fields after creation for populating content fields, which helps the agent understand the workflow. It also explains the sort parameter's ascending order and suggests using increments of 100 for easy re-ordering, but does not specify when not to use this tool or mention alternatives for similar operations.

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

dw_paragraph_deleteB

Delete a DynamicWeb paragraph by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
paragraphIdYes

TDQS

B3.3/5.0
Behavior3/5

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

The description discloses the destructive nature of the action. However, with no annotations, it lacks additional behavioral context such as cascading effects or irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise single sentence with no redundancy. Slightly too terse, but every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with one parameter, the description provides the core purpose. However, it omits return value or any post-deletion state, which is acceptable but minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only implies 'paragraphId' is an ID without specifying format, constraints, or source. The meaning is inferred but not elaborated.

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

Purpose5/5

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

The description clearly states the action (delete) and the resource (DynamicWeb paragraph) with identifier (by ID). It distinguishes from sibling tools like dw_paragraph_create, dw_paragraph_get, etc.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like dw_paragraph_set_fields or dw_paragraph_list. No prerequisites or cautionary notes provided.

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

dw_paragraph_getA

Get a single DynamicWeb paragraph by ID, including all item fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
paragraphIdYesParagraph ID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided. Description adds 'including all item fields' but lacks details on read-only nature, error handling, or performance. Minimal transparency for a retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 11 words, no filler. Every word adds value. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID with one parameter, description is mostly complete. Mentions return includes all item fields. Could specify non-existence behavior, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter described as 'Paragraph ID'. Description adds no additional meaning beyond schema; baseline score applies.

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

Purpose5/5

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

Description clearly states verb 'Get', resource 'single DynamicWeb paragraph', and scope 'by ID, including all item fields'. This distinguishes it from siblings like dw_paragraph_list (list all) and dw_paragraph_create.

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

Usage Guidelines3/5

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

Implied usage: use when you need a single paragraph by ID. No explicit when-not or alternatives mentioned, despite multiple sibling tools for different operations.

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

dw_paragraph_listC

List paragraphs on a DynamicWeb page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesPage ID to list paragraphs for

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It does not disclose that this is a read-only operation, any pagination behavior, or output format. The minimal description leaves important behavioral traits unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, front-loaded and efficient. However, it may be overly terse given the lack of behavioral details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, the description is minimal. It does not cover return format, read-only nature, or distinguish from sibling list tools. The absence of this context reduces completeness given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'pageId'. The tool description adds no additional meaning beyond the schema's 'Page ID to list paragraphs for', so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it lists paragraphs on a DynamicWeb page, using a specific verb and resource. However, it does not differentiate from sibling tool 'dw_content_paragraphs' which likely performs a similar function.

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

Usage Guidelines2/5

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 like 'dw_paragraph_get' or 'dw_content_paragraphs'. The description lacks any context for selection.

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

dw_paragraph_set_fieldsA

Set item fields on a DynamicWeb paragraph.

Fetches the current paragraph, updates field values in its contentItem structure, then saves. fields is a key-value map where keys are field SystemNames and values are the content. For richtext fields, provide HTML string. For file/image fields use the file path string (e.g. "/Files/Images/hero.jpg").

ParametersJSON Schema
NameRequiredDescriptionDefault
paragraphIdYesParagraph ID
fieldsYesMap of fieldSystemName -> value

TDQS

A3.7/5.0
Behavior4/5

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

The description discloses the read-modify-write behavior ('Fetches... updates... saves') and explains value formatting for richtext and file fields. With no annotations, this provides good transparency, though it could mention potential side effects or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with no wasted words. It front-loads the purpose, explains the process, describes the fields parameter, and gives examples. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter schema and no output schema, the description covers the essential aspects: what the tool does, how it works, and how to format values. It lacks error handling details or return value expectations, but is largely complete for this level of complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but the description adds significant meaning beyond the schema by explaining that 'fields' is a key-value map of SystemNames, and provides concrete examples for richtext and file/image values.

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

Purpose4/5

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

The description clearly states 'Set item fields on a DynamicWeb paragraph' and explains the fetch-update-save process. However, it does not explicitly differentiate from similar tools like dw_page_set_fields, but the resource-specific verb and context make the purpose clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., dw_field_save or dw_paragraph_update). There is no mention of prerequisites, limitations, or when not to use it.

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

dw_product_bulk_discountA

Apply a percentage discount to DefaultPrice across a set of products (modifies the base price in-place). Target either a groupId (all products in the group) or an explicit productIds array. Returns per-product old/new price.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdNoApply to all products in this group
productIdsNoExplicit product IDs
percentYesDiscount percentage, e.g. 15 for 15% off
languageIdNoLANG1
decimalsNoRound new price to N decimals
pagingSizeNoMax products fetched when using groupId

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It discloses that the tool modifies prices in-place (destructive) and returns old/new values. However, it lacks details on permissions required, reversibility, or potential side effects, which would be beneficial for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences and no extraneous information. It front-loads the action ('Apply a percentage discount') and efficiently covers targeting and return behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema and annotations, the description covers the main aspects of the tool: purpose, targeting, and return values. It could be more complete by mentioning potential defaults or caveats, but overall it provides sufficient context for an agent to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (83%), with most parameters documented. The description adds context beyond the schema by explaining that the discount applies to DefaultPrice, that groupId and productIds are alternative targeting methods, and that the output includes old and new prices. This adds meaningful semantics.

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

Purpose5/5

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

The description clearly states the tool applies a percentage discount to DefaultPrice across a set of products, modifying the base price in-place. It specifies two targeting options (groupId or productIds) and indicates it returns per-product old/new prices. This distinguishes it from sibling tools, none of which perform bulk discounting.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use the tool: for applying discounts to multiple products either by group or by explicit IDs. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for an agent to decide.

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

dw_product_category_deleteA

Delete one or more DynamicWeb product categories. Irreversible. Fields belonging to the categories must be deleted first via dw_product_field_delete - otherwise the validation step will reject them.

Internally runs DW's 3-step delete: ProductCategorySetIds (mark candidates) → ProductCategoryDeleteValidated (get valid/invalid split) → ProductCategoryDelete.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesSingle category id or array, e.g. 'TechSpecs' or ['TechSpecs','Specs']

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so the description bears full burden. Discloses irreversibility and reveals the internal 3-step process (mark candidates, validate, delete), indicating partial failure behavior and validation steps. This goes beyond a simple delete description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding essential information: action, irreversibility+precondition, internal steps. No fluff, well-structured, and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with no output schema, the description covers purpose, irreversibility, precondition, and internal process. Could mention handling of partial invalid ids, but overall quite complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and includes example values for 'ids'. Description does not add extra semantic detail for the parameter beyond the schema. A 4 is appropriate as the schema already does the heavy lifting.

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

Purpose5/5

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

Clearly states 'Delete one or more DynamicWeb product categories.' Specific verb+resource. Distinguishes from sibling tools like dw_product_category_save (create/update) and dw_product_category_list (list).

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

Usage Guidelines5/5

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

Explicitly notes irreversibility and a critical precondition: fields must be deleted first via dw_product_field_delete, otherwise validation fails. Names the alternative tool, guiding the agent on prerequisites and dependencies.

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

dw_product_category_listB

List DynamicWeb product categories (groups of product attribute fields). Returns id, name, fieldsCount per category.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch term
pagingSizeNo
pagingIndexNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It mentions return fields but fails to disclose pagination behavior (pagingSize, pagingIndex) or filtering effects of the search parameter. It is unclear if the operation is read-only, though it's implied by 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides return fields (id, name, fieldsCount). However, it lacks details on pagination and search functionality. For a list tool with three optional parameters, it is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (search param has a brief description). The description does not explain any parameters, despite the schema having two undocumented parameters (pagingSize, pagingIndex) with defaults. No additional meaning beyond the schema is provided.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'DynamicWeb product categories', and specifies the return fields (id, name, fieldsCount). This distinguishes it from sibling tools like dw_product_category_delete and dw_product_category_save.

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

Usage Guidelines3/5

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

The description implies usage for listing categories but does not explicitly state when to use this tool versus alternatives like dw_area_list or dw_field_list. No exclusion criteria or usage context beyond the basic listing purpose.

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

dw_product_category_saveA

Create or update a DynamicWeb product category (group of attribute fields). Set isNew: true to create, false to update an existing one. Category fields are added separately via dw_product_field_save with this category's id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPascalCase identifier, e.g. 'TechSpecs'. Used as CategoryId on fields.
nameYesHuman-readable name shown in DW Admin
categoryTypeNo'categoryFields' (default) for product category fieldscategoryFields
isNewNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses it is a save operation (create/update) but does not mention side effects, error handling, or permissions. Minimal behavioral disclosure but adequate for a typical save.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff, front-loading the core purpose. Every sentence earns its place, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple parameters, the description is complete enough. It covers main usage and links to related tool for field addition. Could mention return values, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value by clarifying isNew parameter usage ('set isNew: true to create') and explaining that id is used as CategoryId on fields, which goes beyond schema descriptions. Schema coverage is 75%, so description compensates well.

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

Purpose5/5

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

The description clearly states it creates or updates a DynamicWeb product category, using verbs 'Create or update'. It distinguishes from siblings like dw_product_category_list and dw_product_category_delete by focusing on save operation, and mentions separate field addition via dw_product_field_save.

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

Usage Guidelines4/5

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

The description explains when to use create vs. update via the isNew flag, and indicates that category fields are added separately. It does not explicitly state when not to use, but the context is clear.

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

dw_product_deleteA

Delete one or more DynamicWeb products. Irreversible. IDs must be in modelIdentifier format: 'PROD1|LANG1|'. The tool accepts plain IDs too and auto-formats them.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesProduct IDs, e.g. ['PROD12','PROD13']
languageIdNoLANG1

TDQS

A4.1/5.0
Behavior4/5

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

Despite no annotations, the description discloses key behaviors: irreversibility and auto-formatting of IDs. However, it does not mention error handling, return values, or permission requirements, which would be helpful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first conveys purpose and irreversibility, second clarifies ID handling. No wasted words; essential information front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple delete tool, but missing details on batch behavior, error responses, and whether deletion is synchronous. Given no output schema and no annotations, more context on usage outcomes would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, and the description adds significant meaning by explaining the required ID format and auto-formatting feature. This compensates for the schema's lack of description for languageId, though the languageId parameter is not explicitly detailed.

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

Purpose5/5

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

The description clearly states the tool deletes one or more DynamicWeb products, emphasizing irreversibility and ID format. This distinguishes it from sibling tools like dw_product_get or dw_product_update.

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

Usage Guidelines3/5

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

The description implies use for deletion (irreversible) but does not explicitly specify when to use it versus alternatives like dw_product_update or dw_product_category_delete. No guidance on prerequisites or when not to use.

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

dw_product_field_deleteA

Delete one or more product fields from a single category. Irreversible. All ids must belong to the same categoryId. To delete fields across multiple categories, call this tool once per category.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesOwning category id, e.g. 'TechSpecs'
systemNamesYesField SystemNames to delete, e.g. ['Color', 'BatteryLife']

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided. Description discloses irreversibility and single-category constraint, key behavioral traits for a delete operation. Could mention return value or permissions, but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states action and irreversibility, second gives usage constraint. No wasted words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential aspects: action, irreversibility, usage constraint. No output schema, but not needed for delete. Adequate for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%, both parameters described. Description adds value by explaining cross-category usage and enforcing sameness constraint, beyond schema.

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

Purpose5/5

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

Clearly states 'delete one or more product fields from a single category', specifying action and resource. Constraint 'Irreversible' adds clarity. Distinguishes from siblings like dw_field_delete and dw_product_category_delete.

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

Usage Guidelines4/5

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

Provides explicit constraint: 'All ids must belong to the same categoryId' and guidance for multiple categories: 'call this tool once per category'. No explicit alternatives but clear context.

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

dw_product_field_listA

List all product fields belonging to a category. Returns systemName, name, typeId, typeName, required.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesCategory id, e.g. 'TechSpecs'

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It clearly indicates a read-only list operation and specifies what data is returned. However, it does not mention pagination, sorting, or any limits, which is acceptable for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the purpose, second lists return fields. No filler, highly efficient. Front-loaded with the action and target resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description covers the essentials: what it does, what it returns, and the input. Lacks details on pagination or error conditions, but adequate for a straightforward list endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter described as 'Category id, e.g. 'TechSpecs''. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists all product fields for a category, and specifies the exact return fields: systemName, name, typeId, typeName, required. This distinguishes it from siblings like dw_field_list (likely for content fields) and dw_product_field_delete.

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

Usage Guidelines3/5

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

The description implies usage for retrieving product field definitions by category, but does not explicitly state when to use it versus alternatives like dw_field_list or dw_product_field_type_list. No context on prerequisites or exclusions.

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

dw_product_field_saveB

Create or update a product field (attribute) on a product category.

Type can be a numeric TypeId or a short alias: text, longtext, checkbox, date, datetime, number, decimal, link, file, richtext, dropdown. Use dw_product_field_type_list for the full mapping.

Field SystemName becomes the key the frontend reads via the product CustomFields/CategoryFields structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesOwning category id, e.g. 'TechSpecs'
systemNameYesPascalCase key, e.g. 'BatteryLife'
nameYesDisplay name shown in DW Admin
typeYesType alias (text, number, ...) or numeric TypeId
requiredNo
hiddenNo
readonlyNo
useAsFacetNo
languageEditingNo
variantEditingNo
descriptionNo
validationPatternNo
validationErrorMessageNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It states the tool can create or update, and explains the SystemName role, but does not mention idempotency, merge behavior, required permissions, or what the tool returns. Important details are missing for a save operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise—5 sentences, front-loading the purpose, then providing type details and a key behavioral note. No superfluous content; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, no output schema, and no annotations, the description covers the core purpose and type semantics, but lacks information about return values, error handling, and full parameter details. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has only 31% parameter description coverage. The tool description adds meaning for 'type' (listing aliases) and 'systemName' (frontend key role), but does not explain the 9 other parameters like 'required', 'hidden', 'readonly', etc. It partly compensates but not fully.

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

Purpose4/5

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

The description clearly states the verb 'Create or update' and resource 'product field on product category'. It also provides type alias details and frontend key behavior. However, it does not explicitly distinguish from the sibling tool 'dw_field_save', though the 'product' prefix provides implicit differentiation.

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

Usage Guidelines3/5

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

The description advises using 'dw_product_field_type_list' for the full type mapping, which is a helpful reference. But it lacks guidance on when to use this tool versus alternatives like 'dw_field_save' or 'dw_product_field_delete', nor does it specify prerequisites or exclusions.

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

dw_product_field_type_listA

List all DynamicWeb product field types (Text, Integer, Date, etc.) with their TypeId. Use the returned 'id' as TypeId in dw_product_field_save, or use a short alias (text, longtext, checkbox, date, datetime, number, decimal, link, file, richtext, dropdown).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations exist, so description carries full burden. It discloses the tool returns a list of types with ID and aliases, implying no side effects. However, it doesn't explicitly state it's read-only or mention any restrictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with key purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description adequately explains output and usage. It could mention that it is read-only, but overall it is complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema is empty, so baseline is 4. Description adds no parameter details because there are none, but it doesn't need to.

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

Purpose5/5

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

The description clearly states it lists DynamicWeb product field types with TypeId, specifying the resource and action. It distinguishes from siblings like dw_field_types and dw_product_field_list by focusing on product field types specifically.

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

Usage Guidelines5/5

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

Provides explicit guidance on using the returned 'id' in dw_product_field_save or using a short alias. This helps the agent understand how to apply the output and alternatives.

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

dw_product_getB

Get a single DynamicWeb product by ID. Returns the full model including CustomFields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID, e.g. 'PROD1'
languageIdNoLANG1
variantIdNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions returning the full model with CustomFields but omits behavioral traits like authentication requirements, error handling (e.g., what happens if ID not found), or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool, the description covers the basic purpose and response content. However, lack of output schema and low parameter coverage reduces completeness. It could mention read-only nature or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only id has a description). The description does not add any additional meaning for languageId or variantId, failing to compensate for the low coverage.

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

Purpose5/5

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

The description clearly states the action is to 'Get a single DynamicWeb product by ID', specifies the resource, and mentions returning the full model including CustomFields. This distinguishes it from siblings like dw_product_list (list) and dw_product_update (update).

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

Usage Guidelines2/5

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 (e.g., dw_product_list for multiple products) or prerequisites. The description does not provide context for optimal use.

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

dw_product_listA

List DynamicWeb products. Filter by groupId (product catalog group) or search term. Returns id, number, name, defaultPrice, stock, active. Use pagingSize to control result count.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdNoGroup ID, e.g. 'GROUP1'. Omit for all products.
languageIdNoLANG1
searchNoSearch term
pagingSizeNo
pagingIndexNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions pagination (pagingSize) and returned fields, but does not cover authentication, rate limits, or whether the operation is read-only (assumed). The absence of destructive hint is acceptable for a list, but more detail on pagination limits would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences covering purpose, filters, outputs, and pagination. No redundant information. Could be slightly better structured, but efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters and no output schema, the description partially covers outputs and filtering but omits details on languageId, pagingIndex, error handling, and rate limits. It is adequate for a simple list tool but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (40%). The description adds minimal value: it restates groupId and search (already in schema) and provides a vague hint for pagingSize ('control result count'). It ignores languageId (default only) and pagingIndex, leaving their meaning unclear. For a tool with 5 parameters, this is insufficient.

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

Purpose5/5

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

The description clearly states the tool lists DynamicWeb products, specifies filtering by groupId or search term, and lists returned fields. It distinguishes from sibling tools like dw_product_get (single product) and dw_product_category_list (categories).

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

Usage Guidelines3/5

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

The description implies when to use (listing products with filters) but does not explicitly state when not to use or compare to alternatives. It lacks guidance on using dw_product_get for individual products or dw_product_update for modifications.

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

dw_product_updateA

Update fields on an existing DynamicWeb product. Fetches the current product, overlays your field updates, and saves via ProductSave (update mode, Query.Type=ProductById).

  • 'fields': top-level product fields (Name, DefaultPrice, Stock, Active, etc.) - PascalCase or camelCase.

  • 'customFields': global product custom fields, keyed by SystemName (e.g. {Color: "red"}).

  • 'categoryFields': product category fields, keyed by SystemName.

Manage the schema of customFields/categoryFields via dw_product_field_save / dw_product_category_save.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID, e.g. 'PROD1'
languageIdNoLANG1
variantIdNo
fieldsNoTop-level fields, e.g. {DefaultPrice: 99.99, Stock: 42}
customFieldsNoCustom field values keyed by SystemName, e.g. {Color: 'red', BatteryLife: 8}
categoryFieldsNoCategory field values keyed by SystemName
runUpdateIndexNo

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It transparently describes the update process (fetch, overlay, save), input field casing conventions, and custom field keying. It lacks details on authentication or error behavior, but is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded, and contains no extraneous information. It uses clear bullet points for parameter groups. Could be slightly more structured but is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given moderate complexity with 7 parameters and no output schema, the description provides sufficient behavioral context. It explains the update mechanism and schema management. Missing error handling details, but adequate for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 57% (4 of 7 parameters have descriptions). The description adds meaningful context by explaining the roles of fields, customFields, and categoryFields with examples, compensating for the lower coverage.

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

Purpose5/5

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

The description clearly states it updates an existing DynamicWeb product, outlines the process (fetch, overlay, save), and distinguishes its purpose from sibling tools like dw_product_get and dw_product_field_save. The verb and resource are specific.

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

Usage Guidelines4/5

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

The description explains when to use this tool (update product fields) and mentions managing schema via dw_product_field_save / dw_product_category_save as alternatives. However, it does not explicitly state when not to use this tool compared to other update tools.

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. Dates show when Glama detected each change.

  1. 41 tool updatesv1.3.0
    • First observeddw_api_call
    • First observeddw_api_endpoint_schema
    • First observeddw_api_search
    • First observeddw_area_list
    • First observeddw_content_areas
    • First observeddw_content_pages
    • First observeddw_content_paragraphs
    • First observeddw_field_delete
    • First observeddw_field_list
    • First observeddw_field_save
    • First observeddw_field_types
    • First observeddw_files_directories
    • First observeddw_files_list
    • First observeddw_itemtype_create
    • First observeddw_itemtype_delete
    • First observeddw_itemtype_get
    • First observeddw_itemtype_list
    • First observeddw_itemtype_update_restrictions
    • First observeddw_itemtype_update_settings
    • First observeddw_page_create
    • First observeddw_page_delete
    • First observeddw_page_get
    • First observeddw_page_list
    • First observeddw_page_set_fields
    • First observeddw_paragraph_create
    • First observeddw_paragraph_delete
    • First observeddw_paragraph_get
    • First observeddw_paragraph_list
    • First observeddw_paragraph_set_fields
    • First observeddw_product_bulk_discount
    • First observeddw_product_category_delete
    • First observeddw_product_category_list
    • First observeddw_product_category_save
    • First observeddw_product_delete
    • First observeddw_product_field_delete
    • First observeddw_product_field_list
    • First observeddw_product_field_save
    • First observeddw_product_field_type_list
    • First observeddw_product_get
    • First observeddw_product_list
    • First observeddw_product_update

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a specific entity and action with clear, distinct purposes; overlaps are minimal and descriptions clarify any ambiguity (e.g., dw_area_list vs dw_content_areas).

Naming Consistency5/5

All tools follow a consistent 'dw_<domain>_<action>' or 'dw_<domain>_<subdomain>_<action>' pattern in snake_case, making it predictable and easy for agents to infer functionality.

Tool Count4/5

41 tools cover a broad range of CMS and e-commerce operations; while slightly high, each tool serves a distinct purpose and the granularity aids agent selection.

Completeness4/5

CRUD operations are covered for core entities (item types, pages, paragraphs, products, categories, fields); minor gaps exist (e.g., file upload missing) but the raw API call tool can compensate.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Degree-AS/degree-dynamicweb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server