Skip to main content
Glama

ThinCMS MCP Server

MCP (Model Context Protocol) server for ThinCMS. Gives AI agents typed tool access to your ThinCMS site — no HTTP boilerplate, no header construction, no JSON encoding.

What it does

Wraps the ThinCMS REST API as 45 typed tools that any MCP-compatible AI client can call directly. Instead of constructing HTTP requests, agents call tools like thincms_create_post(title, content, status) and get structured responses back.

Related MCP server: hidrix-tools

Requirements

  • Node.js 18+

  • A running ThinCMS instance

  • An API key from ThinCMS (Admin > API Keys)

  • An MCP-compatible client (Claude Desktop, Claude Code, VS Code, etc.)

Setup

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "thincms": {
      "command": "npx",
      "args": ["tsx", "/path/to/thincms-mcp/src/index.ts"],
      "env": {
        "THINCMS_BASE_URL": "https://your-domain.com",
        "THINCMS_API_KEY": "tcms_your_key_here",
        "THINCMS_SITE_ID": "your_site_id_here"
      }
    }
  }
}

Claude Code

Same configuration in .claude/settings.json or global Claude Code settings.

Available tools

Group

Tools

Posts

list_posts, get_post, create_post, update_post, delete_post, bulk_create_posts

Pages

list_pages, get_page, create_page, update_page, delete_page

Categories

list_categories, create_category, update_category, delete_category

Authors

list_authors, create_author, update_author, delete_author

Tags

list_tags, create_tag

Media

list_media, get_media, upload_media, update_media, delete_media

Template

get_template, update_template

Navigation

get_navigation, update_navigation

Settings

get_settings (read-only)

Scripts

list_scripts, create_script, update_script

Secrets

list_secrets, create_secret

Forms

list_forms, get_form, create_form, update_form

Submissions

list_submissions, export_submissions_csv

Search

search

Preview

create_preview, get_preview_url

All tool names are prefixed with thincms_ (e.g., thincms_list_posts).

Permissions

Uses the same API key auth as the REST API. API keys grant editor-level access — full CRUD on content, forms, templates, navigation, scripts, and secrets. Cannot change site settings, manage users, or run imports/backups.

Development

npm install
npm run build     # Compile TypeScript
npm run dev       # Run with tsx (for development)

License

MIT

Available Tools

191 tools
thincms_add_quiz_questionC

Add a question to a quiz. Each question has 2-5 answer options and one correct answer identified by index (0-based).

ParametersJSON Schema
NameRequiredDescriptionDefault
quizIdYesQuiz ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
optionsYesArray of 2-5 answer option strings (required)
sortOrderNoPosition within the quiz (auto-assigned if omitted)
explanationNoExplanation shown after answering (for show_answer mode)
correctIndexYesIndex of the correct answer in the options array (0-based, required)
questionTextYesThe question text (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/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 only mentions constraints on options and correctIndex, but fails to describe side effects, return value, permission requirements, or whether the question is appended at a given sortOrder.

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, front-loaded sentence that immediately conveys the tool's purpose and key constraints. No unnecessary words.

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 8 parameters, no annotations, and no output schema, the description is incomplete. It omits details such as the behavior when sortOrder is omitted, response format, and whether the quiz must already exist. The description covers only high-level intent.

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%, so baseline is 3. The description adds minimal value beyond schema by restating constraints, but does not explain the meaning or usage of parameters like quizId, siteId, or confirmProductionWrite beyond what the schema already provides.

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 action ('Add') and resource ('question to a quiz'), and implies it creates new questions rather than updating or deleting, which differentiates it from siblings like thincms_update_quiz_question. However, it does not explicitly contrast with other tools.

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., thincms_create_quiz, thincms_update_quiz_question), nor any prerequisites or exclusions. This leaves the agent without contextual selection cues.

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

thincms_add_sequence_stepC

Add a step to a sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subjectYesEmail subject
delayDaysNoDays to wait after previous step (0 = immediate)
sequenceIdYesSequence ID
htmlContentYesEmail HTML body
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the action. It does not state if the step is appended, inserted at a position, or if it is idempotent. The agent lacks information about side effects or success indicators.

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

Conciseness2/5

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

The description is very short (7 words) but lacks essential information. It is under-specified rather than efficiently informative. A good description would be concise but include context like order or prerequisites.

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 that this is a mutation tool with 6 parameters, no output schema, and no annotations, the description is inadequate. It does not explain the behavior of 'step' (e.g., position in sequence), nor what happens upon success. The presence of reorder tools suggests ordering matters, but this is unaddressed.

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 detailed parameter descriptions. The tool description adds no extra parameter meaning, but the schema itself is sufficient. Baseline 3 is appropriate since the schema compensates.

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 'Add a step to a sequence' clearly states the verb (add) and resource (step to a sequence). However, it does not differentiate from sibling tools like thincms_update_sequence_step or thincms_create_sequence, though the naming helps. The purpose is understandable but could be more specific about what constitutes a step.

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. There is no mention of prerequisites (e.g., the sequence must exist, identified by sequenceId), nor any indication of when to use update vs add. The description provides no usage context.

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

thincms_analytics_referrersB

Get top referrer domains for a given period.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax referrers to return (default: 10, max: 100)
periodNoTime period (default: 30d)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 full burden. It only states the purpose and does not disclose behavioral traits such as permissions, rate limits, or side effects. The presence of 'confirmProductionWrite' in the schema may cause confusion about read vs write nature, but the description does not clarify.

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 efficient sentence with no fluff. It could benefit from additional context but remains appropriately concise for a simple tool.

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?

Despite 100% schema coverage, the description lacks completeness: it does not describe the return format (e.g., list of domains with counts), does not explain the use of the 'siteId' or 'confirmProductionWrite' parameters in context, and provides no behavioral context. The tool has no output schema, so the description should compensate.

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 for all parameters, so baseline is 3. The description adds no additional meaning beyond what the schema already provides.

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 top referrer domains for a given period.' It uses a specific verb ('Get') and resource ('top referrer domains'), and distinguishes from sibling analytics tools which cover summary, top pages, and trends.

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 referrer data but does not explicitly guide when to use this tool versus other analytics tools (e.g., thincms_analytics_summary, thincms_analytics_top_pages). No when-not or alternatives are mentioned.

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

thincms_analytics_summaryA

Get analytics summary: total views, unique visitors, top page, views today. Period: 7d, 30d, or 90d.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period (default: 30d)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 carry the full burden. It correctly implies a read-only operation ('Get') and lists the data returned. However, it does not disclose potential side effects, authorization requirements, or idempotency. For a simple read operation, the description is adequate but not exhaustive.

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, consisting of two sentences that front-load the purpose and key parameters. It is efficient and free of unnecessary words, though it could be slightly more structured (e.g., separating period options explicitly).

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 and the absence of an output schema, the description adequately covers the returned metrics and period options. It does not mention the optional siteId or confirmProductionWrite, but those are well-documented in the schema. Overall, the description is complete for a straightforward analytics summary 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 the description does not need to compensate heavily. It adds value by listing the metrics returned (not in schema) but does not elaborate on the period or siteId beyond what the schema descriptions already provide. The description is neutral; it neither adds nor detracts from 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 tool retrieves an analytics summary with specific metrics (total views, unique visitors, top page, views today) and period options (7d, 30d, 90d). The verb 'Get' and resource 'analytics summary' are precise, and it distinguishes from sibling analytics tools like thincms_analytics_top_pages and thincms_analytics_trend.

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 on when to use the tool (to get summary analytics) but does not explicitly state when not to use it or compare it to sibling analytics tools. While the metrics listed help differentiate, it lacks explicit guidance on alternative tools.

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

thincms_analytics_top_pagesB

Get top pages by views for a given period.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax pages to return (default: 10, max: 100)
periodNoTime period (default: 30d)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 bears full responsibility for behavioral disclosure. It does not mention that this is a read-only operation or that the confirmProductionWrite parameter is likely irrelevant for this endpoint. It also omits details like pagination or state effects.

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?

Single sentence clearly conveys core purpose with no wasted words. However, it could be slightly more structured by separating purpose from usage hints.

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?

The description is too brief given the complexity of parameters like siteId and confirmProductionWrite. It does not hint at the return value structure (list of pages with views) or any limitations, leaving the agent with incomplete context.

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 explains all parameters. The description adds minimal value beyond restating 'for a given period'. 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 verb 'Get', the resource 'top pages', and the metric 'by views' for a given period. It distinguishes from sibling analytics tools like summary, referrers, and trend.

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 thincms_analytics_summary or thincms_analytics_trend. It does not specify prerequisites or whether it is read-only.

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

thincms_analytics_trendA

Get daily views and visitors trend for a given period.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period (default: 30d)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior4/5

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

The description implies a read-only operation ('Get'), and the parameter descriptions for siteId and confirmProductionWrite add valuable context about state safety and when confirmProductionWrite applies. No annotations are provided, so the description partially compensates but does not address all behavioral aspects like rate limits or data freshness.

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, clear sentence that immediately conveys the tool's purpose. No extraneous information, well-suited for quick scanning.

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?

While the description explains the core function, it lacks details about return format (no output schema), pagination, or data granularity. For a tool with no output schema and low complexity, this is acceptable but not thorough.

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%, so the baseline is 3. The tool description does not add additional parameter semantics beyond what the schema already provides.

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 (daily views and visitors trend), and the context (for a given period). It differentiates from sibling analytics tools by specifying a unique metric.

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 like thincms_analytics_summary or thincms_analytics_top_pages. The purpose is implied by the description, but no exclusions or prerequisites are stated.

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

thincms_append_cssA

Append CSS to the end of the site's existing stylesheet without replacing it. Useful for adding new rules without re-sending the entire stylesheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoCSS to append
dryRunNoWhen true, return the size delta the change would produce without writing. Use to sanity-check large appends before committing.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
cssFileNoLocal file path containing CSS to append. Use instead of css for large additions.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool appends (without replacing) but does not mention other behavioral traits such as write implications, permission requirements, rate limits, or side effects. The confirmProductionWrite parameter is documented in the schema but not highlighted in the 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?

Two sentences, zero waste. Every word contributes to understanding the tool's action and value. No superfluous details.

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 5 well-documented parameters and no output schema, the description is mostly complete. It explains the core action and use case. Could be slightly improved by noting that it appends to the active site's stylesheet, but overall sufficient.

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 detailed parameter descriptions. The description adds minimal value beyond the schema, primarily reinforcing the append semantic. Baseline of 3 is appropriate as the schema 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?

The description clearly states the verb 'Append CSS' and the resource 'the site's existing stylesheet'. It explicitly contrasts with replacement ('without replacing it'), distinguishing it from sibling tools like thincms_patch_css. The use case 'adding new rules without re-sending the entire stylesheet' further clarifies its purpose.

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 (for incremental CSS additions) but does not explicitly state when not to use or mention alternatives like thincms_patch_css. It provides adequate context for basic usage but lacks exclusionary guidance.

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

thincms_bulk_create_postsA

Create up to 100 blog posts in a single request. Each post follows the same schema as thincms_create_post. Validation errors are reported per-item without failing the batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
postsYesArray of post objects to create
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses batch size limit, per-item validation, and schema reuse, but omits details about idempotency, authentication, rate limits, or atomicity. 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 two sentences, immediately stating the core action and key behavioral trait. No redundant information.

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?

Parameters are well-documented, but no output schema is provided and the description does not specify the response format. For a bulk creation tool, the agent would benefit from knowing what is returned (e.g., list of IDs or errors). Somewhat incomplete.

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 detailed descriptions for each parameter. The description adds context about schema equivalence to thincms_create_post, but does not significantly enhance understanding 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 the tool creates up to 100 blog posts in a single request, with a specific verb 'create' and resource 'posts'. It distinguishes from the sibling thincms_create_post by mentioning bulk capability and per-item validation error handling.

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 implies usage when creating multiple posts with partial success tolerance, but does not explicitly state when not to use it or provide alternative tools. However, the sibling list includes thincms_create_post, allowing AI inference.

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

thincms_campaign_statsC

Get campaign performance statistics (sent, opens, clicks, unsubscribes).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it retrieves statistics but does not mention if it is read-only, requires authentication, has rate limits, or any side effects. This is insufficient for safe agent invocation.

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, front-loaded sentence that conveys the core purpose without waste. However, it is very brief and could potentially include more detail without becoming verbose.

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?

The tool has no output schema and the description does not explain the return structure, pagination, or any error conditions. It also does not mention the need for an active site (implied by siteId parameter). Given the complexity of campaign stats, this omission reduces completeness.

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%, with most parameters having adequate descriptions (siteId and confirmProductionWrite are detailed). The tool description does not add any additional meaning beyond the schema for parameters; it only lists metric names. Baseline is 3 due to high coverage.

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 gets campaign performance statistics and lists example metrics (sent, opens, clicks, unsubscribes). It distinguishes from siblings like thincms_get_campaign which likely returns campaign details rather than statistics. However, it does not explicitly differentiate from other stats tools.

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. There is no mention of prerequisites, when not to use it, or which sibling tools might be more appropriate for different contexts.

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

thincms_capabilitiesA

Inspect the running MCP wrapper: version, count of registered tools, and the live tool list. Use to detect when your MCP host has cached a stale tool surface — if the count or list doesn't match what you expect for the current wrapper version, restart your host (Claude Desktop / Claude Code / VS Code) so it re-handshakes with the wrapper.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 convey behavioral traits. It implies a read operation ('Inspect') but does not explicitly state that it is non-destructive, safe, or has no side effects. It also omits details like output format or whether it requires authentication.

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 succinct sentences: first states purpose, second gives a concrete use case with actionable advice. No filler words, 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 zero parameters and no output schema, the description lists what the tool returns (version, count, tool list), which is sufficient for this simple tool. However, it could clarify that calling it has no side effects.

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?

There are zero parameters with 100% schema coverage. The description adds no parameter info, but none is needed. Baseline for no parameters is 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 tool's purpose: inspect the running MCP wrapper for version, tool count, and live tool list. This is a specific verb-resource combination and distinguishes itself from all sibling tools which perform content management 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 a specific use case: detecting stale tool caches and instructs to restart the host. While it gives clear when-to-use context, it does not explicitly mention when not to use or list alternatives.

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

thincms_clear_review_driftA

Clear the drift flag on a review after the editor has reconciled the edit (e.g. they're satisfied the new text is fine). Resets driftFlag to 'none' and clears driftNotes; if the review was held as drift_pending, that hold is also cleared (so a previously published review re-appears on the widget).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReview ID.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/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 details the state changes (resets driftFlag, clears driftNotes, clears hold) and the publishing effect. However, it does not disclose whether the operation is reversible, permission requirements, or side effects like notifications.

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 with no redundant information. It is front-loaded with the action and efficiently expands on effects. 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 3 parameters, no output schema, and no annotations, the description explains the tool's purpose and effects well. It lacks information about the return value (e.g., whether it returns the updated review or a success status), which would enhance completeness.

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 for all 3 parameters. The description adds no additional meaning beyond what the schema provides for each parameter. Baseline 3 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?

The description clearly states the tool clears the drift flag on a review, specifying the post-reconciliation context and the exact effects (resets driftFlag, clears driftNotes, clears hold). It distinguishes from sibling tools like thincms_publish_review and thincms_unpublish_review by focusing on drift resolution.

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 a clear precondition ('after the editor has reconciled the edit'), but does not explicitly state when not to use the tool or mention alternatives. It is clear enough for an agent to infer appropriate use, but lacks explicit exclusions.

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

thincms_create_authorB

Create a new author profile with bio, avatar, and social links.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoAuthor bio/description
nameYesAuthor name (required)
slugNoURL slug (auto-generated from name if omitted)
emailNoAuthor email
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
socialNoSocial links object, e.g. { twitter: '@handle', linkedin: 'url' }
websiteNoAuthor website URL
avatarUrlNoURL to avatar image
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states 'create' without mentioning side effects, idempotency, authentication needs, or what happens if an author with the same name already exists. The confirmProductionWrite parameter in the schema hints at safety concerns, but the description ignores it.

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 front-loaded with the action and resource. However, it could be slightly more informative without losing conciseness, e.g., noting that the response contains the created author object.

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?

The tool has 9 parameters and no output schema, yet the description is only one short sentence. It does not mention the return value, error handling, or how to use the siteId and confirmProductionWrite parameters. Given the complexity, the description is insufficiently 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?

The input schema has 100% description coverage, so each parameter is already documented. The description mentions three fields ('bio, avatar, and social links') but adds no new meaning or usage context beyond the schema. It is minimally additive but not harmful, earning a baseline score of 3.

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 ('Create a new author profile') and specifies key fields ('bio, avatar, and social links'). The verb and resource are explicit, and the tool is clearly distinct from sibling tools like thincms_update_author and thincms_delete_author.

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., thincms_update_author for modifying an existing author). There are no explicit when-to-use or when-not-to-use instructions, leaving the agent to infer from the name alone.

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

thincms_create_campaignA

Create a campaign record in ThinCMS. This stores the email content; it does NOT push to the connected mail platform (e.g. ActiveCampaign) or deliver to recipients. Use thincms_send_campaign as the second step.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name
listIdNoOverride default list ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subjectYesEmail subject line
tagFilterNoOnly send to contacts with this tag
htmlContentYesEmail HTML body
scheduledAtNoDEPRECATED — use scheduledFor. ISO 8601 timestamp.
scheduledForNoWhen the campaign should be delivered. Pass "immediate" to push to the mail platform now, or an ISO 8601 timestamp at least 60 minutes in the future to schedule. Omitting this is currently allowed (legacy fallback) but DEPRECATED — Phase 3 will require it.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool stores email content but does not deliver, which is a key behavioral trait. However, it does not mention important details like the confirmProductionWrite flag or the deprecation of scheduledAt, but given the schema covers these, the description provides adequate core transparency. Without annotations, the description holds the burden and does well.

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: two sentences with zero wasted words. It front-loads the core purpose, then distinguishes from the sibling, and gives a clear usage hint. 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 complexity (9 parameters, no output schema, no annotations), the description covers the essential context: what the tool does, what it does NOT do, and the appropriate next step. It lacks mention of the confirmProductionWrite requirement or return value, but these are partially covered in the schema. Overall, it is sufficiently complete for its role.

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 all parameters already well-documented in the schema. The description adds overarching context (store vs. send) but does not elaborate on individual parameter semantics beyond what the schema provides. Hence 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 it creates a campaign record in ThinCMS and explicitly distinguishes it from sending the campaign to the mail platform, which is done by the sibling tool thincms_send_campaign. The verb 'create' plus the resource 'campaign record' makes the purpose unambiguous.

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?

The description provides explicit guidance on when to use this tool (first step to store content) and when not to use it (does not push to mail platform). It directly names the alternative second step tool (thincms_send_campaign), which helps the agent decide the correct sequence.

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

thincms_create_categoryB

Create a new category. Optionally nest it under a parent category for hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name (required)
slugNoURL slug (auto-generated from name if omitted)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
parentIdNoParent category ID for nesting
sortOrderNoSort order (lower = first)
descriptionNoCategory description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 disclose behavioral traits. It only mentions optional nesting, but does not cover side effects, permissions, rate limits, or state changes. This is insufficient for a creation tool.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. However, it sacrifices completeness for brevity, which is acceptable for a simple tool but limits informativeness.

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 tool with 7 parameters and no output schema, the description is too minimal. It does not explain return values, error conditions, or prerequisites like site context. The schema covers parameters, but the description lacks holistic context.

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 descriptions for all 7 parameters. The description adds no additional meaning beyond 'optionally nest it under a parent category', which matches the parentId parameter. Baseline 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 verb 'Create' and the resource 'a new category', and adds optional nesting for hierarchy. This distinguishes it from sibling tools like update, delete, 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 usage for creating a category, but does not specify when not to use it (e.g., bulk creation or imports) or provide alternatives. No explicit usage guidance.

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

thincms_create_collectionA

Create a new collection. Display modes: 'cards' (grid), 'carousel' (horizontal scroll), 'banner' (full-width rotating), 'list' (vertical stack), 'compact' (smaller grid). Embed with {{collection:slug}} in page frame or content.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCollection name
slugNoURL-safe slug (auto-generated from name if omitted)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
columnsNoGrid columns for cards/compact/carousel (default: 3)
enabledNoWhether the collection is active (default: true)
maxItemsNoMax items to show, 0 = all (default: 0)
showLinkNoShow item links (default: true)
showImageNoShow item images (default: true)
showTitleNoShow item titles (default: true)
sortOrderNoSort order for listing (default: 0)
schemaTypeNoSchema.org type to auto-emit on pages that render this collection via {{collection:slug}}. 'faq' emits FAQPage JSON-LD using each item's title as the question and body as the answer. Default 'none'.
showRatingNoShow item ratings (default: true)
autoAdvanceNoAuto-advance carousel/banner (default: false)
descriptionNoInternal description/note
displayModeNoDisplay mode (default: cards)
showSubtitleNoShow item subtitles (default: true)
advanceIntervalNoSeconds between auto-advance slides (default: 5)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must cover behavioral traits. It discloses mutation and mentions embedding but does not detail safety, permissions, rate limits, or return format. Adequate but not rich.

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

Conciseness5/5

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

Extremely concise: two sentences that are front-loaded with purpose and key features. Every word adds value with 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?

Covers core concept but lacks mention of response format (no output schema), prerequisites (e.g., active site), or the impact of optional parameters. Adequate for a simple tool but could be more complete given 18 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 description coverage is 100%, so the schema thoroughly explains parameters. The description adds value by explaining display modes and embedding context, but does not elaborate on individual parameters 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 'Create a new collection' and lists display modes and embedding, making the tool's purpose and resource explicit. It is distinct from siblings like update/delete collection.

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 (display modes, embedding) but no explicit guidance on when to use this tool versus alternatives (e.g., when to update vs create) or when not to use it. Sibling guidance is absent.

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

thincms_create_collection_itemA

Add an item to a collection. The 'body' field is required (main content, can be HTML). Other fields are optional and visibility depends on the collection's show* settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMain content text or HTML (required)
titleNoItem title (e.g., person name, product name)
ratingNoRating 1-5 (for reviews/testimonials)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoWhether item is visible (default: true)
linkUrlNoLink URL (product page, profile, etc.)
imageUrlNoImage URL (photo, product image, logo)
linkTextNoLink button text (default: 'Learn more')
subtitleNoSubtitle (e.g., role, company, price)
sortOrderNoSort order (auto-assigned to end if omitted)
collectionIdYesCollection ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It notes that body is required and visibility depends on show* settings, but omits success/error behavior, return values, idempotency, 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 sentences, no wasted words. The first sentence states the purpose, the second adds crucial parameter context. Front-loaded and efficient.

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 creation tool with 12 parameters and no output schema, the description is adequate but incomplete. It covers the core function and key behavioral nuance but lacks return value info and error handling. Schema covers param details.

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 value by explaining body can be HTML and that field visibility depends on collection settings, providing context 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 the action 'Add an item to a collection' with the specific verb 'Add' and resource, distinguishing it from siblings like update or 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 creating new items but does not explicitly differentiate from update or delete tools, nor does it provide when-not-to-use guidance or alternative tool names.

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

thincms_create_content_blockA

Create a new reusable content block. For type='html' (default) the content field holds raw HTML inserted wherever {{block:slug}} appears. For type='reviews-widget', the block renders the published Google reviews widget server-side with config options (maxReviews, displayMode, minRating, showDate, showAvatar). Edit once, updates everywhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the block
slugNoURL-safe slug (auto-generated from name if omitted)
typeNoBlock type. Default: 'html'.
configNoJSON config blob for typed widgets (e.g. reviews-widget: '{"maxReviews":5,"displayMode":"grid"}'). Ignored for type='html'.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
contentNoHTML content (only used for type='html')
enabledNoWhether the block is active (default: true)
sortOrderNoSort order for listing (default: 0)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.3/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 explains behavior for both block types, mentions server-side rendering for reviews-widget, and notes 'Edit once, updates everywhere'. Could add return value 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?

Four sentences, no fluff, front-loaded purpose, efficient coverage of key details.

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 9 parameters and no output schema, description covers main behavior well. Missing explicit mention of return value or site context, but schema fills gaps. Could mention confirmProductionWrite.

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?

Schema has 100% coverage, but description adds significant context: explains how content field is used for html type, describes config options for reviews-widget, and notes auto-generation of slug. Adds value 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?

The description clearly states 'Create a new reusable content block' and explains the two types (html and reviews-widget) with specific details, distinguishing it from sibling tools like update or 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 creating blocks but does not explicitly state when to use this vs. alternatives like update_content_block, nor does it mention 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.

thincms_create_courseA

Create a new course or community. Courses start as draft by default. Set courseType to 'community' for ongoing recording libraries (modules become topics, lessons become recordings, content sorts newest-first). Set accessMode to control enrollment: 'free' (open), 'invite' (admin enrolls learners), or 'purchase' (Stripe payment required).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesCourse title (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoCourse status (default: draft)
summaryNoShort plain-text blurb for course catalog cards
dripModeNoContent drip mode (default: all-at-once). Ignored for communities.
accessModeNoHow learners gain access (default: free)
courseTypeNoType: 'course' (structured curriculum) or 'community' (ongoing recordings). Default: course. Communities default to all-at-once drip and sort recordings by date.
descriptionNoFull HTML landing page content
thumbnailUrlNoThumbnail image URL
priceCurrencyNoCurrency code (default: USD)
showInCatalogNoShow on public course catalog page (default: true)
priceAmountCentsNoPrice in cents (for purchase mode)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses default draft status, community mode effects, and production write guard via confirmProductionWrite. Lacks mention of rate limits or authentication details, but covers key behavioral aspects.

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 concise sentences front-loaded with purpose and defaults. Every sentence adds value without unnecessary detail.

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?

Covers key behaviors and parameters well, but omits what the response contains (e.g., returns created course object or ID). With no output schema, this information is important for the agent to process results.

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 meaning beyond schema by explaining the impact of courseType and accessMode, and clarifying purpose of siteId and confirmProductionWrite. This enriches understanding.

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 'Create' and the resource 'course or community', distinguishing between the two types. It effectively differentiates from sibling tools like thincms_update_course and thincms_delete_course.

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?

Includes explicit guidance on defaults (draft status), courseType behavior, and accessMode options. While it doesn't explicitly say when not to use this tool, the context of creation is clear and usage is well-explained.

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

thincms_create_enrollmentA

Enroll a learner in a course. The user must already exist — specify by email or userId. This bypasses payment requirements, effectively creating a free/invite enrollment.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoLearner's email address (looks up existing user)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
sourceNoEnrollment source label (default: invite)
statusNoEnrollment status (default: active)
userIdNoUser ID (alternative to email)
courseIdYesCourse ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses key behavioral trait: bypasses payment requirements, creating free/invite enrollment. With no annotations, description covers this important aspect. Could mention output or side effects but sufficient.

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 wasted words. First sentence states purpose and prerequisite, second adds key behavioral note. Highly concise 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 no output schema and moderate complexity, description covers purpose, prerequisites, and behavior. Lacks return value description but adequate for a create 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% with detailed descriptions. Description adds context (email/userId alternatives, defaults) but doesn't provide critical new meaning beyond schema. Baseline 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?

Clearly states the action 'Enroll a learner in a course', specifies the resource, and distinguishes from sibling tools like update/delete/list enrollments by emphasizing creation and bypassing payment.

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 states prerequisites (user must exist, specify by email or userId) and implies this is for free/invite enrollments. No explicit when-not 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.

thincms_create_formA

Create a new form or survey. Use renderMode 'fields' for standard forms (with field definitions) or 'html' for custom HTML surveys served at /s/:slug. Use preset 'contact' or 'newsletter' for pre-configured field sets. For large HTML content (>10KB), use htmlContentFile instead of htmlContent to pass a local file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesForm name (required)
slugNoURL slug (auto-generated from name if omitted)
fieldsNoField definitions (for renderMode 'fields')
presetNoPre-configured field set
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable form (default: true)
renderModeNo'fields' for standard forms, 'html' for custom survey HTML (default: fields)
webhookUrlNoURL to receive submission payloads via POST
descriptionNoForm description
htmlContentNoCustom HTML content (for renderMode 'html', served at /s/:slug)
successMessageNoMessage shown after successful submission
webhookUrlTestNoTest webhook URL (auto-deactivates after one delivery)
htmlContentFileNoLocal file path containing HTML content — use this instead of htmlContent for large surveys (>10KB). The file is read and sent as htmlContent.
webhookTestModeNoEnable test mode for webhook
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses that HTML surveys are served at /s/:slug and that htmlContentFile relates to file paths for large content. However, it doesn't mention side effects like enabling/disabling defaults or triggering webhooks, leaving some behavioral 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?

The description is three sentences, each providing distinct, necessary information. It is front-loaded with the core verb and resource, and every sentence provides actionable guidance without redundancy.

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, the description covers core functionality and key parameters. However, it does not mention what the tool returns upon creation (e.g., form ID or confirmation), which would be helpful for an agent using the result. It also omits important contextual details like the siteId parameter's role (though described in schema). Overally, quite complete for a creation 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 coverage is 100% so baseline is 3. The description adds value by explaining the purpose of renderMode, preset, and the trade-off between htmlContent and htmlContentFile. It also mentions auto-generation of slug, which goes beyond schema 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?

The description clearly states 'Create a new form or survey' and distinguishes between two render modes ('fields' for standard forms, 'html' for custom HTML surveys). It also mentions presets for pre-configured fields, making the purpose specific and distinct from sibling create tools.

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?

The description provides explicit guidance on when to use each renderMode and preset, and advises using htmlContentFile for large HTML content instead of htmlContent. This effectively tells the agent when to use different options, though it doesn't compare to siblings but that's unnecessary as this is the only form creation tool.

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

thincms_create_integrationA

Configure a new email platform integration (one per site). Platform: activecampaign, kit, mailchimp, gohighlevel.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUser-facing label (e.g. 'My ActiveCampaign')
configYesPlatform-specific config. ActiveCampaign: { apiUrl, apiKey, listId, fromEmail?, fromName?, addressId? }. GoHighLevel: { apiKey (Private Integration Token), locationId, listId? (a Workflow ID enrolled on submission) } — note GoHighLevel has no lists and email campaigns are managed inside GoHighLevel, not via ThinCMS campaigns.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
platformYesPlatform identifier (e.g. 'activecampaign')
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It mentions the 'one per site' constraint and config details, but does not disclose if the operation is idempotent, required permissions, or side effects of creating against an existing integration. 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 a single clear sentence followed by a platform list. No wasted words, front-loaded with the core action. Excellent conciseness.

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 (nested config, 5 params, no output schema), the description lacks return value info and does not reference related tools like thincms_get_integration for checking existing integrations. The config schema helps, but overall completeness is moderate.

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 the schema descriptions for parameters (especially config) are extensive. The tool description adds minimal extra value beyond listing platforms and the constraint, so baseline 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 verb 'Configure' and resource 'new email platform integration', lists specific platforms, and notes the 'one per site' constraint. This effectively distinguishes it from siblings like thincms_update_integration.

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 implies when to use (first-time setup) via 'one per site', but does not explicitly mention alternatives like thincms_get_integration to check if one exists. Context is clear but lacks explicit exclusions.

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

thincms_create_lead_magnetB

Create a new lead magnet. A lead magnet is a downloadable resource offered in exchange for a form submission (e.g., newsletter signup).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesLead magnet title (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
ctaTextNoCTA button text shown on the resources page (default: 'Get this resource'). Examples: 'Join the webinar', 'Take the survey', 'Download the guide'.
enabledNoEnable/disable lead magnet (default: true)
mediaIdNoMedia ID of the downloadable file
formSlugNoForm slug to associate with this lead magnet
sortOrderNoSort order for listing
landingUrlNoCustom landing URL override. When set, resource cards link here instead of /resources/:slug. Use for standalone pages (e.g., '/webinar').
descriptionNoDescription of the lead magnet
thumbnailUrlNoThumbnail image URL
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits beyond creation. It lacks information on side effects, permissions, idempotency, or error handling, leaving a gap for a mutation operation.

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 two sentences, front-loaded with the action and a helpful definition. It is efficient but could be slightly more concise by omitting the definition if considered extraneous.

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?

With 12 parameters and no output schema, the description is minimal. It does not cover return values, error conditions, or workflow context, leaving the agent underinformed 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?

Schema description coverage is 100%, so the schema already documents all 12 parameters fully. The description adds no additional parameter-level meaning 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?

Description clearly states the action ('create') and resource ('lead magnet'), with a concise definition of what a lead magnet is. The verb 'create' implicitly distinguishes it from sibling tools like update, delete, or 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?

The description implies usage for creation, but provides no explicit guidance on when to use this vs. alternatives (e.g., update vs. create). No prerequisites or exclusions are mentioned.

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

thincms_create_lessonA

Create a new lesson within a module. Content is raw HTML. Lessons are auto-ordered within their module. For large content (>10KB), use contentFile instead of content.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesLesson title (required)
isFreeNoMake this a free preview lesson (default: false)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
contentNoHTML content of the lesson
dripDateNoISO date when this lesson becomes available (for scheduled drip mode)
durationNoRecording duration in seconds (e.g., 2700 for 45 minutes)
moduleIdYesModule ID (required)
videoUrlNoVideo embed URL (YouTube, Vimeo, etc.)
isUnlockedNoManually unlock this lesson regardless of drip settings
contentFileNoLocal file path containing HTML content — use instead of content for large lessons
recordingDateNoISO date when the live session was held (for community recordings, distinct from createdAt)
videoDurationNoVideo duration (e.g., '10:30')
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses auto-ordering and large content handling, but does not mention side effects, failure modes, or dependencies like site configuration. Adds some behavioral context but not comprehensive.

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 wasted words. Each sentence adds meaningful information: core purpose, content format, auto-ordering, and size guidance. Excellent front-loading.

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 14 parameters and no output schema, the description is adequate but minimal. It covers the main use case but lacks details on return value, error scenarios, or side effects. Could be more complete for a complex creation 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 coverage is 100% with parameter descriptions. The tool description adds value beyond schema by explaining when to use contentFile over content (size threshold). This extra guidance improves parameter selection.

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 states 'Create a new lesson within a module', specifying verb ('Create'), resource ('lesson'), and context ('within a module'). It also mentions content is raw HTML and lessons are auto-ordered, distinguishing it from sibling update/delete tools.

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 guidance: for large content (>10KB) use contentFile instead of content. This helps the agent choose the right parameter. However, it does not explicitly state when to use this tool versus alternatives like update_lesson, but the creation context is clear.

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

thincms_create_moduleA

Create a new module within a course. Modules are auto-ordered by creation sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesModule title (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
courseIdYesCourse ID (required)
descriptionNoModule description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description must bear full burden. It mentions auto-ordering but does not disclose that this is a write operation requiring production confirmation, potential side effects, or prerequisites like the course must exist.

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-loading the primary action and key behavior. Every word is essential with no 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?

Given the tool has 5 parameters, no output schema, and no annotations, the description is minimal. It lacks details on return values, error handling, and prerequisites, leaving some gaps for proper 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?

Schema coverage is 100%, so parameters are well-documented. The description adds no extra meaning beyond the schema's parameter descriptions, which is acceptable per baseline for high 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 verb 'Create', the resource 'module', and the scope 'within a course'. It distinguishes from siblings like thincms_create_course or thincms_update_module. The auto-ordering note adds specificity.

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 it (to create a module in a course) but does not provide explicit guidance on when not to use it or mention alternative tools like thincms_reorder_modules for reordering.

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

thincms_create_pageA

Create a new static page. Content should be raw HTML. Use renderMode 'wrapped' for pages that use the site template, or 'standalone' for full custom HTML. For large content (>10KB), use contentFile instead of content to pass a local file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesPage title (required)
jsonLdNoCustom JSON-LD (Schema.org) injected verbatim into the page <head>. Pass valid JSON as a string. Use for Service, Event, BreadcrumbList, HowTo, Article, etc. Set to empty string to clear.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoPage status (default: draft)
contentNoHTML content
noIndexNoSet true to add noindex meta tag
metaTitleNoSEO meta title
ogImageUrlNoOpen Graph image URL
renderModeNoRender mode (default: wrapped)
contentFileNoLocal file path containing HTML content — use this instead of content for large pages (>10KB). The file is read and sent as content.
canonicalUrlNoCanonical URL
metaDescriptionNoSEO meta description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.1/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 stand alone. It discloses the content format requirement and content size limit, but does not mention default behaviors (e.g., slug auto-generation, status default), return values, or potential side effects. This 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 three sentences, each serving a purpose: first states what the tool does, second clarifies renderMode, third addresses large content. No extraneous information, and the most important details come first.

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 14 parameters and no output schema, the description covers the most critical usage context (content format, renderMode, contentFile). However, it lacks information about return values, error conditions, or additional behavioral details. It is adequate for basic usage but leaves gaps.

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 100%, so baseline is 3. The description adds value by explaining the purpose of renderMode options and when to use contentFile instead of content, which goes beyond the schema descriptions. This provides meaningful guidance for these 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 'Create a new static page', specifying the action and resource. It distinguishes from siblings by explicitly mentioning 'static page', differentiating it from posts, courses, etc. The mention of raw HTML and render modes adds specificity.

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 on when to use each renderMode ('wrapped' vs 'standalone') and when to use contentFile over content (>10KB). It does not explicitly state when not to use this tool vs alternatives, but the context is clear enough for selection.

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

thincms_create_popupA

Create a new popup/CTA. Each popup is linked to an existing form (by formId) which handles the actual data collection. The popup provides the presentation container, trigger logic, and targeting rules. Display types: 'overlay' (centered modal), 'sticky-top'/'sticky-bottom' (fixed bars), 'slide-in' (bottom-right card). On mobile, overlay auto-downgrades to sticky-bottom to avoid Google's interstitial penalty.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPopup name (required)
slugNoURL slug (auto-generated from name if omitted)
formIdYesID of the form to display inside the popup (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable popup (default: true)
bodyTextNoBody text shown between headline and form
headlineNoHeadline text shown above the form
priorityNoPriority (higher = more important). Specific-scope always beats site-wide regardless of priority. Default: 0
customCssNoCustom CSS to override default popup styles
targetingNoPage targeting rules (default: site-wide)
displayTypeNoDisplay type (default: overlay)
suppressDaysNoDays to suppress after visitor dismisses (default: 30)
ctaButtonTextNoCTA button text shown in step 1 of the two-step popup flow (default: 'Sign up'). Examples: 'Sign up', 'Book now', 'Get started', 'Download'
mobileEnabledNoShow on mobile devices (default: true)
triggerConfigNoTrigger configuration (default: time-delay 8s)
mobileDisplayTypeNoOverride display type on mobile (default: auto-downgrade overlay to sticky-bottom)
suppressOnConvertNoDays to suppress after visitor submits the form (default: 180)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description takes full responsibility. It discloses key behaviors: popups require an existing form, display types and mobile auto-downgrade, trigger configuration, and the confirmProductionWrite safety parameter. It does not mention auth needs or rate limits but covers substantial 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.

Conciseness4/5

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

The description is a single paragraph with clear, informative sentences. It covers essential points without redundancy. While it could be slightly more concise (e.g., using bullet points), it is 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 an 18-parameter creation tool with no output schema, the description provides substantial context: linking to forms, display types, mobile behavior, triggers, and safety. However, it lacks information about the return value (e.g., created popup object), which would enhance completeness.

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%, so the schema already documents each parameter in detail. The description adds minimal extra semantic value beyond reiterating display types and mobile behavior. It integrates parameters into a narrative but does not significantly surpass the schema's explanations.

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 popup/CTA' and explains its role as a presentation container linked to a form. It distinguishes from sibling tools like update_popup and delete_popup by focusing on creation. The specific verb and resource make the purpose unambiguous.

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 this tool (e.g., needing a popup with a form, display types, triggers) but does not explicitly compare with alternatives like lead magnets or other content creation tools. It lacks exclusion guidance or clear context for 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.

thincms_create_postA

Create a blog post. Content should be raw HTML. Tags are auto-created if they don't exist. For large content (>10KB), use contentFile instead of content. Posts with status="published" and a publishedAt in the past appear on the public site immediately; a future publishedAt is auto-scheduling — they appear when the timestamp passes (no worker required, the public site filters by date). Posts with status="draft" never appear publicly regardless of dates. Use scheduledFor="immediate" to publish now, or scheduledFor=<ISO timestamp at least 60 min in the future> to schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
tagsNoArray of tag names (auto-created if new)
titleYesPost title (required)
jsonLdNoCustom JSON-LD (Schema.org) injected verbatim into the post <head>. Pass valid JSON as a string. Use for HowTo, Recipe, Event, etc. (Article + BreadcrumbList are auto-emitted.) Set to empty string to clear.
seriesNoSeries name for multi-part content
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoPost status (default: draft)
contentNoHTML content of the post
excerptNoShort summary/excerpt
noIndexNoExclude this post from search engine indexing (default: false)
authorIdNoAuthor ID
featuredNoMark as featured post
metaTitleNoSEO meta title
ogImageUrlNoOpen Graph image URL
categoryIdsNoArray of category IDs
contentFileNoLocal file path containing HTML content — use this instead of content for large posts (>10KB). The file is read and sent as content.
gatePreviewNoCustom HTML teaser shown before the gate. If omitted, the excerpt or first 2 paragraphs are used.
pinnedUntilNoISO date: pin post until this date
publishedAtNoDEPRECATED — use scheduledFor. ISO date for publication date.
scheduledAtNoDEPRECATED — use scheduledFor. Legacy field, no longer affects visibility.
seriesOrderNoOrder within series
canonicalUrlNoCanonical URL
scheduledForNoWhen the post should become public. Pass "immediate" to publish now, or an ISO 8601 timestamp at least 60 minutes in the future to schedule. Required at status="published" — Phase 3 will reject omission. Posts with status="draft" ignore this field.
gatedFormSlugNoForm slug to gate this post behind. Visitors must submit the form to see full content. Set to empty string to remove gating.
membersContentNoHTML content visible only to authenticated members/subscribers. Shown after the main content for logged-in members.
metaDescriptionNoSEO meta description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully bears the burden of behavioral disclosure. It explains the effects of different statuses, the scheduling mechanism, auto-creation of tags, validations like 60-minute minimum for scheduledFor, and mentions deprecated fields. This is comprehensive and transparent.

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 well-structured, starting with the core action and then providing specifics. Each sentence adds useful information without redundancy. It could be slightly more structured (e.g., bullet points), but it is efficient and front-loaded with the most important 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 complexity (27 parameters, no output schema), the description covers input-related behavior thoroughly, including guidance on large content, scheduling, status effects, production write confirmation. However, it does not describe the return value or response structure, which would help an agent understand what to expect after creation.

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 input schema has 100% description coverage, so the baseline is 3. The tool description adds significant value by explaining the interplay between status, publishedAt, savedAt, and scheduledFor, and why contentFile exists for large content. This goes beyond what the schema descriptions provide.

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 blog post' and specifies that content should be raw HTML. It distinguishes this tool from siblings like thincms_update_post and thincms_bulk_create_posts by focusing on single post creation. The behavior around status and scheduling is precisely explained.

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 when to use this tool (creating a single post) and includes guidance on choosing between 'content' and 'contentFile' based on size, as well as how to schedule posts. However, it does not explicitly mention alternatives or when not to use this tool, such as for updates or bulk creation.

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

thincms_create_previewA

Create a preview session with draft template or content overrides. Returns a token-based preview URL (valid for 2 hours). Use this to preview CSS/template changes or draft content without publishing.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
pageFrameNoDraft HTML page frame to preview
stylesheetNoDraft CSS to preview
customHeadHtmlNoDraft custom head HTML to preview
contentOverridesNoArray of post/page content overrides to preview
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 carry the burden of behavioral disclosure. It mentions the preview URL is token-based and valid for 2 hours, and implies the operation is non-destructive ('without publishing'). However, it does not disclose whether creating a preview modifies state, idempotency, or any 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?

The description consists of two sentences that are front-loaded with the primary action. There is no fluff or redundant 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 tool has 6 optional parameters and no output schema, the description provides adequate context: what the tool does, key features (token-based, 2-hour validity), and use case. It could be more complete by mentioning the response format or prerequisites, but it is sufficient overall.

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% parameter description coverage, so the schema already documents each parameter fully. The description adds no additional meaning beyond what is in 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 it creates a preview session with draft template or content overrides and returns a token-based URL. It distinguishes from sibling tools like thincms_get_preview_url (which likely retrieves an existing preview) and thincms_go_live (which publishes).

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 says 'Use this to preview CSS/template changes or draft content without publishing,' which gives clear context for when to use the tool. It does not explicitly state when not to use or mention alternatives, but the guidance is sufficient.

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

thincms_create_quizA

Create a new quiz within a module. Quizzes share sort order with lessons — use thincms_reorder_module_items to position them. Two feedback modes: 'show_answer' reveals correct answers after submission, 'retry' shows only the score.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesQuiz title (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
moduleIdYesModule ID (required)
feedbackModeNoFeedback mode (default: show_answer)
passingScoreNoPassing score percentage (default: 70)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It mentions creation, sorting behavior, and feedback modes, but does not cover potential side effects (e.g., whether existing quizzes are affected) or required permissions. It provides reasonable but not exhaustive 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 two sentences, front-loads the core action, and includes only essential information (sort order, feedback modes). No redundancy or extraneous details.

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, no output schema, and no annotations, the description covers creation context, sorting integration, and feedback modes. It could mention the module relation more explicitly, but overall it provides sufficient context for an agent to use the tool correctly.

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 does not add significant meaning beyond the schema; it mentions feedback modes but does not elaborate on parameter constraints or relationships. The schema already describes parameters adequately.

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 quiz within a module' and distinguishes from sibling tools like thincms_create_lesson by noting that quizzes share sort order with lessons and by specifying unique feedback modes.

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 on sorting ('use thincms_reorder_module_items to position them') and explains the two feedback modes, helping the agent decide when to use this tool. It lacks explicit when-not-to-use or alternatives, 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.

thincms_create_redirectA

Create a URL redirect. Source path must start with /. Use /* suffix for wildcard matching.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoAdmin note explaining this redirect
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable the redirect (default: true)
targetUrlYesTarget URL — relative path or absolute URL (required)
sourcePathYesSource path, e.g. '/old-page' or '/blog/*' (required)
statusCodeNo301 (permanent) or 302 (temporary). Default: 301
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 full burden for behavioral disclosure. It only states that the tool creates a redirect, without mentioning side effects, authorization requirements, rate limits, or what happens on duplicate source paths. For a write operation, this is insufficient.

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: two sentences with no redundancy. Every word adds value. It is front-loaded with the core purpose and immediately follows with key constraints.

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 does not explain the return value or error scenarios. However, the input schema is well-documented, and the tool is a straightforward creation operation. The description is adequate for basic use but lacks completeness for edge cases or output expectations.

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?

All 7 parameters have descriptive schema entries (100% coverage), so the description adds little beyond restating the source path rule. The description reinforces the wildcard usage but does not add new semantic value for other parameters. Baseline 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 'Create a URL redirect' with a specific verb and resource. It also provides additional constraints (source path must start with /, wildcard matching with /*). This distinguishes it clearly from sibling tools like update, delete, list, get, and import.

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 gives some usage guidance (path prefix and wildcard syntax) but does not explicitly state when to use this tool versus alternatives like thincms_update_redirect or thincms_import_redirects. The guidance is implied by the tool name but not elaborated, limiting its helpfulness for an AI agent.

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

thincms_create_scriptB

Create a script injection for the public site. Scripts can be placed in the or before .

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesScript code including <script> tags (required)
nameYesScript name, e.g. 'Google Analytics' (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable the script (default: true)
placementNoWhere to inject: 'head' or 'body' (default: head)
sortOrderNoSort order for execution priority
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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. It lacks details on side effects, prerequisites, or impact (e.g., immediate live effect, permission 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?

Two concise sentences, no unnecessary words, direct and front-loaded.

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 7 parameters, no output schema, and no annotations, the description is too brief. It omits return value, constraints, and effects on existing scripts.

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 description adds minimal extra meaning beyond the schema's parameter descriptions. Baseline 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?

Clearly states it creates a script injection for the public site, with placement details. Distinguishes from siblings like thincms_list_scripts and thincms_update_script.

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 for adding scripts but provides no when-to-use or when-not-to-use guidance, nor comparison with alternative tools like thincms_append_css.

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

thincms_create_secretB

Create a new environment variable secret. The value is stored securely and never returned in API responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesVariable name, e.g. 'STRIPE_KEY' (required)
valueYesSecret value (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
descriptionNoDescription of what this secret is for
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description bears full burden. It only states the secret is stored securely and never returned, but omits critical behavioral traits like mutation side effects, idempotency on duplicate key, or that it's a write operation requiring permissions. Incomplete for a create 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 concise sentences, front-loaded with the action. No wasted 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?

With 5 parameters (2 required) and no output schema, the description covers the core purpose but lacks context on idempotency, duplicate keys, site scoping, and write permissions. The detailed schema partially compensates, but overall completeness is minimal.

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 detailed parameter descriptions (e.g., siteId explains overriding active site). The tool description adds no extra meaning beyond the schema, so baseline 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 'Create a new environment variable secret. The value is stored securely and never returned in API responses.' clearly states the verb (create), resource (environment variable secret), and a key behavioral feature (secure, never returned). It distinguishes from sibling tools like thincms_list_secrets.

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 vs alternatives (e.g., thincms_list_secrets). Lacks context about prerequisites, site scoping, or avoiding duplicate keys. Does not mention 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.

thincms_create_sequenceC

Create a new email sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSequence name
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
triggerFormSlugNoForm slug that triggers enrollment
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.8/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 only states the tool creates a sequence, but does not mention that it is a write operation, any side effects, or what happens upon success. The parameters like 'confirmProductionWrite' hint at production safeguards, but the description itself adds no behavioral context.

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

Conciseness3/5

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

The description is concise (one sentence), but it is overly minimal for a tool with 4 parameters and no output schema. It lacks structure and could benefit from additional essential information without being verbose.

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 complexity (4 params, no output schema, many siblings), the description is incomplete. It does not explain what an email sequence is, its relationship to other entities, or what the return value is. This is a significant gap for a creation 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 description coverage is 100%, so each parameter is already documented. The description does not add any extra meaning or context beyond what the schema provides. Baseline score of 3 is appropriate as the description adds no value over the schema.

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 action 'Create' and the resource 'email sequence', which is specific and not a tautology. However, it does not differentiate this tool from other creation tools among siblings, nor does it provide any contextual information about what an email sequence is.

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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when creation is appropriate, or when to use other sequence tools (e.g., update, delete). This leaves the agent without decision-making context.

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

thincms_create_tagB

Create a new tag. Note: tags are also auto-created when included in the tags array of a post.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTag name (required)
slugNoURL slug (auto-generated from name if omitted)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
descriptionNoTag description (displayed on tag archive page, used in meta description)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It discloses that tags can be auto-created via posts, which is a useful behavioral insight. However, it doesn't address what happens on duplicate names, idempotency, or required permissions.

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 very short and front-loaded with the core action. The note is placed after, maintaining conciseness. It could be slightly more structured but effectively communicates the essential point.

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 simplicity and rich schema documentation, the description provides adequate context for a create operation. However, it lacks information about return values (e.g., created tag object) and potential errors, which would help completeness.

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?

Input schema covers all parameters with descriptions, so baseline is 3. The description adds no extra parameter-level meaning beyond the note about auto-creation, which is not parameter-specific.

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 creates a new tag with a specific verb and resource. The note about auto-creation via posts adds nuance, but it doesn't explicitly differentiate from other tag operations like update or list.

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., thincms_update_tag, thincms_delete_tag). The note about auto-creation hints at a scenario but doesn't provide explicit usage boundaries or decision criteria.

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

thincms_create_toolA

Create a new Tool. html is the raw HTML/JS payload that renders inside a sandboxed iframe with a window.thinCMS runtime injected. Set authRequired to 'password' | 'google' | 'either' to gate access; 'none' makes the tool public. Set systemPrompt to prepend a persona to /ai/chat calls. For large HTML payloads (>10KB), use htmlFile with a local file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoRaw HTML/JS payload
nameYesTool name (required)
slugNoURL slug (auto-generated from name if omitted)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoPublish status (default: draft)
aiModelNoOverride site AI model for this tool (e.g. claude-sonnet-4-6)
enabledNoEnabled (default: true)
htmlFileNoLocal file path containing the HTML payload — use instead of html for large tools
rateLimitNoAI chat calls per end-user per hour (omit or null for unlimited)
allowSignupNoWhether the login screen offers self-signup (default: true)
descriptionNoShort description shown in admin UI
authRequiredNoAuth mode (default: none)
systemPromptNoDefault system prompt prepended to ai/chat calls
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries the full burden. It discloses the sandboxed iframe behavior, auth gating, and systemPrompt usage. However, it omits side effects, permissions required, or whether the tool is immediately active. The description is adequate but not exhaustive.

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?

Four sentences with key information front-loaded. Every sentence adds value. Could be slightly more structured (e.g., bullet points) but remains clear and concise.

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?

Covers the main behavioral aspects and key parameters, but missing return value description (no output schema) and does not mention sensitive parameters like `confirmProductionWrite`. For a 14-parameter tool, some details are omitted.

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 covers all parameters with descriptions. The description adds value by explaining the `html` parameter's rendering context, the meaning of `authRequired` values, and the purpose of `systemPrompt`. It also clarifies when to use `htmlFile`. This compensates for the high schema 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 starts with 'Create a new Tool' and explains the tool as an HTML/JS payload rendered in a sandboxed iframe. It clearly distinguishes the create operation from other tool actions by specifying the verb and resource.

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 guidance on when to use `htmlFile` instead of `html` for large payloads and describes the auth options. Lacks explicit when-not-to-use or alternatives among siblings, but since it's the only create tool, the context is sufficient.

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

thincms_create_workbookA

Create a workbook inside a module. Workbooks are fillable forms that live alongside lessons and quizzes — use thincms_reorder_module_items to position them. The fields array defines the form spec. For large specs (>10KB), use fieldsFile instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug (auto-generated from title if omitted)
titleYesWorkbook title (required)
fieldsNoOrdered array of field definitions. Each field is an object with at minimum { fieldId, type, label }. v1 field types: short_text, long_text, number, rating, select, multi_select, date, prompt_display, markdown_display. Input fields may include `prefillFrom: { courseSlug, workbookSlug, fieldId }` for cross-workbook references.
isFreeNoMake this workbook a free preview (default: false)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
dripDateNoISO date when this workbook becomes available (scheduled drip mode)
moduleIdYesModule ID (required)
fieldsFileNoLocal file path containing a JSON array of field definitions — use for large workbook specs
isUnlockedNoManually unlock regardless of drip settings
descriptionNoHTML content shown above the form
introContentNoOptional additional HTML intro shown after the description
requiredForCompletionNoWhether marking the workbook complete is required for module completion (default: true)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.
allowExportBeforeCompleteNoWhether learners can export before marking complete (default: true)

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention that the tool performs a write operation, any required permissions, side effects on module item order, or the nature of the response (e.g., returns created workbook). This lack of transparency leaves the agent underinformed.

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, consisting of two short sentences. Each sentence earns its place: the first states the core purpose and context, the second offers an important alternative for large specs. No wasted words.

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 (14 parameters, no output schema), the description is minimal. It does not discuss return values, error conditions, prerequisites (e.g., module existence), or the confirmProductionWrite safety parameter. While the schema descriptions fill some gaps, the description could do more to ensure the agent fully understands the tool's usage context.

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 schema descriptions cover all 14 parameters (100% coverage), so the description does not need to repeat them. The description adds useful context by explaining the fields array as defining the form spec and introducing fieldsFile as an alternative for large specs, which goes beyond the schema's individual field 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?

The description clearly states the action ('Create a workbook inside a module') and differentiates the tool from siblings by specifying that workbooks are fillable forms living alongside lessons and quizzes, and by referencing the reorder tool for positioning. It also introduces key concepts like fields and fieldsFile.

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 guidance on post-creation positioning via thincms_reorder_module_items and on choosing between fields and fieldsFile for large specs. However, it does not explicitly state prerequisites (e.g., module must exist) or when to avoid this tool in favor of alternatives like thincms_create_form.

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

thincms_delete_authorC

Delete an author by ID. Posts by this author will have their author unset.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAuthor ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

The description discloses that posts lose their author, which is a useful behavioral trait. However, it lacks details on irreversibility, permission requirements, or other side effects. With no annotations, the description carries full burden and is insufficient.

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, efficient and front-loaded with the verb 'Delete'. Every word earns its place; no fluff.

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?

The description is incomplete given the lack of output schema and annotations. It does not specify the return value (e.g., success message, deleted object) or provide usage context among many sibling tools.

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 does not add meaning beyond the schema's parameter descriptions (e.g., no explanation of id, siteId, confirmProductionWrite).

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 action (delete an author by ID) and a key side effect (posts have author unset). This distinguishes it from other author tools (create/update) but doesn't specify when to use this versus other deletion tools (e.g., delete_post).

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 usage guidelines are provided. The description does not indicate when to use this tool, when not, or suggest alternatives. For a deletion operation, prerequisites or warnings about cascading effects are missing.

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

thincms_delete_campaignC

Delete a campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description fully bears the burden of behavioral disclosure. 'Delete a campaign' implies an irreversible destructive action, but the description does not mention cascading effects, confirmation requirements (confirmProductionWrite from schema), or whether the action can be undone. This is insufficient for a deletion tool.

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, concise but too minimal. It avoids verbosity but sacrifices completeness. Every word earns its place, but the description could be more informative without bloating (e.g., adding a sentence about confirmProductionWrite or irreversibility).

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's complexity (3 params, no output schema), the description is incomplete. It fails to mention that the action is destructive, that confirmProductionWrite may be required, or that it permanently removes a campaign. The schema covers parameter details, but the description leaves critical context unaddressed.

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%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters like id, siteId, and confirmProductionWrite. No extra value, but no harm.

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 'Delete a campaign.' clearly states the action and resource. It is straightforward but does not differentiate from other delete tools in the sibling list, which all follow a similar pattern. A higher score would require explicit distinction, but the purpose is unambiguous.

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., unpublish, archive). There is no mention of prerequisites, required permissions, or scenarios where deletion is appropriate vs. other actions. The description provides no context for decision-making.

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

thincms_delete_categoryA

Delete a category by ID. Posts in this category will be uncategorized.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCategory ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 disclose all behavioral traits. It mentions the side effect of uncategorized posts, but it does not address reversibility, permission requirements, rate limits, or confirmation steps. This is insufficient for a destructive 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 two sentences with no unnecessary words. It is efficiently front-loaded with the core action and immediate consequence.

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?

The tool is a simple delete with no output schema. The description covers the primary side effect but omits return value, error cases, or success indication. Adequate for a straightforward operation but could be more informative.

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%, and the description does not add any detail beyond what the schema already provides. The description does not elaborate on parameters, so it meets the baseline but does not exceed 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 action ('Delete') and resource ('category by ID'). It also mentions the side effect that posts become uncategorized, which distinguishes it from other delete tools in the sibling 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?

The description implies when to use it (to delete a category) but does not provide explicit guidance on when not to use it or alternatives (e.g., updating the category to clear posts). No direct comparison with siblings.

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

thincms_delete_collectionA

Delete a collection and all its items. Any {{collection:slug}} references will render as empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCollection ID to delete
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/5.0
Behavior3/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 covers the cascade delete and reference impact, but lacks details on irreversibility, permission requirements, 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 extremely concise: two sentences that front-load the action and immediately follow with a key consequence. No wasted 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?

For a destructive tool with no output schema, the description adequately explains the cascade and reference effect. It could mention irreversibility or recovery options, but it is sufficiently complete for its 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?

The input schema covers 100% of parameter descriptions, so the tool description adds no extra meaning. 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 verb 'Delete' and the resource 'a collection and all its items', distinguishing it from sibling delete tools for other resources. It also notes the side effect on references, adding specificity.

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 permanently removing a collection, and warns about references rendering empty. However, it does not explicitly mention when to use alternatives (e.g., update instead of delete) or when not to use (e.g., if references are critical).

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

thincms_delete_collection_itemB

Delete an item from a collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesItem ID to delete
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
collectionIdYesCollection ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits like irreversibility, cascade effects, or the need for the confirmProductionWrite parameter. For a destructive operation, more transparency is needed.

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?

Single sentence, concise and front-loaded with the action. However, it omits useful context that could be added in a few more words.

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?

No output schema, and the description does not explain return values or post-deletion state. While parameters are well-documented in schema, the description lacks completeness for a deletion 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% with detailed parameter descriptions. The tool description adds no additional parameter meaning, so 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 'Delete an item from a collection' clearly states the verb (delete) and resource (item from collection), distinguishing it from sibling tools like thincms_delete_collection and other item delete functions.

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., thincms_delete_collection for the entire collection, or thincms_update_collection_item for modifications). Missing prerequisites or context for selection.

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

thincms_delete_content_blockA

Delete a content block. Any {{block:slug}} references in templates or content will render as empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContent block ID to delete
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations are absent, so the description carries full burden. It discloses the destructive nature (deletion) and the side effect of broken template references, which is valuable. However, it does not mention permissions, reversibility, or the confirmProductionWrite parameter's role in production safety.

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, no redundant text, and the most important info (delete + side effect) is front-loaded. 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?

For a simple delete operation with three well-documented parameters and no output schema, the description covers the essential side effect. It lacks mention of return behavior or confirmProductionWrite, but overall is adequate.

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 all parameters documented in the input schema. The description adds no extra parameter context beyond what the schema already provides, so a baseline 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 action 'Delete a content block' and specifies the resource type. It distinguishes from siblings like thincms_delete_post or thincms_delete_course by focusing on content blocks. The additional note about template references adds clarity.

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 such as thincms_update_content_block or thincms_delete_post. No when-not-to-use or prerequisite conditions are mentioned, leaving the agent to infer based on name alone.

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

thincms_delete_courseA

Delete a course and all its modules, lessons, quizzes, and enrollments.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCourse ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/5.0
Behavior4/5

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

Despite no annotations, the description explicitly states the cascading deletion behavior (all modules, lessons, quizzes, enrollments), which is critical behavioral context. It does not disclose reversibility or permission requirements, but the destructive scope is clearly communicated.

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 with no wasted words. It front-loads the key action and scope, making it easy 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?

For a delete tool, the description covers the essential behavior (cascade). It could mention irreversibility or production write confirmation (handled by schema), but overall it is sufficiently complete given the tool's simplicity and the absence of an output schema.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already has a description. The tool description adds no additional semantic value beyond what the schema provides. Baseline 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 uses a specific verb ('Delete') and resource ('course'), and clearly distinguishes from sibling tools like thincms_delete_lesson by listing the cascade of deletions (modules, lessons, quizzes, enrollments). This makes the tool's purpose unambiguous.

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 like thincms_delete_module for partial deletions, nor does it mention when not to use it. No usage context or exclusion criteria are given.

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

thincms_delete_enrollmentC

Delete an enrollment permanently.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEnrollment ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 must disclose all behavioral traits. It only states 'permanently', but fails to mention permissions requirements, cascading effects on related data, or whether the operation can be undone.

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 appropriately concise, though it could benefit from additional context without becoming verbose.

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 lack of annotations and output schema, the description is minimally adequate. It covers the core action but omits important context about permanence, required permissions, and potential consequences.

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 tool description does not add any further meaning beyond the schema's parameter descriptions, which are already detailed.

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 (delete) and resource (enrollment), and the word 'permanently' adds finality. However, it does not differentiate from other delete tools or specify the required identifier, but it is not a tautology.

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 update or list enrollment. There is no mention of prerequisites, such as needing the enrollment ID from a list, or warnings about irreversibility.

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

thincms_delete_lead_magnetB

Delete a lead magnet by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLead magnet ID to delete
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of disclosing behavioral traits such as irreversibility, cascading effects, or permissions. It merely states the action without any such 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?

The description is a single clear sentence with no extraneous words, achieving high conciseness. However, it may be slightly too brief, lacking behavioral context, which prevents a perfect score.

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 absence of an output schema and the presence of optional parameters (siteId, confirmProductionWrite), the description lacks completeness. It does not explain return values, side effects, or the meaning of the optional parameters in context.

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%, so all parameters are already documented in the schema. The description adds no extra meaning beyond what the schema provides, meeting the baseline of 3.

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 ('lead magnet') with a specific identifier ('by ID'). It is unambiguous and distinguishes itself from sibling tools like thincms_create_lead_magnet or thincms_update_lead_magnet.

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 usage guidelines are provided. The description does not mention when to use this tool versus alternatives, nor does it offer any prerequisites or exclusions. An agent must infer context from the tool name alone.

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

thincms_delete_lessonA

Delete a lesson and its attachments.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLesson ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses the core behavior (deletes lesson and attachments) but is minimal. No annotations provided, so the description carries full burden. It does not mention whether deletion is reversible, any side effects, or auth requirements. Adequate for a straightforward delete.

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 short sentence delivers the core purpose. No unnecessary words or repetition. Highly efficient.

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 and no annotations, the description is minimal but covers the essential purpose. Could benefit from details on deletion behavior (e.g., permanence, required permissions) but is not incomplete. Adequate for a simple delete operation.

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. Description adds no parameter-specific meaning beyond what the schema already provides. The schema sufficiently documents each parameter.

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 ('a lesson'), and includes scope ('and its attachments'). It is specific and distinct from sibling tools like thincms_delete_course, thincms_delete_module, etc. No ambiguity.

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., thincms_update_lesson for edits, or other delete tools). No mention of prerequisites or when not to use. Minimal context for selection.

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

thincms_delete_lesson_attachmentB

Delete a file attachment from a lesson.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
lessonIdYesLesson ID (required)
attachmentIdYesAttachment ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 full burden. It only states 'Delete' without disclosing destructive behavior, permanence, permissions, or side effects (e.g., confirming production write through confirmProductionWrite parameter description, but not in the main description).

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 (8 words), front-loading the action. It is efficient with no wasted words, though slightly more context might be beneficial for a delete tool.

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 4 parameters and no output schema, the description lacks completeness. It does not mention irreversibility, prerequisites (e.g., need lessonId and attachmentId), or what happens after deletion. This could lead to misuse.

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 no extra meaning beyond the schema descriptions, which are already detailed for siteId and confirmProductionWrite. Thus, score is adequate but not improved.

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 'Delete a file attachment from a lesson' uses a specific verb (Delete) and resource (file attachment), clearly distinguishing it from sibling tools like thincms_upload_lesson_attachment and thincms_get_lesson_attachment_url.

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 gives no explicit guidance on when or when not to use this tool versus alternatives. For a straightforward delete operation, this is minimally adequate, but lacks context such as needing the attachment ID or being irreversible.

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

thincms_delete_mediaB

Delete a media item and remove the file from disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMedia ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 responsibility for behavioral disclosure. While it hints at destructiveness ('remove file from disk'), it does not mention reversibility, permission requirements, cascading effects on references, or any side effects beyond file deletion.

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, efficient sentence with no extraneous words. It is front-loaded with the core purpose. However, it could benefit from minor expansion for clarity without losing conciseness.

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 should clarify return values (e.g., success indicator). It mentions file removal but omits confirmation or error behavior. For a deletion operation on a content system, additional detail about scope (e.g., 'permanently delete') would improve completeness.

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 parameter descriptions in the schema are already detailed (e.g., siteId, confirmProductionWrite). The tool description adds no additional semantic meaning beyond what the schema provides, 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 action ('Delete a media item') and specifies the additional effect ('remove the file from disk'). It is a specific verb+resource combination that distinguishes from sibling tools like upload, update, or get media.

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 (e.g., thincms_update_media or thincms_get_media). There are no prerequisites, warnings about irreversible deletion, or conditional contexts such as needing a site ID.

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

thincms_delete_moduleB

Delete a module and all its lessons and quizzes.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
courseIdYesCourse ID (required)
moduleIdYesModule ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description must disclose all relevant behaviors. It explicitly states the cascading deletion of lessons and quizzes, which is good. However, it omits details about permissions, reversibility, or the need for confirmProductionWrite on production sites.

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, efficient sentence with no wasted words. It could be slightly expanded with usage context, but it remains 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?

Given no output schema and a destructive operation, the description is minimally complete. It covers what is deleted but not the response format, error conditions, or safety measures like confirmProductionWrite. For a delete tool, more context about irreversibility and acknowledgments would be beneficial.

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 parameters are fully described in the schema. The description adds no additional meaning beyond the schema, meeting the baseline. It does not explain how to obtain courseId or moduleId, but that is acceptable given the schema 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 ('delete'), the resource ('module'), and the scope ('and all its lessons and quizzes'). It effectively distinguishes from sibling tools like thincms_delete_lesson or thincms_delete_quiz because it deletes an entire module with its child entities.

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. For example, it does not mention that individual lessons or quizzes can be deleted separately using thincms_delete_lesson or thincms_delete_quiz, or that this operation is irreversible.

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

thincms_delete_pageB

Permanently delete a static page by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Despite saying 'permanently delete', the description does not disclose consequential details like permissions required, cascading deletes, or whether operation is reversible. Partial 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?

Single sentence, direct and front-loaded. Could be slightly more informative without losing conciseness, but efficient overall.

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 delete action with no output schema, the description covers core purpose but lacks details like return value, error behavior, or idempotency. Adequate but not thorough.

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 schema descriptions are detailed (especially for siteId and confirmProductionWrite). The tool description adds no additional parameter context beyond the schema, so baseline 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?

Description clearly states 'permanently delete a static page by ID', specifying action, resource, and identifier. Distinguished from sibling delete tools for other resources.

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 or avoid this tool. No mention of prerequisites, alternatives, or side effects. The description is minimal.

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

thincms_delete_popupB

Delete a popup by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPopup ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior, but it only says 'delete'. It does not mention whether deletion is permanent, if any cascading effects occur, or the role of the 'confirmProductionWrite' parameter (only documented in schema). This is insufficient for a destructive operation.

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 concise sentence, but it is overly terse, omitting important details. While there is no wasted text, the lack of substance prevents a higher score.

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 absence of an output schema and annotations, the description should cover return behavior (e.g., success response) and safety concerns (e.g., production write confirmation). It fails to provide a complete mental model for the 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 description coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning beyond 'Delete a popup by ID.' Thus, it meets the baseline but does not exceed 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 action (Delete) and the resource (popup) and specifies the identifier (by ID). It succinctly distinguishes this tool from sibling CRUD tools like thincms_create_popup, thincms_get_popup, thincms_update_popup.

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, prerequisites (e.g., existence of the popup), or consequences of deletion. The description is purely declarative with no contextual usage advice.

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

thincms_delete_postB

Permanently delete a blog post by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors. It says 'permanently delete' (irreversible) but fails to mention important traits: the need for production confirmation (confirmProductionWrite parameter), site switching behavior, or any side effects. This leaves the agent underinformed.

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 (one sentence), but it sacrifices completeness. It front-loads the key action but omits critical context. Every word is earned, but more is needed.

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's complexity (3 parameters, no output schema, many siblings), the description is insufficient. It lacks context about site switching, production safeguards, and expected behavior, making it hard to use correctly.

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 documents all parameters. The description adds no new meaning beyond 'by ID' (which is redundant). It does not mention optional parameters like siteId or confirmProductionWrite.

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 action (delete), resource (blog post), and identifier method (by ID). It distinguishes this from sibling delete tools like thincms_delete_course and thincms_delete_page by specifying the resource type.

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 (e.g., other delete tools). There is no mention of prerequisites, context (like site selection), 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.

thincms_delete_quizA

Delete a quiz and all its questions and attempts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuiz ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/5.0
Behavior3/5

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

While no annotations are provided, the description discloses cascading deletion (questions and attempts), which is important behavioral context. However, it omits details about irreversibility, permissions, or production safety implications.

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?

A single concise sentence with no extraneous words, front-loaded with the core action and scope. Every word is necessary.

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 (delete operation) and 100% schema coverage, the description is nearly complete. It lacks mention of the return value or error conditions, but these are minor gaps.

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 parameters are already well-documented. The description does not add additional meaning beyond what the schema provides, meeting the baseline expectation.

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'), resource ('a quiz'), and scope ('all its questions and attempts'), distinguishing it from other delete tools like thincms_delete_lesson or thincms_delete_workbook.

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 explicit guidance on when to use this tool versus alternatives, nor any exclusion criteria. The description only states the action without contextual usage advice.

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

thincms_delete_quiz_questionB

Delete a question from a quiz.

ParametersJSON Schema
NameRequiredDescriptionDefault
quizIdYesQuiz ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
questionIdYesQuestion ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3/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 carry the burden of behavioral disclosure. However, it only states 'delete' without clarifying destructive implications, required permissions, side effects (e.g., affecting quiz results), or the presence of the confirmProductionWrite parameter. The description fails to add critical behavioral context beyond the obvious.

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, making it concise. However, it is too brief to convey necessary context; it sacrifices informativeness for brevity. An ideal description would be slightly longer but still focused.

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's 4 parameters (including cross-cutting siteId and confirmProductionWrite) and no output schema or annotations, the description is incomplete. It omits important details such as the effect of the siteId override, the requirement for confirmProductionWrite in production, and what happens upon success or error. The agent lacks sufficient context to use the tool correctly.

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 all 4 parameters documented. The description adds no additional meaning beyond the schema, so it meets the baseline. However, it does not explain relationships (e.g., the interplay of quizId and questionId) or any usage patterns, keeping it at a 3.

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 'Delete a question from a quiz' uses a specific verb and resource, clearly distinguishing it from sibling tools like thincms_delete_quiz (deleting an entire quiz) or thincms_delete_lesson (deleting a lesson). It leaves no ambiguity about the tool's 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?

The description provides no guidance on when to use this tool vs alternatives, nor does it mention prerequisites or exclusions. The agent is left without context on proper usage, which is a significant gap for a delete operation in a content management system.

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

thincms_delete_redirectB

Delete a redirect by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedirect ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description fails to disclose that this is a write operation requiring the confirmProductionWrite parameter for production sites. The schema mentions this, but the description should alert the agent to safety requirements.

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?

Extremely concise at one sentence. While front-loaded, the brevity omits important safety context. Could benefit from a second sentence about production write acknowledgment.

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 critical context: no mention of return value, side effects, or the need for confirmProductionWrite on production sites. Schema covers params but overall behavior is under-described.

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 detailed descriptions for all parameters (id, siteId, confirmProductionWrite). The tool description adds no extra parameter information, so baseline 3 applies.

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

Purpose5/5

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

The description 'Delete a redirect by ID' clearly states the verb (delete) and the resource (redirect), specifying the identifier used. It is specific and distinct from sibling tools which operate on other resources.

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., thincms_update_redirect, thincms_import_redirects). No mention of prerequisites like retrieving the ID beforehand 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.

thincms_delete_sequenceB

Delete a sequence and all its steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSequence ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses the cascading deletion of steps, which is important behavioral info. However, it does not mention the confirmProductionWrite parameter or any other safety considerations, and no annotations are provided to compensate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no fluff. It efficiently conveys the core purpose.

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?

The description is minimal and lacks detail on error handling, dependencies, or production safety. Given the complexity of cascading delete and the presence of confirmProductionWrite, more context is needed.

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 description adds no extra parameter meaning. The schema already describes id, siteId, and confirmProductionWrite adequately.

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 a sequence and all its steps,' specifying the verb and resource, and it distinguishes from sibling tool delete_sequence_step which only removes a single step.

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 vs alternatives like delete_sequence_step or other delete tools. The description does not mention prerequisites or when to prefer this tool.

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

thincms_delete_sequence_stepB

Delete a step from a sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
stepIdYesStep ID
sequenceIdYesSequence ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 should disclose destructive nature, irreversibility, and any side effects (e.g., reordering). It only says 'Delete', which is implied but lacks detail.

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 at one sentence, no fluff. However, given the lack of annotations, slightly more context could be justified 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?

The description is incomplete for a delete operation with 4 parameters and no output schema. It omits behavioral context, prerequisites, and guidance on production write confirmation.

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 for all parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description 'Delete a step from a sequence' clearly states the action and the resource, distinguishing it from sibling tools like add_sequence_step or update_sequence_step.

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., update_sequence_step, delete_sequence), or what conditions must be met before deletion.

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

thincms_delete_submissionB

Delete a form submission by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesForm ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
submissionIdYesSubmission ID to delete
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 must carry the full burden. It only states 'Delete' without disclosing whether the deletion is permanent, permissions needed, side effects, or interaction with production safeguards. The confirmProductionWrite parameter hints at safety but the description does not address it.

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 that efficiently states the purpose. It is concise, though it could benefit from slight expansion for behavioral context without becoming verbose.

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 presence of 4 parameters including a production-write confirmation, the description lacks context about usage flow, return values (no output schema), and the destructive nature. It is under-specified for reliable agent usage.

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%, so the description adds no additional meaning beyond what the schema already provides for each parameter. The 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 'Delete a form submission by ID' clearly states the verb (delete) and resource (form submission), and distinguishes it from sibling tools like thincms_list_submissions or thincms_export_submissions_csv.

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 vs alternatives, prerequisites (e.g., submission must exist), or when not to use it. The description is minimal and leaves the agent to infer usage.

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

thincms_delete_subscriberB

Delete a subscriber by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe subscriber ID to delete
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of behavioral disclosure. While 'Delete' implies a destructive mutation, the description does not detail side effects (e.g., cascade, irreversibility) or prerequisites (e.g., permissions). The confirmProductionWrite parameter hints at production safety, but the description fails to explain this.

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 clearly states the purpose. It is appropriately front-loaded, but it could include more contextual information without becoming verbose. Every word earns its place.

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 destructive nature of the operation (no annotations) and three parameters including confirmProductionWrite, the description lacks completeness. It does not mention permanence, production write acknowledgment, or the siteId parameter's role, leaving the agent without sufficient context to use the tool safely.

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%, so the schema fully documents each parameter. The description adds no additional meaning beyond what the schema provides, meeting the baseline of 3 per calibration rules.

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 'Delete a subscriber by ID' clearly specifies the verb (Delete) and resource (subscriber) with the key identifier (ID). It distinguishes this tool from sibling tools like thincms_list_subscribers or thincms_set_subscriber_password by naming the resource and action.

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 (e.g., deactivating a subscriber or using a different tool). Prerequisites, such as the subscriber existing or the irreversibility of deletion, are not mentioned.

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

thincms_delete_tagA

Delete a tag by ID. Removes the tag from all posts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTag ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 discloses the cascade effect (removes from all posts), which is helpful. However, it does not mention permissions, irreversibility, or what happens on error or success.

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, front-loaded sentences with no fluff. 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 tool, the description is adequate but missing details like success response, idempotency, or handling of non-existent tags. No output schema, so more context would help.

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 the description does not add value beyond the schema. The 'id' parameter is mentioned, but siteId and confirmProductionWrite are 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 resource (tag by ID), and adds the side-effect of removing the tag from all posts, distinguishing it from other delete tools like thincms_delete_post.

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 thincms_delete_category or thincms_update_tag. Prerequisites or common use cases are not mentioned.

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

thincms_delete_toolA

Permanently delete a Tool. Cascades to all ToolData rows, ToolAiUsage rows, and end-user sessions scoped to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior4/5

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

Given no annotations, the description effectively discloses permanence and cascading behavior (ToolData, ToolAiUsage, end-user sessions). It does not mention authentication or production write confirmation, but the schema covers the latter.

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, well-structured sentence that efficiently conveys the core action and side effects.

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 explains the cascade behavior adequately. It could mention the confirmProductionWrite requirement for production sites, but overall it is complete given the schema covers parameters and no output schema exists.

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 description need not repeat parameter details. The description does not add meaning beyond the schema, which is acceptable at this coverage level.

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 permanently deletes a Tool and cascades to associated rows and sessions, distinguishing it from related siblings like thincms_delete_tool_data which only deletes data rows.

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 permanent removal but does not explicitly state when to use this vs. alternatives like thincms_delete_tool_data, nor 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.

thincms_delete_tool_dataA

Delete a single data key. Deletes only the caller's scope — with subscriberId, the per-user value; without, the tool-global value.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
keyYesData key
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subscriberIdNoEnd-user Subscriber ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains the scoping behavior but does not mention error handling (e.g., deleting non-existent key), idempotency, or the destructive nature (though implied). Lacks details on side effects or safety considerations.

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 unnecessary words. Efficiently conveys the core function and scoping nuance.

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?

The description covers the deletion behavior and scoping but omits important context: what happens after deletion (no output schema), the role of confirmProductionWrite for safety, and how siteId affects scope. Given 5 parameters and no output schema, more detail would be beneficial.

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 meaningful context for subscriberId (caller's scope, per-user vs. tool-global) but does not add new information for id, key, siteId, or confirmProductionWrite beyond the schema 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?

The description clearly states the tool's action ('Delete a single data key') and distinguishes scoping behavior with/without subscriberId. It differentiates from sibling tools like get, set, list tool data.

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 clear guidance on when to include subscriberId for per-user deletion vs. omitting it for tool-global deletion. However, it does not explicitly state when not to use this tool or mention alternatives like thincms_set_tool_data with empty value.

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

thincms_delete_workbookA

Delete a workbook and all its learner responses. This is destructive — there is no soft delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorkbook ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 full burden. It discloses destructive nature and no soft delete, which is good. However, it omits details about confirmProductionWrite parameter, authentication requirements, or response behavior, leaving gaps for an AI agent.

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, directly stating the core action and a key behavioral note. No unnecessary words, and the critical 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?

For a simple delete tool with no output schema and no annotations, the description covers the essential destructive behavior. However, it lacks context on the siteId and confirmProductionWrite parameters, which are important for correct usage in multi-tenant environments. This is a notable gap.

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?

All three parameters are described in the input schema (100% coverage). The description adds no additional parameter-specific meaning beyond the schema. 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 action (delete) and the resource (workbook), specifying that learner responses are also removed. It distinguishes itself from sibling tools like thincms_create_workbook by emphasizing irreversibility.

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 explicit guidance on when to use this tool versus alternatives. While the description implies permanent deletion, it does not mention prerequisites, when not to use, or suggest any alternatives (e.g., soft delete options, though none exist).

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

thincms_export_course_portfolioB

Export a learner's full course portfolio (every workbook in module order) as PDF or Markdown. Pass outputPath for PDF (required) or to save the Markdown to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesOutput format
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
userIdYesLearner user ID (required)
courseIdYesCourse ID (required)
outputPathNoLocal file path to write the export to. Required for PDF.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 file writing but does not disclose whether the operation is destructive, requires specific permissions, or what the return value is. The confirmProductionWrite parameter is not explained in description.

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 (two sentences) and front-loaded with the main purpose. Minor redundancy could be trimmed, but overall 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?

Given the tool has 6 parameters and no output schema, the description is incomplete. It does not mention return behavior, error conditions, or the important confirmProductionWrite safety context. Without annotations, more detail is needed.

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%, so the schema already documents each parameter. The description adds minor clarification about outputPath conditional requirement. Baseline 3 is appropriate as description adds little 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?

The description clearly states the tool exports a learner's full course portfolio as PDF or Markdown, specifying the resource (learner's course portfolio), action (export), and output formats. It distinguishes from sibling tools like thincms_export_workbook_response by highlighting 'every workbook in module order'.

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 gives some guidance on parameters (outputPath required for PDF), but does not explicitly state when to use this tool vs. alternatives like exporting individual workbooks. It lacks mention of prerequisites or excluded scenarios.

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

thincms_export_submissions_csvB

Export all submissions for a form as CSV data.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesForm ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 must bear full behavioral disclosure. It does not disclose any side effects (e.g., file creation, data download), authorization requirements, rate limits, or handling of large datasets. The description is too minimal for a mutation-like export operation.

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 with no waste. It could be slightly improved by front-loading key details, but it is appropriately sized and immediately understandable.

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?

The tool is simple (export submissions as CSV) and no output schema exists, so the description should compensate by clarifying the format of the returned data (e.g., direct CSV output vs. download URL). It is adequate but not fully complete; for example, it doesn't mention that it returns CSV content rather than a file path.

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%, so baseline is 3. The description adds no additional meaning beyond the schema: it does not explain how formId, siteId, or confirmProductionWrite affect the export. The schema already documents these 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 uses a specific verb-resource pair: 'Export all submissions for a form as CSV data.' It clearly identifies what data is exported (submissions for a form) and the format (CSV). This distinguishes it from sibling tools like thincms_list_submissions (which likely returns JSON) and other export tools for different entities (subscribers, workbooks).

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 instead of alternatives such as thincms_list_submissions, which might also retrieve submission data but in a different format. There are no when-not-to-use instructions or context about prerequisites (e.g., needing formId).

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

thincms_export_subscribers_csvB

Export all subscribers as CSV data.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It does not specify whether the CSV is returned directly, stored as a file, or triggers a download. The confirmProductionWrite parameter hints at potential write behavior, but the description does not clarify side effects 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.

Conciseness3/5

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

The description is extremely concise (6 words) but lacks structure and important details. It sacrifices completeness for brevity.

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?

With no output schema and no annotations, the description should at minimum state what the tool returns (e.g., CSV string, file URL). It fails to explain the output format or behavior, leaving the agent uninformed.

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 detailed parameter descriptions. The tool description adds no additional insight beyond the schema, so baseline 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 action 'Export', the resource 'subscribers', and the output format 'CSV'. It is distinct from sibling tools like thincms_export_submissions_csv which target different resources.

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 such as thincms_list_subscribers. No mention of preconditions or when not to use. The description provides no usage context.

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

thincms_export_workbook_responseA

Export a single learner's workbook response as PDF or Markdown. Pass outputPath to write the file to disk (required for PDF; recommended for Markdown). Without outputPath, Markdown is returned inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesOutput format
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
userIdYesLearner user ID (required)
outputPathNoLocal file path to write the export to. Required for PDF.
workbookIdYesWorkbook ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses export formats and file writing behavior but lacks details on side effects, authentication needs, rate limits, or whether the operation is destructive. The confirmProductionWrite parameter hints at write implications but is not explained in the 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?

The description is two sentences long, front-loading the purpose and then explaining the key usage detail. Every sentence earns its place without redundancy.

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 complexity (6 parameters) and lack of output schema, the description covers the core functionality and outputPath behavior. However, it could clarify what is returned when writing to disk (e.g., success message or nothing) and explicitly mention required parameters.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying the relationship between outputPath and format (required for PDF, optional for Markdown) and the inline return behavior, going beyond the schema 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?

The description clearly states the tool exports a single learner's workbook response as PDF or Markdown, specifying the verb 'export' and the resource. This distinguishes it from sibling tools like thincms_export_workbook_responses_csv (bulk CSV export) and thincms_export_course_portfolio.

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 context on when to use outputPath (required for PDF, recommended for Markdown) and behavior without it (inline Markdown). However, it does not explicitly state when to use this tool over alternatives or mention exclusions.

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

thincms_export_workbook_responses_csvA

Export every learner response for a workbook as CSV (admin). Pass outputPath to save to disk; otherwise the CSV body is returned inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
outputPathNoLocal file path to write the CSV to
workbookIdYesWorkbook ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 notes 'admin' and the output behavior, but does not disclose potential file overwrites, large inline responses, or production write implications beyond what the parameter confirmProductionWrite hints. The 'admin' label is minimal.

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, concise sentence that front-loads the core action. Every word is useful, with 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?

No output schema is provided, so the description should clarify the return format. 'CSV body is returned inline' is vague; it does not specify if it is a string, file, or how large payloads are handled. Additionally, it does not differentiate from similar exports (e.g., thincms_export_submissions_csv) beyond the resource.

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 covers all parameter descriptions (100% coverage). The description adds context for outputPath ('save to disk vs inline') but does not add significant meaning beyond the schema for other parameters. Baseline 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 specifies the exact action ('Export every learner response for a workbook as CSV') and includes the admin scope. It clearly distinguishes from the sibling thincms_export_workbook_response, which exports a single response.

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 mentions two usage modes (save to disk vs inline) but does not explicitly compare to sibling tools like thincms_export_workbook_response or thincms_export_submissions_csv. No guidance on when to use this export over alternatives.

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

thincms_generate_media_variantsA

Generate optimized WebP image variants for all images in the media library that don't have them yet. Creates thumbnail (400px), medium (800px), and large (1200px) WebP versions. Admin-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool only creates variants for images without them, and lists the three sizes. It also notes the admin-only restriction. However, it does not mention whether the operation is reversible, if it is synchronous or asynchronous, or any performance implications. The behavioral details are adequate but not comprehensive.

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: three sentences, each adding distinct value (purpose, sizes, restrictions). Front-loaded with the key verb and resource. No extraneous or redundant 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 presence of two well-documented parameters and the absence of output schema or annotations, the description provides sufficient context for an agent to understand when and how to call it. It could be improved by noting what the tool returns (e.g., summary of generated variants) or any limitations (e.g., only processes images, not other media types). Nevertheless, it is largely complete for a straightforward batch operation.

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 does not mention any parameters. However, the input schema has 100% coverage, so both parameters (siteId and confirmProductionWrite) are already documented in the schema. The description adds no extra semantic meaning beyond what the schema provides, resulting in a baseline score of 3.

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: generating WebP image variants (thumbnail, medium, large) for all images in the media library that lack them. It explicitly names the action ('Generate') and the resource ('media variants'), and distinguishes itself from sibling media tools like upload, update, or 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 batch generation of missing WebP variants and flags 'Admin-only' as a restriction. However, it does not explicitly state when to use this tool versus alternatives (e.g., uploading already-optimized images, or manually generating variants via update_media). No guidance on prerequisites or consequences.

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

thincms_get_campaignB

Get a campaign by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It does not state that this is a read-only operation, what the return value looks like, or any side effects. The confirmProductionWrite parameter is mentioned in the schema but not clarified in the description, which could confuse an agent.

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, clear sentence with no superfluous information. It is appropriately sized for a simple retrieval tool and front-loads the essential 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?

The description does not explain the return value or output format, which is critical for a get tool. Since there is no output schema, the description should indicate what data is returned (e.g., full campaign object). This omission leaves the agent without necessary context.

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% description coverage, so the schema already explains each parameter. The tool description adds no additional meaning beyond the schema, meeting the baseline but not exceeding 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 uses a specific verb 'Get' and resource 'campaign' with the identifier 'by ID', clearly stating the tool's purpose. It distinguishes it from siblings like thincms_list_campaigns (list) and thincms_create_campaign (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?

The description provides no explicit guidance on when to use this tool versus alternatives. While the purpose is obvious for a retrieval tool, it does not mention when to use it over other similar tools for different resources, nor does it give any prerequisites or context.

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

thincms_get_collectionA

Get a single collection by ID, including all its items.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCollection ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/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 does not state whether the tool is read-only or safe, nor what happens if the collection does not exist. The confirmProductionWrite parameter description suggests it's a read operation, but the main description lacks clarity.

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 with 12 words, front-loaded with the core purpose. Every word is necessary.

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 no output schema, the description partially compensates by noting items are included. However, it does not clarify other collection fields, error states, or provide guidance on using the optional 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 100% and parameter descriptions are provided, so the description adds little beyond the schema. The note about 'including all its items' gives output context but does not enhance parameter meaning.

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 target resource (a single collection by ID), and what it returns (including all its items). It distinguishes from siblings like thincms_list_collections which lists collections.

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 does not provide explicit guidance on when to use this tool versus alternatives (e.g., thincms_list_collections). Context is implied by the tool name and sibling list, but no when-not-to-use advice is given.

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

thincms_get_content_blockB

Get a single content block by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContent block ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/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 convey behavioral traits. The word 'Get' suggests a read-only operation, but this is not explicitly confirmed. The schema includes confirmProductionWrite parameter, which might confuse agents into thinking this tool could write; the parameter description says it's ignored for non-write calls, but the tool description does not clarify that it is a safe read operation. More transparency about idempotency and side effects is needed.

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 concise sentence with no wasted words. It is appropriately sized for a simple get tool.

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?

No output schema exists, so the description should explain what the tool returns. It only says 'Get a single content block by ID' without specifying the structure or fields of the returned block. Error conditions or potential issues are not mentioned. The description is too sparse for an agent to fully understand the tool's output.

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%, with each parameter having a clear description. The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate since 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?

The description clearly states 'Get a single content block by ID' with a specific verb and resource. It is immediately distinguishable from sibling tools like list, create, update, delete, which have distinct purposes.

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 no explicit guidance on when to use this tool versus alternatives like thincms_list_content_blocks. However, the name 'get' implies retrieving one specific block, which is a reasonable default expectation. No exclusions or prerequisites are mentioned.

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

thincms_get_courseA

Get a single course by ID, including its modules, lessons, and quizzes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCourse ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/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 full burden. It adds behavioral context by mentioning included nested resources (modules, lessons, quizzes), but lacks details about side effects, authorization needs, or rate limits. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single sentence with 12 words, containing no filler. It efficiently communicates the tool's core function.

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 absence of an output schema, the description includes useful hints about the return structure (modules, lessons, quizzes). However, it could be more explicit about the response format or confirm that it is a read-only retrieval.

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 parameters are fully documented in the schema. The description adds no extra meaning beyond 'by ID' for the required parameter, providing no additional context for siteId or confirmProductionWrite.

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 uses a specific verb ('Get') and resource ('a single course by ID'), clearly stating the operation. It also distinguishes from sibling tools like thincms_list_courses by specifying that it returns nested modules, lessons, and quizzes. This leaves no ambiguity about the tool's purpose.

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 detailed course data but does not explicitly state when to use this tool versus alternatives like thincms_get_lesson or thincms_get_quiz. There is no guidance about when not to use it or prerequisites.

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

thincms_get_formB

Get a single form by ID with full field definitions and configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesForm ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

The description only says 'Get', but the input schema includes 'confirmProductionWrite'—a parameter typically required for mutations—which creates confusion about whether this tool is read-only or might write. No annotations exist to clarify safety traits, and the description does not address this inconsistency or disclose any 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.

Conciseness4/5

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

The description is a single, concise sentence that directly states the purpose. It is not verbose, though it lacks structure (e.g., bullet points) and could benefit from separating purpose from details. Still, it is efficient and 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?

No output schema exists, so the description helpfully mentions 'full field definitions and configuration' for return values. However, it omits clarifying the conflicting 'confirmProductionWrite' parameter, which is a notable gap for a supposedly read-only tool. For a simple retrieval tool, the description 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 100%, so the schema already documents all parameters clearly. The description adds no extra meaning beyond identifying 'by ID' (which is obvious). The potential confusion about 'confirmProductionWrite' is not resolved, but the description does not mislead about 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 action ('Get a single form'), the identifier method ('by ID'), and the scope ('with full field definitions and configuration'). It is specific and distinguishes from sibling tools like thincms_list_forms (list) and thincms_create_form (create).

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., thincms_list_forms for listing forms, thincms_get_form vs thincms_get_post for similar patterns). There's no mention of prerequisites or context for selecting this tool.

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

thincms_get_integrationB

Get the site's email platform integration configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must fully convey behavioral traits. It states 'Get' (read-only) but does not explain the presence of confirmProductionWrite in a GET context, nor does it mention authentication, rate 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.

Conciseness3/5

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

The description is a single sentence, which is concise but under-specified for a tool with two optional parameters. It lacks efficiency in conveying critical context beyond the bare purpose.

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?

The description omits crucial context such as return value format, side effects, and clarification of confirmProductionWrite's role in a GET call. Given no output schema and 100% parameter coverage, the description should compensate but does not.

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 detailed parameter descriptions. The tool 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 verb 'Get' and resource 'email platform integration configuration,' making the tool's purpose unambiguous. It distinguishes well from sibling tools like thincms_create_integration or thincms_update_integration.

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 guidance is provided on when to use this tool vs. other integration tools (e.g., test or sync). The context is clear but lacks exclusions or alternatives, leaving the agent to infer that it is a read-only operation.

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

thincms_get_lead_magnetC

Get a single lead magnet by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLead magnet ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description bears full responsibility. It states 'Get' implying a read operation but confirms no behavioral traits like idempotency, authorization needs, or side effects. The description does not add beyond the inferred read 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 very concise (5 words) and front-loads the purpose. No extra sentences. However, it may be too brief for optimal agent comprehension, lacking structured sections.

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?

No annotations, no output schema, and the description does not mention return value or response format. For a 'get' operation, the output is expected to be the lead magnet object, but this is not stated. The description is incomplete for an agent to fully understand the tool's context.

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 the parameter descriptions in the schema are detailed (e.g., siteId and confirmProductionWrite). The description does not add extra meaning beyond 'by ID', but the schema already covers parameter semantics adequately.

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 uses a specific verb 'Get' and identifies the resource 'lead magnet' and the method 'by ID'. It clearly indicates what the tool does, though it does not differentiate from sibling 'get' tools beyond the resource name.

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., thincms_list_lead_magnets or thincms_update_lead_magnet). 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.

thincms_get_lessonB

Get a single lesson by ID, including its attachments.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLesson ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/5.0
Behavior3/5

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

The description implies a safe read operation, but with no annotations, it lacks explicit statements about side effects (none expected) or error behavior (e.g., missing ID). The parameter descriptions provide some behavioral context for siteId and confirmProductionWrite, which helps.

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, concise sentence that conveys the essential purpose without redundancy. Every word is meaningful.

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 read tool with a single required parameter and no output schema, the description is functional but lacks details about the return structure. The inclusion of attachments is helpful, but more context (e.g., pagination, error handling) would improve completeness.

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 description adds no parameter details. The parameter descriptions in the schema are detailed for siteId and confirmProductionWrite, but the tool description itself does not elaborate on parameters. Baseline 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 the verb ('Get'), the resource ('lesson'), and the inclusion of attachments. This distinguishes it from tools like thincms_get_lesson_attachment_url, but it could be more specific about what fields are returned beyond attachments.

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 (e.g., thincms_get_lesson_attachment_url for attachment URLs). There is no context about prerequisites or execution conditions.

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

thincms_get_lesson_attachment_urlA

Get the download URL for a lesson attachment. Returns the URL path — append to your base URL to download.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
lessonIdYesLesson ID (required)
attachmentIdYesAttachment ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description partially discloses behavior by noting the tool returns a URL path (not full URL) requiring base URL appending. However, it does not confirm the operation is read-only (though implied by 'Get'), lacks idempotency or safety guarantees, and omits potential failures like missing attachment.

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, zero wasted words. The purpose and result format are clearly stated upfront, making it easy for an agent to parse and act on.

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

Completeness5/5

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

For a simple retrieval tool with no output schema, the description adequately covers the return value and usage: it explains that the result is a URL path to be appended to a base URL. This is sufficient for an agent to use the result correctly.

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 no new meaning beyond the schema; it merely mentions the required parameters without elaborating on format or constraints not already in the schema 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?

The description clearly states the tool retrieves a download URL for a lesson attachment, using the specific verb 'Get' and the resource 'lesson attachment'. It distinguishes itself from sibling tools like thincms_upload_lesson_attachment and thincms_delete_lesson_attachment by focusing on retrieval.

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 such as thincms_get_lesson for attachment metadata or other attachment operations. There is no mention of prerequisites, context, 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.

thincms_get_mediaA

Get a single media item by ID with full metadata. The response includes a variants field with optimized WebP versions (thumbnail 400px, medium 800px, large 1200px) when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMedia ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the response includes a 'variants' field with detailed version information (dimensions, WebP format). It does not mention side effects (none expected for a read) or auth requirements, but provides meaningful behavioral context 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?

The description is two sentences, both highly informative. The first sentence states the core purpose, the second adds a key output detail. No fluff or repetition. Ideal for quick agent consumption.

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?

No output schema exists, but the description compensates by describing the 'variants' field. It adequately covers what the agent needs to know for a simple retrieval tool. Missing details like error handling or pagination are not critical here.

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%—all three parameters have descriptions. The tool description does not add additional parameter semantics beyond what the schema already provides. Baseline 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 starts with a clear verb ('Get') and resource ('single media item by ID'), and distinguishes itself from sibling tools like thincms_list_media (list) and thincms_upload_media (create). It also specifies 'full metadata' and highlights the variants field, which is unique to this tool.

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 states the tool retrieves a single media item by ID, implying usage when a specific item's details are needed. It does not explicitly state when to avoid using it or provide alternatives, but the context against siblings makes it clear.

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

thincms_get_navigationA

Get the site's header and footer navigation arrays. Each nav item has a label, type (page/route/external), and target.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided. The description implies a read-only operation ('Get'), but does not explicitly state safety, idempotency, or potential side effects. It lacks details on whether the call requires a site to be active or how it behaves if navigation is empty.

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: two sentences that directly state the tool's output and item structure. No unnecessary words, front-loaded with 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?

While the description explains basic output format, it does not specify the exact structure of the arrays (e.g., whether it's an object with 'header' and 'footer' keys). No mention of error conditions or empty states. Given no output schema, more detail would be helpful.

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 both parameters (siteId, confirmProductionWrite). The description adds no additional meaning or context for these parameters. Since schema coverage is high, baseline 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 verb 'Get', the resource 'site's header and footer navigation arrays', and specifies the structure of each nav item (label, type, target). It distinguishes itself from sibling tools like thincms_update_navigation and other get tools by focusing on navigation arrays.

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. It does not mention prerequisites (e.g., site must be active) or scenarios where it might not be appropriate. No comparison with similar get tools like thincms_get_page or thincms_get_settings.

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

thincms_get_pageB

Get a single static page by ID, including full HTML content.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/5.0
Behavior2/5

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

Description states read-only nature but omits side effects, error handling (e.g., missing page), permissions, or rate limits. With no annotations, agent lacks critical 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?

Single 11-word sentence with no redundancy. Front-loaded with essential information.

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?

Minimal context: lacks response structure (no output schema), error states, or usage constraints. Adequate for a simple read but could be improved.

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?

All three parameters have schema descriptions (100% coverage), so baseline is 3. Description adds no extra meaning; parameters are self-documented in 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?

Description clearly states 'Get a single static page by ID' with specific verb-resource pairing and includes 'full HTML content'. Differentiates from listing/creating/updating siblings.

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 thincms_list_pages or thincms_get_post. No mention of prerequisites or context.

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

thincms_get_popupA

Get a single popup by ID with full configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPopup ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 disclose behavioral traits. It does not mention that this is a read-only operation, any authentication requirements, or explain the presence of confirmProductionWrite param in a GET call.

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 with no wasted words, clearly stating 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?

The description is sufficient for a simple GET popup tool, but it lacks guidance on parameter usage and the meaning of 'full configuration'. No output schema exists, so return values are not explained.

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 no additional meaning beyond the schema; it does not elaborate on siteId or confirmProductionWrite 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?

Description clearly states verb 'Get', resource 'single popup', and qualifier 'by ID with full configuration', distinguishing from sibling list, create, update, and delete tools.

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?

Usage is implied (use when you have an ID), but no explicit when-to-use or when-not-to-use guidance is given, nor are alternatives like thincms_list_popups mentioned.

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

thincms_get_postA

Get a single blog post by ID, including full HTML content, author, categories, and tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so description carries the burden. It discloses that the return includes full HTML content, author, categories, and tags, giving insight into the response shape. For a read-only GET, this is adequate; no side effects or permissions are omitted.

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, no extraneous words. Front-loads the main purpose and key included fields. Highly efficient.

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

Completeness5/5

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

For a simple read operation with full schema coverage and a concise description explaining the returned data, it is complete. No output schema exists, but the description compensates by listing returned fields.

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 well-described parameters. The description does not add any parameter information beyond what the schema provides, so baseline 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 it retrieves a single blog post by ID and lists key included fields (full HTML content, author, categories, tags). This distinguishes it from sibling tools like thincms_list_posts (list all) and thincms_get_post_preview_url (preview URL).

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 need a specific post by ID, but lacks explicit guidance on when to use this vs alternatives (e.g., thincms_list_posts for multiple posts, thincms_get_post_preview_url for preview). No exclusions or context-specific notes.

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

thincms_get_post_preview_urlA

Get a signed preview URL for a blog post. Works for any status (draft, scheduled, future-dated, published). The URL is valid for 72 hours and requires no authentication to view. Use this after creating or updating a post to verify how it looks on the live site.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It reveals the URL's validity period (72 hours), no authentication requirement, and compatibility with any post status (draft, scheduled, future-dated, published). It does not mention potential side effects like logging or rate limits, but the disclosed traits are sufficient for expected use.

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 three sentences long, front-loaded with the core purpose, and each sentence provides essential information without redundancy or verbosity.

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 (no output schema, few parameters), the description covers purpose, behavior, usage guidelines, and parameter implications adequately. It does not specify the exact response format, but 'signed preview URL' implies a URL string, which is sufficient.

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 provides 100% coverage with detailed descriptions for all three parameters, including usage patterns for siteId and confirmProductionWrite. The tool description does not add extra semantic value beyond the schema, so the baseline score of 3 applies.

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 retrieves a signed preview URL for a blog post, specifying the resource (blog post) and action (get preview URL). However, it does not explicitly differentiate from the sibling tool 'thincms_get_preview_url', though the name suggests it's post-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 advises using this tool after creating or updating a post to verify appearance on the live site, providing clear usage context. It does not mention when not to use it or alternatives, but the guidance is specific and actionable.

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

thincms_get_preview_urlA

Get the full preview URL for a preview token. The URL can be opened in a browser to view the preview — no authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesPreview token from thincms_create_preview
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/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 no authentication is required to view the URL, which is helpful. However, it does not discuss error cases, token expiration, or confirm that the operation is read-only.

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, immediately stating the action in the first sentence and adding a key behavioral note in the second. No extraneous content.

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 tool with no output schema and three well-documented parameters, the description covers the essential: getting a preview URL and its accessibility. It omits token validity or error handling, but is mostly sufficient for task execution.

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 3 applies. The parameter descriptions in the schema are detailed (e.g., token sourced from thincms_create_preview, siteId concurrency note). The tool description itself adds no extra parameter information, but the schema adequately covers semantics.

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 gets a full preview URL for a preview token, identifying the verb and resource. It distinguishes from thincms_create_preview which creates the token, but does not explicitly differentiate from the similar sibling thincms_get_post_preview_url.

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 after creating a preview token and notes no authentication required, but does not provide explicit when-to-use or when-not-to-use guidance, nor mention alternatives like thincms_get_post_preview_url.

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

thincms_get_quizA

Get a single quiz by ID, including its questions with correct answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuiz ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description carries the burden. It discloses that the tool returns questions with correct answers, which is valuable. It does not explicitly state it's read-only, but that is implied by 'Get'. No contradictions.

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, concise sentence that efficiently communicates the tool's purpose and return content without extraneous 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?

For a simple get tool with one required parameter and 100% schema coverage, the description is mostly complete. It mentions the key return data (questions with correct answers). It lacks details on error handling or output format, but that's acceptable given no output schema.

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 detailed descriptions for all three parameters (id, siteId, confirmProductionWrite). The tool description adds no additional insight beyond the schema, so baseline 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 'Get a single quiz by ID, including its questions with correct answers.' It specifies the verb (Get), resource (quiz), and key inclusion (questions with correct answers). This distinguishes it from sibling tools like thincms_list_courses or thincms_create_quiz.

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 purpose implies when to use: when you need a specific quiz by ID. However, it lacks explicit guidance on when not to use or alternatives, but given the straightforward nature, 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.

thincms_get_redirectA

Get a single redirect by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedirect ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

Without annotations, the description bears full responsibility for behavioral disclosure. It states 'Get', implying a read operation, but does not confirm non-destructiveness, discuss permissions, or what happens on failure (e.g., not found). The existence of the confirmProductionWrite parameter in the schema, which is for write operations, is not addressed.

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, efficient sentence front-loading the core purpose. While it could be more informative, it avoids 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?

For a simple get-by-ID tool with well-documented parameters and no output schema, the description is mostly adequate. It could mention that the return value is the redirect object, but the lack of output schema reduces the need.

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%, so the baseline is 3. The description adds no additional meaning beyond the schema; the schema already provides detailed descriptions for siteId and confirmProductionWrite.

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 'Get', the resource 'redirect', and the identifier 'by ID'. This distinguishes it from sibling tools like thincms_list_redirects (list all) and thincms_create_redirect (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?

The description implies usage when you have a specific redirect ID, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., use thincms_list_redirects to find an ID first). No exclusions or context are given.

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

thincms_get_reviewA

Get a single review by ID, including full text, sentiment fields, and drift notes if drift was detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReview ID.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses the output includes full text, sentiment fields, and drift notes, indicating a read-only operation. It does not mention side effects, but for a get operation this is sufficient.

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 captures the essential purpose and return content. It is front-loaded and concise without any superfluous text.

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, the description adequately hints at return values (text, sentiment, drift notes). It could specify more about drift notes format or pagination, but for a simple get operation it is sufficiently 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 detailed parameter descriptions. The tool description adds no additional parameter meaning beyond what the schema already provides, so 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 verb 'Get', the resource 'a single review by ID', and lists included fields ('full text, sentiment fields, and drift notes'), distinguishing it from sibling tools like thincms_list_reviews.

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 implicitly indicates this is for retrieving a specific review by ID, and the sibling list provides context for when to use this over listing. No explicit when-not or alternatives, but the purpose is clear enough for correct selection.

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

thincms_get_reviews_settingsA

Get the current reviews + AI configuration for the active site, plus recipient list and last-sync status. Admin-only. Secrets are echoed only as has*Key booleans, never as plaintext.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 that 'Secrets are echoed only as has*Key booleans, never as plaintext', a key security behavior. Also mentions admin-only restriction and what the response includes, but does not discuss potential side effects or rate limits. Overall good transparency for a read-only 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 two sentences long, front-loading the core purpose and then adding behavioral notes. Every word adds value; no redundancy or fluff.

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 read-only tool with no output schema, the description adequately explains what is returned (reviews+AI config, recipient list, last-sync status) and a security concern. It lacks mention of error modes or pagination, but these are likely unnecessary given the tool's nature. Nearly 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 description coverage is 100%, so each parameter is well-documented in the schema. The description does not add any parameter-level meaning beyond what the schema already provides, meeting baseline expectations.

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 the current reviews + AI configuration for the active site', specifying the verb and resource. It distinguishes from sibling thincms_update_reviews_settings by emphasizing read-only and listing return components.

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 notes 'Admin-only' as a prerequisite but provides no explicit guidance on when to use this tool vs alternatives like thincms_update_reviews_settings or thincms_sync_reviews. Usage context is implied but not fully clarified.

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

thincms_get_sequenceA

Get a sequence by ID, including its steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSequence ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/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 indicates a read operation ('Get') but does not explicitly state it is read-only or side-effect-free. The parameter confirmProductionWrite is for writes but is ignored for GET, which could be clarified.

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, concise sentence (7 words) that is front-loaded and contains no filler. Every word contributes to understanding the tool's 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 get tool with no output schema, the description is mostly complete: it states the resource and what is included. However, it could be slightly more complete by noting the read-only nature or that it respects the active site, though the schema covers the 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 description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; the phrase 'including its steps' does not explain individual parameters. The schema already provides detailed descriptions for siteId and confirmProductionWrite.

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 ('sequence'), the identifier ('by ID'), and includes what additional data is returned ('including its steps'). This differentiates it from sibling tools like thincms_list_sequences (lists all) and thincms_create_sequence (creates).

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 does not provide explicit guidance on when to use this tool versus alternatives. The use case is implied (retrieve a specific sequence by ID), but no mention of when not to use it or alternative tools for listing (e.g., thincms_list_sequences).

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

thincms_get_settingsA

Get site settings: name, tagline, description, domain, logo URL, favicon URL, footer HTML, and widget configuration. Read-only via API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 the burden. States 'Read-only via API key' and explains that siteId allows targeting without mutating shared state. Adds context about concurrent agent sessions. Could mention rate limits or response size, but sufficient for a simple read 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, front-loaded with purpose and fields. No wasted words. Efficiently communicates the tool's action and its read-only nature.

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?

Lists the fields returned, which is good for a simple retrieval without output schema. Lacks return structure or error handling details, but for a straightforward settings getter it is adequate. Could mention that confirmProductionWrite is ignored for this read-only operation.

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 covers both parameters (siteId, confirmProductionWrite) with detailed descriptions. The description adds value by noting the pattern for concurrent sessions and referencing sibling tools like thincms_list_sites. Does not redundantly repeat 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 it retrieves site settings and lists the fields: name, tagline, description, domain, logo URL, favicon URL, footer HTML, and widget configuration. Differentiates from siblings like thincms_update_settings by being a read operation.

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?

Indicates read-only via API key, implying safe usage without side effects. Mentions siteId parameter for targeting specific tenants and references thincms_list_sites for inspection. However, lacks explicit when-not-to-use or alternatives like thincms_update_settings for writes.

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

thincms_get_share_buttonsA

Get the site's share button configuration. Returns { enabled: boolean, platforms: string[] }. Platforms: 'twitter', 'linkedin', 'facebook', 'email', 'copy'.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description fully informs the agent about the return format (JSON with enabled and platforms) and lists possible platforms. However, it does not disclose any additional behavioral traits like caching, error states, or side effects, which are not expected for a GET 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 highly concise with only three sentences, all front-loaded with essential information: the action, resource, and return structure. Every sentence contributes value without redundancy.

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 that this is a simple read tool with no output schema, the description adequately covers the return structure and platforms. However, it does not explicitly state that the configuration is fetched from the active site (unless overridden by siteId), which is context present in the schema but not integrated into the main description.

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 does not add any parameter-specific meaning beyond what is already in the schema. The schema descriptions for siteId and confirmProductionWrite are already detailed and self-explanatory.

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 specifies the action ('Get') and the resource ('share button configuration'), effectively distinguishing it from the sibling tool 'thincms_update_share_buttons' which performs a write operation.

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 does not provide explicit guidance on when to use this tool versus alternatives. While the sibling update tool implies a read vs. write distinction, there is no direct 'when-to-use' or 'when-not-to-use' advice, leaving room for ambiguity.

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

thincms_get_tagB

Get a single tag by ID, including associated posts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTag ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description adds one behavioral detail: 'including associated posts'. However, it omits common traits like read-only nature, error behavior on missing ID, or any locking/blocking considerations.

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?

Single sentence, no fluff, front-loaded with the core action. Could be slightly more structured but effective in brevity.

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 lacks details about return format, pagination of associated posts, or error handling. Minimal but acceptable for a simple get operation.

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 does not add any explanatory value beyond the existing schema descriptions for 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 specifies the action (get), resource (tag), identifier (ID), and what is included (associated posts). It distinguishes from siblings like thincms_list_tags (list) or thincms_create_tag (create).

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 thincms_list_tags or thincms_get_post. Lacks any context for usage, 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.

thincms_get_templateA

Get the site's template: stylesheet (CSS), pageFrame (HTML wrapper with template tags like {{content}}, {{nav:header}}), and customHeadHtml.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 of behavioral disclosure. It only states 'Get' implying a read operation, but does not confirm idempotency, side effects, authentication needs, or rate limits. For a GET tool, the description should at least imply read-only behavior.

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, front-loaded sentence that efficiently communicates the tool's purpose and key output components. No wasted words.

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?

There is no output schema, so the description should explain the return structure. It lists the three returned components (stylesheet, pageFrame, customHeadHtml) but does not clarify that these are fields in a JSON object. It also does not mention that parameters are optional or the effect of siteId. 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%, so the schema already documents both parameters well. The description does not add any additional meaning about the parameters (e.g., when to use siteId vs confirmProductionWrite). Baseline 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 retrieves the site's template, listing specific components: CSS, pageFrame, and customHeadHtml. This is a specific verb-resource pair and distinguishes it from siblings like thincms_update_template or thincms_template_status.

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 needing to inspect or fetch the template, but it does not explicitly state when to use this tool versus alternatives like thincms_template_status or thincms_append_css. No when-not or alternative guidance is provided.

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

thincms_get_toolA

Get a single Tool by ID or slug, including the full HTML payload and config.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, but the description discloses that the operation returns a full HTML payload and config, implying it is a read operation. However, it does not explicitly state read-only or idempotent behavior. For a simple get tool, this 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.

Conciseness5/5

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

The description is a single sentence with 14 words, front-loaded with the verb and resource. No unnecessary information.

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

Completeness5/5

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

Given the tool's simplicity (3 parameters, no output schema, retrieval operation), the description sufficiently covers what the tool does and returns. No obvious gaps for an agent to misuse.

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 for all three parameters. The description does not add extra meaning beyond what the schema provides. Baseline 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 verb (Get), resource (Tool), identification method (ID or slug), and what is returned (full HTML payload and config). It distinguishes from siblings like thincms_list_tools and thincms_create_tool.

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 retrieval but does not provide explicit guidance on when to use this tool versus alternatives like thincms_get_tool_data or thincms_list_tools. No when-not-to-use information is given.

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

thincms_get_tool_dataA

Read a single Tool data value. If subscriberId is provided, prefers the per-user value at that scope; otherwise reads tool-global. Falls back to tool-global if no per-user value exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
keyYesData key
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subscriberIdNoEnd-user Subscriber ID to scope the read to a specific user
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It describes the read operation and fallback, but fails to address the presence of confirmProductionWrite parameter, which is unusual for a read tool and may write. This omission undermines 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 (three sentences) and front-loaded with the purpose. Every sentence adds value, 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?

With no output schema, the description does not specify return format or behavior when no value exists. The 5 parameters are covered, but the tool's behavior is adequately described for basic use, though missing some details.

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 100% with good individual param descriptions. The tool description adds value by explaining the overall scoping logic and fallback, which is not captured in individual 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 verb 'Read' and the resource 'single Tool data value', and explains the scoping behavior (per-user vs tool-global). It distinguishes from sibling tools like thincms_set_tool_data and thincms_list_tool_data.

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 explains when to use subscriberId and the fallback behavior, but lacks explicit guidance on when not to use this tool or mention of alternative tools like thincms_list_tool_data for listing all keys.

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

thincms_get_workbookC

Get a workbook by ID. Returns the workbook with its full field spec (already JSON-parsed).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorkbook ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must carry full burden. It mentions 'full field spec (already JSON-parsed)' but omits side effects, error handling, nor authentication requirements. Minimal disclosure 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.

Conciseness4/5

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

The description is short and front-loaded with the purpose. Both sentences are necessary and clear, though it could be slightly more expansive.

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 is mostly adequate given good schema coverage. However, it does not mention error scenarios or relationship to sibling tools, missing some completeness.

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 no additional meaning beyond the parameter descriptions in the schema, such as the id or siteId purposes.

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 'Get a workbook by ID' with a specific verb and resource. It distinguishes from listing workbooks but does not explicitly mention alternatives like thincms_list_workbooks.

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 siblings such as thincms_list_workbooks or other workbook operations. The description lacks contextual usage cues.

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

thincms_go_liveA

Take a site live by provisioning SSL for the production domain and transitioning from 'preview' to 'live' status. Requires the production domain's DNS to be pointed to the server first. This calls the go-live endpoint which provisions Nginx config + SSL certificate.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdYesThe site ID to take live

TDQS

A4.3/5.0
Behavior3/5

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

Describes what happens internally (provisions Nginx config + SSL certificate) and the state transition. With no annotations, the description carries the burden; it covers the main behavior but doesn't mention reversibility, potential downtime, or permission requirements.

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

Conciseness5/5

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

Two concise sentences with no redundant information. Each sentence adds value: first states the core action, second provides prerequisite and technical detail. Excellent structuring.

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

Completeness5/5

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

Given the tool's simplicity (single parameter, no output schema), the description fully covers what the agent needs to know: purpose, prerequisite, and side effects. No gaps.

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?

Only one parameter (siteId) with schema description; the tool description adds context beyond the schema by explaining the prerequisite and the effects (SSL provisioning), enriching the parameter's meaning.

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 the tool's purpose: 'Take a site live' with specific actions (provision SSL, transition from preview to live). Distinguishes from sibling tools which are about content management, not site status changes.

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 prerequisite: 'Requires the production domain's DNS to be pointed to the server first.' This guides correct usage. Could be improved by noting when not to use (e.g., if site is already live) but adequate.

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

thincms_import_redirectsA

Bulk import redirects from a JSON array. Existing redirects with the same sourcePath are updated (upsert).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
redirectsYesArray of redirect objects to import
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description mentions upsert behavior but does not disclose that it is a write operation that may require production confirmation (confirmProductionWrite parameter). Missing details about destructive potential, rate limits, or auth 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?

Two sentences, front-loaded with purpose, then behavioral note. No filler words. Efficiently communicates core information.

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?

No output schema. Description covers purpose and upsert but does not mention limitations (e.g., max array size), error handling, or the need for confirmProductionWrite parameter for production sites. Adequate but with gaps.

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%, baseline 3. Description adds valuable context: 'bulk import from a JSON array' and 'upsert on same sourcePath', which are not obvious from parameter names alone.

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 the tool does bulk import of redirects from a JSON array and specifies the upsert behavior based on sourcePath. This distinguishes it from sibling tools like thincms_create_redirect and thincms_update_redirect.

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 individual create/update tools or prerequisites. The description implies bulk import but does not explicitly state that it is the appropriate choice for batch operations.

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

thincms_list_authorsB

List all authors with their bios, avatars, and post counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must carry behavioral disclosure. 'List all authors' implies read-only, but does not explicitly state idempotency, side effects, or auth needs. The confirmProductionWrite parameter (typical for writes) is not explained, potentially causing confusion.

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 succinct sentence (9 words) with no unnecessary information. It efficiently conveys the core function without 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?

No output schema exists, so description should explain return format. It lists fields (bios, avatars, post counts) but lacks details on pagination, ordering, or structure. Adequate for a simple list tool with well-documented parameters, but not exhaustive.

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 detailed parameter descriptions. The tool description adds no additional parameter-level meaning beyond what the schema already provides, meeting the baseline for high coverage.

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 'List all authors' with specific fields (bios, avatars, post counts). It distinguishes from create/update/delete sibling tools, but does not explicitly contrast with other list tools like thincms_list_posts. However, the tool name and resource 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?

No guidance on when to use this tool versus alternatives. The description lacks usage context such as prerequisites, active site behavior, or comparisons with other tools. Usage info is only found in parameter schema descriptions, not the tool description itself.

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

thincms_list_campaignsC

List email campaigns with optional status filter and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by status: draft, sending, sent
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 must disclose behavioral traits. It omits whether the operation is read-only (though listing implies it), potential side effects, authentication requirements, or rate limits. The parameter confirmProductionWrite hints at writes, but the description does not clarify that this is a read operation, causing confusion.

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, front-loaded sentence with no wasted words. It is appropriately concise for a straightforward list tool, though it could have added more value without becoming verbose.

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 5 parameters, lack of output schema, and no annotations, the description is insufficiently complete. It fails to explain response format, pagination mechanics, status filter values, or the siteId and confirmProductionWrite parameters, leaving significant gaps for an agent.

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 60%, but the description adds no extra meaning to any parameter. It does not mention page, limit, siteId, status, or confirmProductionWrite, leaving the undocumented parameters (page, limit) without any aid beyond the schema.

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 'List email campaigns' which is a specific verb and resource. It distinguishes the tool from sibling list tools by resource (campaigns), though it does not explicitly differentiate from other campaign-related tools like thincms_get_campaign. However, the purpose is unambiguous.

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 such as thincms_get_campaign for a single campaign or thincms_search for broader queries. There are no use-case descriptions or exclusions.

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

thincms_list_categoriesB

List all categories with post counts and hierarchy information.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits like pagination, sorting, or performance. It only states it lists categories with post counts and hierarchy, omitting important details for an effective list operation.

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?

One sentence that effectively conveys the core purpose. Could include more detail without becoming verbose, but remains efficient and front-loaded.

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, so the description should elaborate on return values beyond 'post counts and hierarchy.' No mention of pagination, filtering, or ordering, making it incomplete for a list 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 description coverage is 100%, so the schema already provides detailed explanations for both parameters (siteId and confirmProductionWrite). The tool description adds no further parameter insights, 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?

The description clearly states the action (list categories) and includes specific details about the returned data (post counts, hierarchy information), distinguishing it from other list tools like thincms_list_posts.

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., listing categories vs. listing posts). No mention of 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.

thincms_list_collection_itemsB

List all items in a collection, ordered by sortOrder.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoFilter by enabled status
collectionIdYesCollection ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/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 behavioral traits. It states items are ordered by sortOrder, but doesn't clarify if the operation is read-only, requires specific permissions, or has any side effects. It also fails to mention pagination or response format. The description is too sparse for a list operation with 4 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 a single sentence that immediately communicates the action, resource, and ordering. Every word is functional; there is no redundancy or unnecessary detail. It is front-loaded with the core purpose.

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 complexity of 4 parameters and no output schema, the description is too brief. It does not explain what constitutes a collection item, whether results are paginated, how sortOrder is interpreted, or any default filtering. The schema descriptions compensate partially for parameters, but the description lacks essential context for a list 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 description coverage is 100%, so baseline is 3. The description adds no parameter-specific information beyond what the schema already provides. The schema descriptions are detailed (e.g., siteId explains concurrent session usage, confirmProductionWrite explains production write requirement), so the description neither adds nor detracts 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 verb 'List' and the resource 'all items in a collection', with the ordering by 'sortOrder'. This distinguishes it from sibling tools like thincms_get_collection (which gets collection metadata) and thincms_create_collection_item (which creates items). The purpose is 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 Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, such as thincms_get_collection or other collection-item tools. While the verb 'list' implies a read operation, there is no mention of prerequisites, exclusions, or comparisons to siblings. Usage is implied but not clarified.

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

thincms_list_collectionsA

List all collections for the site. Collections are structured data lists (testimonials, reviews, products, team members) that render via {{collection:slug}} template tag in multiple display modes: cards, carousel, banner, list, compact.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoFilter by enabled status
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 carries full behavioral burden. It correctly implies a read operation but does not explicitly state it is non-destructive or mention pagination, rate limits, or response structure. The presence of confirmProductionWrite in schema for a list tool is confusing and not addressed.

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 clarifying examples, effectively front-loaded with the core purpose. It is concise with minimal waste, though it could benefit from bullet points for readability.

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?

The description fails to mention what the tool returns (e.g., an array of collection objects) and does not cover important details like pagination, sorting, or default behavior. Given no output schema, this is a significant gap for a list 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 no parameter-specific details beyond the schema, but it does provide context about collections that enriches parameter understanding (e.g., what kinds of lists exist). No contradiction or meaningful addition.

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 resource ('collections') and provides examples of what collections contain and how they render, distinguishing it from sibling tools like thincms_get_collection (single item retrieval) and thincms_create_collection (creation).

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 explains that the tool lists all collections and what collections are, but does not explicitly guide when to use it versus alternatives (e.g., thincms_get_collection for a specific collection) or when to filter by enabled status or use siteId override. The context is implied rather than explicit.

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

thincms_list_content_blocksB

List all reusable content blocks for the site. Optional enabled filter. Content blocks are HTML fragments insertable via {{block:slug}} template tags in the page frame or page/post content.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoFilter by enabled status
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. While the description implies a read operation ('List'), it does not explicitly state that the tool is read-only or safe. The presence of the confirmProductionWrite parameter (typically for write operations) creates ambiguity without explanation. The description should clarify that despite this parameter, the tool is non-destructive.

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 main action, and every sentence serves a purpose. No extraneous information.

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 3 parameters (including the ambiguous confirmProductionWrite), no output schema, and no annotations, the description is insufficient. It lacks context on return format, pagination, and the read-or-write nature of the call. The minimal description leaves gaps for an agent to safely invoke the 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 description coverage is 100%, so the baseline is 3. The description adds value by explaining what content blocks are and that an optional enabled filter exists, but it does not go beyond the schema for parameter details like siteId or confirmProductionWrite. The added context is marginal for parameter understanding.

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 reusable content blocks for the site, distinguishes from siblings like thincms_get_content_block (single block) and thincms_create_content_block, and explains the nature of content blocks as HTML fragments used via template tags. The verb 'list' is specific and the resource 'content blocks' is unambiguous.

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., thincms_get_content_block for a single block), nor does it mention when not to use it. It implicitly advises it returns all blocks, but fails to set context for selection among similar list tools.

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

thincms_list_coursesA

List courses with optional filters. Returns courses with module/enrollment counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 20)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by status
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/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 mentions returning counts, which is useful, but does not explicitly confirm the operation is read-only or describe any side effects or permission requirements. This is acceptable but could be more transparent.

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 concise sentences, with no wasted words. It is front-loaded with the core purpose and provides a useful output note.

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 tool with 5 parameters and no output schema, the description is largely complete. It mentions the return value (counts), but could be improved by noting that pagination is available (though the schema covers that). Overall, it adequately covers the tool's function.

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% description coverage, so the baseline is 3. The description mentions 'optional filters' but adds no additional meaning beyond what the schema already provides for parameters like page, limit, siteId, status, and confirmProductionWrite.

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 courses'), the resource, and the output ('with module/enrollment counts'). It effectively distinguishes from CRUD siblings like thincms_create_course and thincms_update_course.

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 this is for listing courses with optional filters, but it does not explicitly state when to use this tool versus alternatives or provide any context about when not to use it. There is no mention of alternatives among the many sibling list tools.

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

thincms_list_enrollmentsA

List course enrollments with optional filters. Returns enrollments with user and course details.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 50)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by enrollment status
courseIdNoFilter by course ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 convey behavioral traits. It only states it lists enrollments and returns details, but fails to mention read-only nature, pagination behavior, or other constraints. Minimal disclosure 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?

Two sentences, no filler, front-loaded with purpose. 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?

Given no output schema and 6 parameters, the description is brief but covers the essential purpose. However, it lacks details on pagination defaults or response structure, which would aid completeness.

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%, so the schema already documents parameters. The description adds no new meaning beyond stating 'optional filters', which is generic. Baseline 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 verb 'List', the resource 'course enrollments', and mentions optional filters and returned details (user and course). This distinguishes it from sibling tools like thincms_create_enrollment (create) or thincms_list_courses (list courses).

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 such as thincms_list_courses or thincms_create_enrollment. The purpose is implied but not reinforced with when-not or context.

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

thincms_list_formsB

List all forms and surveys with submission counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It implies a read operation ('list') but does not disclose idempotency, permission requirements, or whether it counts submissions in real-time. Minimal 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.

Conciseness4/5

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

Single sentence, no waste. Concise but lacks structured formatting (e.g., bullet points for different output details). Efficient but could be more scannable.

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?

No output schema exists, yet description only says 'with submission counts'—vague. Missing details on pagination, filtering, result structure, or whether siteId override applies to form listing. Incomplete for a list tool with two optional 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 description coverage is 100%, and both parameters have thorough descriptions in the schema. The tool description adds no new parameter information beyond 'with submission counts', which hints at output but not inputs. Baseline 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?

Description uses a specific verb ('List') and resource ('forms and surveys') with added detail ('with submission counts'), clearly distinguishing it from sibling tools like thincms_get_form (single form) and thincms_list_submissions (submissions, not forms).

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., thincms_get_form for a specific form, thincms_list_submissions for submissions of a form). Lacks 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.

thincms_list_integration_listsB

List all mailing lists from the connected email platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIntegration ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behaviors. It only states a read operation, but fails to mention that the call requires an integration ID or that it may require site overrides or production write acknowledgments. The behavioral details are insufficient.

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 with no redundant words, perfectly concise and front-loaded. Every word earns its place.

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?

With no output schema, no annotations, and 3 parameters (including a required id and optional siteId/confirmProductionWrite), the description is too minimal. It does not guide the agent on how to use the parameters or what to expect in return. Incomplete for effective tool usage.

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%, so the schema already documents parameters. The description adds no additional meaning beyond 'mailing lists from the connected email platform', which does not explain the required 'id' parameter or optional parameters. Meets baseline with no extra 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 lists all mailing lists from the connected email platform, with specific verb and resource. It distinguishes itself from other list tools by focusing on mailing lists, and the purpose is unambiguous.

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 when-to-use or when-not-to-use guidance is provided. The description implies usage for listing mailing lists, but does not compare with alternatives like thincms_list_integration_tags or thincms_list_subscribers.

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

thincms_list_integration_tagsB

List all tags from the connected email platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIntegration ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/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 bear full responsibility for behavioral disclosure. The description is a single line that does not mention whether the operation is read-only, what happens if the integration is missing, or if pagination is involved. The presence of 'confirmProductionWrite' in the schema (which suggests a mutation safeguard) is unexplained and contradicts the listing intent.

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 that front-loads the action. However, it may be too brief, lacking necessary details for completeness. Still, it earns its place without fluff.

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?

There is no output schema, so the description should explain what the tool returns (e.g., list of tag objects). It does not. Additionally, given the confusing inclusion of 'confirmProductionWrite' for a list operation, the description fails to address that oddity. Overall, the description is incomplete for effective agent 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?

The input schema has 100% coverage; each parameter already has a description. The tool description adds no additional semantic information beyond the schema. Per guidelines, baseline 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 action ('list') and the resource ('tags from the connected email platform'). It distinguishes from sibling 'thincms_list_tags' by specifying the source, making it easy for an agent to select the correct tool.

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 vs alternatives. It does not mention prerequisites (e.g., an integration must exist), nor does it clarify that sibling 'thincms_list_tags' lists CMS tags instead. An agent would lack context for proper selection.

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

thincms_list_lead_magnetsB

List all lead magnets for the site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It only says 'list all' without detailing read-only nature, pagination, site context, or potential performance implications. Minimal disclosure.

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 with no verbosity, but it is too minimal to earn its place. It lacks context that would justify its brevity for a tool with no annotations.

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?

The description is incomplete for a tool with no output schema and no annotations. It does not explain what lead magnets are, how the list is returned, or that the site can be overridden via siteId, which is critical context.

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%, baseline is 3. The description adds no parameter meaning beyond the schema; it does not explain siteId or confirmProductionWrite, which are already well-documented in 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 'list all lead magnets for the site' with a specific verb and resource. It distinguishes this tool from siblings like thincms_get_lead_magnet (single) and thincms_create_lead_magnet.

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. There is no mention of contexts, exclusions, or comparisons to other list tools or sibling tools.

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

thincms_list_mediaA

List uploaded media files with pagination. Returns file metadata including paths, dimensions, and alt text.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 30)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
visibilityNoFilter by visibility
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior3/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 indicates a read operation (list) with pagination, but does not explicitly state whether it is read-only, safe, or has side effects. The presence of the 'confirmProductionWrite' parameter is incongruent with a read operation and is not explained, which could confuse an agent.

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 long with no superfluous text. It is front-loaded with the core action and key features, making it efficient for an agent to process.

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 lack of an output schema, the description helpfully lists return fields (paths, dimensions, alt text). However, it omits mention of filtering capabilities (visibility parameter) and does not address the incongruous 'confirmProductionWrite' parameter, which is unusual for a list tool and could use clarification.

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%, and each parameter already has a description. The description adds minimal value beyond what is in the schema; it mentions pagination (mapping to page/limit) and return fields, but does not elaborate on parameter details like filtering by visibility or the siteId override 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 verb 'List', the resource 'uploaded media files', and key features 'pagination' and 'returns file metadata including paths, dimensions, and alt text'. This distinguishes it from sibling tools like thincms_get_media (single item) and thincms_upload_media (write operation).

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 media but lacks explicit guidance on when to use this tool versus alternatives such as thincms_get_media for a single file. No when-not or alternative tool mentions are provided, leaving it to 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.

thincms_list_pagesB

List static pages with optional status filter and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 50)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by status
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided; the description does not explicitly state side effects, but the tool name implies a read operation. It does not add caution about permissions or destructive potential, but is not misleading.

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 short sentence that is front-loaded with the core purpose, containing no unnecessary words.

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?

Does not mention siteId or confirmProductionWrite parameters, nor describe the return format or error handling. For a tool with 5 parameters and no output schema, more completeness is needed.

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 mentions 'optional status filter and pagination', which adds slight context beyond the schema's parameter names, but does not detail siteId or confirmProductionWrite. With 100% schema coverage, baseline is 3.

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 resource 'static pages', and specifies optional filters (status and pagination), distinguishing it from other page operations like get, create, update, delete.

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 such as thincms_get_page for a single page or thincms_search for broader search. The description lacks usage context.

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

thincms_list_popupsB

List all popups/CTAs for the site with their linked form names.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility. It implies a read-only operation by stating 'List all,' but does not explicitly confirm no side effects, authentication needs, or rate limits. Minimal 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?

The description is a single concise sentence that front-loads the purpose. Every word contributes value; no wasted content.

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 tool with no required parameters and no output schema, the description covers the key information (what is listed and that linked form names are included). It could mention scope (active site) but is sufficient for the tool's 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 coverage is 100%, so the schema already explains both parameters. The description adds no additional meaning about parameters, meeting the baseline for high 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 uses a specific verb 'List' and resource 'popups/CTAs' with the added detail of 'with their linked form names,' making the tool's purpose clear. It distinguishes from sibling thincms_get_popup by indicating it lists all popups.

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 vs alternatives (e.g., thincms_get_popup for a single popup). There is no mention of when-not to use it or any context about prerequisites.

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

thincms_list_postsA

List blog posts with optional filters. Returns posts without content by default (use includeContent=true for full HTML). Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag name or slug
pageNoPage number (default: 1)
limitNoItems per page (default: 20)
seriesNoFilter by series name
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by status
authorIdNoFilter by author ID
categoryNoFilter by category slug
featuredNoFilter featured posts only
publishedToNoISO date: posts published before this date
publishedFromNoISO date: posts published after this date
includeContentNoInclude full HTML content in results (default: false)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, but description reveals key behaviors: default content exclusion, pagination support, optional filters. Doesn't disclose rate limits or ordering, but sufficient for a read-only list 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?

Two well-structured sentences. Front-loaded with purpose, then key options. No wasted 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 13 parameters, description provides enough context for an agent to understand the tool's purpose and key behaviors. Could mention response format but not required for a list operation.

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 3. Description adds marginal value beyond schema descriptions (e.g., default for includeContent). No major additional 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?

Clear verb+resource: 'List blog posts'. Distinguishes from siblings like get_post (single) and create/update by specifying optional filters, default content exclusion, and pagination.

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 clear context: use includeContent for full HTML, supports pagination. Does not explicitly state when not to use vs alternatives like get_post, but given the list nature, it's adequate guidance.

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

thincms_list_redirectsB

List all URL redirects. Optionally filter by enabled status.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoFilter by enabled status
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/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 full burden. It omits behavioral details like return format, pagination, read-only nature, or permission requirements. The phrase 'List all' suggests no pagination, but this is not confirmed.

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 very concise at two sentences with no waste. However, it could benefit from a bit more context (e.g., mentioning related tools) 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 no output schema and no description of return structure or pagination, the description is incomplete for a list tool. It lacks information on what fields are returned, limits, or error handling, which 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?

Schema description coverage is 100% with detailed parameter descriptions (especially siteId and confirmProductionWrite). The tool description itself does not mention parameters, but the schema already covers semantics sufficiently, leading to a baseline score of 3.

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 URL redirects', with an optional filter. It distinguishes from sibling tools like thincms_get_redirect (single) and thincms_create_redirect (create) by implying a bulk listing operation.

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 explicit guidance on when to use this tool versus alternatives such as thincms_get_redirect for a single redirect or thincms_search for more targeted queries. The description only states what it does without any usage context.

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

thincms_list_reviewsA

List Google reviews ingested for the active site (Reviews Module v1). Filterable by post status, rating, sentiment, hold reason, and drift flag. Reviews are pulled from Outscraper on a daily cron schedule; sentiment is run via the configured AI provider. Use postStatus=posted to see what's currently on the public widget.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
limitNoItems per page (default 50, max 200).
ratingNoFilter by rating (1-5).
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
providerNoFilter by which provider ingested the review.
driftFlagNoFilter by drift state. 'edited' = changed on Google since capture; 'missing' = no longer returned by Google.
holdReasonNoFilter by why a review is held back from the widget.
postStatusNoFilter by published-to-widget state.
sentimentLabelNoFilter by computed sentiment label.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that reviews are ingested daily from Outscraper and sentiment is computed via AI provider. It also explains the confirmProductionWrite parameter's role. However, it does not mention rate limits, authentication requirements, or whether the list operation is read-only. Overall, it provides useful behavioral context 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?

The description is four sentences, front-loaded with the core purpose, followed by filtering capabilities and data source context. Every sentence adds value without redundancy. It is concise and well-structured.

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 has 10 parameters and no output schema, the description covers the main purpose, filtering dimensions, data provenance, and a usage hint. It lacks details on the response format (e.g., list of review objects) and any pagination behavior beyond what's in the schema. Still, it provides sufficient context for an AI agent to understand when and how to use the 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 lists the filterable fields (post status, rating, sentiment, hold reason, drift flag) which groups parameters, but adds little semantic detail beyond what the schema already provides. The usage hint for postStatus is a small addition. Overall, minimal extra 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 'List Google reviews ingested for the active site (Reviews Module v1).' This specifies the verb 'list' and the resource 'Google reviews', and distinguishes it from other list tools by narrowing to reviews and the active site 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?

The description provides a concrete usage hint: 'Use postStatus=posted to see what's currently on the public widget.' It also explains the data source (Outscraper, daily cron) but does not explicitly state when to use alternatives like thincms_get_review or other list tools. The guidance is helpful but could be more comprehensive.

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

thincms_list_scriptsB

List all script injections (analytics, chat widgets, tracking pixels, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. It merely states the action without mentioning side effects, authentication needs, rate limits, or consequences of use.

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 concise sentence (~12 words) that front-loads the purpose with no extraneous information.

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?

As a simple list operation with no output schema, the description is adequate but lacks details on return format, pagination, or what fields the response contains. It is minimally 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 parameters (siteId, confirmProductionWrite) are already well-described in the schema. The description adds no additional meaning beyond what the schema provides.

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 action ('List') and the resource ('script injections'), with examples like analytics and chat widgets. However, it does not explicitly differentiate from sibling tools like create_script or update_script, though the action difference is implied.

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, nor does it mention any prerequisites or context for usage.

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

thincms_list_secretsA

List environment variable secrets. Returns key names and descriptions only — values are never returned for security.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description fully bears the burden of behavioral disclosure. It explicitly states that values are never returned for security, providing important safety and 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?

The description is a single, concise sentence that front-loads the primary action. Every word adds value; no waste.

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 explains the return content (key names and descriptions) but lacks details on the structure (e.g., array of objects). For a simple list tool, this is mostly adequate. With no output schema, a bit more precision would be helpful.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are well-described in the schema. The description does not add additional semantic value beyond the schema, so 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 environment variable secrets and specifies that it returns only key names and descriptions, not values, distinguishing it from other tools.

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 viewing secret metadata but does not explicitly state when to use this tool versus alternatives like thincms_create_secret or thincms_get_secret (if exists). No guidance on exclusions.

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

thincms_list_sequencesB

List email sequences (drip campaigns) with their steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'List email sequences with their steps,' which implies a read operation but does not confirm idempotency, side effects, authorization needs, or any limitations (e.g., pagination, rate limits). Critical safety details are absent.

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, well-structured sentence of 8 words, conveying the core purpose without redundancy. It is front-loaded and efficient, earning top marks for conciseness.

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 that there is no output schema and no annotations, the description provides only minimal context for a list tool. It does not mention return format, sorting, filtering, or pagination. While adequate for a simple tool, it leaves gaps that could confuse an agent, especially among many sibling list tools.

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 already has 100% description coverage, providing detailed explanations for both parameters (siteId and confirmProductionWrite). The tool description adds no additional parameter meaning, but since schema coverage is high, 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 the tool lists email sequences (drip campaigns) and includes their steps. It effectively conveys the action and resource, distinguishing it from related tools like thincms_get_sequence. However, it does not explicitly specify scope (e.g., whether it lists all sequences or supports filtering), which prevents a higher score.

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 such as thincms_get_sequence or thincms_list_campaigns. The description offers no context about appropriate scenarios, prerequisites, or exclusions, making it hard for an agent to decide when to invoke this tool.

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

thincms_list_sitesA

List all configured ThinCMS sites with preview URLs and status (preview/live). Shows which site is currently active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 convey behavioral traits. It states the output but does not mention safety, authorization, or side effects (though likely read-only). The description adds minimal value beyond obvious functionality.

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?

A single sentence that is front-loaded with the action and resource. No unnecessary words; every part is informative.

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

Completeness5/5

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

Given the tool has no parameters and no output schema, the description sufficiently covers what the tool does and what it returns. It is complete for a simple list operation.

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?

There are no parameters (schema coverage 100%), so the description need not explain any. Baseline for 0 parameters is 4, and the description does not add parameter info since none exist.

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 uses a specific verb 'List' and clearly identifies the resource 'all configured ThinCMS sites' with additional details on what is returned (preview URLs, status, active site). This distinguishes it from siblings like thincms_switch_site.

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., before switching sites) or when not to use it. The description lacks context for appropriate invocation.

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

thincms_list_snapshotsA

List all snapshots taken in the current MCP wrapper session. Useful for finding the right snapshotId to restore, or auditing what test writes have been made.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries the full burden. It discloses the scope ('current MCP wrapper session') but does not explicitly state that the tool is read-only or has no side effects. This is adequate for a list operation but could be more transparent.

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: the first states what the tool does, the second adds use cases. No redundant information, 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 no annotations, no output schema, and 0 parameters, the description adequately explains the tool's purpose and scope. It might benefit from mentioning output format or pagination, but it is sufficiently complete for a simple listing 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?

The input schema has 0 parameters and 100% schema coverage, so the baseline is 4. The description adds no parameter info, which is fine since there are none to document.

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 all snapshots taken in the current MCP wrapper session. It distinguishes itself from sibling tools like thincms_restore_snapshot and thincms_snapshot by specifying the listing action and scope.

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 context for when to use it (finding snapshotId for restore, auditing test writes) but does not explicitly state when not to use it or compare to alternatives. The context is clear enough for a simple listing tool.

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

thincms_list_submissionsA

List form submissions with pagination. Returns submission data (field values) and timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 20)
formIdYesForm ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 implies a safe read operation with 'List' but doesn't confirm read-only, auth needs, or pagination behavior details. Adequate but could be more explicit.

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 wasted words. Front-loaded with main action and pagination, then return details. Efficient and clear.

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 5 straightforward parameters and no output schema, the description covers core functionality (listing, pagination, return content). Could mention metadata like total count, but sufficient for an agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by stating the return format (field values and timestamps), which is not in schema. This helps the agent understand output beyond parameter details.

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 form submissions with pagination, and specifies it returns submission data and timestamps. This distinguishes it from siblings like thincms_export_submissions_csv and thincms_delete_submission.

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 (e.g., export vs list). It implicitly suggests usage for paginated listing but lacks when-not or alternative recommendations.

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

thincms_list_subscribersC

List subscribers/members with optional search and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 20)
searchNoSearch by email or name
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.7/5.0
Behavior1/5

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

The description claims a read-only 'list' operation, yet the input schema includes 'confirmProductionWrite' which typically indicates a write operation. This inconsistency is not addressed. No annotations are provided, so the description fails to disclose potential side effects. Without annotations, the description carries the full burden of 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?

Single sentence that is efficiently front-loaded, but could be slightly more informative 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?

No output schema and no description of return format. With 5 parameters and a potentially misleading behavioral implication, the description is insufficiently complete for an agent to use reliably.

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 description adds minimal value beyond what the schema already provides. It mentions 'optional search and pagination' but does not elaborate on parameter usage or constraints.

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 subscribers/members, which matches the tool name. It mentions optional search and pagination, but does not differentiate from other list tools like thincms_list_posts, thincms_list_sites, 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 other list tools or alternative approaches. No exclusions or prerequisites mentioned.

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

thincms_list_tagsA

List all tags with post counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior3/5

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

The description implies it is a read-only list operation (safe), but without annotations, it does not disclose potential side effects, authentication requirements, or pagination behavior. The brevity leaves some transparency 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?

The description is a single sentence with no redundancy. Every word adds value, perfectly front-loaded and efficient.

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?

While parameter descriptions are thorough, the tool description lacks details on return format, pagination, or any edge cases. Given the absence of an output schema, this is a gap, though the simplicity of the tool mitigates it.

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 detailed parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'tags' with an additional detail 'with post counts'. This distinguishes it from sibling list tools like thincms_list_categories and thincms_list_authors.

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 thincms_get_tag for a specific tag, or when to consider site overrides. The description lacks any context for selection among siblings.

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

thincms_list_tool_dataA

List all data keys visible to the caller — merges per-user (when subscriberId is supplied) with tool-global. Per-user values shadow global at the same key. Returns each key with its value, scope ('user' or 'global'), and updatedAt.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subscriberIdNoEnd-user Subscriber ID to view merged with tool-global
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.4/5.0
Behavior4/5

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

Discloses merging of per-user and global data with shadowing, return fields (key, value, scope, updatedAt). No annotations provided, so description carries full burden. Missing potential pagination or rate limits, but read-only nature is clear.

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 waste. Front-loaded with purpose and immediately explains key 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?

Explains return structure (key, value, scope, updatedAt) despite no output schema. Lacks pagination info but complete for a list tool with clear merging.

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%, baseline 3. Description adds context for subscriberId (merging behavior) beyond schema. Other parameters (id, siteId, confirmProductionWrite) are adequately described in 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 'List all data keys visible to the caller' with specific verb and resource. Distinguishes from sibling tools by describing merging behavior of per-user and global data.

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?

Explains when to use subscriberId ('when subscriberId is supplied') and that per-user values shadow global. No explicit when-not-to-use statement, 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.

thincms_list_tool_end_usersA

List end-user Subscribers who have interacted with a Tool (have data rows or AI usage on it), sorted by most-recent activity. Returns id, email, name, emailVerified, lastLoginAt, and lastActiveOnTool.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
pageNoPage number (default: 1)
limitNoItems per page (default: 50)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/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 sorting by recent activity and return fields, but does not mention pagination behavior, rate limits, auth requirements, or side effects. Some behavioral context is given, but not comprehensive.

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 with no fluff. Purpose is front-loaded, and return fields are listed efficiently. Every clause 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 simple list tool with 5 parameters and rich schema, the description is nearly complete. It provides purpose, sorting, and return fields. However, it omits pagination metadata (e.g., whether total count is returned) and ordering direction (most-recent implies descending). Still, sufficient for typical 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?

Schema coverage is 100%, so baseline is 3. Description does not add extra parameter information beyond what the schema already provides (e.g., id, page, limit). No additional meaning is contributed.

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 it lists end-user subscribers who have interacted with a specific tool, sorted by most-recent activity. It specifies the fields returned (id, email, etc.), which distinguishes it from generic subscriber list tools like thincms_list_subscribers.

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?

Description implies when to use (when needing subscribers with tool interaction) but does not explicitly state when not to use or provide comparisons to sibling tools like thincms_list_subscribers or thincms_list_tool_data. Usage is implied but not fully guided.

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

thincms_list_toolsA

List publishable Tools (mini-apps) with optional status/enabled filters and pagination. Tools render at /tools/:slug and can be authenticated (Google or password), store per-user JSON data, and call AI via /ai/chat and /ai/complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoItems per page (default: 50)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoFilter by status
enabledNoFilter to enabled tools only when true
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It correctly implies a read-only operation by using 'List', which is standard for query tools. No hidden side effects are mentioned, but none are expected for a listing tool. The extra context about tool capabilities adds useful behavioral insight.

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 consists of two concise sentences. The first sentence states the core purpose and features; the second provides useful domain context about tools. Every sentence is earned with no wasted words, making it easily scannable.

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?

While the description covers filtering and pagination, it omits important context such as the site-aware behavior (siteId parameter, confirmProductionWrite) and does not describe the return format or fields. Given the absence of an output schema, these gaps reduce completeness.

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 covers all 6 parameters with full descriptions (100% coverage), so the baseline is 3. The description mentions 'optional status/enabled filters and pagination', which aligns with the schema but adds no new semantic value beyond what the schema already provides.

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 publishable Tools (mini-apps)', which immediately identifies the verb and resource. It also specifies optional filters (status, enabled) and pagination, distinguishing it from other list tools like thincms_list_posts or thincms_list_sites.

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 does not provide explicit guidance on when to use this tool versus alternatives (e.g., thincms_get_tool for a single tool). Usage is implied by the name and purpose, but no when-not-to or alternative suggestions are given.

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

thincms_list_workbooksB

List workbooks across the site, optionally filtered by course or module. Each result includes module info and a response count.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
courseIdNoFilter by course ID
moduleIdNoFilter by module ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/5.0
Behavior3/5

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

The description states it lists workbooks with module info and response count, implying a read operation. However, no annotations are provided, and the description does not explicitly confirm safety or mention any side effects. It 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.

Conciseness4/5

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

The description is a single efficient sentence. It is front-loaded with the core action and resource. Could be improved by adding context about when to use filters, but no wasted words.

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?

Despite good schema coverage, the description omits key parameter context (siteId, confirmProductionWrite) and does not fully describe output beyond 'module info and response count.' Given complexity (4 params, no output schema), more detail is needed for completeness.

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 detailed descriptions for all 4 parameters. The description adds minimal value beyond schema: it hints at filtering by course/module but does not elaborate on siteId or confirmProductionWrite, which are important for multi-tenant contexts.

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) and resource (workbooks) with optional filters. It distinguishes from sibling tools by focusing on workbooks, which is unique among many list tools.

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 mentions optional filters but does not explain when to use this tool over alternatives (e.g., thincms_get_workbook for a single workbook). No when-not or explicit context for usage.

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

thincms_patch_cssA

Replace a named section of the stylesheet between comment markers. The stylesheet must contain /* START: / and / END: */ markers. Only the content between these markers is replaced.

IMPORTANT — what to send: pass ONLY the body to insert between the markers, not a full stylesheet. If your input contains its own START: and END: markers matching the same section name, the API will auto-extract the body for you. If it contains markers for a DIFFERENT section, the call is rejected to prevent silent doubling. Use dryRun=true on large patches to verify the size delta before committing.

ParametersJSON Schema
NameRequiredDescriptionDefault
cssNoReplacement CSS for the section. Send only the body content (not a full stylesheet).
dryRunNoWhen true, return the size delta the change would produce without writing. Strongly recommended before any large patch.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
cssFileNoLocal file path containing replacement CSS. The file may contain matching START:/END: markers for the named section — if present, the body between them is auto-extracted. If the file contains markers for a different section, the call is rejected.
sectionYesSection name matching comment markers in the stylesheet (e.g., 'hero' matches /* START:hero */ ... /* END:hero */)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.5/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 explains key behaviors: replacement only between markers, auto-extraction with matching markers, rejection for different markers, and dry run behavior. It also hints at production write protection via confirmProductionWrite. Missing details about required permissions or side effects on the rest of the stylesheet, but these are not critical.

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 well-structured: first sentence establishes purpose, then explains markers, critical input rules in caps, and practical recommendation. It is concise at 5 sentences with zero wasted words and front-loaded with the core action.

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 complexity (6 parameters, no output schema), the description covers essential aspects: marker-based replacement, input requirements, dry run, and site targeting. It does not describe the return value or how to identify existing markers, but these are minor omissions. Overall, it equips an agent to use the tool correctly.

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?

Schema coverage is 100%, but the description adds significant value beyond schema descriptions. It clarifies that 'css' should be only body content, explains auto-extraction for 'cssFile', details marker format for 'section', recommends 'dryRun' for large patches, and describes 'siteId' as a concurrent-session pattern. This rich context far exceeds baseline.

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: 'Replace a named section of the stylesheet between comment markers.' It specifies the verb 'replace' and the resource 'named section of the stylesheet,' with the comment marker mechanism providing precise scope. This distinguishes it from general CSS modification tools like thincms_append_css, which appends rather than replaces.

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 on when to use the tool: use dryRun for large patches, avoid sending full stylesheets, and understand marker auto-extraction. It also warns about rejection for mismatched sections. However, it does not compare this tool to alternatives like thincms_append_css, leaving the agent to infer when to use each.

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

thincms_pause_sequenceB

Pause a published sequence automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSequence ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

The description implies a mutation (pause) but does not disclose permissions, idempotency, or side effects. With no annotations present, the description carries the full burden, and it is insufficient.

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 with no redundancy. However, it is slightly too brief and could benefit from a bit more context 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 tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what happens after pausing (e.g., resumed later, status change) or any return value.

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 documents each parameter. The description adds no additional meaning beyond the parameter descriptions in 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 ('Pause') and the specific resource ('a published sequence automation'), distinguishing it from siblings like thincms_publish_sequence (publish) and thincms_delete_sequence (delete). The mention of 'published' adds necessary context.

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., when to pause vs delete or update a sequence). No prerequisites or conditions for use are mentioned.

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

thincms_publish_reviewA

Mark a review as posted to the public reviews widget. Sets postStatus='posted' and clears any holdReason. Subject to the production-write guard if the site is in THINCMS_PRODUCTION_SITE_IDS — pass confirmProductionWrite=true to acknowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReview ID.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 for behavioral transparency. It discloses the effect on postStatus and holdReason, and the production guard requirement. However, it does not discuss reversibility, authorization needs, or any side effects, leaving some gaps for an agent to infer.

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 at two sentences. The first sentence communicates the primary purpose and effect, and the second adds critical behavioral context (production guard). No unnecessary words or redundancy.

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 mutation tool with no output schema, the description adequately covers the action and key constraint (production guard). It does not describe return values or confirmation, but the tool's purpose is straightforward. The context is nearly complete given the low 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%, so parameters are well-described in the schema. The description adds meaningful context for confirmProductionWrite by explaining the production-write guard and acknowledgment pattern. It does not add information for the id or siteId parameters, but the schema already covers them adequately.

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 ('mark a review as posted') and specifies the resource ('public reviews widget'). It also describes the database effect (sets postStatus, clears holdReason). This distinctly helps an agent understand what the tool does and differentiates it from sibling tools like thincms_unpublish_review.

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 mentions the production-write guard and the need for confirmProductionWrite, but does not explicitly state when to use this tool vs alternatives like thincms_unpublish_review or thincms_clear_review_drift. Usage context is implied but not fully clarified.

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

thincms_publish_sequenceC

Publish a sequence as an automation in the email platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSequence ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description fails to disclose key behaviors: what publishing entails (e.g., activating emails), reversibility, side effects, or required setup. The description is minimal and does not fulfill the transparency burden.

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 with no fluff, but it lacks essential details. It is concise but incomplete, which reduces its helpfulness.

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

Completeness1/5

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

Given the complexity of publishing a sequence as an automation and the absence of an output schema or annotations, the description is severely lacking. It does not explain return values, prerequisites, effects, or post-conditions.

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 100% coverage for all 3 parameters. The description adds no extra meaning beyond the parameter descriptions already in the schema. Baseline 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 the action (publish) and resource (sequence) with target context (automation in email platform). It distinguishes from sibling tools like thincms_create_sequence or thincms_pause_sequence, though it could be more precise about the outcome.

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., thincms_create_sequence for creation, thincms_pause_sequence for pausing). No prerequisites or conditions stated.

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

thincms_re_analyze_review_sentimentA

Re-run sentiment analysis for a single review (id) or all reviews on the site (all=true). Useful after switching the AI provider in Settings. Does NOT change postStatus — only sentiment fields. Admin-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoReview ID. Omit when using all=true.
allNoRe-analyse every review on the site (capped at 500).
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It states the tool does NOT change postStatus and only updates sentiment fields, which is key behavioral information. It also notes admin-only. However, it does not explicitly state that it performs a write operation or disclose potential side effects like rate limits or conflicts if both 'id' and 'all' are provided.

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 three concise sentences. The first sentence states the purpose, the second provides a use case, and the third clarifies side effects and access. No unnecessary words, and front-loaded with the core action.

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, the description covers essential behavioral aspects and parameters. It lacks explanation of return values or errors, but the tool is straightforward. Overall, it is fairly complete for its 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%, and the description does not add new parameter-specific meaning beyond what the schema already provides. The baseline of 3 is appropriate since the schema adequately documents 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 it re-runs sentiment analysis for a single review or all reviews, with specific verb 're-run' and resource 'review sentiment'. It distinguishes from siblings like thincms_publish_review, thincms_sync_reviews, etc., by focusing solely on sentiment re-analysis.

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 explicitly says 'Useful after switching the AI provider in Settings', providing a specific context. It also notes 'Admin-only' for access. However, it does not explicitly mention when not to use it or alternative tools for similar tasks (e.g., thincms_sync_reviews).

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

thincms_reorder_collection_itemsB

Bulk reorder items in a collection. Pass an array of { id, sortOrder } pairs.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of { id, sortOrder } pairs
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
collectionIdYesCollection ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must convey behavioral traits. It states a 'reorder' operation (write) but does not mention side effects, permission requirements, idempotency, error handling, or whether sortOrder is relative or absolute. The description is too sparse for a mutation tool.

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

Conciseness4/5

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

The description is very short (two sentences) and front-loaded with the main action. It could be slightly more concise by combining sentences, but overall it is efficient and to the point.

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 no output schema, the description should at least mention what the tool returns or confirm success. It also omits important context like the required collectionId parameter in the description, potential constraints on sortOrder values, and whether the operation is atomic. The tool is underspecified for a bulk operation.

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%; each parameter is documented. The description repeats the items format ('array of { id, sortOrder } pairs') but adds no further semantic meaning beyond the schema (e.g., range, uniqueness, or ordering behavior of sortOrder). Baseline 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 'Bulk reorder items in a collection' with a specific verb and resource. It is not a tautology. However, it does not explicitly differentiate from sibling tools like thincms_reorder_modules or thincms_reorder_module_items, though the name itself is specific.

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 bulk reorder of collection items but lacks guidance on when not to use it or alternatives (e.g., single item update via thincms_update_collection_item). No context about prerequisites or conditions is provided.

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

thincms_reorder_module_itemsA

Reorder lessons, quizzes, and workbooks within a module. All three types share a single sort order space — pass all items in the desired order with their type.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of items in desired order
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
moduleIdYesModule ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses that the tool expects all items to be passed in desired order and that types share a single order space, which is helpful. However, it omits important behavioral traits such as idempotency, what happens if items are omitted, or any side effects like confirmation requirements (though confirmProductionWrite parameter hints at write operations).

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 consists of two short sentences with no redundancy. The first sentence immediately states the goal, and the second adds a critical constraint. It is perfectly sized for quick comprehension.

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 that the tool has no output schema and four parameters with full schema descriptions, the description adequately covers the core behavior. It explains the shared order and the requirement to pass all items. While it could be more explicit about validation and missing items, it is sufficient for a straightforward reorder operation.

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 100%, so baseline is 3. The description adds meaningful context beyond the schema by clarifying that the three item types coexist in a single sort order space and that the items array should contain all items. This helps the agent understand the parameter's purpose more deeply.

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 uses the verb 'Reorder' and specifies the resource 'lessons, quizzes, and workbooks within a module', which is distinct from sibling reordering tools that target different scopes (e.g., modules or collection items). It also explains the shared sort order space, adding precision.

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 implicitly defines its use case by specifying 'within a module' and noting that all three item types share a single sort order. While it does not explicitly contrast with sibling tools, the context is clear enough to guide appropriate selection. However, it could explicitly state when not to use it or mention alternatives.

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

thincms_reorder_modulesA

Reorder modules within a course. Pass all module IDs in the desired order.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
courseIdYesCourse ID (required)
moduleIdsYesArray of module IDs in desired order
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden but only states that it reorders modules and requires all module IDs. It does not disclose side effects, permissions, idempotency, or return behavior beyond the reorder action.

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, clear sentence with no unnecessary words. It is front-loaded and immediately communicates the core functionality.

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 reorder tool with no output schema and no annotations, the description is adequate but lacks behavioral details such as whether the operation is destructive, the expected return value, or how errors are reported. It covers the basic purpose but is not fully 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 description coverage is 100%, so the schema already documents all parameters. The description adds only a slight emphasis on 'pass all module IDs' but does not provide additional meaning beyond what the schema already conveys.

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 the verb 'Reorder' and the resource 'modules within a course', and it clearly distinguishes from siblings like 'thincms_reorder_module_items' which reorders items inside a module.

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 reordering modules but provides no explicit guidance on when to use this tool versus alternatives (e.g., thincms_reorder_collection_items for collections), nor does it mention 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.

thincms_reorder_sequence_stepsC

Reorder steps in a sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
stepIdsYesStep IDs in desired order
sequenceIdYesSequence ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/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 does not disclose that it is a write operation (though confirmProductionWrite parameter hints), nor does it explain effects, authorization needs, or error conditions. The description is too minimal.

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, concise and front-loaded. However, it is too minimal and could include more context without being verbose.

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?

No output schema, and the description does not explain return values or how this fits into the workflow (e.g., reordering steps in an email sequence). Lacks information about expected preconditions and 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 coverage is 100%, each parameter has a description. The tool description adds no new meaning beyond the schema, so baseline 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 the action (reorder) and resource (steps in a sequence). It distinguishes from sibling reorder tools like thincms_reorder_modules by specifying 'steps in a sequence', though it could be more explicit about the context (email sequences).

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 (e.g., thincms_reorder_modules or thincms_reorder_collection_items). No mention of prerequisites such as the sequence existing or steps belonging to the sequence.

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

thincms_restore_snapshotA

Write a previously-captured snapshot back to its original resource. Reverts the resource to the exact bytes captured at snapshot time. Fails if the snapshot has expired (24h) or the resource has been deleted. Use as the cleanup step after any test write.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotIdYesThe snapshot ID returned by thincms_snapshot.

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description fully discloses the write action, the fact that it reverts the resource, and failure conditions. It implies it is safe for testing. It could explicitly state that the current state is overwritten, but still strong.

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 front-loaded sentences with no fluff: first states action, second adds detail and failure conditions, third gives usage guidance. 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?

For a simple tool with one parameter and no output schema, the description covers purpose, usage context, and failure cases. It does not specify the return format or permissions, but those are minor gaps given the tool's clarity.

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% (one parameter, snapshotId, described as 'The snapshot ID returned by thincms_snapshot.'). The tool description adds no new semantic information beyond the schema's property description; baseline 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's action: writing a snapshot back to its original resource, reverting to exact bytes. It distinguishes from sibling tools like thincms_snapshot (which creates snapshots) and thincms_list_snapshots (which lists them).

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

Usage Guidelines4/5

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

The description explicitly recommends using this tool 'as the cleanup step after any test write,' providing clear context. It also notes failure conditions (expired snapshot, deleted resource). It does not enumerate alternatives, but the purpose is distinct enough.

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

thincms_send_campaignA

Push the campaign to the connected mail platform (e.g. ActiveCampaign) and request delivery. If scheduledFor is "immediate" (or the legacy scheduledAt is empty), the platform begins sending right away. If scheduledFor is a future timestamp (or scheduledAt is set), the platform queues it for that time. Returns success when the platform accepts the queue request — actual recipient delivery is asynchronous and reported via thincms_campaign_stats. Optionally pass scheduledFor here to override the stored schedule in the same call. WARNING — the platform locks the schedule at first send. To reschedule a campaign you have already sent, delete it and recreate it; a /send with a changed schedule against an already-queued campaign returns 409.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
scheduledForNoOptional override of the stored schedule. "immediate" or an ISO 8601 timestamp at least 60 minutes in the future.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.7/5.0
Behavior5/5

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

No annotations were provided, so the description carries full burden. It fully discloses behavioral traits: the tool accepts the send request asynchronously, actual delivery is async; scheduling behavior for immediate vs future timestamps; the lock on schedule after first send; the need for confirmProductionWrite for production sites; and the error scenario (409). This is comprehensive.

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 but thorough, consisting of two well-structured paragraphs. The first sentence clearly states the purpose. Every sentence adds essential information without redundancy. It is appropriately sized for the complexity.

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

Completeness5/5

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

Given the tool's complexity (asynchronous sending, scheduling, production safety), the description covers all critical aspects: what it does, how scheduling works, the lock constraint, the async nature and monitoring via thincms_campaign_stats, and the production write acknowledgment. No output schema exists, but the return behavior is described. This is sufficient for an AI agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds significant value beyond the schema: it explains the interaction between scheduledFor and the legacy scheduledAt, the meaning of 'immediate' vs future timestamp, the schedule locking behavior, and the context for confirmProductionWrite. This extra context elevates the score to 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 tool's action: 'Push the campaign to the connected mail platform and request delivery.' It uses a specific verb ('push') and resource ('campaign'), and distinguishes it from related tools like thincms_create_campaign or thincms_update_campaign by focusing on the sending action.

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 on when to use this tool: to send a campaign with optional scheduling. It also explains constraints: the platform locks the schedule after first send, so rescheduling requires delete/recreate, and a /send against an already-queued campaign returns 409. It mentions async delivery and the need to check thincms_campaign_stats. However, it doesn't explicitly tell when not to use it (e.g., if just creating or updating a campaign).

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

thincms_send_verify_emailA

Send (or re-send) the email-verification email to a subscriber. Generates a fresh 24-hour verify token, invalidating any prior pending token. Rejected if the subscriber's email is already verified.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscriber ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must cover behavioral traits. It does so by disclosing token generation, a 24-hour expiry, invalidation of prior tokens, and rejection when already verified. It does not mention authentication requirements or rate limits, but the core behavioral details are present. No contradiction with annotations (none exist).

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: two sentences that cover the main action and key behavioral constraints. Every sentence adds value with no redundancy.

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 provides sufficient information for a straightforward single-action tool. It explains the purpose, token behavior, and rejection condition. Missing details like return values are minor given the tool's simplicity and the lack of an output schema.

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 input schema fully describes each parameter. The description adds no additional meaning beyond what is already in the schema. Baseline 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 action: send or re-send an email-verification email to a subscriber. It specifies the resource (subscriber) and includes key details like token generation and invalidation. Among the many sibling tools, none duplicate this function, so it is well-distinguished.

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 implies when to use (e.g., to send/re-send a verification email) and explicitly states a condition for not using (rejected if already verified). However, it does not mention alternatives or provide explicit guidance on when not to use it beyond the already-verified case.

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

thincms_seo_analyzeB

Analyze a single post or page for SEO signals. Returns word count, heading structure, image count (with missing alt detection), internal/external link counts, meta field lengths, and actionable suggestions.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe post or page ID
typeYesContent type to analyze
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations present, so description must disclose behavioral traits. It does not state whether the operation is read-only or has side effects. The output-focused list is helpful but insufficient for an agent to understand safety implications.

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?

Extremely concise: a single sentence that conveys purpose and outputs. No wasted words, front-loaded with the action. Every sentence 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?

Given no output schema, the description lists return values (word count, headings, images, links, meta, suggestions), which is good. However, it omits safety/read-only disclosure and does not mention pagination or behavior for invalid IDs, leaving some gaps for a simple 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 no extra meaning beyond the schema's parameter definitions; it merely restates the action. No additional context for siteId or confirmProductionWrite.

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 action (analyze), resource (single post or page), and domain (SEO signals). Lists specific outputs. Does not explicitly differentiate from siblings like thincms_seo_audit, which limits clarity for comparison, but the verb+resource is precise.

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., thincms_seo_audit for bulk, thincms_seo_check_links for links). No prerequisites or exclusions stated, leaving the agent to infer context.

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

thincms_seo_auditC

Run an SEO audit across all published posts and pages. Reports missing meta descriptions, missing meta titles, title length issues, missing OG images, thin content, missing excerpts, and duplicate titles. Returns a summary with score and a list of issues per item.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

The description implies a read-only audit, but the input schema includes confirmProductionWrite (acknowledging writes to production), creating a contradiction. The description does not explain whether the audit modifies data or has side effects, nor does it mention rate limits or other behavioral traits.

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 (two sentences) and front-loads the action. However, the list of checks could be better integrated into a structured format, and the sentence on output is clear.

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 absence of an output schema, the description adequately mentions a summary with score and issues list. However, it fails to clarify the write potential implied by confirmProductionWrite and doesn't differentiate from sibling SEO tools.

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 detailed descriptions for both parameters (siteId and confirmProductionWrite). The tool description adds no additional meaning beyond the schema, so a baseline 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 the tool runs an SEO audit across all published posts and pages, lists specific checks (missing meta descriptions, titles, OG images, etc.), and notes the output. However, it does not differentiate itself from sibling tools like thincms_seo_analyze or thincms_seo_check_links, which could cause confusion.

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?

There is no guidance on when to use this tool versus alternatives (e.g., seo_analyze, check_links). The description only explains what it does, not the optimal use context or exclusions.

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

thincms_set_review_editor_notesA

Set free-text editor notes on a review (internal-only; not shown publicly). Useful for tracking why something was unpublished or what to do about a flagged drift event.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReview ID.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
editorNotesYesInternal notes (pass empty string to clear).
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 convey behavioral traits. It mentions internal-only and not shown publicly, but it does not disclose that the operation overwrites existing notes, nor does it mention error conditions (e.g., review not found). The description is adequate but could be more explicit.

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: two sentences with no unnecessary words. It front-loads the primary action and follows with specific use cases. Every part 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 that the tool has no output schema and the operation is simple (set a string on a review), the description is largely sufficient. It explains the purpose, internal nature, and use cases. However, it could briefly mention that it returns confirmation or success status, but this is not critical.

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 each parameter's purpose (e.g., 'editorNotes: Internal notes (pass empty string to clear)'). The description does not add additional meaning beyond what the schema provides, 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 action ('Set free-text editor notes'), the resource ('a review'), and adds context that notes are internal-only. It distinguishes itself from sibling tools like thincms_publish_review or thincms_unpublish_review by specifying it is for editor notes, not status changes.

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 concrete use cases ('tracking why something was unpublished or what to do about a flagged drift event'), which helps an agent decide when to use this tool. It does not explicitly state when not to use it or mention alternatives, but the use cases are specific and relevant.

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

thincms_set_subscriber_passwordA

Set a password for a subscriber. Admin action for bulk-provisioning end-users of Tools (mini-apps); skips the signup email flow. Password must meet strength rules (8+ chars, upper, lower, digit). Existing sessions for the subscriber are revoked so the new password takes effect everywhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscriber ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
passwordYesNew password (min 8 chars, must include upper, lower, digit)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses password strength rules, session revocation, and email skipping. Without annotations, this adds important behavioral context beyond the schema, though it omits potential error conditions.

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 providing distinct value: purpose, context, behavioral detail. Efficient and front-loaded with no wasted 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?

Covers main action, admin context, side effects, and password rules. Missing prerequisites like subscriber existence or site context, but acceptable for a focused write tool with no output schema.

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 3. Description reiterates password rules already in schema but adds no new semantics for other parameters. Minimal value added.

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 sets a password for a subscriber, specifies it's an admin action for bulk provisioning, and distinguishes from subscriber management siblings by focusing on password 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?

Provides context for admin bulk-provisioning and bypass of signup email, which guides when to use. Lacks explicit when-not or alternatives but the context is clear enough.

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

thincms_set_tool_dataA

Write a Tool data value. Without subscriberId, writes tool-global (visible to every user of the tool). With subscriberId, writes per-user data — the workhorse for AI agents updating a specific user's personalized dashboard, Kanban board, or state file. value accepts any JSON: object, array, string, number, boolean, or null.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug
keyYesData key
valueNoJSON value to store
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subscriberIdNoEnd-user Subscriber ID to scope the write to. Omit for tool-global.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/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 that it writes data and accepts any JSON. Lacks details on side effects, permissions, idempotency, or success signals. 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?

Three sentences with clear front-loading of purpose. Every sentence adds value and there is no unnecessary verbiage.

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 purpose, scoping, and data format. No output schema described, but for a write tool this is acceptable. Could mention return value or confirmation, but overall 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 for all 6 parameters. The description adds context for subscriberId ('workhorse for AI agents') and value (accepts any JSON). Adds some value but baseline is 3.

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 states it writes a tool data value, distinguishes global vs. per-user with subscriberId, and references specific use cases like updating dashboards. It clearly differentiates from sibling tools like get/delete/list.

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 explains when to use subscriberId (per-user data) and when to omit (tool-global), with concrete examples. Does not state explicit when-not-to-use or mention alternative tools, 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.

thincms_snapshotA

Capture the current state of a site resource so it can be restored byte-for-byte later. Use BEFORE any test write against a customer site — restore returns the resource to the exact pre-test state regardless of what the test write does (null, substitute, partial update, etc.). Snapshots live in MCP wrapper memory for 24 hours; they survive across tool calls within a session but are lost on host restart. Supports scope='settings', 'template', 'page' (requires resourceId), 'post' (requires resourceId), and 'review' (requires resourceId).

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYesWhat to snapshot. 'settings' captures editable site settings (excludes admin-only fields like name/domain that PUT can't restore from an editor key); 'template' captures stylesheet/pageFrame/customHeadHtml; 'page' / 'post' / 'review' capture editable fields of a single resource and require a resourceId.
siteIdNoOverride the active site for this snapshot (matches the per-call siteId pattern used by other tools). Must match a siteId from your THINCMS_SITES config.
resourceIdNoRequired for scope='page', 'post', or 'review'. The resource ID to snapshot.

TDQS

A4.5/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 the full burden. It describes that snapshots live in MCP wrapper memory for 24 hours, survive across tool calls, and are lost on host restart. It also specifies what each scope captures (e.g., settings excludes admin-only fields). It does not cover failure behavior or duplication, but the disclosed traits are substantial.

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 (three sentences) and front-loaded with the primary purpose and usage advice. It then efficiently covers scope details and lifetime. Every sentence adds value without redundancy.

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, the description could mention the return value (e.g., snapshot identifier or handle). However, for a snapshot tool, it covers the essential behavioral aspects (scope, lifetime, usage) and the input schema is fully described. Minor gap on return value prevents a 5.

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?

Schema coverage is 100%, but the description adds significant value: for scope 'settings' it clarifies that admin-only fields are excluded; for 'page/post/review' it notes editable fields and resourceId requirement. This goes beyond the schema enum descriptions to explain behavior and constraints.

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 captures the current state of a site resource for byte-for-byte restoration. It distinguishes from siblings like thincms_restore_snapshot by explaining the use case for pre-test writes. The verb 'capture' and resource 'site resource' are specific, and the description differentiates from other snapshot-related tools.

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 says 'Use BEFORE any test write against a customer site' and explains that restore returns exact pre-test state. It also details when resourceId is required for specific scopes. While it doesn't list when not to use, the guidance is clear and actionable for the intended use case.

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

thincms_switch_siteA

Switch the active ThinCMS site. All subsequent API calls will use this site's credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the site to switch to (case-insensitive)

TDQS

A3.5/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 discloses the basic effect of switching credentials for subsequent calls, but omits details like whether the switch is session-scoped or persistent, error handling for invalid names, or any 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 front-loaded sentences with no extraneous words. Every sentence adds value: the first states the action, the second explains the consequence.

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 state-changing tool with one parameter and no output schema, the description covers the core purpose and effect. However, it lacks information on error behavior (e.g., invalid site name) and return value, leaving some gaps for an 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 description coverage is 100% for the only parameter 'name', which already describes it as a case-insensitive site name. The tool description does not add additional semantic value beyond what the schema provides.

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 uses a specific verb 'Switch' and resource 'active ThinCMS site', clearly indicating the action. It effectively distinguishes this context-switching tool from the many CRUD and management sibling tools.

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 states that subsequent API calls will use the switched site's credentials, providing clear context for when to use this tool. However, it does not mention when not to use it or alternative tools.

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

thincms_sync_integrationB

Bulk sync all subscribers to the email platform. Creates tags for lead magnets and pushes all subscribers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIntegration ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/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 performs a bulk sync and creates tags, which indicates write behavior. However, it omits details on idempotency, error handling, or whether the operation is synchronous, leaving some behavioral 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?

The description is only two sentences with no extraneous information. It is front-loaded and efficiently communicates the core action, earning a perfect score for 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 tool has no output schema, the description should explain return values or results. It does not. It also lacks details on duration or side effects, 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?

All 3 parameters are fully described in the input schema (100% coverage), so the description adds no additional parameter-level meaning. The baseline of 3 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?

The description clearly states the action ('Bulk sync all subscribers') and the resource ('to the email platform'). It also specifies sub-actions ('Creates tags for lead magnets and pushes all subscribers'), making it distinct from sibling tools like thincms_list_subscribers or thincms_create_integration.

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 versus alternatives, nor does it mention prerequisites or when not to use it. It merely states what the tool does, leaving the agent without context for decision-making.

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

thincms_sync_reviewsA

Manually trigger a reviews poll for the active site (same code path the cron uses). Fetches from the configured provider, runs sentiment on new reviews, applies the auto-post rule, and detects drift. Subject to the production-write guard. Optional backfillDaysOverride lets you re-run with a longer history window.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
backfillDaysOverrideNoOverride the per-site backfillDays setting for this single run (1-365).
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: fetching, sentiment analysis, auto-post rule, drift detection, and production-write guard. However, it does not mention rate limits or concurrency behavior.

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 front-load the core action and each sentence adds distinct information without 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?

Missing output description (e.g., success status, count of processed reviews) and explicit prerequisites, though the schema parameters and production-write guard help partly.

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 the description adds value for backfillDaysOverride by explaining its purpose. siteId and confirmProductionWrite are already well-described in 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 it triggers a reviews poll for the active site, listing specific actions (fetch, sentiment, auto-post, drift detection) and distinguishes it from siblings that view or manage individual reviews.

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 provides context that it uses the same code path as cron and mentions production-write guard, but does not explicitly contrast with alternative tools like thincms_list_reviews or thincms_get_review.

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

thincms_template_statusA

Get the current template's stats (hash, byte size, line count) for each field. Optionally compare against local files to verify a push landed correctly. Returns match/mismatch with size and line differences.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
comparePageFrameFileNoLocal file to compare against the server's page frame
compareStylesheetFileNoLocal CSS file to compare against the server's stylesheet
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.
compareCustomHeadHtmlFileNoLocal file to compare against the server's custom head HTML

TDQS

A3.7/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 behavioral traits. It describes a read operation ('Get'), but the 'confirmProductionWrite' parameter suggests the tool may perform writes, which contradicts the description's implication. The tool's actual side effects (read vs write) are unclear. It also does not mention authentication requirements 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.

Conciseness5/5

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

The description is concise: three sentences, front-loaded with the main action. 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 5 parameters (all optional, but no output schema), the description covers the main purpose and comparison feature. However, it fails to address the presence of the 'confirmProductionWrite' parameter, which contradicts the read-only implication. This gap reduces completeness for safe agent invocation.

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 context by explaining the comparison use case ('verify a push landed correctly') but does not elaborate on parameter specifics beyond what the schema already provides. The schema descriptions are already detailed (e.g., siteId override, confirmProductionWrite purpose).

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 retrieves template stats (hash, byte size, line count) for each field and optionally compares against local files. This distinguishes it from sibling tools like thincms_get_template (which likely returns the full template object). The verb 'Get' and resource 'current template's stats' 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 provides a clear use case: 'verify a push landed correctly' by comparing with local files. However, it does not explicitly mention alternatives or when not to use this tool. Since the purpose is specialized, the usage context is adequately implied.

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

thincms_test_ai_connectionA

Round-trip a 1-token prompt to the configured AI provider to confirm the key + model combination works. Returns provider, model, and a tiny sample reply. Admin-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explains the tool sends a 1-token prompt and returns a reply, indicating a test call. It does not explicitly state it is read-only or safe to call repeatedly, but the nature of a 'test' implies no side effects. Minor lack of explicit safety statement.

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, immediately states the action ('Round-trip a 1-token prompt'), and includes key outcomes and constraints. No redundant 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?

The description covers what the tool does, returns, and who can use it. It does not mention the parameters, but the schema fully describes them. For a simple test tool, this is complete enough.

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% and both parameters have detailed descriptions. The tool description adds no extra meaning beyond what is already in the input schema. 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 'round-trips a 1-token prompt to confirm the key + model combination works' and specifies it returns provider, model, and sample reply. It is distinct from any sibling tools, which are all data operations, making its purpose unique 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 implies usage for testing AI provider configuration after setup or when troubleshooting. 'Admin-only' provides a usage constraint. No explicit alternatives are given, but no sibling serves a similar function, so the guidance is sufficient.

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

thincms_test_integrationC

Test the email platform connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIntegration ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.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 carries full burden. It does not disclose whether the test is read-only, what it does (e.g., sends a test email, verifies credentials), or what happens on success/failure. The agent cannot infer safety 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.

Conciseness3/5

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

The description is a single sentence, which is concise, but it lacks structure and detail. It is too brief to be fully helpful, though it does not contain extraneous information.

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 three parameters, no output schema, and no annotations, the description should explain the test behavior and return value. It does not, leaving the agent with insufficient context to understand what the tool does beyond the name.

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 clear descriptions for all three parameters (id, siteId, confirmProductionWrite). The tool description adds no extra meaning beyond the schema, so baseline 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 the tool tests an email platform connection, which is a specific verb+resource. However, it does not distinguish it from sibling tools like thincms_sync_integration or thincms_test_ai_connection, and the mention of 'email' seems narrower than the tool name 'test_integration' suggests.

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. There is no mention of prerequisites, such as requiring an existing integration, or when not to use it (e.g., for non-email integrations).

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

thincms_unpublish_reviewA

Hide a review from the public widget. Sets postStatus='not_posted' and holdReason='editor_unpublished'. Subject to the production-write guard.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReview ID.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses immediate state changes (postStatus, holdReason) and the production-write guard, but does not mention side effects, required permissions, reversibility, or return behavior (e.g., what the response contains).

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 front-loaded, consisting of two sentences that efficiently convey the action and a critical guard condition. No extraneous 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?

For a simple mutation tool without an output schema, the description covers the main intent and state changes. However, it omits any mention of the return value or success/error responses, which would aid completeness.

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%, and the parameter descriptions in the schema are already detailed. The description adds no additional meaning to the parameters beyond what the schema provides. 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's purpose: 'Hide a review from the public widget.' It also specifies the exact state changes (postStatus and holdReason), which distinguishes it from sibling tools like thincms_publish_review or thincms_get_review.

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 does not explicitly state when to use this tool over alternatives. It mentions a production-write guard but provides no context on prerequisites or when not to use it. Usage can be inferred from the sibling tools, but no direct guidance is given.

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

thincms_update_authorA

Update an existing author profile. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAuthor ID (required)
bioNoAuthor bio
nameNoAuthor name
slugNoURL slug
emailNoAuthor email
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
socialNoSocial links object
websiteNoAuthor website URL
avatarUrlNoAvatar image URL
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states partial update, but omits authentication, rate limits, idempotency, side effects, or return behavior. Minimal disclosure.

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, front-loaded sentences with zero waste. Directly communicates core purpose and key behavior.

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?

Despite having 10 parameters with nested objects, no output schema, and no annotations, the description only covers partial update. Lacks guidance on success/error, prerequisites, and return values.

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 documentation coverage is 100%, so the description does not need to add parameter details. It adds no extra meaning beyond the schema, meeting baseline.

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 the verb 'update' and resource 'author profile', and specifies partial update behavior ('only provided fields are changed'), distinguishing it from create and delete 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 gives clear context (update existing author) and notes partial update, but does not explicitly mention when not to use or suggest alternatives like thincms_create_author or thincms_delete_author.

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

thincms_update_campaignB

Update a draft or scheduled campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID
nameNo
listIdNo
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
subjectNo
tagFilterNo
htmlContentNo
scheduledAtNoDEPRECATED — use scheduledFor. ISO 8601 timestamp, or null to clear.
scheduledForNoOverride the schedule: "immediate" or an ISO 8601 timestamp at least 60 minutes in the future.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 behavioral traits. However, it only states the update action and allowed campaign states. It does not specify whether updates are partial or full, idempotency, side effects, permissions, or error handling. This is insufficient for a mutation tool with 10 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 a single sentence with no redundant words. Every word contributes to understanding the tool's core function. It is appropriately concise.

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's complexity (10 parameters, 1 required), lack of output schema, and no annotations, the description is too sparse. It omits critical context such as success/error responses, confirmation for production writes (despite the confirmProductionWrite parameter), and whether the tool can be applied to canceled or sent campaigns.

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 50% (5 of 10 parameters documented). The tool description adds no parameter-specific information beyond the schema. For the five undocumented parameters (name, listId, subject, tagFilter, htmlContent), the description offers no hints about their purpose, leaving the agent to infer from parameter names alone.

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 'Update' and the resource 'draft or scheduled campaign,' distinguishing it from sibling tools like create, delete, send, and get stats. It specifies the campaign state, adding precision beyond the name alone.

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 the tool is for modifying unsent campaigns (draft or scheduled) but does not explicitly state when not to use it, nor does it mention alternatives like thincms_send_campaign or thincms_get_campaign. Guidance is minimal but not misleading.

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

thincms_update_categoryA

Update an existing category. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCategory ID (required)
nameNoCategory name
slugNoURL slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
parentIdNoParent category ID
sortOrderNoSort order
descriptionNoCategory description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior3/5

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

The description mentions 'Only provided fields are changed' indicating partial update (PATCH-like) behavior. However, with no annotations, it lacks details on authorization, side effects, or error conditions. The confirmProductionWrite parameter adds some context but is not referenced in the 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?

The description is a single efficient sentence that conveys the essential information without any unnecessary words.

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 absence of output schema and annotations, the description adequately covers the core action but lacks detail on return values, error handling, or usage context. For a tool with 8 parameters, it is minimally 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 description coverage is 100%, and the description's mention of 'Only provided fields are changed' reinforces partial update semantics, adding marginal value beyond the schema 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?

The description clearly states the action 'Update an existing category' with the specific resource 'category', and distinguishes from sibling tools like thincms_create_category and thincms_delete_category by implying the update operation.

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 updating a category but provides no explicit guidance on when to use this tool versus alternatives (e.g., thincms_create_category for new categories, thincms_delete_category for removal), nor any prerequisites or exclusions.

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

thincms_update_collectionB

Update collection settings. Supports partial updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCollection ID
nameNoCollection name
slugNoURL-safe slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
columnsNoGrid columns
enabledNoWhether the collection is active
maxItemsNoMax items to show, 0 = all
showLinkNoShow item links
showImageNoShow item images
showTitleNoShow item titles
sortOrderNoSort order
schemaTypeNoSchema.org type to auto-emit. 'faq' emits FAQPage JSON-LD on pages that render this collection.
showRatingNoShow item ratings
autoAdvanceNoAuto-advance carousel/banner
descriptionNoInternal description/note
displayModeNoDisplay mode
showSubtitleNoShow item subtitles
advanceIntervalNoSeconds between auto-advance slides
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/5.0
Behavior3/5

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

The description notes 'Supports partial updates', indicating the tool can accept partial payloads. No other behavioral traits (e.g., side effects, authorization needs) are disclosed, and annotations are absent, placing the full burden on the 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?

The description is extremely concise with two sentences, front-loading the action. Every word is necessary and no fluff is present.

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's complexity (19 parameters, no output schema) and lack of annotations, the description is too minimal. It omits important context such as the effect on the system, prerequisite steps, and the required confirmation for production writes (documented in the parameter description for confirmProductionWrite).

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 detailed parameter descriptions, so the tool description adds no new meaning beyond what the schema already provides. 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 'Update collection settings' uses a specific verb and resource, clearly indicating the tool's action. It distinguishes itself from sibling tools like thincms_create_collection, thincms_get_collection, thincms_delete_collection, and thincms_update_collection_item.

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 explicit usage guidelines are provided; the description does not state when to use this tool versus alternatives like create or delete, nor does it mention prerequisites or exclusions.

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

thincms_update_collection_itemB

Update a collection item. Supports partial updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoMain content text or HTML
titleNoItem title
itemIdYesItem ID
ratingNoRating 1-5
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoWhether item is visible
linkUrlNoLink URL
imageUrlNoImage URL
linkTextNoLink button text
subtitleNoSubtitle
sortOrderNoSort order
collectionIdYesCollection ID
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/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. Mentions partial updates but lacks details on permissions, idempotency, return value, or side effects. The confirmProductionWrite parameter in schema is not referenced.

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 succinct sentences, no filler. Every word adds value. Front-loaded with 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?

Lacks output schema and the description doesn't explain return values. For a 13-parameter update tool, missing behavioral context like confirmation for production writes (though schema mentions it) and expected outcome.

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 detailed parameter descriptions (e.g., siteId). The description adds no additional meaning beyond what the schema already provides.

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 'Update a collection item' with a specific verb and resource, distinguishing it from create, delete, and reorder siblings. 'Supports partial updates' adds useful nuance.

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 create_collection_item or delete_collection_item. Given many sibling tools, explicit context would help.

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

thincms_update_content_blockA

Update an existing content block. Supports partial updates — only include fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContent block ID
nameNoDisplay name
slugNoURL-safe slug
typeNoSwitch the block type. Switching to a typed widget clears the HTML content unless you pass content explicitly.
configNoJSON config blob for typed widgets. Pass empty string or null to clear.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
contentNoHTML content (type='html' blocks)
enabledNoWhether the block is active
sortOrderNoSort order
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/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 only mentions 'partial updates' but fails to disclose important behaviors such as the clearing of content when switching type (noted in schema but not description), production write confirmation requirements, or potential side effects. This is insufficient for a 10-parameter mutation tool.

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

Conciseness4/5

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

The description is very short and front-loaded with key information. However, it may be too concise for a complex tool; a bit more context without being verbose would improve it.

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 10 parameters, no output schema, and no annotations, the description lacks context on return values, error handling, or detailed implications of updating fields. It is incomplete for an update operation with significant behavior (e.g., type switching, site overrides).

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%, so the description does not need to add parameter details. Baseline 3 applies as the description adds no extra meaning beyond 'partial updates' which is already implied by the semantics of an update operation.

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 'Update an existing content block' with the verb 'update' and resource 'content block'. It distinguishes from sibling tools like create, delete, and get by its purpose.

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 implies usage for modifying existing blocks via 'partial updates' but does not explicitly state when to use this tool versus alternatives like create or delete. However, the CRUD context among siblings makes it clear.

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

thincms_update_courseA

Update an existing course. Only provided fields are changed (partial update).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCourse ID (required)
slugNoURL slug
titleNoCourse title
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoCourse status
summaryNoShort plain-text blurb
dripModeNoContent drip mode
accessModeNoHow learners gain access
courseTypeNoType: 'course' or 'community'
descriptionNoFull HTML landing page content
thumbnailUrlNoThumbnail image URL
priceCurrencyNoCurrency code
showInCatalogNoShow on public course catalog
priceAmountCentsNoPrice in cents
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses partial update behavior (only provided fields changed) but omits other traits like authorization needs, rate limits, or side effects. The parameter confirmProductionWrite hints at production safety but is not mentioned in the 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?

Two concise sentences with no waste. The purpose is front-loaded, and every word 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 the tool has 15 parameters and no output schema, the description is minimal. It does not explain return values, provide usage examples, or mention prerequisites (e.g., fetch course first). Schema covers parameters, but overall completeness is adequate.

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 no parameter-specific meaning beyond the schema; 'partial update' is a general behavior not tied to individual 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 updates an existing course and specifies it is a partial update. This distinguishes it from sibling tools like thincms_create_course (creates new) and thincms_delete_course (removes), providing specific verb+resource scope.

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 modifying course fields but does not explicitly state when to use this tool versus alternatives (e.g., thincms_create_course for new courses) or provide exclusions. The partial update hint is helpful but lacks explicit guidance.

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

thincms_update_enrollmentA

Update an enrollment status. Use to approve pending enrollments or revoke access.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEnrollment ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusYesNew status (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.7/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 only states 'Update an enrollment status' without disclosing side effects, permissions, reversibility, or safety considerations like the confirmProductionWrite parameter. This is insufficient 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?

The description is only two sentences, front-loading the action and then the use cases. Every word is necessary and there is no 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?

Given the simple nature of the tool (4 parameters, no output schema), the description covers core functionality but lacks operational context such as the need for a valid enrollment ID, the effect of siteId and confirmProductionWrite, and the fact that status changes may be irreversible. This is 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?

The schema has 100% description coverage for all parameters, so the baseline is 3. The tool description does not add additional meaning beyond the schema; it repeats the status change intent but provides no extra context for parameters like siteId or confirmProductionWrite.

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 'Update' and the resource 'enrollment status', and specifies use cases: approving pending enrollments or revoking access. It distinguishes from sibling tools like thincms_create_enrollment, thincms_delete_enrollment, and thincms_list_enrollments.

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 says 'Use to approve pending enrollments or revoke access,' which clearly indicates when to use this tool. However, it does not mention when not to use it or provide alternatives, but the context is clear enough for an AI agent.

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

thincms_update_formA

Update an existing form or survey. Only provided fields are changed. For large HTML content (>10KB), use htmlContentFile instead of htmlContent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesForm ID (required)
nameNoForm name
slugNoURL slug
fieldsNoField definitions
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable form
renderModeNoRender mode
webhookUrlNoWebhook URL
descriptionNoForm description
htmlContentNoCustom HTML content
successMessageNoSuccess message
webhookUrlTestNoTest webhook URL
htmlContentFileNoLocal file path containing HTML content — use this instead of htmlContent for large surveys (>10KB).
webhookTestModeNoEnable test mode
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 carry the behavioral disclosure burden. It discloses that only provided fields are changed (partial update) and advises on large content handling. Missing details include idempotency, side effects, authorization needs, and whether unprovided fields are preserved or reset.

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 long, front-loads the core purpose, and immediately follows with a critical usage note. Every sentence is informative with no wasted words.

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 (15 parameters, no annotations, no output schema), the description is minimal. It covers the core purpose and partial update behavior but omits return value (assume updated form), error handling, prerequisites (form must exist), and concurrency implications. The rich schema compensates somewhat, 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.

Parameters4/5

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

With 100% schema description coverage, the schema already defines all parameters. The description adds value beyond the schema by explaining the partial update behavior ('Only provided fields are changed') and providing guidance on when to use htmlContentFile vs htmlContent. This helps the agent select the correct parameter.

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 'Update an existing form or survey,' specifying the verb (update) and resource (form/survey). It distinguishes from sibling tools like thincms_create_form (create) and thincms_get_form (read), and clarifies partial update with 'Only provided fields are changed.'

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 a specific guideline for large HTML content (use htmlContentFile >10KB). However, it does not explicitly state when not to use this tool or how it compares to alternative tools like create_form or delete_form. No prerequisites or exclusions are mentioned.

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

thincms_update_integrationB

Update the email platform integration config.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIntegration ID
nameNoUpdated name
configNoUpdated config
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description must disclose behavioral traits. It only states 'Update', implying a write operation, but does not explain if it overwrites config, triggers side effects, or requires special permissions. The critical field confirmProductionWrite is not referenced.

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 with no wasted words. It could be structured to include more context (e.g., return value), but it is appropriately concise for a simple update.

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 write operation with 6 parameters and no output schema, the description lacks completeness. It does not mention the result of the update, the need for confirmProductionWrite, or any side effects. The sibling tool thincms_get_integration might be needed to inspect before updating, but that is absent.

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%, so the input schema already documents all 6 parameters. The description adds no additional parameter semantics, meeting the baseline of 3.

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 uses the specific verb 'Update' and clearly identifies the resource as 'email platform integration config'. It distinguishes this tool from siblings like thincms_get_integration and thincms_create_integration.

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, such as thincms_create_integration or thincms_get_integration. Prerequisites like having an integration ID or acknowledging production writes via confirmProductionWrite are not mentioned.

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

thincms_update_lead_magnetB

Update an existing lead magnet. Supports partial updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLead magnet ID (required)
slugNoURL slug
titleNoLead magnet title
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
ctaTextNoCTA button text shown on the resources page (e.g., 'Join the webinar', 'Take the survey')
enabledNoEnable/disable lead magnet
mediaIdNoMedia ID of the downloadable file
formSlugNoForm slug
sortOrderNoSort order
landingUrlNoCustom landing URL override. When set, resource cards link here instead of /resources/:slug.
descriptionNoDescription
thumbnailUrlNoThumbnail image URL
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions partial updates but lacks details on side effects, error conditions, required permissions, or idempotency.

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 fluff, efficient and front-loaded.

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?

With 13 parameters and no output schema or annotations, the description is too sparse. Fails to explain response format, error handling, or how partial updates work in practice.

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 thorough descriptions, so the tool description adds minimal extra value beyond stating 'partial updates'. Baseline 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?

Clearly states the action 'Update' and the resource 'lead magnet', with 'Supports partial updates' adding nuance. Distinct from create and delete siblings.

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 (e.g., create vs update), no prerequisites or context for usage.

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

thincms_update_lessonB

Update an existing lesson. Only provided fields are changed (partial update). For large content (>10KB), use contentFile.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLesson ID (required)
slugNoURL slug
titleNoLesson title
isFreeNoFree preview lesson
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
contentNoHTML content
dripDateNoISO date for scheduled drip
durationNoRecording duration in seconds
videoUrlNoVideo embed URL
isUnlockedNoManually unlock this lesson
contentFileNoLocal file path containing HTML content
recordingDateNoISO date when the live session was held
videoDurationNoVideo duration
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.3/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 disclose behavioral traits fully. It mentions partial update and a size limit, but omits critical details like idempotency, error behavior (e.g., missing lesson), permission needs, or the site override impact. For a mutation tool with 14 parameters, this is insufficient.

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 fluff. Critical information is front-loaded: update action, partial nature, and a key usage hint. Every word earns its place.

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's complexity (14 parameters, no output schema, no annotations), the description is too sparse. It lacks context about site scoping, production write safeguards, required confirmations, and what happens on failure. The agent would need to inspect schema details heavily.

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% (all parameters described). The description adds value beyond schema by explaining the partial update behavior and the content size threshold, which is not apparent from individual parameter descriptions.

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 updates an existing lesson with partial update semantics. It's specific about the verb and resource, but does not explicitly differentiate from other update tools (e.g., thincms_update_course) among the many siblings.

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 gives a usage hint for large content (>10KB) via contentFile, indicating when to choose that parameter over content. However, it does not provide when-not-to-use guidance or alternatives beyond that specific scenario.

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

thincms_update_mediaA

Update media metadata (alt text, caption, visibility). Does not change the file itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMedia ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
altTextNoAlt text for accessibility
captionNoImage caption
visibilityNoVisibility
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. States it updates metadata and does not change the file, but lacks details on side effects, idempotency, permission requirements, or return value. For a mutation tool, essential behavioral traits are undisclosed.

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. Front-loaded with the primary action. No redundant or vague wording. Every word 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?

For a simple metadata update tool with full schema coverage, the description provides the core purpose. However, it omits context like response shape, error cases, or multi-tenant behavior (though siteId parameter is documented). Lacks completeness for a tool with 6 parameters and no output schema.

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 detailed parameter descriptions (e.g., siteId, confirmProductionWrite). The description lists only a subset of fields (alt text, caption, visibility), adding no meaningful information beyond the schema. Baseline 3 applies as schema already provides adequate 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?

Clearly states 'Update media metadata (alt text, caption, visibility). Does not change the file itself.' This specifies the action, the resource (media), and explicitly distinguishes from upload/delete operations. Siblings like thincms_upload_media, thincms_delete_media are differentiated.

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 metadata-only updates but does not explicitly state when to use this versus alternatives (e.g., thincms_upload_media for file changes). No prerequisites or conditions are mentioned. The context is clear but guidance is minimal.

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

thincms_update_moduleC

Update a module's title or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoModule title
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
courseIdYesCourse ID (required)
moduleIdYesModule ID (required)
descriptionNoModule description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 the full burden. It only says 'Update', implying a write operation, but does not disclose permissions, destructive nature, rate limits, or side effects. The presence of confirmProductionWrite in the schema hints at production safety, but the description ignores this.

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, concise sentence that immediately conveys the tool's purpose. No redundant words or information. It is 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?

For a mutation tool with 6 parameters, no output schema, and no annotations, the description is too sparse. It does not explain return values, required preconditions (e.g., module existence), or consequences of update. The confirmProductionWrite parameter hints at production write safety, but the description offers no completeness.

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%, meaning each parameter is already described in the input schema. The description adds no new semantics beyond listing 'title or description'. For high coverage, baseline is 3; the description neither improves nor reduces understanding.

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 'Update a module's title or description' clearly states the action (update) and resource (module) and specifies which fields can be updated. It distinguishes from sibling tools like thincms_create_module and thincms_delete_module. However, it does not mention that siteId and confirmProductionWrite are also part of the input, though these are auxiliary parameters.

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 usage guidance is provided. The description does not indicate when to use this tool versus alternatives (e.g., thincms_create_module for new modules, thincms_delete_module for removal). There is no mention of prerequisites or context for updates.

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

thincms_update_navigationA

Update header and/or footer navigation. Each is a full replacement array (max 20 items). Item types: 'page' (target = page slug, must exist and be published), 'route' (target = CMS path like /blog or /search), 'external' (target = full URL).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
footerNavNoFooter navigation items
headerNavNoHeader navigation items
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 carries the full burden. It discloses the full replacement behavior (implying destructiveness) and constraints on item types, but it does not mention side effects, authentication needs, rate limits, or what happens to existing navigation items. The description adds value but could be more explicit about behavioral traits.

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: two sentences that front-load the core purpose and immediately clarify key constraints (full replacement, max 20 items, item types). Every sentence adds value with no wasted words, 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.

Completeness4/5

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

The description covers the essential aspects: what it does, the replacement nature, item types, and limits. It does not mention the siteId or confirmProductionWrite parameters, but those are well-described in the schema with 100% coverage. No output schema is needed since the operation's success is typically indicated by a status code. Overall, it is sufficiently complete for its purpose.

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 meaning beyond the schema by clarifying item types (e.g., 'page' requires a published slug, 'route' expects a CMS path) and providing examples. This helps the agent understand the valid values and constraints, enhancing usability beyond the raw schema 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?

The description clearly states the tool updates header and/or footer navigation, specifying it is a full replacement array with a maximum of 20 items. It distinguishes itself from siblings like thincms_get_navigation by explicitly describing the update action and the constraints on item types, making the purpose 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 implies when to use (to update navigation) and the nature of the operation (full replacement), but it does not explicitly state when not to use this tool or list alternatives such as thincms_get_navigation for reading. However, the context provided is sufficient for an agent to infer appropriate usage.

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

thincms_update_pageA

Update an existing static page. Only provided fields are changed (partial update). Content should be raw HTML. For large content (>10KB), use contentFile instead of content. Changing slug auto-creates a 301 redirect from the old URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage ID (required)
slugNoURL slug
titleNoPage title
jsonLdNoCustom JSON-LD (Schema.org) injected verbatim into the page <head>. Pass valid JSON as a string. Use for Service, Event, BreadcrumbList, HowTo, Article, etc. Set to empty string to clear.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoPage status
contentNoHTML content
noIndexNoSet true to add noindex meta tag
metaTitleNoSEO meta title
ogImageUrlNoOpen Graph image URL
renderModeNoRender mode
contentFileNoLocal file path containing HTML content — use this instead of content for large pages (>10KB).
canonicalUrlNoCanonical URL
metaDescriptionNoSEO meta description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It clearly communicates the partial update nature, the content format requirement, the alternative for large content (contentFile), and the automatic redirect on slug change. This is good coverage for a mutation tool, though it could mention potential side effects like re-indexing.

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 highly concise with only two sentences, covering the core purpose and key behavioral notes without extraneous details. Information is front-loaded with the primary action and partial update characteristic.

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 15 parameters, no output schema, and no annotations, the description covers the essential aspects: update operation, partial update, content format, size guidance, redirect behavior, and siteId override (mentioned in schema). It lacks details on return value or error conditions but is sufficient for an update tool among many siblings.

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%, so the schema already explains each parameter. The description adds marginal value by clarifying the relationship between 'content' and 'contentFile' (size threshold) and the redirect behavior tied to 'slug'. For a tool with complete schema descriptions, this is adequate.

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 'Update' and resource 'existing static page', specifying partial update behavior, content format (raw HTML), size guidance, and implicit side effect (auto-redirect on slug change). This sufficiently distinguishes it from siblings like create_page, delete_page, and get_page.

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 through its update verb and mentions partial update, content size considerations, and redirect behavior. However, it does not explicitly state when to use this tool over similar update tools (e.g., thincms_update_post) or provide alternative scenarios.

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

thincms_update_popupB

Update an existing popup. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPopup ID (required)
nameNoPopup name
slugNoURL slug
formIdNoForm ID
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable
bodyTextNoBody text
headlineNoHeadline text
priorityNoPriority level
customCssNoCustom CSS
targetingNoPage targeting rules
displayTypeNoDisplay type
suppressDaysNoDays to suppress after dismiss
ctaButtonTextNoCTA button text for the two-step popup flow
mobileEnabledNoShow on mobile
triggerConfigNoTrigger configuration
mobileDisplayTypeNoMobile display override
suppressOnConvertNoDays to suppress after conversion
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.4/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 for behavioral disclosure. It reveals it is a mutation (update) and partial update, but does not disclose required permissions, reversibility, side effects, or response structure. The schema is rich but the description adds little beyond the obvious.

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: two sentences front-loading the purpose and key behavioral trait. Every sentence earns its place with zero waste.

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?

Despite the rich schema, the description lacks completeness for a complex tool with 19 parameters and no output schema. It does not describe return values, error scenarios, or the effect on existing popup state beyond the update. The agent is left with many unanswered questions.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds the critical nuance 'Only provided fields are changed' which explains the partial update semantics not evident from individual parameter descriptions. This justifies a 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 'Update an existing popup', specifying the verb (update) and resource (popup). It also adds 'Only provided fields are changed', which distinguishes it from the create and delete siblings by indicating partial update behavior.

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 like create or delete. It does not mention prerequisites, when to avoid using it, or any context for selection among siblings.

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

thincms_update_postA

Update an existing blog post. Only provided fields are changed (partial update). Content should be raw HTML. For large content (>10KB), use contentFile instead of content. Changing slug auto-creates a 301 redirect from the old URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost ID (required)
slugNoURL slug (changing slug auto-creates a 301 redirect)
tagsNoArray of tag names (full replacement)
titleNoPost title
jsonLdNoCustom JSON-LD (Schema.org) injected verbatim into the post <head>. Pass valid JSON as a string. Set to empty string to clear.
seriesNoSeries name
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNoPost status
contentNoHTML content
excerptNoShort summary/excerpt
noIndexNoExclude from search engine indexing
authorIdNoAuthor ID
featuredNoMark as featured
metaTitleNoSEO meta title
ogImageUrlNoOpen Graph image URL
categoryIdsNoArray of category IDs (full replacement)
contentFileNoLocal file path containing HTML content — use this instead of content for large posts (>10KB).
gatePreviewNoCustom HTML teaser shown before the gate.
pinnedUntilNoISO date: pin until this date
publishedAtNoDEPRECATED — use scheduledFor. ISO date for publication date.
scheduledAtNoDEPRECATED — use scheduledFor. Legacy field.
seriesOrderNoOrder within series
canonicalUrlNoCanonical URL
scheduledForNoOverride visibility timing. "immediate" or an ISO 8601 timestamp at least 60 minutes in the future.
gatedFormSlugNoForm slug to gate this post behind. Set to empty string to remove gating.
membersContentNoHTML content visible only to authenticated members/subscribers.
metaDescriptionNoSEO meta description
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and covers key behaviors: partial update (PATCH semantics), content format requirement, file alternative for large content, and automatic 301 redirect. Could mention authentication or idempotency but these are not critical.

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?

Only three sentences, each adding distinct value: statement of operation, content guidance, and behavior note. No fluff, 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 tool with 28 parameters and no output schema, the description covers the essential behavioral context. It explains partial update, content handling, and slug redirect, which are enough for an agent to use the tool correctly. Minor omission of error handling or idempotency.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining partial update semantics, content format constraint, and slug side-effect, which enriches parameter meaning beyond the schema 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?

The description clearly states the action ('Update an existing blog post') and the resource ('blog post'). It specifies partial update semantics and distinguishes from creation/deletion siblings. The mention of raw HTML and slug redirects adds specificity.

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 clear guidance on when to use contentFile instead of content for large posts (>10KB) and the auto-redirect on slug change. Lacks explicit when-not-to-use or alternative tools, but the partial update nature is implicit.

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

thincms_update_quizC

Update a quiz. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuiz ID (required)
slugNoURL slug
titleNoQuiz title
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
feedbackModeNoFeedback mode
passingScoreNoPassing score percentage
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/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 carry the full burden. The description only states that it updates and that only provided fields change; it does not disclose side effects, authorization needs, idempotency, or what happens if the quiz does not exist.

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: two sentences, no filler, directly to the point. Every word is necessary.

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 that there is no output schema and the tool performs a mutation, the description lacks critical context: return value, error scenarios, prerequisites (e.g., quiz existence), and usage patterns. The completeness is insufficient.

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 covers all 7 parameters with descriptions (100% coverage). The description adds no parameter-specific information beyond what is already in the schema, so it meets the baseline of 3.

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 action ('Update') and the resource ('a quiz'), and explicitly notes that only provided fields are changed (partial update). However, it does not differentiate from sibling tools like create_quiz or delete_quiz, which diminishes clarity.

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., create_quiz, delete_quiz). There is no mention of prerequisites, limitations, or context for use.

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

thincms_update_quiz_questionA

Update a quiz question. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
quizIdYesQuiz ID (required)
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
optionsNoArray of 2-5 answer option strings
sortOrderNoPosition within the quiz
questionIdYesQuestion ID (required)
explanationNoExplanation shown after answering
correctIndexNoIndex of the correct answer (0-based)
questionTextNoThe question text
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description mentions partial update but lacks details on permissions, validation, side effects, or error conditions. For a mutation tool, more behavioral disclosure is needed.

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 filler. Front-loaded with main purpose, then clarifying partial update. Efficient and focused.

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 9 parameters and no output schema, the description adequately states purpose but doesn't cover return values, error behavior, or prerequisites (e.g., quiz must exist). Not fully complete but sufficient for a straightforward update.

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?

All parameters have individual descriptions in the schema (100% coverage). The description adds minimal extra meaning ('Only provided fields are changed') but doesn't elaborate on parameter semantics beyond what schema provides.

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 ('Update a quiz question') and the resource (quiz question), and implies partial update ('Only provided fields are changed'). It distinguishes from sibling tools like add/delete quiz question.

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 vs alternatives (e.g., add_quiz_question, delete_quiz_question). The purpose is clear but usage context is implied rather than stated.

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

thincms_update_redirectA

Update an existing redirect. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedirect ID (required)
noteNoAdmin note
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable
targetUrlNoNew target URL
sourcePathNoNew source path
statusCodeNo301 or 302
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Update' (implying mutation) and 'Only provided fields are changed' (implying partial update). Missing details on required permissions, idempotency, error behavior, 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 short, front-loaded sentences with no unnecessary words. Every sentence adds meaningful information.

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?

The tool has 8 parameters and no output schema. The description covers the core update behavior but lacks information about return values, error handling, or prerequisites. It is minimally adequate for a partial update 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 coverage is 100%, so parameters already have descriptions. The description adds value by clarifying that only provided fields are changed (partial update), which is key context not in the schema. This helps the agent understand that omitted fields remain unchanged.

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 'Update an existing redirect', clearly identifying the verb (update) and resource (redirect). The phrase 'Only provided fields are changed' distinguishes it from create, delete, get, list, and import redirect tools among siblings.

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 such as create_redirect, delete_redirect, or get_redirect. No mention of prerequisites, typical scenarios, 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.

thincms_update_reviews_settingsA

Update reviews module + AI provider configuration. Partial-update — only provided fields change. Pass an empty string to a key field (e.g. reviews.outscraperApiKey='') to clear that secret. Admin-only; subject to production-write guard.

ParametersJSON Schema
NameRequiredDescriptionDefault
aiNo
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
reviewsNo
recipientUserIdsNoReplace the list of users who receive the daily digest. Each ID must be an existing site user.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A4.1/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. Discloses partial-update semantics, secret clearing mechanism, admin restriction, and production-write guard. Could be more specific about idempotency or error behavior.

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?

Extremely concise: three sentences with front-loaded action. No wasted words; every sentence adds essential information.

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 no output schema, description should explain return value or side effects; it does not mention what the function returns. Covers mutation and guards well, but omits result 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 covers 60% of parameters with descriptions. The description adds value by explaining that empty strings clear secrets and that confirmProductionWrite acknowledges production writes, but does not detail each parameter 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?

The description clearly states 'Update reviews module + AI provider configuration' with a specific verb and resource. It distinguishes itself from siblings like thincms_get_reviews_settings by being the update variant.

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 usage guidance: partial-update behavior, clearing secrets with empty strings, admin-only access, and production-write guard. Lacks explicit when-not-to-use or alternative tool references.

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

thincms_update_scriptA

Update an existing script injection. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScript ID (required)
codeNoScript code including <script> tags
nameNoScript name
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable/disable the script
placementNoWhere to inject
sortOrderNoSort order
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/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 of behavioral disclosure. It only states 'Update' without mentioning side effects, permissions, rate limits, or error conditions. The confirmProductionWrite parameter is described in the schema but not in the description, leaving the agent unaware of production safety constraints.

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 concise sentence that is front-loaded with the action and resource. Every word is necessary; no fluff.

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?

With 8 parameters, no output schema, and no annotations, the one-sentence description is insufficient. It omits return behavior, error scenarios, and interactions with other tools (e.g., thincms_switch_site). The detailed siteId description in the schema partially compensates, but the overall description lacks 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 description coverage is 100%, so each parameter's meaning is documented. The description adds the key insight that only provided fields are changed (PATCH semantics), which goes beyond schema. However, it does not elaborate on individual parameters beyond what the schema already provides.

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 script injection and uses a specific verb ('Update') with a resource ('script injection'). It distinguishes from sibling tools like thincms_create_script and thincms_list_scripts by specifying the update action.

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 updating existing scripts but does not explicitly state when to use versus alternatives (e.g., thincms_create_script for new scripts). The partial update behavior is mentioned, but 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.

thincms_update_sequenceC

Update a sequence's name or trigger form.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSequence ID
nameNo
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
triggerFormSlugNo
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

The description only says 'Update' which implies mutation but provides no details on side effects, permissions, rate limits, or error behavior. With no annotations to compensate, the agent lacks critical 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.

Conciseness4/5

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

The description is very concise, consisting of a single sentence that conveys the core purpose without unnecessary words. However, it could be slightly more structured by listing the updatable fields.

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?

The description is minimal and fails to provide context about return values, error handling, or preconditions. Given the tool has 5 parameters and no output schema, more details are needed for complete understanding.

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 does not explain the parameters beyond mentioning 'name or trigger form'. Schema coverage is 60%, and the description adds no additional meaning to the parameters; for instance, it doesn't clarify the format or constraints of name or triggerFormSlug.

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 ('Update') and the resource ('a sequence'), and specifies the fields that can be updated ('name or trigger form'). This distinguishes it from sibling tools like create, delete, or publish.

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 thincms_create_sequence or thincms_publish_sequence. There is no mention of prerequisites or exclusions.

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

thincms_update_sequence_stepC

Update a sequence step.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
stepIdYesStep ID
subjectNo
delayDaysNo
sequenceIdYesSequence ID
htmlContentNo
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2/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 only states the action without mentioning idempotency, whether it performs partial updates (implied by optional schema fields but not stated), required permissions, or side effects. This is insufficient for an agent to understand the tool's behavior.

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

Conciseness2/5

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

The description is a single sentence, which is concise but severely under-specified. Given the tool has 7 parameters and multiple siblings, the description should include more structured information (e.g., a list of updatable fields) without being verbose.

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

Completeness1/5

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

The description is extremely incomplete for a tool with 7 parameters, no output schema, and no annotations. It does not mention return values, the scope of updates, or how the tool relates to other sequence operations. An agent cannot effectively use this tool based solely on the provided description.

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

Parameters1/5

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

The description adds no meaning beyond the input schema. While schema coverage is 57%, three parameters (subject, delayDays, htmlContent) lack descriptions in both schema and tool description. The tool description does not list or explain any parameters, failing to compensate for the schema gaps.

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

Purpose3/5

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

The description 'Update a sequence step' clearly states the verb and resource, but it is vague and does not distinguish this tool from other update tools like 'thincms_update_sequence' or 'thincms_update_post'. The name already implies the resource, so the description adds little value.

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 'thincms_add_sequence_step', 'thincms_delete_sequence_step', or 'thincms_update_sequence'. No context about prerequisites or best practices is given.

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

thincms_update_settingsB

Update site settings. Supports partial updates — only provided fields are changed. Sensitive fields (SMTP, Stripe keys, API keys, billing) remain admin-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoISO locale code (e.g. 'en-NZ', 'en-US', 'en-GB', 'fr-FR', 'de-DE'). Drives date/time/number formatting on the public site. Empty defaults to en-US at render time.
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
aiBriefNoCustomer-authored 'AI brief' — voice/positioning/about content rendered in the auto-generated /llms.txt under an 'About' heading. Use this for narrative content that doesn't fit the structured LocalBusiness fields. Set to empty string to clear.
logoUrlNoPath or absolute URL of the site logo (used by {{site:logo}} and Organization JSON-LD).
taglineNoShort site tagline (e.g. shown under the site name in headers/OG tags).
businessNoLocalBusiness / structured data. Used to auto-emit Schema.org JSON-LD on the homepage. Partial-update — only provided sub-fields change.
timezoneNoIANA timezone (e.g. 'Pacific/Auckland', 'Europe/London', 'America/New_York'). Used for the timeZone property on LocalBusiness OpeningHoursSpecification and any future timezone-sensitive rendering. Empty defaults to Etc/UTC.
faviconUrlNoPath or absolute URL of the site favicon.
ogImageUrlNoSite-wide default Open Graph image URL. Used as the OG image when a page or post doesn't set its own ogImageUrl. Per-page values override this fallback.
descriptionNoSite description used for meta description, OG tags, and structured data.
emitLlmsTxtNoWhether to auto-generate /llms.txt for this site (default true). When false, /llms.txt returns 404.
googleTagIdNoGoogle tag ID for analytics — gtag.js (G-/AW-/GT-) or GTM container (GTM-). The correct snippet is injected into <head> automatically. Set to empty string to clear.
memberFormSlugNoForm slug used for membership/subscriber signup. Set to empty string to disable membership signup.
robotsAdditionsNoFree-text rules appended to the auto-generated /robots.txt. Use to opt specific user-agents in or out (e.g. 'User-agent: GPTBot\nDisallow: /' to block OpenAI's training crawler). Set to empty string to clear.
bingVerificationNoBing Webmaster Tools verification token (rendered as <meta name="msvalidate.01">).
googleVerificationNoGoogle Search Console verification token (rendered as a meta tag).
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

B3.2/5.0
Behavior3/5

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

Discloses partial updates and admin-only restrictions on sensitive fields, which adds value beyond the schema. However, with no annotations provided, more detail on side effects, error handling, or idempotency 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.

Conciseness5/5

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

Two sentences, no fluff, front-loaded with key behavioral info (partial updates, sensitive field restriction). Every sentence earns its place.

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 tool with 17 parameters and no annotations or output schema, the description is too sparse. It does not cover return value, error scenarios, or confirmation requirements (e.g., confirmProductionWrite is documented in schema but not mentioned in description).

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 detailed parameter descriptions. The description adds a high-level note about sensitive fields being admin-only, but this is not parameter-specific. Baseline 3 applies as schema already does heavy lifting.

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 updates site settings and mentions partial updates. It distinguishes from a read tool (thincms_get_settings) but does not explicitly separate from other update tools, though the name and resource are 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?

No guidance on when to use this tool vs alternatives. The only hint is that sensitive fields are admin-only, but no context on when to prefer this over other updates or what prerequisites (like switching sites) are needed.

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

thincms_update_share_buttonsA

Update the site's share button configuration. Share buttons appear on blog posts and let readers share via social platforms or copy the link. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
enabledNoEnable or disable share buttons on blog posts
platformsNoPlatforms to show. Order determines display order.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.5/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 carry the full burden. It only mentions 'Only provided fields are changed,' indicating partial update, but lacks information on permissions, side effects, rate limits, or return behavior. This is insufficient 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 are front-loaded with purpose and key behavior. No extraneous information. 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 4-param update tool with no output schema and no annotations, the description is adequate but minimal. It covers the basic purpose and partial update behavior. Could be improved by mentioning return value or error conditions.

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 no extra meaning beyond the schema; it only restates the partial update nature. It does not explain parameter formats or constraints beyond what is in 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 tool updates share button configuration, specifies the context (blog posts, share via social platforms or copy link), and uses the verb 'update' with resource 'share button configuration'. It distinguishes itself from sibling 'thincms_get_share_buttons' by implying a write operation.

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 does not explicitly provide when-to-use or when-not-to-use guidance. However, the name and context make it obvious this is for updating share buttons, and there is a read counterpart. No alternatives or prerequisites are mentioned.

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

thincms_update_tagC

Update a tag's name, slug, or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTag ID (required)
nameNoTag name
slugNoURL slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
descriptionNoTag description (displayed on tag archive page)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description should fully disclose behavior. It simply states what is updated but does not mention side effects, authorization requirements, idempotency, or return behavior. Important details like whether partial updates are supported are missing.

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?

One concise sentence that front-loads the purpose. It is efficient but at the cost of omitting useful information.

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?

The description covers only 3 of 6 parameters (id, siteId, confirmProductionWrite are missing). It does not mention the output or return value. For a mutation tool with no output schema, more detail is expected.

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%, so baseline is 3. The description adds no value beyond the parameter descriptions in the schema; it merely repeats three of them. No additional semantic context is provided.

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 action (Update) and resource (a tag) and lists the updatable fields (name, slug, description). It distinguishes the tool from other update tools by naming the resource.

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 (e.g., thincms_create_tag, thincms_delete_tag). No prerequisites or context are provided.

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

thincms_update_templateA

Update the site's template. Only provided fields are changed. The pageFrame must contain {{content}} if provided. For large files (>10KB), use the File variants instead of inlining content. Available template tags: {{content}}, {{nav:header}}, {{nav:footer}}, {{site:name}}, {{site:tagline}}, {{site:logo}}, {{year}}, {{search:form}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
pageFrameNoHTML page frame with template tags (must include {{content}})
stylesheetNoCSS stylesheet for the public site
pageFrameFileNoLocal file path containing the page frame HTML. Use instead of pageFrame for large files.
customHeadHtmlNoCustom HTML injected into <head> (fonts, meta tags, etc.)
stylesheetFileNoLocal file path containing the CSS stylesheet. Use instead of stylesheet for large files (>10KB).
customHeadHtmlFileNoLocal file path containing custom head HTML. Use instead of customHeadHtml for large files.
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose all behavior. It notes partial update ('Only provided fields are changed') and pageFrame must contain {{content}} if provided. However, it omits side effects, permissions, idempotency, response format, and concurrency details.

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 paragraph of four sentences, front-loaded with the core purpose. Every sentence adds essential information without 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?

Given no output schema, the description should mention return behavior or success indicators. It covers partial update and file size thresholds but lacks confirmation of what happens after update (e.g., returns updated template). Adequate but with gaps.

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%, providing baseline 3. The description adds value beyond schema by explaining the {{content}} requirement for pageFrame, file variants for large files, and listing template tags. This enriches parameter meaning without detailing each parameter.

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 'Update the site's template' (specific verb+resource) and distinguishes from sibling tools like thincms_get_template by focusing on updates. It also details partial update behavior and template constraints.

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 for large files (>10KB) to use file variants instead of inline parameters, but lacks explicit when-not-to-use instructions or alternatives like thincms_append_css for appending CSS. Basic context is present but incomplete for tool selection.

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

thincms_update_toolA

Update an existing Tool. Only supplied fields change. For large HTML payloads (>10KB), use htmlFile instead of html.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTool ID or slug (required)
htmlNoRaw HTML/JS payload
nameNo
slugNoURL slug
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
statusNo
aiModelNo
enabledNo
htmlFileNoLocal file path containing the HTML payload — use instead of html for large tools
rateLimitNoPass null to clear the rate limit
allowSignupNo
descriptionNo
authRequiredNo
systemPromptNo
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description should fully disclose behavioral traits. It only mentions partial update and large payload handling, but omits auth requirements, rate limits, error handling, return value, or effects of updating non-existent tools.

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 very concise with two sentences, the first stating purpose and the second providing a specific usage hint. No unnecessary words.

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 complexity (15 parameters, no output schema, no annotations), the description is insufficient. It does not explain return values, error states, prerequisite steps, or integration with other tools like thincms_get_tool or thincms_list_tools.

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 only 47% schema description coverage, the description adds marginal value beyond the schema by noting the htmlFile alternative for large payloads. For a 15-parameter tool, more parameter guidance would be beneficial.

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 'Update an existing Tool' with a specific verb and resource. It distinguishes itself from sibling tools like create, get, list, and delete by the action and the partial update semantics ('Only supplied fields change').

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 for large HTML payloads, advising to use htmlFile instead of html. However, it does not discuss when to use this tool versus alternatives like create or delete, which is implied by context.

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

thincms_update_workbookA

Update a workbook (partial — only provided fields change). If fields is provided and differs from the current spec, the workbook's version is incremented and any removed-field values in existing responses are archived (not deleted).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWorkbook ID (required)
slugNoURL slug
titleNoWorkbook title
fieldsNoOrdered array of field definitions. Each field is an object with at minimum { fieldId, type, label }. v1 field types: short_text, long_text, number, rating, select, multi_select, date, prompt_display, markdown_display. Input fields may include `prefillFrom: { courseSlug, workbookSlug, fieldId }` for cross-workbook references.
isFreeNo
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
dripDateNo
sortOrderNoPosition within the module (shared with lessons and quizzes)
fieldsFileNoLocal file path containing a JSON array of field definitions
isUnlockedNo
descriptionNoHTML content shown above the form
introContentNoOptional additional HTML intro
requiredForCompletionNo
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.
allowExportBeforeCompleteNo

TDQS

A4.1/5.0
Behavior4/5

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

Discloses key behaviors: partial update, version increment on field changes, archiving (not deletion) of removed field values. Lacks details on auth, rate limits, or error cases, but provides meaningful behavioral info beyond the no-annotation baseline.

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

Conciseness5/5

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

Two efficient sentences with no redundancy. First sentence states core purpose, second adds important behavioral detail about field updates. Front-loaded and concise.

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?

Covers key parameter behaviors but lacks information about return values (no output schema), prerequisites (e.g., active site), and error conditions. Adequate but incomplete for a complex tool with 15 parameters.

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?

Adds meaning beyond schema for critical parameters: explains `fields` behavior (version increment, archiving), `siteId` (concurrent session context), and `confirmProductionWrite`. Schema coverage 67% is moderate, but 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?

Description clearly states verb (update), resource (workbook), and specifies partial update behavior. Distinguishes from other update tools by emphasizing that only provided fields change.

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 when-to-use or comparisons to alternatives like thincms_create_workbook or thincms_get_workbook. Implies usage via partial update description, but lacks exclusions or scenario guidance.

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

thincms_upload_lesson_attachmentC

Upload a file attachment to a lesson. Provide a local file path, a URL to download from, or base64-encoded content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to download and attach
base64NoBase64-encoded file content
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
filePathNoLocal file path to upload
filenameNoFilename (required for base64, optional otherwise)
lessonIdYesLesson ID (required)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

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 behaviors like permissions, file size limits, or side effects. It only states the action and input methods, lacking details on required authorization or potential conflicts.

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 very short (two sentences) and front-loads the purpose. While concise, it could include more detail without sacrificing brevity.

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?

With no output schema and 7 parameters, the description should mention required parameters, return values, or post-upload behavior. It omits that lessonId is required and does not explain what the agent receives after upload.

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 merely summarizes the input methods already detailed in the schema, adding no new semantics. It does not elaborate on parameter constraints or relationships.

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 action ('Upload a file attachment to a lesson') and specifies the input methods (file path, URL, base64). However, it does not explicitly differentiate from sibling tools like thincms_upload_media, which uploads media generally.

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. There is no mention of prerequisites, scenarios where other tools are preferred, or exclusions.

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

thincms_upload_mediaA

Upload an image or file to the media library. Provide exactly one source: filePath (local file), url (download from URL), or base64 (encoded content with filename). For images, optimized WebP variants (thumbnail 400px, medium 800px, large 1200px) are automatically generated and returned in the variants field.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to download and upload
base64NoBase64-encoded file content
siteIdNoOverride the active site for this single call. Pass to target a specific tenant without mutating shared active-site state — the right pattern when running concurrent agent sessions managing different tenants. Must match a siteId from your THINCMS_SITES config (use thincms_list_sites to inspect). When omitted, the call uses the active site set by thincms_switch_site.
altTextNoAlt text for accessibility
captionNoImage caption
filePathNoAbsolute path to a local file
filenameNoFilename (required for base64, optional otherwise)
visibilityNoVisibility (default: public)
confirmProductionWriteNoAcknowledge that this call may write to a configured production site (THINCMS_PRODUCTION_SITE_IDS env var). Required for any POST/PUT/PATCH/DELETE against a production-listed site; ignored otherwise. The error message lists which site triggered the requirement and recommends thincms_snapshot before any production write.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It discloses automatic generation of WebP variants for images, which is valuable. However, it omits other behavioral details like file size limits, overwrite behavior, or required permissions, leaving gaps in 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 two sentences with no extraneous content. It front-loads the core action and then provides essential detail on source options and variant generation. 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?

Given 9 parameters, no output schema, and no annotations, the description adequately covers the main function but lacks details on return format, error handling, prerequisites (e.g., site selection), and when to use confirmProductionWrite. It is complete enough for basic use but not comprehensive.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by grouping sources as mutually exclusive and explaining the filename requirement for base64. It also provides context for siteId and confirmProductionWrite beyond the schema definitions.

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: uploading an image or file to the media library, with specific source options (filePath, url, base64). It distinguishes from sibling tools like thincms_list_media, thincms_get_media, etc., by focusing on the upload action.

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 implicitly guides usage by stating the three source alternatives, but it does not explicitly contrast with other upload tools like thincms_upload_lesson_attachment. No when-not-to-use or alternative recommendations are provided.

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.

  1. 191 tool updatesv2.1.0
    • First observedthincms_add_quiz_question
    • First observedthincms_add_sequence_step
    • First observedthincms_analytics_referrers
    • First observedthincms_analytics_summary
    • First observedthincms_analytics_top_pages
    • First observedthincms_analytics_trend
    • First observedthincms_append_css
    • First observedthincms_bulk_create_posts
    • First observedthincms_campaign_stats
    • First observedthincms_capabilities
    • First observedthincms_clear_review_drift
    • First observedthincms_create_author
    • First observedthincms_create_campaign
    • First observedthincms_create_category
    • First observedthincms_create_collection
    • First observedthincms_create_collection_item
    • First observedthincms_create_content_block
    • First observedthincms_create_course
    • First observedthincms_create_enrollment
    • First observedthincms_create_form
    • First observedthincms_create_integration
    • First observedthincms_create_lead_magnet
    • First observedthincms_create_lesson
    • First observedthincms_create_module
    • First observedthincms_create_page
    • First observedthincms_create_popup
    • First observedthincms_create_post
    • First observedthincms_create_preview
    • First observedthincms_create_quiz
    • First observedthincms_create_redirect
    • First observedthincms_create_script
    • First observedthincms_create_secret
    • First observedthincms_create_sequence
    • First observedthincms_create_tag
    • First observedthincms_create_tool
    • First observedthincms_create_workbook
    • First observedthincms_delete_author
    • First observedthincms_delete_campaign
    • First observedthincms_delete_category
    • First observedthincms_delete_collection
    • First observedthincms_delete_collection_item
    • First observedthincms_delete_content_block
    • First observedthincms_delete_course
    • First observedthincms_delete_enrollment
    • First observedthincms_delete_lead_magnet
    • First observedthincms_delete_lesson
    • First observedthincms_delete_lesson_attachment
    • First observedthincms_delete_media
    • First observedthincms_delete_module
    • First observedthincms_delete_page
    • First observedthincms_delete_popup
    • First observedthincms_delete_post
    • First observedthincms_delete_quiz
    • First observedthincms_delete_quiz_question
    • First observedthincms_delete_redirect
    • First observedthincms_delete_sequence
    • First observedthincms_delete_sequence_step
    • First observedthincms_delete_submission
    • First observedthincms_delete_subscriber
    • First observedthincms_delete_tag
    • First observedthincms_delete_tool
    • First observedthincms_delete_tool_data
    • First observedthincms_delete_workbook
    • First observedthincms_export_course_portfolio
    • First observedthincms_export_submissions_csv
    • First observedthincms_export_subscribers_csv
    • First observedthincms_export_workbook_response
    • First observedthincms_export_workbook_responses_csv
    • First observedthincms_generate_media_variants
    • First observedthincms_get_campaign
    • First observedthincms_get_collection
    • First observedthincms_get_content_block
    • First observedthincms_get_course
    • First observedthincms_get_form
    • First observedthincms_get_integration
    • First observedthincms_get_lead_magnet
    • First observedthincms_get_lesson
    • First observedthincms_get_lesson_attachment_url
    • First observedthincms_get_media
    • First observedthincms_get_navigation
    • First observedthincms_get_page
    • First observedthincms_get_popup
    • First observedthincms_get_post
    • First observedthincms_get_post_preview_url
    • First observedthincms_get_preview_url
    • First observedthincms_get_quiz
    • First observedthincms_get_redirect
    • First observedthincms_get_review
    • First observedthincms_get_reviews_settings
    • First observedthincms_get_sequence
    • First observedthincms_get_settings
    • First observedthincms_get_share_buttons
    • First observedthincms_get_social_links
    • First observedthincms_get_tag
    • First observedthincms_get_template
    • First observedthincms_get_tool
    • First observedthincms_get_tool_data
    • First observedthincms_get_workbook
    • First observedthincms_go_live
    • First observedthincms_import_redirects
    • First observedthincms_list_authors
    • First observedthincms_list_campaigns
    • First observedthincms_list_categories
    • First observedthincms_list_collection_items
    • First observedthincms_list_collections
    • First observedthincms_list_content_blocks
    • First observedthincms_list_courses
    • First observedthincms_list_enrollments
    • First observedthincms_list_forms
    • First observedthincms_list_integration_lists
    • First observedthincms_list_integration_tags
    • First observedthincms_list_lead_magnets
    • First observedthincms_list_media
    • First observedthincms_list_pages
    • First observedthincms_list_popups
    • First observedthincms_list_posts
    • First observedthincms_list_redirects
    • First observedthincms_list_reviews
    • First observedthincms_list_scripts
    • First observedthincms_list_secrets
    • First observedthincms_list_sequences
    • First observedthincms_list_sites
    • First observedthincms_list_snapshots
    • First observedthincms_list_submissions
    • First observedthincms_list_subscribers
    • First observedthincms_list_tags
    • First observedthincms_list_tool_data
    • First observedthincms_list_tool_end_users
    • First observedthincms_list_tools
    • First observedthincms_list_workbooks
    • First observedthincms_patch_css
    • First observedthincms_pause_sequence
    • First observedthincms_publish_review
    • First observedthincms_publish_sequence
    • First observedthincms_re_analyze_review_sentiment
    • First observedthincms_reorder_collection_items
    • First observedthincms_reorder_module_items
    • First observedthincms_reorder_modules
    • First observedthincms_reorder_sequence_steps
    • First observedthincms_restore_snapshot
    • First observedthincms_search
    • First observedthincms_send_campaign
    • First observedthincms_send_verify_email
    • First observedthincms_seo_analyze
    • First observedthincms_seo_audit
    • First observedthincms_seo_check_links
    • First observedthincms_set_review_editor_notes
    • First observedthincms_set_subscriber_password
    • First observedthincms_set_tool_data
    • First observedthincms_snapshot
    • First observedthincms_switch_site
    • First observedthincms_sync_integration
    • First observedthincms_sync_reviews
    • First observedthincms_template_status
    • First observedthincms_test_ai_connection
    • First observedthincms_test_integration
    • First observedthincms_unpublish_review
    • First observedthincms_update_author
    • First observedthincms_update_campaign
    • First observedthincms_update_category
    • First observedthincms_update_collection
    • First observedthincms_update_collection_item
    • First observedthincms_update_content_block
    • First observedthincms_update_course
    • First observedthincms_update_enrollment
    • First observedthincms_update_form
    • First observedthincms_update_integration
    • First observedthincms_update_lead_magnet
    • First observedthincms_update_lesson
    • First observedthincms_update_media
    • First observedthincms_update_module
    • First observedthincms_update_navigation
    • First observedthincms_update_page
    • First observedthincms_update_popup
    • First observedthincms_update_post
    • First observedthincms_update_quiz
    • First observedthincms_update_quiz_question
    • First observedthincms_update_redirect
    • First observedthincms_update_reviews_settings
    • First observedthincms_update_script
    • First observedthincms_update_sequence
    • First observedthincms_update_sequence_step
    • First observedthincms_update_settings
    • First observedthincms_update_share_buttons
    • First observedthincms_update_social_links
    • First observedthincms_update_tag
    • First observedthincms_update_template
    • First observedthincms_update_tool
    • First observedthincms_update_workbook
    • First observedthincms_upload_lesson_attachment
    • First observedthincms_upload_media

TDQS

B3/5.0

Scored across 191 tools

Disambiguation3/5

Most tools have distinct purposes, but with 191 tools, there is some overlap (e.g., thincms_get_post_preview_url vs thincms_create_preview both deal with previews, and multiple tools related to reviews and courses have similar boundaries). Some tools like thincms_bulk_create_posts could be confused with thincms_create_post.

Naming Consistency4/5

All tools follow a thincms_verb_noun pattern, which is consistent. However, there are minor deviations: 'add' vs 'create' (thincms_add_quiz_question vs thincms_create_quiz), 'set' vs 'update', and some tools use 'get' vs 'list' inconsistently. Overall, the naming is predictable.

Tool Count2/5

191 tools is far beyond typical MCP server sizes. While the server covers a broad CMS platform, this number will overwhelm agents and cause slow tool selection. A more focused set (e.g., 30-50 tools) would be more appropriate for the domain, with deeper nesting or sub-resources.

Completeness3/5

The tool surface is extensive, covering posts, pages, courses, quizzes, workbooks, emails, reviews, SEO, analytics, and integrations. However, some areas like user management (beyond subscribers) are limited, and there are no tools for comments or multi-user roles. The snapshot/restore feature is unique but incomplete for full CRUD on all resources.

Maintenance

ActivityMaintained
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