Skip to main content
Glama

Server Details

Your agent builds websites, APIs, automations and admin tools; Tessryx hosts them on your domain.

Ownership verified
Status
Healthy
Uptime
99.9% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 93 tools

Disambiguation4/5

Most tools are clearly distinguished by resource type (app, workflow, schema, datafile, endpoint, schedule) and action. The main confusion arises between update_* (metadata only) and create_*_version (definition changes), but descriptions do clarify. Some overlap between patch_workflow and create_workflow_version, though patch is for small edits and create for wholesale rewrites.

Naming Consistency4/5

The majority follow a consistent verb_noun pattern: create_*, get_*, list_*, update_*, delete_*, publish_*, unpublish_*, run_works, and patch_. Minor deviations like whoami, get_guide, and rename_* are acceptable but break the strict pattern. Overall the naming is predictable and scannable.

Tool Count2/5

93 tools is far beyond the typical scope for a single MCP server, even for a comprehensive platform. While each tool serves a distinct purpose, the sheer volume is overwhelming and likely to cause agent confusion and token overhead. Many tools are near-duplicates (e.g., get_X, get_X_version, list_X_versions) that could be consolidated.

Completeness5/5

The surface covers the full resource lifecycle for every core type: create, get, list, update, version, publish, unpublish, delete, plus specialized operations like analyze_resource and get_resource_graph. There are no obvious gaps; even edge cases like custom domain verification and secret management (via dashboard redirection) are addressed.

Available Tools

93 tools
analyze_resourceAnalyze resourceA
Read-onlyIdempotent
Inspect

Check whether a resource and everything it depends on is sound — the deployability question. Pass 'hypothetical' to preview a change instead: hypothetical='delete' or 'unpublish' reports what would break WITHOUT changing anything (run it before deleting something other resources may use), and hypothetical='publish' checks whether the draft you are about to publish actually resolves. An APP is the usual subject: it walks every root the app contains (endpoints, schedules, domains) to the end of each chain and reports what would break. Returns findings {resource, path, severity, check, message}: errors are broken now (a reference that does not resolve, a dependency never published, a declared domain that routes elsewhere), warnings are risks (a published resource following @latest, a sub-workflow call cycle, a domain not yet verified), info is advisory. deployable is true when there are no errors. Also reports incomplete_nodes: resources whose references are built at run time and so cannot be checked statically. For a non-root subject like a workflow, analysis starts there rather than from whatever reaches it, so severities are not weighted by reachability.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesthe kind of resource to analyze: app, dynamic_endpoint, schedule, custom_domain, workflow, api_template, datafile, schema, secret. An app is the usual subject
resourceYesslug of the resource, optionally with a version suffix (e.g. 'shop/storefront' or 'shop/storefront@latest'); a bare slug means @published. For a custom_domain this is the hostname
hypotheticalNoinstead of checking the resource as it is, evaluate a change you are considering: 'delete' or 'unpublish' report what would break (nothing is changed — this is a preview), 'publish' checks whether the DRAFT resolves and flags what already follows this at @published. Run this before a delete or a publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
infosYes
errorsYes
subjectYes
findingsYes
warningsYes
deployableYes
incomplete_nodesYes
reachability_knownYes

TDQS

A4.9/5.0
Behavior5/5

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

The description explicitly states that hypothetical mode makes no changes ('nothing is changed — this is a preview'), aligning with the readOnly and destructiveHint annotations. It also details the return findings structure (resource, path, severity, check, message) and the meaning of severity levels, making side effects and output fully 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 somewhat verbose, repeating concepts like 'deployability' and 'what would break' across sentences. However, each sentence adds necessary detail about severity, hypothetical behavior, and special cases, so the length is justified for the complexity. It could be trimmed slightly without losing essential 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 complexity and the presence of an output schema (though not shown), the description covers all necessary context: what the tool returns, how to interpret severities, how to use hypothetical mode, and the special behavior for non-root subjects. It is complete enough for an agent to decide when and how to call it.

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?

Although the schema already provides 100% coverage of parameter descriptions, the tool description enriches them with practical semantics: it explains version suffixes, bare slug meaning, and what hypothetical values accomplish. This goes beyond the schema by giving real-world usage context and examples, so agents can correctly formulate parameter values.

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: to check whether a resource and its dependencies are sound for deployment. It specifies the action (analyze) and the resource, and distinguishes itself by focusing on deployability and hypothetical previews, which is not covered by sibling tools like get_resource_graph or validate_workflow.

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?

It gives explicit guidance on when to use the hypothetical parameter: run it before a delete or publish. It explains what each hypothetical value does ('delete', 'unpublish', 'publish') and clarifies the typical subject (an app) and edge cases (non-root subjects), leaving little ambiguity for the agent.

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

create_api_templateCreate API templateAInspect

Api template authoring — create a BRAND-NEW api template (mints the template + its version 1). Fetch the definition's JSON Schema with get_api_template_definition_schema and author against it. Iterate with execute_api_template before wiring the template into a workflow; pass publish=true to publish in the same step once you're happy. (To add a version to an api template that already exists, use create_api_template_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL-safe slug, optionally hierarchical.
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe api template definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_api_template_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
descriptionNoWhat external call this template makes.
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
template_idYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate this is a non-idempotent, non-read-only operation, and the description adds meaningful side-effect context by explaining that it mints the template and its version 1, and that publish=true publishes in the same step while omission leaves it as an unpublished draft. This is transparent beyond the annotations, though it does not explicitly warn that the operation is non-idempotent.

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 four sentences and contains no fluff, with the primary purpose front-loaded. The extra guidance on fetch/iterate/publish is useful but keeps it slightly longer than strictly necessary. Structure is clear and each 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?

The description covers purpose, workflow, publish behavior, and alternative tools, giving an agent enough context to use the tool correctly. Since an output schema exists, no return-value explanation is needed. It could have explicitly mentioned that this is a create operation for new templates only, but the 'BRAND-NEW' wording and contrast with create_api_template_version already convey that.

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 already rich descriptions, so the baseline is 3. The overall description adds tool-level context (e.g., referencing get_api_template_definition_schema and the publish flow) that slightly supplements parameter understanding, but most parameter meaning already lives in the schema. The plus is that description clarifies the definition param's validation source, which is also present in the schema, so the net added value is modest.

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 a specific action: 'create a BRAND-NEW api template (mints the template + its version 1)', which clearly distinguishes it from sibling tools like create_api_template_version and update_api_template. The explicit pointer to create_api_template_version for adding versions to existing templates removes ambiguity.

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 gives concrete workflow guidance: fetch the schema with get_api_template_definition_schema, author against it, iterate with execute_api_template, and optionally pass publish=true to publish in the same step. It also directs users to the alternative tool for adding versions to existing templates, covering when this tool should and should not be used.

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

create_api_template_versionCreate API template versionAInspect

Api template versioning — add a new version to an EXISTING api template (by template_id) to evolve an api template you already created. Author the new version's definition against the schema from get_api_template_definition_schema. Pass publish=true to publish this api template version immediately. (For a brand-new api template, use create_api_template.)

ParametersJSON Schema
NameRequiredDescriptionDefault
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe api template definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_api_template_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
template_idYesThe template id to add a version to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
template_idYes

TDQS

A4.7/5.0
Behavior4/5

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

The description clearly conveys that it creates a new version and optionally publishes it, and the annotations already indicate no destructive or read-only behavior. It doesn't explicitly repeat idempotency, but the annotation handles that. Overall it is transparent about the main side effect.

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, well-structured, and front-loads the core purpose. It uses clear, direct language without redundancy or irrelevant details.

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 that an output schema exists and sibling tools are available, the description supplies enough context to use the tool correctly. It references the schema source, explains the publish behavior, and distinguishes from create_api_template, covering all necessary usage aspects.

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?

All three parameters are fully described in the schema, and the main description adds valuable context for definition (how to author it) and publish (what true means). This goes beyond the baseline but does not drastically expand on 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's function: adding a new version to an existing API template. It distinguishes this from creating a brand-new template via the explicit note 'For a brand-new api template, use create_api_template.'

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?

It provides explicit guidance on when to use this tool (existing templates only), how to author the definition using get_api_template_definition_schema, and the optional publish flag with its effect. It also names the alternative for new templates.

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

create_appCreate appAInspect

App authoring — create a BRAND-NEW app (mints the app + its version 1). Start here when building a page or an API bundle: choose the app's slug (its folder prefix, e.g. 'storefront'), then author each member resource under that prefix (storefront/page, storefront/products, storefront/checkout, …) so the app's prefix rule captures them automatically — you never hand-add members. The definition holds the membership selector (prefix rules + includes/excludes) and display; fetch its JSON Schema with get_app_definition_schema and author against it. An empty definition is a valid draft, but publishing requires a membership that selects something. Pass publish=true to publish v1 immediately. (To add a version to an existing app, use create_app_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesUnique per-tenant slug; this is the app's folder prefix (hierarchical segments allowed, e.g. storefront or marketing/campaigns).
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe app definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_app_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
descriptionNoWhat this app is (human + LLM-facing prose).
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
versionYes
publishedYes

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations, the description discloses real side effects: the call mints both the app and version 1, publish=true triggers immediate publication, and an empty definition is a valid draft but publishing requires a membership that selects something. The emphasis on creating a BRAND-NEW app, combined with idempotentHint=false, implies each invocation produces a fresh app, which is consistent with the annotations.

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

Conciseness4/5

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

The description front-loads the core purpose and then orients the reader through the workflow, which is appropriate for a complex authoring tool with a large sibling set. There is some redundancy (the folder-prefix and membership-selector ideas are restated), but the density of useful guidance justifies the length.

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 (5 parameters, nested object, large sibling set, draft-vs-publish semantics), the description covers the key operational questions: what it creates, when to use it vs create_app_version, how to author the definition, and the publish behavior. An output schema exists, so return values need not be explained, and nothing critical is left ambiguous for a first-time caller.

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 are already rich (slug as folder prefix, publish behavior, definition validated against a fetched schema), so the baseline is 3. The description adds some context — slug as the prefix under which member resources are authored and definition as the membership selector — but most parameter meaning is already carried by the schema, so no higher score is warranted.

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 a specific verb+resource ('create a BRAND-NEW app') and clarifies the dual effect ('mints the app + its version 1'). It explicitly distinguishes itself from create_app_version ('To add a version to an existing app, use create_app_version'), which is the closest sibling, and names the workflow context ('Start here when building a page or an API bundle').

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 gives explicit when-to-use guidance: 'Start here when building a page or an API bundle', and points to the alternative tool for the adjacent case ('To add a version to an existing app, use create_app_version'). It also provides concrete usage direction for the publish flag ('Pass publish=true to publish v1 immediately') and for authoring ('fetch its JSON Schema with get_app_definition_schema and author against it').

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

create_app_versionCreate app versionAInspect

App versioning — add a new version to an EXISTING app (by app_id) to change its membership selector (prefix rules, includes/excludes) or display. Author the new version's definition against the schema from get_app_definition_schema. Pass publish=true to make it the live manifest immediately. (For a brand-new app, use create_app.)

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe app id to add a version to.
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe app definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_app_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
versionYes
publishedYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false), the description adds meaningful behavioral details: it creates a new non-destructive version, defaults to an unpublished draft unless publish=true is passed, and notes that the owning service validates the definition on submit. No contradictions with the annotations.

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

Conciseness5/5

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

The description is concise and front-loaded. It states the core action in the first sentence, adds the crucial constraint (EXISTING app), provides the schema reference, and ends with the optional publish behavior and the explicit alternative. Every sentence serves a purpose with no fluff.

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 rich parameter descriptions and the existence of an output schema, the description is complete. It covers the tool's scope, the required schema-fetch step, the publish option with default behavior, and the alternative for new apps. No critical usage context is missing.

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 each parameter already well explained (app_id, publish, definition). The main description enriches understanding by linking the definition parameter to 'membership selector (prefix rules, includes/excludes) or display', which clarifies the purpose of the definition object beyond the schema text. This adds value without being redundant.

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: 'add a new version to an EXISTING app' with specific use cases (membership selector, display). It explicitly distinguishes from the sibling tool create_app by adding '(For a brand-new app, use create_app.)', leaving no ambiguity about when this tool is appropriate.

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 when-to-use guidance: it is for existing apps, and the parenthetical directs users to create_app for brand-new apps. It also instructs users to author the definition against the schema from get_app_definition_schema. However, it does not explicitly contrast with update_app or explain when to use publish_app separately after leaving the version as a draft, though the publish parameter description implies the alternative.

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

create_custom_domainCreate custom domainAInspect

Claim a custom hostname for this tenant and generate its DNS challenge. The claim alone grants NOTHING until ownership is proven — it returns TWO DNS records (an ownership TXT and a permanent routing CNAME) in dns_records that the customer must add at their DNS provider. Present those records to the human, wait for them to add them, then call verify_custom_domain. slug_prefix/root_endpoint are optional here and are usually set later with update_custom_domain (after the domain verifies).

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesThe customer's fully-qualified hostname, e.g. shop.customer.com. Immutable — it is the domain's identity.
slug_prefixNoOptional. The endpoint subtree this domain mounts (an isolation boundary). Usually the slug prefix of the app this domain should front. Can be set later with update_custom_domain.
display_nameNoOptional human label, e.g. 'Marketing site'.
root_endpointNoOptional. What the domain root ('/') serves, RELATIVE to slug_prefix. Can be set later with update_custom_domain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
hostnameYes
dns_recordsNo
slug_prefixNo
verified_atNo
activated_atNo
display_nameNo
root_endpointNo
last_check_messageNo
cert_status_messageNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes beyond annotations by explaining that the claim alone grants nothing until ownership is proven, and that it returns DNS records for verification. This contextualizes the non-idempotent and non-read-only nature without contradicting the annotations.

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

Conciseness4/5

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

The description is slightly verbose but every sentence carries essential information: purpose, consequence, workflow, and parameter timing. It is well-structured and free of fluff, though the multi-clause sentences could be tightened.

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 core workflow (claim, present records, verify) and references update_custom_domain for later configuration. It does not detail the output schema shape beyond dns_records, but that is provided separately, so the context is sufficient.

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 already covers all 4 parameters with detailed descriptions, so the baseline is 3. The description adds value by noting that slug_prefix and root_endpoint are typically set later, which clarifies their optional usage in this specific call.

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 (claim a custom hostname and generate DNS challenge) and differentiates from related tools like verify_custom_domain and update_custom_domain. It specifies the primary output (two DNS records) and the provisional nature of the claim.

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

Usage Guidelines5/5

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

Explicitly instructs to present DNS records to the human, wait for them to be added, and then call verify_custom_domain. Also notes that slug_prefix/root_endpoint are usually set later with update_custom_domain, providing clear guidance on when to use alternatives.

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

create_datafileCreate datafileAInspect

Create a new datafile holding a JSON object. A datafile MUST be bound to a schema (schema_id) — the schema validates the JSON and generates the human editor; author or pick one with the schema tools first. Property order in json is preserved verbatim. Publish it with publish_datafile to serve it from the CDN.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesThe JSON object this datafile holds. Property order is preserved verbatim.
slugYesURL-safe slug, optionally hierarchical.
schema_idYesId of the schema this datafile's JSON is validated against (required). The datafile's content must conform to it, and the schema generates the human editing form.
descriptionNoWhat this datafile holds.
display_nameNoHuman-readable name.
use_latest_schemaNoValidate against the latest (draft) schema version instead of the published one.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jsonNo
slugYes
schema_idNo
datafile_idYes
descriptionYes
display_nameYes
content_sha256No
last_published_pathNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover read-only, destructive, idempotent, and open-world behavior. The description adds behavioral detail beyond annotations: property order preservation, mandatory schema binding, and that creation does not auto-publish. Doesn't state duplicate-slug behavior, but that's beyond typical expectations.

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, front-loaded with the purpose. Sentence 2 is slightly dense with the human-editor detail, but each sentence earns its place; no redundancy or filler.

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

Completeness4/5

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

Output schema covers return values and annotations cover safety, so the description only needs lifecycle context, which it provides (create → schema prerequisite → publish). Not explicitly covering duplicate-slug errors is acceptable given annotation and output-schema coverage.

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 per rubric the baseline is 3. The description reinforces schema_id in prose but adds no per-parameter detail beyond the schema; the schema descriptions are thorough (e.g., use_latest_schema explains draft vs published version).

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

Purpose5/5

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

States a specific verb (Create) with resource (datafile) and content (JSON object). Distinguishes from sibling tools like publish_datafile and create_schema by noting the schema prerequisite and the separate publish step. The purpose is unmistakable.

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 pre-requisite guidance (author or pick a schema with schema tools first) and post-action guidance (publish with publish_datafile to serve from the CDN). Implicitly distinguishes from update_datafile/patch_datafile via 'Create a new'; could contrast explicitly but is largely clear.

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

create_dynamic_endpointCreate dynamic endpointAInspect

Dynamic endpoint authoring — create a BRAND-NEW dynamic endpoint (mints the endpoint + its version 1). The definition binds the endpoint to a workflow (by versioned-slug reference) plus a cache setting; fetch its JSON Schema with get_dynamic_endpoint_definition_schema and author against it. Pass publish=true to take the endpoint live in one step, or publish later with publish_dynamic_endpoint. (To add a version to a dynamic endpoint that already exists, use create_dynamic_endpoint_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL-safe slug; becomes the path on the tenant's subdomain in the public URL (https://<tenant>.tessryx.app/<slug>). Segments are lowercase letters/numbers/hyphens/dots, or :param placeholders. Dots let you serve spec-mandated files at their exact paths — 'robots.txt', 'sitemap.xml', 'favicon.ico', '.well-known/security.txt'. :param segments do path-parameter routing, e.g. 'post/:slug' serves every /post/<value> from one endpoint — pair it with the definition's input_transform to turn params into the workflow $input (the workflow's input_schema then validates, so a bad URL returns 404). A segment may not be '.' or '..'.
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe dynamic endpoint definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_dynamic_endpoint_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
descriptionNoWhat this endpoint serves.
content_typeNoThe response Content-Type this endpoint serves (e.g. text/html, application/json). When set, it is authoritative — set text/html here for a page so it isn't served as text/plain. Leave blank to use whatever content-type the workflow returns.
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
slugYes
versionYes
publishedYes
public_urlNo
endpoint_idYes

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already establish non-read-only, non-idempotent, and non-destructive behavior, so the bar is lower. The description adds useful side effects: it mints the endpoint plus version 1 and optionally publishes immediately. It does not mention auth/rate limits, but those are not essential given the annotations.

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

Conciseness5/5

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

The description is dense but every sentence carries distinct guidance: creation action, schema reference, publish behavior, and sibling tool distinction. No filler or redundant wording.

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?

Covers the creation workflow, schema acquisition, publish behavior, and sibling tool distinction. Since an output schema exists, return-value details need not be described in the description field. The description is complete for successful use.

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?

All parameters have schema descriptions, and the description adds substantial meaning beyond them: slug path-parameter routing, input_transform pairing, 404 behavior, content_type authority, and publish default. This goes well beyond the baseline for fully covered schemas.

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

Purpose5/5

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

States a specific verb ('create'), resource ('dynamic endpoint'), and clearly distinguishes from create_dynamic_endpoint_version with an explicit sibling reference. Makes clear this tool is for brand-new endpoints, not for adding versions to existing ones.

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

Usage Guidelines5/5

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

Explicitly directs when to use create_dynamic_endpoint_version for existing endpoints and explains the publish=true create-then-publish path versus publishing later. Also points to get_dynamic_endpoint_definition_schema for authoring the definition.

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

create_dynamic_endpoint_versionCreate dynamic endpoint versionAInspect

Dynamic endpoint versioning — add a new version to an EXISTING dynamic endpoint (by endpoint_id) to evolve a dynamic endpoint you already created. Author the new version's definition against the schema from get_dynamic_endpoint_definition_schema. Pass publish=true to take this dynamic endpoint version live immediately. (For a brand-new dynamic endpoint, use create_dynamic_endpoint.)

ParametersJSON Schema
NameRequiredDescriptionDefault
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe dynamic endpoint definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_dynamic_endpoint_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
endpoint_idYesThe endpoint id to add a version to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
slugYes
versionYes
publishedYes
public_urlNo
endpoint_idYes

TDQS

A4.4/5.0
Behavior4/5

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

The description clarifies that the tool creates a version and optionally publishes it immediately, consistent with readOnlyHint=false. It does not imply destructive or idempotent behavior, aligning with the annotations. The side effects are described sufficiently for an agent to understand the operation's impact.

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

Conciseness4/5

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

The description is moderately concise, though it repeats 'dynamic endpoint' several times. It uses parentheses for the exception and provides clear stepwise guidance. The structure is logical and easy to parse, though it could be slightly tightened.

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 nested definition object and presence of an output schema, the description covers the key aspects: target, definition authoring, and publishing. It does not detail version numbering or error handling, but these are not essential for basic usage. The sibling tools provide additional context, making the description complete enough.

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?

All three parameters are fully described in the schema, with the description adding extra context for definition (author against schema, validation on submit) and publish (defaults to false). The endpoint_id parameter is clearly defined as the target identifier. This fully covers parameter meanings.

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 adds a new version to an existing dynamic endpoint identified by endpoint_id. It explicitly distinguishes this from creating a brand-new endpoint by referencing create_dynamic_endpoint, 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 provides clear guidance on when to use this tool (for existing endpoints) and when to use the alternative (for new endpoints). It also instructs to author the definition against the schema from get_dynamic_endpoint_definition_schema and explains the publish parameter, giving practical usage context.

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

create_scheduleCreate scheduleAInspect

Schedule authoring — create a BRAND-NEW schedule (mints the schedule + its version 1). The definition names a workflow (versioned-slug ref, published/latest), a recurrence (EITHER a 5-field cron + IANA timezone, OR an 'every N minutes/hours' interval), and an optional static input bound as the workflow's $input on every fire; fetch its JSON Schema with get_schedule_definition_schema and author against it. Pass publish=true to activate it (start firing) in one step, or publish later with publish_schedule. (To add a version to a schedule that already exists, use create_schedule_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesUnique per-tenant slug; hierarchical path segments allowed (e.g. reports/daily-summary).
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe schedule definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_schedule_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
descriptionNoWhat this schedule does (human + LLM-facing prose).
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
schedule_idYes

TDQS

A5/5.0
Behavior5/5

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

The description transparently discloses the creation action, the optional immediate publication, and validation by the owning service. It aligns with the readOnlyHint=false, destructiveHint=false, and idempotentHint=false annotations and adds context about the workflow definition and $input binding.

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 dense but well-organized, using parentheticals to separate key details (e.g., workflow reference, recurrence, publish behavior). No redundant or filler content; every sentence adds functional value.

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 (nested object, multiple related tools), the description is fully self-contained. It explains how to author the definition, how to handle publication, and how it differs from sibling tools like create_schedule_version and publish_schedule, leaving no significant gap for a caller.

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?

Every parameter is described in detail, including the nested 'definition' object which explicitly instructs fetching the JSON Schema via get_schedule_definition_schema. The 'publish' parameter's default and behavior are clearly stated, and the schema covers all five 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 creates a brand-new schedule (mints schedule and version 1) and contrasts it with create_schedule_version for adding versions to existing schedules. The specific verb 'create' and resource 'schedule' are 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?

Explicitly directs when to use this tool versus create_schedule_version ('To add a version to a schedule that already exists, use create_schedule_version') and explains the publish parameter for one-step activation versus using publish_schedule later.

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

create_schedule_versionCreate schedule versionAInspect

Schedule versioning — add a new version to an EXISTING schedule (by schedule_id) to change its cron, timezone, workflow, or input. Author the new version's definition against the schema from get_schedule_definition_schema. Pass publish=true to activate this version immediately. (For a brand-new schedule, use create_schedule.)

ParametersJSON Schema
NameRequiredDescriptionDefault
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe schedule definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_schedule_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
schedule_idYesThe schedule id to add a version to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
schedule_idYes

TDQS

A4.7/5.0
Behavior4/5

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

The description aligns with the annotations (readOnlyHint=false, destructiveHint=false) and adds clarity about the draft/publish semantics. It does not contradict any annotation, but it could be more explicit about side effects like whether the previous version remains intact. However, given that it is a versioning operation, the behavior is reasonably well conveyed.

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, tightly packed with relevant information, and front-loaded with the core purpose. It avoids redundant detail and uses a clear structure that separates the primary action from the publish option and the alternative tool for new schedules.

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?

The description is self-contained for its intended use. It references the related definition-schema tool and the alternative create_schedule tool, providing enough context for an agent to understand the workflow. The output schema is not described, but that is not necessary for successful invocation, and the description fully covers the calling conventions.

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 already provides 100% coverage of all three parameters, so the description does not need to repeat them. It adds value by directing the agent to fetch the definition schema from get_schedule_definition_schema to author the 'definition' parameter correctly, which goes beyond the schema's static description.

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

Purpose5/5

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

The description clearly states the action (add a new version), the target resource (an existing schedule), and explicitly differentiates from creating a brand-new schedule by pointing to create_schedule. This precise scoping makes it easy for an agent to select this tool over siblings like create_schedule or update_schedule.

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?

It provides explicit guidance on when to use this tool (only for existing schedules) and when not to (use create_schedule for new ones). It also explains the publish parameter's effect ('Pass publish=true to activate this version immediately'), giving the agent clear instructions on how to invoke it in different scenarios.

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

create_schemaCreate schemaAInspect

Schema authoring — create a BRAND-NEW schema (mints the schema + its version 1). json_schema is the JSON Schema body datafiles bound to this schema (by schema_id) are validated against; property order is preserved exactly — it sets the field order of the generated editor, so author it in the order you want humans to see. Media uploads, entity references, cron and colors need an x-tessryx-ui hint or they render as bare text — get_guide("schemas"). Pass publish=true to publish schema version 1 immediately (the version datafiles resolve by default), or later with publish_schema. (To add a version to a schema that already exists, use create_schema_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL-safe slug, optionally hierarchical.
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
descriptionNoWhat this schema describes.
json_schemaYesThe JSON Schema body datafiles validate against; becomes version 1. Property order is preserved verbatim.
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
schema_idYes

TDQS

A5/5.0
Behavior5/5

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

Explicitly states behavior: mints schema + version 1, preserves property order, defaults to unpublished draft, and publish=true publishes immediately. Also notes datafiles validate against json_schema. No contradictions with annotations.

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?

Well-structured and concise despite covering multiple nuances. Two main sentences plus a parenthetical alternative. No redundant content; every sentence adds value.

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?

Complete for the context: covers purpose, usage, parameters, and alternatives. Output schema is indicated as present, so no need to describe return values. All relevant operational details are included.

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?

Adds significant meaning beyond the schema's field descriptions: explains json_schema role, property order preservation, x-tessryx-ui hints, and publish parameter's one-step convenience. The schema already covers basic descriptions, but this enhances 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?

Clear purpose: creates a brand-new schema and its version 1. Explicitly distinguishes from create_schema_version and mentions publishing in the same step. 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 Guidelines5/5

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

Provides strong guidance: when to use vs create_schema_version, how to publish immediately, and instructs to get_guide for UI hints. Clarifies property order importance and x-tessryx-ui needs.

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

create_schema_versionCreate schema versionAInspect

Schema versioning — add a new version to an EXISTING schema (by schema_id) to evolve a schema you already created. Property order in the new schema version is preserved verbatim (it drives the generated editor's field order). Media uploads, entity references, cron and colors need an x-tessryx-ui hint or they render as bare text — get_guide("schemas"). publish_schema (or publish=true here) chooses which schema version is live. (For a brand-new schema, use create_schema.)

ParametersJSON Schema
NameRequiredDescriptionDefault
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
schema_idYesThe schema id to add a version to.
json_schemaYesThe JSON Schema body for the new immutable version. Property order is preserved verbatim.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionYes
publishedYes
schema_idYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write) and destructiveHint=false, so the description doesn't contradict them. It adds valuable behavior beyond annotations: property order preservation and the need for x-tessryx-ui hints for certain types. It doesn't disclose side effects or reversibility, but for a versioning tool that's acceptable given the annotation coverage.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, a critical behavioral note, and usage routing. It is front-loaded with the primary action and tightly packed without 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?

Given the tool's complexity (nested json_schema, publish logic), the description covers when to use, key behavioral constraints, and alternatives. It does not detail the return value, but the presence of an output schema covers that. It's sufficiently complete for an agent to invoke it 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 description coverage is 100%, so baseline is 3. The description adds context beyond the schema: it explains property order impacts the editor, mentions the publish parameter's effect, and directs to get_guide for hints. This adds meaning to the parameters, justifying 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 the tool adds a new version to an existing schema, using a specific verb and resource, and distinguishes it from create_schema for brand-new schemas. It also specifies the key action (evolve) and differentiates from update_schema implicitly by focusing on versioning.

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

Usage Guidelines5/5

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

Explicitly tells when to use this tool ('to evolve a schema you already created') and when not to ('For a brand-new schema, use create_schema'). It also mentions publish_schema as an alternative for publishing, and get_guide for hints, providing clear routing among siblings.

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

create_workflowCreate workflowAInspect

Workflow authoring — create a BRAND-NEW workflow (mints the workflow + its version 1). A workflow composes blocks (api_call, sub_workflow, data) over $input and returns {content_type, output}. Fetch the definition's JSON Schema with get_workflow_definition_schema and author against it. The definition is statically validated BEFORE it is written: on error-severity findings nothing is minted (valid=false, created=false, findings returned) — so you never need a separate validate_workflow pass. On success the result also carries any advisory (warning/info) findings, e.g. a bare identifier that should be $-prefixed, or literal text better authored with language "literal". Pass publish=true to create and publish in one step. (To add a version to a workflow that already exists, use create_workflow_version.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL-safe slug, optionally hierarchical (e.g. reports/daily).
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe workflow definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_workflow_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
descriptionNoWhat this workflow does.
display_nameNoHuman-readable name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
validYes
createdYes
versionNo
findingsNo
publishedYes
workflow_idNo

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses critical behaviors: static validation before write (on error-severity findings nothing is minted, valid=false, created=false, findings returned), advisory findings on success, and the publish flag effect. It also mentions the return shape of the workflow itself, adding context not captured by annotations. No contradiction with annotations.

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 dense but every sentence carries purpose. It front-loads the core purpose, then explains composition, validation, advisory findings, and the publish option, and ends with the sibling alternative. No redundancy or filler; it is efficiently structured for an agent to parse.

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 (5 params, nested objects, output schema present), the description covers all essentials: what it does, how to author the definition, validation behavior, publish option, and when to use the alternative. The output schema is provided separately, so return value details are not required. The description is complete for correct invocation.

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 all parameters are documented in the schema. The description adds value by instructing to fetch the JSON Schema for the definition and author against it, and by explaining the publish parameter's default and effect. It also clarifies that the definition is the JSON object to be validated. These additions go beyond the schema, though not extensively, so a 4 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 states a specific verb and resource ('create a BRAND-NEW workflow (mints the workflow + its version 1)') and differentiates from siblings by explicitly naming create_workflow_version for existing workflows. It also explains the composition model (blocks over $input returning {content_type, output}), so an agent understands exactly what the tool does and how it differs from update or patch 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?

Provides explicit when-to-use guidance: it's for brand-new workflows only, and the last sentence directs to create_workflow_version for adding versions to existing workflows. It also explains that validation is built-in, so no separate validate_workflow pass is needed, and describes the publish=true option for one-step creation and publishing. This leaves no ambiguity about selection among siblings.

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

create_workflow_versionCreate workflow versionAInspect

Workflow versioning — add a new version to an EXISTING workflow (by workflow_id) to evolve a workflow you already created. Author the new version's definition against the schema from get_workflow_definition_schema. Like create_workflow, the definition is statically validated BEFORE it is written: error-severity findings mint nothing (valid=false, created=false), and a successful write returns any advisory (warning/info) findings. Pass publish=true to publish this workflow version immediately, or later with publish_workflow. (For a brand-new workflow, use create_workflow.)

ParametersJSON Schema
NameRequiredDescriptionDefault
publishNoIf true, immediately publish the version this call creates (the common create-then-publish in one step). Defaults to false; omit to leave the version as an unpublished draft.
definitionYesThe workflow definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_workflow_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.
workflow_idYesThe workflow id to add a version to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
validYes
createdYes
versionNo
findingsNo
publishedYes
workflow_idNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses validation-before-write behavior, that error-severity findings result in valid=false and created=false, and that successful writes return advisory findings. This adds significant context about the tool's execution and side effects, fully compensating for the absence of such detail in annotations.

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 but efficiently front-loads the core purpose and then adds essential details on validation, publishing, and alternatives. Every sentence adds value, though it is slightly long; it avoids redundancy and remains well-structured.

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 complexity (nested objects, output schema exists, three parameters), the description is complete. It covers the primary use case, validation semantics, publish behavior, and points to the definition schema. The return structure is covered by the output schema, so nothing critical is missing.

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 already covers all parameters with 100% coverage, so the baseline is 3. The description adds valuable guidance for the 'definition' parameter: 'Fetch the exact JSON Schema it must satisfy with get_workflow_definition_schema and author against it (or copy an existing one with the get_*_version tool).' This goes beyond the schema's bare description and helps the agent use the parameter correctly.

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: 'add a new version to an EXISTING workflow (by workflow_id) to evolve a workflow you already created.' It uses a specific verb and resource, and explicitly distinguishes itself from create_workflow for brand-new workflows, making its scope 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?

It provides explicit usage context: author against the schema from get_workflow_definition_schema, use for existing workflows, and explicitly says 'For a brand-new workflow, use create_workflow.' It also explains the publish option and how to publish later with publish_workflow, offering clear alternatives and conditions.

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

delete_api_templateDelete API templateA
Destructive
Inspect

Permanently delete an api template and all its versions. Cannot be undone; a workflow api_call that references it fails cleanly at run time.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesthe api template id to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior5/5

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

Goes beyond the destructiveHint annotation by specifying that deletion is permanent, affects all versions, and causes referencing workflow calls to fail cleanly. This provides clear side-effect information.

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 cover the action, scope, and key consequence. No redundant information or verbose phrasing.

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 delete operation, the description is complete: it states what is deleted, that it is irreversible, and the impact on dependent workflows. No missing information is needed to invoke it 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?

The only parameter, template_id, is described in the schema itself as 'the api template id to delete'. The description adds no additional semantic detail beyond the schema, so it meets the 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 (delete), the resource (api template), and the scope (all its versions). It distinguishes from other delete_* tools by explicitly naming 'api template' and highlighting the permanent nature.

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

Usage Guidelines4/5

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

Usage is implied by the verb 'delete' and the resource. It warns about the consequence (workflow calls fail), which helps decide when to use this tool over other operations like update or unpublish, though alternatives are not explicitly named.

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

delete_appDelete appA
Destructive
Inspect

Permanently delete an app and all its versions. This cannot be undone. It deletes only the app (the lens) — its member resources are untouched and continue to exist on their own. To simply hide the app without deleting, use unpublish_app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesthe app id to delete permanently

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.9/5.0
Behavior5/5

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

The description goes beyond the destructiveHint annotation by explaining the permanent nature, the deletion of all versions, and the fact that member resources are untouched. This gives users a precise understanding of the operation's 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 is concise and well-structured, consisting of short, direct sentences. Every sentence adds important information without unnecessary fluff.

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 simple schema and destructive nature, the description covers all necessary context: what is deleted, what is not affected, the irreversibility, and the alternative action. No important information is missing.

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 already describes app_id as 'the app id to delete permanently', so the parameter is clear. The description adds useful context about scope and side effects, though it does not significantly alter the parameter meaning itself.

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

Purpose5/5

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

The description clearly states the action is to permanently delete an app and all its versions. It also distinguishes this from unpublish_app, which merely hides the app. The resource and scope are 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 explicitly warns that the operation cannot be undone and clarifies that only the app is deleted while member resources remain. It also directs users to unpublish_app when the intent is to hide rather than delete, providing clear usage guidance.

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

delete_datafileDelete datafileA
Destructive
Inspect

Permanently delete a datafile (unpublishing it from the CDN first if published). Cannot be undone; anything referencing it is left dangling and degrades.

ParametersJSON Schema
NameRequiredDescriptionDefault
datafile_idYesthe datafile id to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations by explaining that published datafiles are first unpublished from the CDN, that deletion is irreversible, and that referencing items become dangling and degrade. This matches the destructiveHint and idempotentHint annotations with no contradiction.

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 with the primary action, followed by essential caveats. Every sentence adds meaningful information without unnecessary verbosity.

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 single-parameter destructive operation, the description covers the action, the side effect on CDN publishing, irreversibility, and downstream impact. Nothing critical is missing.

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

Parameters3/5

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

The schema already fully describes the single datafile_id parameter at 100% coverage. The description adds no additional parameter-level meaning beyond what the schema and tool name already convey.

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 a specific action ('Permanently delete') and a specific resource ('datafile'), distinguishing it from other datafile operations like get, list, patch, publish, and unpublish.

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 communicates that this tool is for permanent deletion and includes critical side-effect warnings. It does not explicitly contrast with update/patch alternatives, but the destructive framing makes the use case unambiguous.

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

delete_dynamic_endpointDelete dynamic endpointA
Destructive
Inspect

Permanently delete a dynamic endpoint (the server purges its public edge URL first). Unlike unpublish, this removes the resource entirely — it no longer appears in list_dynamic_endpoints. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYesthe endpoint id to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true), the description discloses specific side effects: the server purges the public URL, the resource is removed entirely, and it will no longer appear in listings. This is more detailed than the annotation alone.

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, tightly packed with essential information: the action, the side effect, the contrast with unpublish, and the irreversibility. No unnecessary words.

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?

The description covers the key caveats (purges URL, removes from listing, irreversible) and differentiates from the similar unpublish operation. Since there is no output schema, no return-value details are needed. The context for using this tool is fully addressed.

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 already describes endpoint_id as 'the endpoint id to delete,' which is clear and sufficient for a simple identifier. The description doesn't add extra detail, but given the high schema coverage, the parameter is well understood.

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: 'Permanently delete a dynamic endpoint' with a specific verb and resource. It also distinguishes itself from the sibling 'unpublish' by explaining the difference, making its 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?

It explicitly contrasts with unpublish: 'Unlike unpublish, this removes the resource entirely — it no longer appears in list_dynamic_endpoints.' This guidance helps the agent choose between delete and unpublish. It also warns 'Cannot be undone,' which is critical for a destructive operation.

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

delete_scheduleDelete scheduleA
Destructive
Inspect

Permanently delete a schedule and all its versions and run history. This cannot be undone. To simply stop it firing without deleting, use unpublish_schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYesthe schedule id to delete permanently

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already signal destructiveHint: true, and the description adds specificity: it mentions deletion of versions and run history and that it cannot be undone. This provides additional behavioral context beyond the annotation, though it does not cover auth or rate limits, which are not essential here.

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 filler. The first sentence states the core action and scope, the second provides the alternative. Information is front-loaded and every sentence earns its place.

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 one-parameter destructive tool with an output schema and annotations covering destructiveness, the description provides all necessary context: what it does, what it affects, and when to use the alternative. Nothing critical is missing.

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

Parameters3/5

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

The schema covers the single parameter (schedule_id) with a clear description, and schema_description_coverage is 100%. The tool description does not add extra semantics beyond the schema, but the schema itself is sufficient. 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 a specific verb ('Permanently delete'), resource ('schedule'), and scope ('all its versions and run history'). It also distinguishes itself from the sibling tool unpublish_schedule, 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 Guidelines5/5

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

Explicitly states when to use the alternative: 'To simply stop it firing without deleting, use unpublish_schedule.' This provides clear guidance on when this tool is appropriate versus not, and names the alternative directly.

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

delete_schemaDelete schemaA
Destructive
Inspect

Permanently delete a schema and all its versions. Cannot be undone; datafiles or workflows bound to it keep the dangling reference and simply skip schema validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_idYesthe schema id to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description explicitly warns that deletion cannot be undone and explains the impact on bound datafiles/workflows, which is valuable behavioral 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?

The description is compact, with two sentences conveying scope, irreversibility, and side effects. No redundant or irrelevant content.

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 one-parameter destructive operation, the description is complete: it states what is deleted, the irreversibility, and the effect on dependent resources. No additional information is necessary.

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 fully describes the single required parameter schema_id, and the description does not need to add much. The description's mention of deleting all versions adds context but is not required 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?

Clearly states the tool permanently deletes a schema and all its versions, a specific action on a specific resource. It is easily distinguished from other delete_* sibling tools by 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 Guidelines4/5

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

Description gives strong guidance on consequences (permanent, cannot be undone, dangling references). It does not explicitly name alternatives, but the context of sibling tools makes the usage clear.

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

delete_workflowDelete workflowA
Destructive
Inspect

Permanently delete a workflow and all its versions. Cannot be undone; endpoints or sub_workflow references to it fail cleanly at run/serve time.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesthe workflow id to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, but the description adds valuable context: permanence, deletion of all versions, and that endpoints/sub_workflow references will 'fail cleanly at run/serve time.' This goes beyond the annotation and informs the agent of side effects, without contradicting the destructive flag.

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

Conciseness5/5

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

The description is two short sentences with no filler. It front-loads the core action ('Permanently delete a workflow and all its versions') and immediately follows with the critical consequence ('Cannot be undone'). Every phrase earns its place; it is appropriately concise.

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

Completeness4/5

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

For a simple one-parameter delete operation with an output schema, the description covers the primary effect, permanence, and behavior of dependent references. It does not mention authentication or ownership requirements, but those are not essential for invoking the tool correctly. The output schema covers return values, so this 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?

The input schema has 100% coverage for workflow_id with 'the workflow id to delete.' The description does not add additional meaning about the parameter (e.g., format, validation, or how it relates to versions). With full schema coverage, the baseline of 3 applies; the description adds no extra value here.

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 a clear verb and resource: 'Permanently delete a workflow and all its versions.' It specifies the scope (all versions) and the irreversible nature, which distinguishes it from other delete tools (e.g., delete_schema) by focusing on workflows. The purpose is unambiguous and does not rely on the title 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 usage (when you want to remove a workflow permanently) but does not explicitly state when to use this tool versus alternatives like update_workflow or unpublish_workflow. It gives consequences for references but no explicit exclusions or alternative routing. This is implied guidance, not explicit.

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

execute_api_templateExecute API templateAInspect

Execute an api template live against the given variables and return the full trace: the rendered request (method, url, headers, body) and the response (status, headers, body, duration). Use this to debug a template before wiring it into a workflow. This runs the real outbound request.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe template slug to execute (provide this or template_id)
versionNospecific version to execute; omit for the published version
variablesNovalues bound to the template's variables for this execution
template_idNothe template id to execute (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
duration_msYes
request_urlYes
status_codeYes
request_bodyYes
response_bodyYes
request_methodYes
request_headersYes
response_headersYes

TDQS

A4.5/5.0
Behavior4/5

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

The description explicitly states that this runs the real outbound request, which is a key behavioral detail given readOnlyHint=false. It also describes the return format (full trace). It does not mention potential side effects or rate limits, but the core side effect (executing a real request) is clearly disclosed.

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) and well-structured. It first states the action and output, then provides the use case and an important caveat (real request). No redundant or vague language.

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 the tool does, its primary use case, and a key behavioral note (live execution). Since an output schema is present, it does not need to enumerate response fields. It could mention how to handle cases where both slug and template_id are provided, but that is a minor omission given the schema already explains the alternatives.

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?

Each parameter has a clear description in the schema, including the alternative relationship between 'slug' and 'template_id' ('provide this or template_id') and the optional nature of 'version'. The 'variables' parameter is explained as values bound to template variables. Schema coverage is 100%, so no ambiguity remains.

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 function: execute an API template live and return the full trace of request and response. It also identifies the specific use case (debugging before wiring into a workflow) and differentiates from other tools by focusing on API templates and real execution.

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 'when to use' scenario ('debug a template before wiring it into a workflow') and implies when not to use (after wiring, use a workflow). It could be more explicit about alternatives like preview_dynamic_endpoint, but the guidance is adequate 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.

get_api_templateGet API templateA
Read-onlyIdempotent
Inspect

Get a single api template by slug or id, including the definition body of its current version (published if any, else latest). Use get_api_template_version to read a specific older version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe template slug (provide this or template_id)
template_idNothe template id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
template_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.2/5.0
Behavior4/5

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

Discloses the important version-selection behavior: returns the published version if any, otherwise the latest. Annotations already cover read-only/idempotent safety, and the description adds meaningful retrieval semantics without contradicting them.

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 wording. Key distinctions and version behavior are front-loaded and 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?

Covers the core purpose, the version behavior, and the alternative for older versions. Since output schema is present and annotations cover safety, the description is sufficient for correct use, though it could mention that at least one of slug or template_id should be supplied.

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 already describes both parameters and their mutual exclusivity ('provide this or template_id'). The description adds little beyond the schema, but the version-selection behavior gives some extra context for how the selected template is resolved.

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

Purpose5/5

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

States a specific verb ('get') and resource ('api template'), and clarifies it returns a single template with its current definition body. It distinguishes itself from get_api_template_version for older versions and from list_api_templates by the word 'single'.

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 directs users to get_api_template_version for reading a specific older version, which is a clear when-to-use alternative. It does not explicitly mention list_api_templates for listing, but 'single' plus 'current version' makes the primary use case unambiguous.

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

get_api_template_definition_schemaGet API template definition schemaA
Read-onlyIdempotent
Inspect

Get the JSON Schema an api template definition must satisfy. Fetch this before authoring the definition for create_api_template / create_api_template_version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
json_schemaYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already indicate readOnly and idempotent behavior. The description does not add further details about return format or side effects, but for a simple getter this is acceptable.

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, consisting of two sentences with no redundant information, and the key usage guidance is front-loaded.

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 parameterless getter, the description fully explains the purpose and when to invoke it, leaving no ambiguity 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?

The tool has no parameters, so schema coverage is effectively 100%. The description correctly omits parameter details, meeting the baseline for 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 clearly states the tool retrieves the JSON Schema that an API template definition must satisfy, and it is distinguished from similar definition schema getters by explicitly referencing the create operations (create_api_template / create_api_template_version).

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use the tool ('Fetch this before authoring the definition'), making the intended usage unambiguous.

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

get_api_template_versionGet API template versionA
Read-onlyIdempotent
Inspect

Read back the full stored definition of an api template version by slug or id. Returns the exact definition body that was authored (as a JSON string, so you can parse it to diff or patch and resubmit as a new version) plus its checksum. Omit version to get the latest version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe template slug (provide this or template_id)
versionNospecific version to fetch; omit (0) for the latest version
template_idNothe template id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
definitionYes
content_sha256Yes

TDQS

A4.8/5.0
Behavior5/5

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

The description explains the exact return structure (definition body as JSON string plus checksum) and the optional version behavior. Combined with annotations indicating read-only, idempotent, and non-destructive, the tool's behavior is fully transparent without any 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 concise, using two sentences to convey the purpose, key parameters, and return format without unnecessary detail. It is well-structured and front-loads the primary action.

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?

The description is complete for a read operation, covering what is returned, how parameters affect the result, and the optional version default. The presence of an output schema supplements the description, but the description itself is sufficient for an agent to understand the tool's context and usage.

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?

The schema description covers 100% of parameters, and the description text further clarifies semantics: 'by slug or id' for slug/template_id and 'Omit version to get the latest version' for version. This adds meaning beyond field names and numeric 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 the tool reads back the full stored definition of an api template version, distinguishing it from sibling tools like get_api_template (which likely retrieves the template itself) and get_api_template_definition_schema (which retrieves the schema). It specifies the key parameters (slug or id) and the behavior of omitting version.

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 usage context by explaining the return format (JSON string for diffing/patching) and that omitting version fetches the latest. However, it does not explicitly compare with alternatives or state when to prefer this over get_api_template or get_api_template_definition_schema, which could be inferred but is not explicit.

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

get_appGet appA
Read-onlyIdempotent
Inspect

Get a single app by slug or id. Returns its metadata plus published_manifest — the TYPED selector of its last-published version (membership prefix rules + includes/excludes, and display), so you can read the app's shape from concrete fields. published_manifest is absent when the app is unpublished; to read/edit the raw definition body (draft or any version) use get_app_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe app slug (provide this or app_id)
app_idNothe app id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
descriptionYes
display_nameYes
latest_versionYes
published_manifestNo
last_published_versionYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent traits; description adds context about the published_manifest content and its absence when unpublished, which is useful behavioral detail beyond annotations.

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, no fluff, front-loads the purpose and then adds necessary distinctions, making it well-structured and concise.

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 output schema exists, the description adequately covers the key aspects: what is returned (metadata + published_manifest), when it is absent, and when to use the alternative tool. No significant 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 descriptions already explain slug and app_id as alternatives. The description mentions 'by slug or id' but adds no significant semantic detail 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?

Clearly states it gets a single app by slug or id, and explicitly distinguishes it from get_app_version by noting it returns metadata plus published_manifest, while get_app_version is for raw definition body.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use this tool vs get_app_version (when you need the published manifest vs raw definition body), and notes that published_manifest is absent when unpublished.

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

get_app_definition_schemaGet app definition schemaA
Read-onlyIdempotent
Inspect

Get the JSON Schema an app definition must satisfy: the membership SELECTOR (prefix rules — a slug folder + the member kinds it covers — plus explicit includes/excludes) and display metadata. Fetch this before authoring the definition for create_app / create_app_version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
json_schemaYes

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral traits beyond the safe read nature; it focuses on purpose and content rather than side effects or limitations.

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 primary purpose, and packs useful detail (membership selector, display metadata) without verbosity.

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?

Despite lacking an output schema, the description fully explains what the returned schema contains and when to use the tool, making it contextually complete for an agent.

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

Parameters4/5

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

The tool has zero parameters, so schema coverage is complete by default. The baseline for 0 parameters is 4, and the description does not need to elaborate on parameter behavior.

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 JSON Schema for an app definition, including the membership selector and display metadata, and naturally distinguishes itself from other definition schema tools by specifying 'app'.

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

Usage Guidelines5/5

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

Explicitly instructs to 'Fetch this before authoring the definition for create_app / create_app_version', providing a clear when-to-use directive and differentiating from related create/update operations.

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

get_app_membersGet app membersA
Read-onlyIdempotent
Inspect

Resolve an app's LIVE member set — the concrete resources its selector currently matches. The app stores only rules (prefix rules + includes/excludes); this fans out to each member kind's list and returns the resolved union(prefixes) + includes − excludes as {kind, slug, display_name}. Members are always current (a lens, not a pinned list). Resolves the published version by default; pass version to preview a draft's members before publishing. A kind with too many members to list (a blog's datafiles run to thousands) is NOT enumerated: it is omitted from members entirely and reported under summarized_kinds as a count plus a per-folder rollup, and members_complete is then false — so count can exceed members length. To see the items of a summarized kind, call that kind's own list tool with one of the reported slug_prefix values (e.g. list_datafiles); this tool never pages a whole collection. Use this to see or verify what an app contains.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe app slug (provide this or app_id)
app_idNothe app id (provide this or slug)
versionNoresolve this specific version's selector; omit (0) for the current one (published if the app is published, else the latest draft — so you can preview a draft's members before publishing)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
membersYes
versionYes
members_completeYes
summarized_kindsNo
unresolved_kindsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond that: it explains that members are a live lens, that version resolution defaults to published but can preview drafts, and that summarized kinds are omitted from members with a members_complete flag. It also clarifies the union formula. No contradiction with annotations.

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 relatively long (~200 words) but every sentence addresses a necessary aspect: core purpose, resolution logic, summarization behavior, alternatives, and usage guidance. It is front-loaded with the primary action and well-structured. While it could be tightened, the length is justified by the tool's 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 output schema exists (which would document return fields), the description still covers essential behavioral details: the union formula, summarized kind handling, members_complete flag, and version resolution. It also provides guidance on alternatives and when to use this tool. Nothing an agent needs to invoke it correctly appears missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no new parameter-specific meaning beyond what the schema provides (e.g., the version behavior is already in the schema). It does add context about summarized kinds, but that is output behavior, not parameter semantics. Per the baseline for high coverage, a 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 identifies the tool as resolving an app's live member set and specifies the exact output structure ({kind, slug, display_name}). It explicitly contrasts with other tools (e.g., get_app, list_datafiles) by explaining this is a resolved view based on rules, not a stored list. The purpose is unambiguous and distinct from siblings.

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?

It states precisely when to use the tool: 'Use this to see or verify what an app contains.' It also gives explicit guidance for summarized kinds, directing the agent to call the kind's own list tool with a slug_prefix, and notes this tool never pages a whole collection. This provides clear alternatives and exclusion criteria.

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

get_app_versionGet app versionA
Read-onlyIdempotent
Inspect

Read back the full stored definition of an app version by slug or id. Returns the exact definition body that was authored (as a JSON string, so you can parse it to diff or edit and resubmit as a new version) plus its checksum. Omit version to get the latest version. This is the EDITING view; get_app returns the typed published manifest for reading.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe app slug (provide this or app_id)
app_idNothe app id (provide this or slug)
versionNospecific version to fetch; omit (0) for the latest version

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
definitionYes
content_sha256Yes

TDQS

A4.7/5.0
Behavior5/5

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

The description confirms the read-only nature by saying 'Read back' and 'Returns', consistent with the readOnlyHint annotation. It adds details about returning the authored JSON string and checksum, providing transparency beyond the annotations.

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

Conciseness5/5

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

The description is concise, starting with the primary action and then providing key details and the comparison with get_app. No redundant information, well-organized.

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 that there is no output schema, the description explains what is returned: the exact definition body as a JSON string and checksum. It also indicates the editing view and the alternative, making it complete for an agent's decision.

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 parameter descriptions in the schema already cover the meaning and optionality of slug, app_id, and version. The tool description does not add new information about parameters, so it relies on the schema's 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 'Read back the full stored definition of an app version by slug or id' and explains the return value, distinguishing it from get_app. 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 Guidelines5/5

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

It explicitly contrasts with get_app: 'This is the EDITING view; get_app returns the typed published manifest for reading.' It also instructs on omitting version to get the latest, guiding when 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.

get_assetGet assetA
Read-onlyIdempotent
Inspect

Get a single published asset by slug or media id, including its absolute CDN URL, content type, and size. Use this to confirm an asset exists and fetch the URL to embed.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe asset slug (provide this or media_id)
media_idNothe asset's media id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
slugYes
statusNo
media_idYes
created_atNo
size_bytesNo
updated_atNo
content_typeNo
display_nameNo
original_filenameNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior; the description adds that only published assets are returned and that the call can confirm existence. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences with no fluff: states the operation, key output fields, and a concrete use case. Information is front-loaded and easy to scan.

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 lookup-by-identifier tool, the description provides enough context to use it correctly: target, identifier options, and purpose. The output schema exists, so detailed return fields are not required in the 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?

Both parameters have descriptions and the description makes clear they are alternative lookup keys. However, the schema does not enforce one-of/either-or, and no format or validation details are provided, so the description adds little 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?

Clearly specifies the action ('Get'), target ('single published asset'), and key result ('including absolute CDN URL, content type, and size'). The 'single' qualifier distinguishes it from list-type siblings such as list_assets.

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 when to use the tool: to confirm an asset exists and fetch a URL to embed. It does not mention alternatives or state when not to use it, so it falls just short of full guidance.

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

get_custom_domainGet custom domainA
Read-onlyIdempotent
Inspect

Get a single custom domain by hostname: its lifecycle status, the DNS records the customer must publish, its routing (slug_prefix + root_endpoint), and any human-facing check/certificate messages. Use this to answer 'is my domain live yet?' and to re-display the DNS records for a pending domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesthe custom domain hostname, e.g. shop.customer.com

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
hostnameYes
dns_recordsNo
slug_prefixNo
verified_atNo
activated_atNo
display_nameNo
root_endpointNo
last_check_messageNo
cert_status_messageNo

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already indicate readOnlyHint and idempotentHint, so the description adds limited behavioral detail beyond the 'get' verb and what fields are returned. No contradiction with annotations.

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?

Concise two-sentence description that front-loads the purpose, lists the returned data, and closes with a practical use case. 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?

Sufficient for a caller to understand what the tool does and when to use it. It does not specify exact status values or response format, but these are not necessary for invoking the tool 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?

The single parameter hostname is described with an example in both the schema and the description, making its meaning fully clear. The description adds context but the 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 it gets a single custom domain by hostname and lists the specific information returned (lifecycle status, DNS records, routing, messages), distinguishing it from list_custom_domains and other 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?

Explicitly provides use cases: answering 'is my domain live yet?' and re-displaying DNS records for a pending domain. Does not explicitly mention when not to use, but the specific guidance is clear.

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

get_datafileGet datafileA
Read-onlyIdempotent
Inspect

Get a single datafile by slug or id, including its JSON content and last published CDN path.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe datafile slug (provide this or datafile_id)
datafile_idNothe datafile id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
jsonNo
slugYes
schema_idNo
datafile_idYes
descriptionYes
display_nameYes
content_sha256No
last_published_pathNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to repeat these. It adds value by specifying the response includes JSON content and the last published CDN path, which is beyond the schema and annotations. 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?

A single, front-loaded sentence with no fluff. It states the verb and resource first, then the specific return details. Every word contributes.

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 get-by-identifier tool with an output schema and full annotation coverage, the description is complete. It conveys the essential purpose and return content, and the schema covers parameter requirements.

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 are well documented in the schema with 'provide this or the other' semantics. The description's 'by slug or id' adds no new meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Get'), a resource ('single datafile'), and the distinguishing detail that it returns JSON content and the CDN path. This clearly differentiates it from list_datafiles and other datafile 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 makes the context clear (fetching a single datafile) but does not explicitly mention alternatives or exclusions. An agent can infer when to use it, but it lacks explicit guidance like 'for multiple datafiles, use list_datafiles'.

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

get_dynamic_endpointGet dynamic endpointA
Read-onlyIdempotent
Inspect

Get a single dynamic endpoint by slug or id, including its public URL and the definition body of its current version (published if any, else latest). Use get_dynamic_endpoint_version to read a specific older version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe endpoint slug (provide this or endpoint_id)
endpoint_idNothe endpoint id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
public_urlNo
descriptionYes
endpoint_idYes
content_typeYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds the version selection logic (published if any, else latest) and specifies the return payload (public URL and definition body), which goes beyond annotations and informs the agent of what to expect.

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 fluff. The core purpose is front-loaded, and the alternative tool is mentioned immediately after. Every word earns its place.

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 read-only tool with two optional parameters and an existing output schema, the description fully covers what is returned and how the version is selected. Nothing critical is missing for an agent to invoke it 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 description coverage is 100%, with both parameters fully documented in the schema ('provide this or endpoint_id' and 'provide this or slug'). The description merely reiterates the 'by slug or id' concept without adding new semantics. Baseline 3 is appropriate because 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 identifies the action (get), the resource (dynamic endpoint), the identification methods (slug or id), and the return contents (public URL and definition body). It also distinguishes itself from the sibling get_dynamic_endpoint_version by specifying it returns the current version. This 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 Guidelines5/5

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

The description explicitly states 'Use get_dynamic_endpoint_version to read a specific older version,' which tells the agent when not to use this tool and directs it to the correct alternative. This is clear guidance for selection.

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

get_dynamic_endpoint_definition_schemaGet dynamic endpoint definition schemaA
Read-onlyIdempotent
Inspect

Get the JSON Schema a dynamic endpoint definition must satisfy. Fetch this before authoring the definition for create_dynamic_endpoint / create_dynamic_endpoint_version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
json_schemaYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description adds behavioral context by instructing to fetch the schema before authoring, which is consistent with a read-only operation. 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 sentence that efficiently conveys the tool's purpose and usage without any fluff or redundant 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?

The description tells the user exactly what they will get (the JSON Schema) and when to use it (before authoring a definition). Since no output schema is provided, the description sufficiently covers the return value and 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 is an empty object with no parameters, so schema coverage is 100% and there is nothing for the description to add. 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 tool retrieves the JSON Schema for dynamic endpoint definitions, using the specific verb 'Get' and resource 'dynamic endpoint definition schema'. It distinguishes itself from sibling get_*_definition_schema tools by explicitly naming the dynamic endpoint 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 to fetch the schema before authoring definitions for create_dynamic_endpoint / create_dynamic_endpoint_version. While it doesn't name alternative tools, the specific usage condition is clear and actionable.

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

get_dynamic_endpoint_versionGet dynamic endpoint versionA
Read-onlyIdempotent
Inspect

Read back the full stored definition of a dynamic endpoint version by slug or id. Returns the exact definition body that was authored (as a JSON string, so you can parse it to diff or patch and resubmit as a new version) plus its checksum. Omit version to get the latest version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe endpoint slug (provide this or endpoint_id)
versionNospecific version to fetch; omit (0) for the latest version
endpoint_idNothe endpoint id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
definitionYes
content_sha256Yes

TDQS

A4.8/5.0
Behavior5/5

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

The description goes beyond the readOnly/destructive/idempotent annotations by specifying that the return value is a JSON string of the exact definition plus a checksum, and that omitting version fetches the latest. This gives a clear behavioral contract.

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) without redundant wording. It front-loads the primary purpose, then adds return details and a usage note, making it easy to parse.

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 output schema exists, the description sufficiently covers what is returned (exact definition as JSON, checksum) and the version behavior. No critical information seems missing for a correct invocation.

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?

The schema already describes all three parameters, and the description adds essential context: 'by slug or id' clarifies the mutual exclusivity, and 'Omit version to get the latest' explains the special meaning of omitting version. This enriches the raw 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 reads back the full definition of a dynamic endpoint version by slug or id, and explicitly mentions returning the exact authored definition plus checksum. It distinguishes itself from related tools like get_dynamic_endpoint and get_dynamic_endpoint_definition_schema by focusing on version retrieval.

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 usage hints such as providing slug or id, and omitting version to get the latest. However, it does not explicitly contrast with sibling tools like get_dynamic_endpoint or get_dynamic_endpoint_definition_schema, which could clarify when to choose this tool over them.

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

get_guideGet guideA
Read-onlyIdempotent
Inspect

Fetch a Tessryx guide by topic (markdown). Use list_guides to see the available topics. Reach for the relevant guide before authoring to avoid trial-and-error.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesThe guide topic to fetch (see list_guides). One of: overview, build-a-page, build-a-blog, authoring, workflows, datafiles, api-templates, endpoints, apps, schemas, schedules, custom-domains, dependencies

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYes
topicYes
contentYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by specifying the output is markdown and that it serves as reference material to avoid trial-and-error, which is context beyond the annotations. No contradiction found.

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 the core action and format. The reference to list_guides and the authoring use case are essential guidance, not padding.

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 single-parameter read-only tool with an output schema, the description fully covers discovery (via list_guides), when to use it, and the return format. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% with a complete enum and description for the 'topic' parameter. The description only repeats 'by topic' without adding new meaning, so it stays at the baseline 3 for fully documented 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 states a specific verb ('Fetch'), resource ('Tessryx guide'), and the key parameter ('by topic'), and explicitly notes the markdown format. It distinguishes from the sibling list_guides by clarifying it fetches a guide's content rather than listing topics.

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?

It explicitly instructs the agent to use list_guides to see available topics and provides a clear when-to-use context ('before authoring to avoid trial-and-error'). This both directs to an alternative and explains the tool's purpose in the authoring workflow.

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

get_resource_graphGet resource graphA
Read-onlyIdempotent
Inspect

Browse how resources connect, in either direction. direction 'depends_on' (default) shows what this resource NEEDS, following 'depth' hops (default 3). direction 'depended_on_by' shows what would BREAK if you changed or deleted it — transitive and not depth-limited, since the chain (api template → the workflows calling it → the endpoints running those) is the answer; use it before a delete or a breaking edit. Each edge carries the reference text as authored, whether it names @published or @latest, and what that resolves to right now, so version drift is visible and not just connectivity. Check unscanned_kinds on a reverse result: a schema's referrers include every datafile and are too expensive to enumerate, so an empty answer there does NOT mean nothing depends on it. To find out whether something is broken rather than what it connects to, use analyze_resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesthe kind of resource to start from: workflow, dynamic_endpoint, api_template, datafile, schema, schedule, secret, custom_domain
depthNohow many hops to follow (default 3). This is a browsing control for looking around; analyze_resource always follows chains to the end rather than stopping at a depth
resourceYesslug of the resource, optionally with a version suffix (e.g. 'blog/render' or 'blog/render@latest'); a bare slug means @published. For a custom_domain this is the hostname
directionNowhich way to walk: 'depends_on' (default — what this resource needs) or 'depended_on_by' (what would break if you changed or deleted it). depended_on_by is transitive: deleting an api template surfaces the workflows that call it AND the endpoints that run those workflows

Output Schema

ParametersJSON Schema
NameRequiredDescription
rootYes
edgesYes
nodesYes
truncatedNo
depth_exceededNo
scan_truncatedNo
unscanned_kindsNo
aggregate_referrersNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds valuable caveats about depended_on_by being transitive and the unscanned_kinds warning for reverse results, which go beyond the annotations.

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

Conciseness4/5

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

Each sentence adds value, but there is some redundancy: 'transitive and not depth-limited' is later repeated as 'depended_on_by is transitive', and 'version drift is visible' echoes 'what that resolves to right now'. Could be tightened without losing 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?

Covers the main use cases (pre-delete checks), explains transitive traversal, addresses the 'empty result does not mean no dependencies' caveat for unscanned kinds, and points to analyze_resource for breakage detection. This is complete for a graph traversal tool.

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 already covers all parameters with descriptions, but the description adds meaningful context: depth is a browsing control, resource can have version suffixes, bare slug means @published, and custom_domain uses hostname. This goes beyond the schema's basic 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?

Clearly states it browses resource connections and distinguishes from analyze_resource by focusing on the graph structure rather than breakage detection. The verb 'browse' and object 'how resources connect' are specific and unambiguous.

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

Usage Guidelines5/5

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

Explicitly says to use it before delete or breaking changes, and provides the alternative analyze_resource for checking if something is broken. This leaves no ambiguity about when to choose this tool over siblings.

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

get_scheduleGet scheduleA
Read-onlyIdempotent
Inspect

Get a single schedule by slug or id, including its cron status (last_published_version, next_run_at, last_run_id) and the definition body of its current version (published if any, else latest). Use get_schedule_version to read a specific older version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe schedule slug (provide this or schedule_id)
schedule_idNothe schedule id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
last_run_atNo
last_run_idNo
next_run_atNo
schedule_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and non-destructive, so the tool's safety profile is clear. The description adds useful context about the returned data structure (cron status and version body) without contradicting the annotations.

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

Conciseness5/5

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

The description is two sentences, tightly packed with relevant information. It states the purpose, the returned fields, the version selection logic, and a pointer to the sibling tool, all without redundancy.

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 presence of an output schema (noted in context), the description doesn't need to enumerate return fields. It covers the key nuances of version selection and mentions the cron status fields, which is sufficient for the agent to understand the tool's behavior.

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 descriptions cover both parameters and explicitly note that one of them should be provided, achieving 100% coverage. The description reinforces this by saying 'by slug or id', confirming the relationship, though it doesn't add much 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 uses the specific verb 'Get' and identifies the resource 'schedule'. It differentiates from get_schedule_version by explicitly directing users to that tool for older versions, which clarifies its scope.

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?

It explicitly mentions when to use an alternative: 'Use get_schedule_version to read a specific older version.' This provides clear guidance on tool selection. It also clarifies the default behavior (published if any, else latest) which helps the agent decide when this tool is appropriate.

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

get_schedule_definition_schemaGet schedule definition schemaA
Read-onlyIdempotent
Inspect

Get the JSON Schema a schedule definition must satisfy (workflow reference; recurrence as EITHER a 5-field cron + IANA timezone OR an 'every N minutes/hours' interval; optional static input). Fetch this before authoring the definition for create_schedule / create_schedule_version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
json_schemaYes

TDQS

A4.5/5.0
Behavior4/5

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

The description uses safe, read-only language ('Get' and 'Fetch') and is fully consistent with the annotations (readOnlyHint, idempotentHint). It does not discuss side effects, but the annotations already cover safety, and the wording reinforces a non-mutating 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 a single, information-dense sentence with no filler or redundant wording. It front-loads the primary purpose and packs the essential schema constraints into parentheticals without losing clarity.

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 parameterless getter, the description is complete: it explains what is returned, why it matters, and when to call it. The expected output is self-evident from the tool name and description, so no additional context is needed.

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

Parameters4/5

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

The tool takes no parameters, so there are no parameter semantics to document. The description adds useful context about the returned schema's content, exceeding what the empty input schema alone 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 clearly identifies the action ('Get') and resource ('JSON Schema a schedule definition must satisfy'), and even summarizes the schema's key constraints. The intended output and purpose are unambiguous, and the tool is well differentiated by 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 Guidelines4/5

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

It explicitly states when to use the tool ('Fetch this before authoring the definition for create_schedule / create_schedule_version'). It does not explicitly name alternative definition-schema tools, but the resource-specific naming makes the intended context clear.

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

get_schedule_versionGet schedule versionA
Read-onlyIdempotent
Inspect

Read back the full stored definition of a schedule version by slug or id. Returns the exact definition body that was authored (as a JSON string, so you can parse it to diff or patch and resubmit as a new version) plus its checksum. Omit version to get the latest version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe schedule slug (provide this or schedule_id)
versionNospecific version to fetch; omit (0) for the latest version
schedule_idNothe schedule id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
definitionYes
content_sha256Yes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds useful detail about returning the exact definition body as a JSON string plus checksum, but does not cover error or auth behavior; the annotation burden is reduced.

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 compact and front-loaded, with no filler. It conveys the core behavior, use case, and version semantics in two efficient sentences.

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

Completeness5/5

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

An output schema exists, so return fields are already specified. The description supplements this with checksum and JSON-string details, and the version omission behavior is clearly stated. No important context is missing.

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

Parameters3/5

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

Schema descriptions already cover slug, schedule_id, and version semantics, so the added parameter meaning is minimal. The description reinforces that version 0 means latest but does not substantially go 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?

Clearly states it reads back the full stored definition of a schedule version, distinguishing it from listing versions or fetching schedule metadata. The verb 'read back' and object 'schedule version' are precise and specific.

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

Usage Guidelines5/5

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

Explicitly identifies the intended use case (diff, patch, resubmit as a new version) and explains the behavior when version is omitted. This helps the agent choose this tool over list_schedule_versions or get_schedule.

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

get_schemaGet schemaA
Read-onlyIdempotent
Inspect

Get a single schema by slug or id, including the JSON Schema body of its current version — use it to author a datafile that conforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe schema slug (provide this or schema_id)
schema_idNothe schema id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
schema_idYes
descriptionYes
json_schemaNo
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral detail about the return content, specifically that the JSON Schema body of the current version is included, and that lookup is by slug or id. No contradictions with annotations.

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, well-structured sentence that front-loads the action and resource, then states the return content and purpose. 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 simple two-parameter read operation with an output schema present, the description gives enough context to invoke correctly. It clearly identifies the resource, lookup keys, and primary use case, though it leaves minor edge-case handling (e.g., both args provided) to the 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?

The input schema already documents both parameters and their mutual-exclusion relationship. The description restates 'by slug or id' but adds little beyond the schema, so it meets the baseline without significantly enriching parameter 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 a specific action ('Get a single schema'), the resource ('schema'), the lookup keys ('slug or id'), and the key return content ('JSON Schema body of its current version'). It also gives a concrete purpose ('use it to author a datafile that conforms'), which distinguishes it from list_schemas and other get_* tools.

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

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: when you need the current JSON Schema to author a conforming datafile. It does not explicitly contrast with alternatives like list_schemas or version-specific getters, but the singular 'single schema' and 'current version' wording imply the intended scope.

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

get_secretGet secretA
Read-onlyIdempotent
Inspect

Get a single secret by slug or id (metadata only — the value is never returned; value_preview is a non-sensitive hint such as the last few characters). To add or change a secret's value, send the user to https://tessryx.io/dashboard/secrets; it cannot be set through this assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe secret slug (provide this or secret_id)
secret_idNothe secret id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
secret_idYes
created_atYes
updated_atYes
descriptionYes
display_nameYes
value_previewNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent; the description adds important transparency that the actual secret value is never returned and that value_preview is non-sensitive, which goes beyond the annotations.

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

Conciseness5/5

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

Two concise sentences convey the core behavior, the return restriction, and the alternative for mutations without unnecessary detail.

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 is sufficient for correct usage given the output schema exists, and it clarifies the non-sensitive nature of value_preview. It could be slightly more explicit about the need to provide one of the two identifiers.

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?

Parameter descriptions are present and clarify the either/or relationship between slug and secret_id, but the schema marks both as optional without requiring at least one, leaving a potential ambiguity about calling with neither.

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 gets a single secret by slug or id, distinguishing it from list_secrets and other tools. The metadata-only restriction further clarifies its exact 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?

Implicitly indicates when to use it for a single secret and explicitly points users to the dashboard for creating or changing secrets, but does not explicitly contrast with list_secrets for listing multiple secrets.

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

get_workflowGet workflowA
Read-onlyIdempotent
Inspect

Get a single workflow by slug or id, including the definition body of its current version (published if any, else latest) and its latest/last-published version numbers. Use get_workflow_version to read a specific older version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe workflow slug (provide this or workflow_id)
workflow_idNothe workflow id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
workflow_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds meaningful behavioral detail: it returns the definition body of the current version (published if any, else latest) and version numbers, clarifying exactly what data the agent will receive. This goes beyond the annotations without contradicting them.

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 primary function is front-loaded, and the alternative is provided immediately after. Perfectly sized for quick comprehension.

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 read-only tool with an output schema (not shown but indicated), the description covers the essential return content and points to the sibling for older versions. No critical gaps for an agent to call this correctly; annotations cover safety, schema covers 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?

The input schema already describes both parameters (slug and workflow_id) with 100% coverage. The description reinforces that the tool accepts 'slug or id' but adds no new semantic detail beyond the schema. Baseline 3 is appropriate when schema fully documents 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 states a specific verb ('Get'), a clear resource ('single workflow'), and adds distinguishing details: it retrieves the current version's definition body and version numbers, and explicitly contrasts with get_workflow_version. This makes its purpose unmistakable and distinct from sibling get_* 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 explicitly tells the agent when to use an alternative: 'Use get_workflow_version to read a specific older version.' This provides clear routing guidance and implies the appropriate context for this tool (current version retrieval). No further conditions are needed.

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

get_workflow_definition_schemaGet workflow definition schemaA
Read-onlyIdempotent
Inspect

Get the JSON Schema a workflow definition must satisfy. Fetch this before authoring the definition for create_workflow / create_workflow_version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
json_schemaYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful context that fetching the schema is a preparatory step, but does not describe any additional behavioral side effects or 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?

Two concise sentences with no filler. The main purpose and the usage context are front-loaded and immediately actionable.

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 and the presence of clear annotations, the description is complete enough. It names the resource, the purpose, and the relevant authoring operations an agent would need.

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

Parameters4/5

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

The tool has no parameters, so no parameter description is needed. The baseline of 4 applies and the description does not need to add parameter-specific 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 it retrieves the JSON Schema for workflow definitions, distinguishing it from get_workflow and related workflow tools. Explicitly ties it to create_workflow / create_workflow_version, making the resource and 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?

Provides explicit when-to-use guidance: fetch before authoring a workflow definition for create_workflow or create_workflow_version. This makes the intended workflow context clear among many sibling tools.

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

get_workflow_runGet workflow runA
Read-onlyIdempotent
Inspect

Get the stored record of a past workflow run by run id: status, content_type, and the output (decoded as a string; output_truncated is true when the stored output was sampled down). Runs from a LIVE ENDPOINT SERVE keep only the first few KB of the page — re-run or preview the endpoint to see a whole render. Runs you triggered (run_workflow, preview) store their output in full.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesthe run id returned by run_workflow

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
outputNo
run_idYes
statusYes
messageNo
workflow_idYes
content_typeYes
output_truncatedNo
workflow_versionYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses specific behavioral details: live endpoint serve runs store only the first few KB, runs triggered via run_workflow/preview store full output, and the output is decoded as a string with an output_truncated flag. This significantly enhances transparency.

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

Conciseness5/5

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

The description is concise, with three sentences each adding value: the main purpose, truncation behavior for live endpoint runs, and full storage for triggered runs. No redundant or extraneous 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?

For a tool with a single parameter and an output schema, the description covers the purpose, returned fields, and important caveats about output truncation. It is sufficiently complete for an agent to decide when and how to use 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?

The schema already describes run_id as 'the run id returned by run_workflow', and the description adds no further parameter details. With 100% schema coverage, 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 clearly states the tool retrieves a stored workflow run by run ID and lists the key fields returned (status, content_type, output). It distinguishes this from sibling list/get tools by focusing on past run records.

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 usage context by explaining that runs from live endpoint serves have truncated output and suggests re-running or previewing to get full output. This gives some guidance on when alternatives might be more appropriate, though it does not explicitly compare with list_runs or other run-related getters.

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

get_workflow_run_tracesGet workflow run tracesA
Read-onlyIdempotent
Inspect

Get the full per-step execution trace of a run by run id (paged). Each step lists its blocks with the input each consumed and the output it produced, plus any error_message, and the variable scope captured at that step. Use this to debug why an expression or block produced the wrong value. Large captured values are shortened, with a marker saying so: a scope entry may point at the block output beside it rather than repeat it (the value is in the same trace). On UNATTENDED runs only — a live endpoint serve, a schedule falling due — text copied verbatim from the definition (a literal expression) is also replaced by its path there; read it with get_workflow_version. Those runs are shortened harder overall too, so to capture a value in full, re-run it yourself (run_workflow / preview_dynamic_endpoint / run_schedule_now) — runs you trigger keep everything, literals included. A loop block, and an llm block with tools (an agent), lists iterations: each loop iteration or agent turn with the blocks it ran (iterations_total is how many actually ran; a long run keeps the first and last and may drop some between). For an agent turn the first block is an llm block recording that one model call — its output carries stop_reason, input/output tokens, tool_calls and the start of the reply, and started_at/finished_at give how long the call took — followed by the tools it called.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesthe run id returned by run_workflow
page_sizeNomaximum number of step traces to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsYes
next_page_tokenYes

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the readOnly/idempotent/destructive annotations by disclosing concrete behaviors: paged step traces, shortened large values, harder truncation on UNATTENDED runs, literal replacement by paths, and special loop/agent iteration structures with token counts and stop_reason. These are exactly the kind of non-obvious behaviors an agent needs to interpret results correctly. No contradiction with annotations was found.

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?

Though lengthy, the description is front-loaded with the core purpose and then introduces details in a logical order: value shortening, unattended-run differences, remediation advice, loops/agents. Every sentence adds non-redundant behavioral information, so the size is justified and nothing could be cut without losing value.

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 moderately complex tool with an output schema, the description covers all the non-obvious semantics an agent would need: per-step blocks, consumed inputs, produced outputs, error_message, variable scope, truncation markers, literal paths, pagination, and iteration/turn details. The presence of an output schema reduces the need to describe return values, and this description goes far beyond that minimum.

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 and already describes run_id, page_size, and page_token with meaningful text. The description reinforces that run_id refers to a run from run_workflow and that paging applies to steps, but it adds little parameter-specific meaning beyond the schema. This is the baseline for 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 opens with an explicit verb and resource: 'Get the full per-step execution trace of a run by run id (paged)', which clearly identifies what the tool does. It also narrows the intent to debugging by stating 'Use this to debug why an expression or block produced the wrong value', making it distinct from related run- and workflow-level 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?

It explicitly states when to use the tool ('Use this to debug why an expression or block produced the wrong value') and provides practical alternatives for different needs, such as reading literals with get_workflow_version and re-running to capture full values with run_workflow, preview_dynamic_endpoint, or run_schedule_now. This gives the agent clear routing guidance rather than leaving usage to inference.

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

get_workflow_versionGet workflow versionA
Read-onlyIdempotent
Inspect

Read back the full stored definition of a workflow version by slug or id. Returns the exact definition body that was authored (as a JSON string, so you can parse it to diff or patch and resubmit as a new version) plus its content_sha256. Omit version to get the latest version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe workflow slug (provide this or workflow_id)
versionNospecific version to fetch; omit (0) for the latest version
workflow_idNothe workflow id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
definitionYes
content_sha256Yes

TDQS

A4.3/5.0
Behavior4/5

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

The description aligns with the readOnlyHint, idempotentHint, and destructiveHint annotations, and adds useful behavioral detail about the returned JSON string and content_sha256. It does not contradict the annotations, though it does not discuss potential errors or edge cases.

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 wording. It front-loads the main purpose and keeps all additional details relevant and compact.

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 no required parameters and an existing output schema, the description provides sufficient context: how to identify the version, what is returned, and the latest-version behavior. It does not omit details needed for correct 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 descriptions already cover all 3 parameters with 100% coverage. The description reinforces that slug or id can be used and that omitting version returns the latest, but it adds little new parameter 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?

The description states a specific verb ('Read back') and resource ('workflow version'), and distinguishes by explaining the exact definition body plus content_sha256. It clearly identifies the lookup by slug or id and version behavior, differentiating it from general workflow getters.

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 clear context for when to use the tool: retrieving an exact workflow version definition for diffing, patching, or resubmitting, and explains version omission for the latest. It does not explicitly name alternative tools or when-not-to-use cases, so it falls slightly short of a 5.

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

list_api_templatesList API templatesA
Read-onlyIdempotent
Inspect

List the api templates belonging to the authenticated tenant. An api template is a reusable, parameterized HTTP or gRPC request a workflow invokes to reach an external system.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of templates to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return templates whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
templatesYes
next_page_tokenYes

TDQS

A4/5.0
Behavior4/5

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

The annotations already indicate read-only and idempotent behavior, so the description doesn't need to restate that. It adds useful context about what an api template is, which helps the agent understand the resource being listed. No side effects are mentioned, but the annotations cover that.

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 brief and to the point, with two sentences. It front-loads the primary action and scope, then adds a helpful definition. No unnecessary 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 list operation, the description provides enough context: what the resource is and the tenant scope. An output schema is present, so return structure is defined elsewhere. It doesn't mention pagination default or ordering, but that is not essential.

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 parameter descriptions in the schema are clear and cover all three parameters: page_size, page_token, and slug_prefix. The tool description doesn't add further parameter detail, but the schema descriptions are sufficient. Since schema coverage is 100%, the description meets the 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 (List), the resource (api templates), and the scope (belonging to the authenticated tenant). It also defines what an api template is, removing ambiguity. The verb and resource are specific enough to distinguish from other 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 does not explicitly mention alternative tools or conditions for when to use this tool versus others, such as get_api_template or list_dynamic_endpoints. It lacks guidance on trade-offs or use cases.

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

list_appsList appsA
Read-onlyIdempotent
Inspect

List the apps belonging to the authenticated tenant. An APP is the foremost organizing container — a versioned, publishable grouping of resources (schemas, datafiles, api templates, workflows, dynamic endpoints, schedules) that share a slug-folder prefix, e.g. everything under 'storefront/'. When building a new page or a shared-API bundle, work inside an app: pick its slug prefix, then author each resource under that prefix so it is captured automatically. Returns summaries; fetch one with get_app.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of apps to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return apps whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
appsYes
next_page_tokenYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds that it lists apps for the authenticated tenant and returns summaries, which are behavioral traits not in annotations. It does not discuss pagination or rate limits, but given the annotations, the additional context is valuable.

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 front-loaded with the purpose and then provides useful domain context about apps. The explanation of an app is helpful for agents unfamiliar with the concept, and the note about summaries and get_app is concise. It is appropriately sized, not overly verbose.

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 an output schema and annotations, the description covers the essential usage: what it lists, the scope, the concept of an app, and a pointer to get_app for details. It is complete for a list operation, and the pagination is implied by the page_token parameter. No missing critical information.

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 description explains the concept of a slug-folder prefix, which relates to the slug_prefix parameter, but does not add syntax or formatting details beyond the schema. It adds marginal domain context, so a 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 'List the apps belonging to the authenticated tenant', specifying the verb, resource, and scope. It distinguishes from get_app by noting it returns summaries and that get_app fetches one. It also explains the app concept, which differentiates it from other list tools like list_app_versions.

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 that when building a new page or shared-API bundle, one works inside an app, which implies list_apps is used to discover existing apps. It also directs to get_app for details, but does not explicitly contrast with other list tools or state when not to use it. There is clear context but no explicit exclusions.

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

list_app_versionsList app versionsA
Read-onlyIdempotent
Inspect

Get the earliest and latest version numbers of an app (by slug or id), to know the range you can fetch with get_app_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe app slug (provide this or app_id)
app_idNothe app id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
latest_versionYes
earliest_versionYes

TDQS

A4/5.0
Behavior3/5

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

The description is straightforward and consistent with the readOnly annotation, but it does not disclose additional behavior such as return format, error cases, or how the earliest/latest values are determined. The annotation already covers the read-only nature.

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 directly states the function and its purpose, with no unnecessary words or repetition.

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 version-range lookup, the description provides sufficient context, especially by referencing get_app_version. It does not need to explain the return value in detail since the tool's purpose is clear and the domain is narrow.

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 fully documents both parameters (slug and app_id) with descriptive text, and the description reinforces the by-slug-or-id usage. There is no additional parameter nuance 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 gets the earliest and latest version numbers of an app, and distinguishes it from get_app_version by framing the result as the range to fetch individual versions.

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 indicates the intended use case ('to know the range you can fetch with get_app_version') and implicitly guides when to use it relative to get_app_version, though it does not explicitly contrast with other sibling tools.

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

list_assetsList assetsA
Read-onlyIdempotent
Inspect

List the binary assets (images, files) this tenant has published to the media CDN, with each asset's absolute URL. Supports a slug-prefix browse and pagination. Assets are produced by a workflow's asset block; use this to see what has already been published and to get an asset's URL to embed in a page. If the image or file you need is not here, send the user to https://tessryx.io/dashboard/media to upload it — you cannot upload a binary the user has not given you.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of assets to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return assets whose slug starts with this prefix (hierarchical browse, e.g. 'products/hero')
exact_slug_prefixNoif true, only return assets directly under slug_prefix (not deeper descendants)
include_level_prefixesNoif true, also return the child folder prefixes at the current level

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetsYes
next_page_tokenNo
current_level_prefixesNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds useful context: assets are produced by a workflow's asset block, and the tool supports slug-prefix browsing and pagination. It also clarifies a limitation ('you cannot upload a binary the user has not given you'), which adds behavioral transparency beyond the annotations.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose and URL retrieval, followed by usage guidance and a fallback. Every sentence earns its place—no redundancy or fluff.

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?

With an output schema present and annotations covering safety, the description covers the tool's purpose, when to use it, the source of assets, and a clear limitation. There is nothing an agent needs to call it correctly that is missing.

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

Parameters3/5

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

The schema provides 100% coverage with descriptions for all five parameters, including pagination and slug-prefix behavior. The description reiterates these concepts but does not add new parameter-specific details beyond what the schema already states. Per the rubric, baseline 3 is appropriate when schema coverage is high.

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 a specific verb ('List') and resource ('binary assets... published to the media CDN'), and clarifies the scope (tenant, media CDN). It also differentiates from siblings like get_asset by focusing on the plural listing and URL retrieval. The purpose is unambiguous and distinct.

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?

It explicitly says when to use this tool ('use this to see what has already been published and to get an asset's URL to embed in a page') and when not to ('If the image or file you need is not here, send the user to... to upload it'), providing a clear alternative action. This is excellent guidance.

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

list_custom_domainsList custom domainsA
Read-onlyIdempotent
Inspect

List the custom domains claimed by the authenticated tenant. A custom domain serves the tenant's dynamic endpoints on the customer's own hostname (shop.customer.com) instead of the default .tessryx.app/ URL. Optionally filter by lifecycle status (PENDING, VERIFIED, CERT_PENDING, ACTIVE).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoonly return domains in this lifecycle status: PENDING, VERIFIED, CERT_PENDING, or ACTIVE; omit for all
page_sizeNomaximum number of domains to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainsYes
next_page_tokenYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds context about what a custom domain is and the status filter, but does not disclose additional behaviors such as pagination or response format. Since the schema includes page_size and page_token, pagination is implied but not explicitly mentioned. Given annotations, the description contributes limited additional behavioral 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 the first sentence stating the action and scope clearly. The second adds a helpful explanation of custom domains and the optional filter. It is front-loaded, concise, and contains no unnecessary words.

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?

The tool is simple with no required parameters, read-only, and idempotent. The description covers the purpose, resource definition, and filter. The schema and output schema provide pagination and response details. Nothing essential for an agent to call this tool correctly is missing.

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

Parameters3/5

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

Schema descriptions cover all three parameters fully: status enumerates values and 'omit for all', page_size and page_token are clearly explained. The description adds only a brief mention of the status filter, which is redundant with the schema. With 100% schema coverage, the baseline of 3 is appropriate; the description does not add new semantic 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?

The description clearly states the action (List), resource (custom domains), and scope (authenticated tenant). It also explains what a custom domain is, which distinguishes it from other domain-related tools like get_custom_domain (singular) and create/update/delete. 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?

The description does not explicitly mention alternatives or when not to use this tool. The naming and purpose imply it is for listing, and the presence of get_custom_domain suggests using that for a single domain, but this is not stated. The optional status filter provides some usage context, but there is no explicit routing to alternatives.

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

list_datafilesList datafilesA
Read-onlyIdempotent
Inspect

List the datafiles belonging to the authenticated tenant. A datafile is a published JSON object served from a CDN — the data layer a page can fetch and hydrate from.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of datafiles to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return datafiles under this FOLDER path (matched on whole '/'-delimited segments, NOT as a raw string prefix), e.g. 'blog/posts' (trailing slash optional) returns everything under blog/posts/. A partial segment matches nothing — 'blog/2026-08' will NOT match 'blog/2026-08-01-hello'; use the full segment(s)
include_totalNoif true, also return total_count: the number of datafiles at this folder level (direct children of slug_prefix, or the tenant total when no prefix). Exact-as-full-total for a flat collection like a blog's posts under one prefix; a per-level count when nested. Use it for 'N items' / 'page X of Y'

Output Schema

ParametersJSON Schema
NameRequiredDescription
datafilesYes
total_countNo
next_page_tokenYes

TDQS

A4.3/5.0
Behavior4/5

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

Behavioral annotations already cover read-only, idempotent, non-destructive, and closed-world semantics, so the bar is lower. The description adds context about tenant scoping and the CDN data-layer purpose without contradicting or overpromising 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 is two tight sentences: the first states the operation and the second explains the domain concept. No filler or redundant wording is present.

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 low complexity, complete parameter schema, and existing output schema, the description supplies the needed domain context (what a datafile is and why it matters). It does not need to explain return values because the output schema already handles that.

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 descriptions cover all four parameters at 100%, including page_size, page_token, slug_prefix, and include_total. The tool description does not add additional parameter-level meaning, so it stays at the baseline for 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 opens with 'List the datafiles belonging to the authenticated tenant', giving a specific verb and resource. It also defines datafile, which distinguishes it from other list_* tools and from get/create/delete datafile variants.

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 useful context by defining a datafile as a published CDN JSON object, implying the tool is for enumerating that data layer. It does not explicitly name alternative tools or exclusions, 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.

list_dynamic_endpoint_runsList dynamic endpoint runsA
Read-onlyIdempotent
Inspect

List a dynamic endpoint's recent EXECUTIONS, newest-first — the place to look when a live page is broken. Each item carries the outcome (status + the failure message the public URL hides behind a 500) plus request_path, the resolved path including any :param values, so you can see WHICH request failed on a parameterised endpoint. run_id resolves to the full run and its step traces via get_workflow_run / get_workflow_run_traces. Only cache MISSES that reached the origin appear here, so this is renders, not traffic; history is kept for about two weeks. Defaults to live serves — pass previews=true for the editor-preview history instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe endpoint slug (provide this or endpoint_id)
previewsNolist editor PREVIEW runs instead of live serves; defaults to false (live serves only)
page_sizeNomaximum number of runs to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
endpoint_idNothe endpoint id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYes
next_page_tokenYes

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description explains key runtime behaviors: only cache misses that reached the origin, results ordered newest-first, default mode is live serves, previews=true switches to editor-preview history, and history is retained for about two weeks. This gives a clear model of what the call will return and how to interpret results.

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 longer than typical but every sentence adds distinct value: purpose, result contents, relationship to related tools, scope, retention, and default behavior. It is front-loaded with the core purpose and the additional details are tightly packed without redundancy.

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 schema and annotations, the description fills all remaining gaps: it explains the difference from other run-listing tools, what each item contains, how to access further run details, retention limits, and how to switch preview modes. The output schema is present, so return values do not need elaboration.

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?

The schema already covers all parameters (100% coverage), and the description adds crucial meaning: slug and endpoint_id are alternatives, previews defaults to false, page_token comes from a previous response's next_page_token, and page_size limits the number of runs returned. This clarifies how to use each parameter without ambiguity.

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 a specific verb ('List'), resource ('dynamic endpoint's recent EXECUTIONS'), and ordering ('newest-first'). It also provides a concrete use case ('the place to look when a live page is broken') and distinguishes from related tools by focusing on dynamic endpoint runs and their resolved request paths.

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?

It gives explicit guidance on when to use (when a live page is broken), what is excluded (cache hits, traffic, previews by default), retention ('about two weeks'), and how to switch to preview history ('pass previews=true'). It also points to related tools for deeper investigation (get_workflow_run / get_workflow_run_traces).

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

list_dynamic_endpointsList dynamic endpointsB
Read-onlyIdempotent
Inspect

List the dynamic endpoints belonging to the authenticated tenant. A dynamic endpoint binds a public URL to a workflow; it is both a page render and a callable API route.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of endpoints to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return endpoints whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
endpointsYes
next_page_tokenYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds tenant scoping and explains the resource concept, but doesn't disclose pagination behavior or any operational details. Acceptable given annotation coverage, but 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?

Two sentences, front-loaded with the main purpose. The second sentence about endpoint definition is informative but not essential for invocation; still concise and 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?

With an output schema present and parameter descriptions complete, the description is mostly sufficient. It doesn't explicitly mention pagination defaults or filtering behavior, but those are covered by the schema. Could benefit from a note on intended 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 has 100% coverage for all three parameters (page_size, page_token, slug_prefix). The description adds no parameter-specific meaning, so it relies entirely on the schema, which meets the baseline.

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?

States a specific verb (list) and resource (dynamic endpoints) with tenant scope, and briefly defines what an endpoint is. This distinguishes it from sibling get_dynamic_endpoint and list_dynamic_endpoint_runs, though it doesn't explicitly contrast them.

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?

Provides no guidance on when to use this tool versus alternatives like get_dynamic_endpoint or list_dynamic_endpoint_runs. No conditions, exclusions, or context for selection are given.

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

list_guidesList guidesA
Read-onlyIdempotent
Inspect

List the available Tessryx guides (topic + what each covers). Read a guide with get_guide before building something you're unsure how to model — they cover the platform overview, an end-to-end page recipe, and the authoring lifecycle.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
guidesYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that the result includes topics and coverage but does not detail output format or potential errors, which is acceptable for a simple listing 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 concise sentences: the first states the purpose and the second provides relevant usage context. There is no redundant or 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 no-parameter list tool, the description gives enough context about what is listed and why it is useful. It does not specify the exact return structure, but since no output schema is provided, this is not a significant gap.

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

Parameters4/5

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

The tool has no parameters, so no parameter documentation is needed. The zero-parameter baseline applies, and the description does not introduce any parameter-related ambiguity.

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 lists available guides with their topic and coverage, and the action is specific to listing. It is distinct from get_guide in the sibling tools by focusing on enumeration rather than retrieving a single guide.

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

Usage Guidelines5/5

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

Explicitly advises reading a guide with get_guide before building something when unsure how to model, which provides concrete when-to-use guidance and names the alternative tool.

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

list_runsList workflow runsA
Read-onlyIdempotent
Inspect

List a workflow's past runs, most-recent-first, by workflow id. Optionally filter by status (succeeded, failed, running, cancelled). Returns run summaries (run_id, status, message, timestamps); use get_workflow_run for a run's output or get_workflow_run_traces for per-step detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNooptional status filter: succeeded, failed, running, or cancelled; omit for all
page_sizeNomaximum number of runs to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
workflow_idYesthe workflow id whose runs to list

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYes
next_page_tokenNo

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful behavioral detail such as returning summaries and sorting most-recent-first, which is not fully covered by annotations. No side effects are mentioned, but the read-only nature is already asserted.

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, concise and directly addresses purpose, filtering, return content, and alternative tools. No extraneous information or verbose explanations.

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 moderate complexity and existing output schema, the description sufficiently explains what is returned (summaries) and points to get_workflow_run and get_workflow_run_traces for more detailed data. It is complete for an agent to correctly 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?

The schema provides 100% coverage of all parameters with clear descriptions, including the status values and page_token usage. The description does not add additional semantic information beyond the schema, so the baseline of 3 is appropriate.

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

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), the resource (workflow's past runs), and the scope (by workflow id). It distinguishes from sibling tools like get_workflow_run and get_workflow_run_traces by explicitly mentioning what those tools are for, 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 Guidelines5/5

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

It explains the optional status filter and the ordering (most-recent-first), and explicitly tells the user when to use other tools for output or per-step detail. This provides clear guidance on when to select this tool over its siblings.

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

list_schedule_runsList schedule runsA
Read-onlyIdempotent
Inspect

List a schedule's fire history, newest-first. Each item is a thin REFERENCE to a workflow run (run_id + the cron slot it fired for) — resolve its status/output/traces with the workflow run tools (get_workflow_run / get_workflow_run_traces). An AUTOMATIC fire is stored as a diagnosis, not an archive: its status, message, failing step and a head of each captured value are kept, but the output is sampled (output_truncated) and large trace values are shortened. Use run_schedule_now to capture a firing in full.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of runs to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
schedule_idYesthe schedule id whose run history to list

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYes
next_page_tokenYes

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already indicate read-only, idempotent, non-destructive behavior, and the description adds valuable behavioral details about truncation and sampling of outputs/traces. It clearly explains what information is retained versus shortened, which helps set expectations without contradicting the annotations.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and then provides concise, relevant details about references and truncation. Each sentence earns its place; there is no redundant or extraneous content.

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 that an output schema exists, the description does not need to explain return values. It adequately covers the key contextual information: what the list contains, how to resolve full details, and the sampling behavior. Pagination is already described in the parameter schema, so nothing essential is missing.

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

Parameters3/5

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

The input schema already provides full descriptions for all three parameters, including schedule_id and pagination fields. The description does not add significant extra meaning beyond the schema, so the baseline score of 3 is appropriate given the 100% 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 tool lists a schedule's fire history, newest-first, which is a specific verb-resource pair. It also distinguishes itself from related tools by explaining that each item is a thin reference to a workflow run and directing users to get_workflow_run/get_workflow_run_traces for details.

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?

It provides explicit guidance on when to use related tools: resolve run status/output/traces with get_workflow_run/get_workflow_run_traces. It also tells users that run_schedule_now should be used to capture a full firing, which clarifies the trade-off between listing historical diagnoses and triggering a fresh run.

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

list_schedulesList schedulesA
Read-onlyIdempotent
Inspect

List the schedules belonging to the authenticated tenant. A schedule is "cron for workflows": it runs a workflow on a recurring cron. Returns summaries (no definition body); fetch a body with get_schedule / get_schedule_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of schedules to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return schedules whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
schedulesYes
next_page_tokenYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds context beyond that by clarifying the return content (summaries, no body) and pointing to sibling tools for full details. It doesn't mention pagination behavior, but that's covered in the schema. Overall, it adds useful behavioral context on top of annotations.

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 zero waste. The first sentence states the core action and scope; the second explains the domain concept and directs the agent to alternatives. It is front-loaded and 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 that there is an output schema, the description doesn't need to explain return values. The description covers purpose, scope, the concept of a schedule, and the alternative for full bodies. Pagination and filtering are documented in the schema. It's complete for a list operation, though it could explicitly mention that results are paginated, but that's minor.

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 (page_size, page_token, slug_prefix) are already documented. The description does not add any additional parameter semantics beyond what the schema provides. According to the rubric, a baseline of 3 is appropriate when schema covers parameters fully and the description adds nothing extra.

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 and resource: 'List the schedules belonging to the authenticated tenant.' It defines a schedule as 'cron for workflows' and distinguishes itself from get_schedule/get_schedule_version by noting it returns summaries rather than the full body. This makes it unambiguous and differentiates it from siblings.

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 vs. alternatives: it returns summaries, and if you need the full body, use get_schedule or get_schedule_version. It also scopes the operation to the authenticated tenant. It doesn't mention exclusions (e.g., 'use list_schedule_versions for version listings'), but the primary alternative is named.

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

list_schedule_versionsList schedule versionsA
Read-onlyIdempotent
Inspect

Get the earliest and latest version numbers of a schedule (by slug or id), to know the range you can fetch with get_schedule_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe schedule slug (provide this or schedule_id)
schedule_idNothe schedule id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
latest_versionYes
earliest_versionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by explaining the output (earliest and latest version numbers) and the purpose, which goes beyond annotations. 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, tightly written sentence that front-loads the action and purpose. It contains no fluff and every word earns its place, making it easy for an agent to parse quickly.

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 read-only tool with an output schema and comprehensive safety annotations, the description provides the purpose and usage context. It could clarify that exactly one of slug or schedule_id should be provided (since both are optional in the schema), but this is implied by 'by slug or id'. Overall, sufficient for correct 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 description coverage is 100%, so both slug and schedule_id are already documented with clear descriptions. The description mentions 'by slug or id' which aligns with the schema but adds no new semantic detail. Baseline 3 is appropriate when the schema carries the parameter documentation.

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 earliest and latest version numbers), the resource (schedule versions), and the input method (by slug or id). It differentiates from get_schedule_version by explicitly explaining the purpose is to know the range for fetching. This is a specific verb+resource with clear sibling differentiation.

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 context: use this to know the range you can fetch with get_schedule_version. It implies the scenario and ties to a sibling tool, though it does not explicitly state when not to use it or list alternatives beyond get_schedule_version. The input method (slug or id) is also specified.

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

list_schemasList schemasA
Read-onlyIdempotent
Inspect

List the schemas belonging to the authenticated tenant. Schemas are JSON Schemas that datafiles validate against; reference one by schema_id when creating a datafile.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of schemas to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return schemas whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemasYes
next_page_tokenYes

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds the behavioral detail that results are scoped to the authenticated tenant, which is not in the annotations. It also hints at the relationship to datafile creation, going beyond the bare annotation metadata.

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 wording. It front-loads the primary action (list schemas for tenant) and then adds useful context about schema purpose and usage, all without unnecessary detail.

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?

With a defined output schema (though not shown in the snippet) and a clear description of the operation's purpose and scope, the description is complete for a list operation. It does not need to explain return values because the output schema is expected to convey that information.

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 three parameters (page_size, page_token, slug_prefix), each with a clear description. The tool description does not add extra meaning beyond the parameter descriptions, so it meets the baseline for high coverage 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 tool lists schemas for the authenticated tenant, distinguishing it from other list tools by specifying the resource type and tenant scope. It also provides context about schemas being JSON Schemas for datafiles, which helps an agent understand the 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 gives context on when schemas are relevant (referenced when creating a datafile), but does not explicitly mention when to use this tool versus alternatives like list_datafiles. However, the clarity of the resource type and tenant scope provides adequate guidance for typical usage.

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

list_secretsList secretsA
Read-onlyIdempotent
Inspect

List the secrets belonging to the authenticated tenant (metadata only — never the secret value). A secret is a stored credential (API key, token) that an api template references by slug in its auth block to inject on outbound calls. Use this to discover which secrets exist so you can wire an api template's auth.secret to the right slug. If the secret you need does not exist yet, send the user to https://tessryx.io/dashboard/secrets to create it — secrets cannot be created or set through this assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of secrets to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return secrets whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
secretsYes
next_page_tokenYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses important behavior beyond the readOnlyHint annotation, especially that it returns metadata only and never the secret value. It also makes clear the assistant cannot create or set secrets, which is consistent with the annotations and adds useful safety 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 concise and front-loaded, leading with the core purpose before adding contextual details. Every sentence contributes either to what the tool does, how it fits into the workflow, or an important limitation.

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 list operation with a fully described input schema and an existing output schema, the description provides sufficient context: scope, return-value limitation, usage scenario, and fallback action. No critical gaps remain for an agent deciding to call this tool.

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

Parameters3/5

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

The input schema already provides full descriptions for all three parameters, so the description adds little parameter-specific information. The surrounding text gives useful context for slug-based filtering, but it does not meaningfully extend the parameter semantics 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 opens with the specific action 'List the secrets' and clearly identifies the resource and scope (authenticated tenant). It distinguishes itself from related tools by emphasizing metadata-only access and explicitly stating that secrets cannot be created or set through the assistant.

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?

It explicitly says when to use the tool: to discover which secret slugs exist for wiring an api template's auth.secret. It also provides a when-not case by directing users to the dashboard when the secret does not exist and stating that creation is not possible through the assistant.

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

list_workflowsList workflowsA
Read-onlyIdempotent
Inspect

List the workflows belonging to the authenticated tenant. Supports an optional slug prefix filter and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNomaximum number of workflows to return in this page
page_tokenNotoken from a previous response's next_page_token to fetch the next page
slug_prefixNoonly return workflows whose slug starts with this prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
workflowsYes
next_page_tokenYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds tenant scoping and filter behavior, providing slightly more context beyond the annotations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the core purpose and followed by the key optional capabilities. No unnecessary detail.

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?

The output schema covers return values, and the schema descriptions explain page_token and slug_prefix. The tool description plus schema provides enough context to invoke it 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?

The input schema already fully describes all three parameters. The description's mention of 'slug prefix filter and pagination' restates the schema rather than adding new 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?

States a specific verb and resource: 'List the workflows belonging to the authenticated tenant.' This clearly distinguishes it from related tools like get_workflow and list_runs.

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?

Mentions optional slug prefix filtering and pagination, giving useful usage context. It does not explicitly contrast with list_runs or get_workflow, but the scope 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.

patch_datafilePatch datafileA
Destructive
Inspect

Edit an EXISTING datafile's JSON in place without resending the whole document — the right tool for changing one field of a large datafile, appending a blog post to a list, or fixing a word in a long string. Apply ordered operations (set / remove / replace_in / test) addressed by a dot-path from the document root (e.g. 'posts[slug=hello].title', or 'posts[-]' with op 'set' to APPEND). Pass values as raw JSON — the platform owns the escaping. For a SMALL change to a LARGE string use replace_in (find→replace, must match exactly once) so you send a few bytes. For a large NEW value send it with value_encoding=base64 (or gzip+base64) plus a value_sha256, so transcription damage is rejected instead of silently written. This is SAFER than update_datafile, not just cheaper: the patch is applied to the content it just read and the write is gated on that exact content, so a concurrent write is always reported rather than clobbered — no read-modify-write race, even with no arguments from you. The result is validated against the datafile's bound schema before it lands; a patch that would break the schema is rejected and nothing is written. Property order is preserved: untouched parts of the document come back byte-identical, so the change you make is the whole diff. Set republish=true to push the result to the CDN path it was last published at.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe datafile slug (provide this or datafile_id)
republishNoafter patching, re-publish to the CDN path this datafile was last published at. Errors if it has never been published (use publish_datafile with an explicit public_path first); the patch still applied.
operationsYesordered edits applied to the datafile's stored JSON
datafile_idNothe datafile id (provide this or slug)
expected_content_sha256Nothe content_sha256 from the get_datafile you built these operations from. If the stored content has moved since, the patch is REFUSED — nothing is applied, nothing is written. REQUIRED when any path addresses an array element by numeric index (items[2]), because that is a claim about the document's current shape whose failure is otherwise SILENT: if an element shifted, the write is still internally consistent and edits the wrong one. Optional for self-locating paths — items[slug=my-post], items[-] (append), or a plain key — which mean the same thing whatever the document holds, so appending to a large collection needs no read. Independently of this argument, the write is always gated on the content the patch itself just read, so it can never clobber a concurrent write.

Output Schema

ParametersJSON Schema
NameRequiredDescription
datafileYes
public_urlNo

TDQS

A5/5.0
Behavior5/5

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

The description goes well beyond the annotations (which only flag destructiveHint=true and readOnlyHint=false). It discloses the concurrency safety mechanism ('the patch is applied to the content it just read and the write is gated on that exact content, so a concurrent write is always reported rather than clobbered'), schema validation ('a patch that would break the schema is rejected and nothing is written'), property order preservation ('untouched parts of the document come back byte-identical'), and the exact failure modes for sha256 checks. No annotation contradiction exists.

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 long but every sentence earns its place given the tool's complexity. It front-loads the core purpose, then systematically covers operations, encoding, integrity, concurrency, schema validation, property order, and republish. The structure is logical and scannable, with no filler or repetition. For a tool with five parameters and four operation types, this level of detail is warranted.

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 (multiple ops, path syntax, encoding options, sha256 guards, concurrency semantics) and the presence of a rich output schema, the description covers everything an agent needs to call it correctly: operation semantics, path addressing, value encoding, integrity checks, concurrency safety, schema validation, and republish behavior. The only omission is the exact return shape, which the output schema already provides, so nothing critical is missing.

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?

Although the input schema covers 100% of parameters, the description adds substantial meaning beyond the field descriptions: it explains the dot-path syntax with concrete examples (e.g., 'posts[slug=hello].title' and 'posts[-]' for append), the rationale for base64/gzip encoding to avoid transcription corruption, the dual role of value_sha256 as a transmission check and a precondition, and the required vs optional nature of expected_content_sha256 based on path type. This turns raw parameters into a coherent mental model.

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 opens with a specific verb and resource: 'Edit an EXISTING datafile's JSON in place without resending the whole document' and immediately distinguishes it from update_datafile ('SAFER than update_datafile, not just cheaper'). It enumerates the exact operation types (set/remove/replace_in/test) and path syntax, leaving no ambiguity about what the tool does or how it differs from its sibling.

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?

It states when to use this tool versus alternatives explicitly: 'the right tool for changing one field of a large datafile, appending a blog post to a list, or fixing a word in a long string', contrasts it with update_datafile, and gives conditions for republish ('Errors if it has never been published (use publish_datafile with an explicit public_path first)'). It also explains when to prefer replace_in over a full value and when to use base64 encoding, covering both positive and negative selection.

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

patch_workflowPatch workflowAInspect

Edit an EXISTING workflow's latest version in place without resending the whole definition. Apply ordered operations (set / remove / replace_in / test) addressed by step name + a dot-path (e.g. step 'generate' path 'llm.system'), passing new code or values as raw JSON — the platform owns the escaping, so you never hand-escape the definition. For a SMALL change to a LARGE value (swap a color, fix a word), use replace_in (find→replace, unique match) so you send a few bytes, not the whole value. For a large NEW value (an embedded HTML page, a long JS block) send it with value_encoding=base64 (or gzip+base64) and a value_sha256 — base64 avoids the escapes/multibyte chars that corrupt in transit, and the sha rejects the op if it was altered anyway, so the write can't silently ship broken. The patched result is statically validated BEFORE it is written: if validation fails, no version is created and the findings are returned (valid=false). On success a NEW version is minted from the latest (an unpublished draft unless publish=true) — so there's no separate preview step: just patch it, then run_workflow / preview the created draft to see it rendered. Use this to change one block; use create_workflow_version for a wholesale rewrite.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe workflow slug (provide this or workflow_id)
publishNopublish the resulting version immediately (ignored if validation fails)
operationsYesordered edits applied to the LATEST version's definition
workflow_idNothe workflow id (provide this or slug)
expected_content_sha256Nothe content_sha256 from the get_workflow_version you built these operations from. The patch is rejected if the latest version has changed since — nothing is applied and no version is minted. REQUIRED when any path addresses an array element by numeric index (variables[0]), because that is a claim about the definition's current shape whose failure is otherwise SILENT: if an element shifted, the patch edits the wrong one. Optional for self-locating paths — variables[name=css], variables[-] (append), a step addressed by name, or a plain field path — which mean the same thing whatever the definition holds

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
createdYes
versionNo
findingsNo
publishedYes
workflow_idNo

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses that a new version is minted on success, that validation failures prevent any version creation, and that publish controls immediate publication. It also explains the integrity guarantees around sha256 checks, matching the non-readonly annotation without contradiction.

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

Conciseness4/5

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

The description is long and somewhat repetitive with the schema text, but the density is justified given the complexity of operations, encodings, and concurrency guards. The structure flows from general behavior to specific operation guidance.

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?

It fully explains the post-patch workflow, including validation results, version minting, and how to preview the resulting draft. Since an output schema exists, it appropriately avoids over-explaining return values while still covering failure and success behavior.

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?

The schema already covers every parameter, and the description adds practical meaning around path selectors, appending with '[-]', encoding choices, and the expected_content_sha256 requirement. This goes beyond the schema by explaining when each form is required or optional.

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 edits an existing workflow's latest version via ordered operations without resending the whole definition. It also distinguishes this from create_workflow_version for wholesale rewrites.

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?

It gives explicit guidance on when to use patch_workflow versus create_workflow_version, when to prefer replace_in for small changes to large values, and when to use base64/gzip+base64. Validation-before-write and the no-preview-step workflow are also clearly explained.

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

preview_dynamic_endpointPreview dynamic endpointAInspect

Render what a dynamic endpoint serves WITHOUT publishing — runs the endpoint's workflow through the full serve path (input + bound datafile + content-type) and returns the response, so you can preview a DRAFT before publishing (or verify any version). Omit version to preview the latest draft; pass a version to preview that one. For a :param endpoint (e.g. 'post/:slug'), pass sample params (e.g. {"slug":"hello"}) — they run through the definition's input_transform, so you can preview a specific URL and confirm a good value renders and a bad one fails input validation. This executes the workflow (may have side effects). Returns content_type, output (decoded as a string), the run status (status=failed with a message when the render did not succeed), the run_id (drill into the full run/traces with get_workflow_run_traces), and resolved_input (the $input the transform produced, for debugging the mapping).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe endpoint slug (provide this or endpoint_id)
paramsNosample path parameters for a :param endpoint (e.g. {"slug":"hello"} for a 'post/:slug' endpoint); fed to the definition's input_transform to build $input, so you can preview a specific URL and confirm it passes the workflow's input_schema
versionNospecific version to preview; omit (0) for the latest version (the draft)
endpoint_idNothe endpoint id (provide this or slug)
viewer_emailNosimulated viewer's email, bound as auth.email. Only takes effect when the endpoint has a role allowlist (auth.allow.tenant_roles) — that is the only case where a real address reaches a workflow, so a preview without one ignores this, exactly as serving would
viewer_rolesNosimulated viewer's roles in this workspace, bound as auth.roles (e.g. ["ROLE_ADMIN"]) so you can preview role-gated rendering. Like viewer_email, only takes effect on an endpoint with a role allowlist
viewer_user_idNosimulate a signed-in viewer for previewing a gated endpoint that exposes identity: the derived auth.viewer_id is computed from this, so the preview shows the real identifier. Omit it and a visible placeholder stands in. Ignored unless the endpoint gates and exposes identity

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
run_idNo
statusYes
messageNo
content_typeYes
resolved_inputNo

TDQS

A4.9/5.0
Behavior5/5

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

The description openly states that the tool executes the endpoint's workflow and may have side effects, which is consistent with the readOnlyHint=false annotation. It also discloses the full serve path behavior and what is returned, so the agent understands the operational impact beyond the annotation metadata.

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 thorough and well-structured but slightly repetitive, particularly around the idea of previewing a specific URL and confirming good/bad values, which appears in both the main description and the params field description. Overall it remains focused and informative, with only minor redundancy.

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?

The description covers the tool's purpose, side effects, parameter behavior, and return fields (content_type, output, status, run_id, resolved_input). It also explains edge cases like draft vs. version selection, :param endpoints, and role-gated viewers, making it complete for an agent to invoke 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?

Every parameter is explained with meaningful context beyond the schema: slug/endpoint_id are alternatives, params feed input_transform, version semantics are clarified, and viewer_email/viewer_roles/viewer_user_id are tied to auth binding and role allowlists. The schema coverage is 100% and the description adds substantial value to each field.

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 with a specific verb ('Render what a dynamic endpoint serves WITHOUT publishing') and distinguishes it from publishing or running endpoints by emphasizing draft preview and version verification. It is immediately obvious what the tool does and how it differs from siblings like publish_dynamic_endpoint or run_workflow.

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 explicitly says when to use the tool ('preview a DRAFT before publishing or verify any version'), how to handle :param endpoints with sample params, and how version omission selects the latest draft. It also clarifies viewer-related parameter behavior, giving clear guidance on when those parameters take effect.

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

publish_api_templatePublish API templateAInspect

Publish an api template version, making it the version workflows resolve when they reference it @published.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesthe version number to make live
template_idYesthe template id to publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
template_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare it is a mutating, non-idempotent, non-destructive operation. The description adds the specific behavioral effect: it changes the resolved version for workflows. This is useful context beyond the annotations, though it does not detail side effects like overwriting previous versions 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?

A single, front-loaded sentence with no filler. It states the action and the result in 15 words, making it easy to scan.

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 with two parameters and an output schema, the description covers the core behavior. It lacks explicit error cases or preconditions, but these are not critical for basic usage and the annotations cover safety traits.

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?

Both parameters are fully described in the input schema (version and template_id). The description adds no additional meaning beyond restating the action, so it stays at the baseline for 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 uses a specific verb ('Publish') and a clear resource ('an api template version'), and states the key outcome: making it the version workflows resolve when referenced as @published. This clearly distinguishes it from sibling tools like create_api_template or get_api_template.

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 used to make a version live, but it does not explicitly state when to use it over alternatives (e.g., publish_workflow) or mention prerequisites like the version needing to exist. There is no exclusion guidance, leaving the agent to infer context from the resource name.

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

publish_appPublish appAInspect

Publish an app version, making it the live manifest (visible per role, its selector authoritative). Rejected if the version's membership selects nothing. Publishing an app promotes only its manifest — never its members, which publish independently on their own lifecycles.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesthe app id to publish
versionYesthe version number to make the live manifest

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
descriptionYes
display_nameYes
latest_versionYes
published_manifestNo
last_published_versionYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses important behavioral details beyond the annotations: it is a mutating operation (publish), it fails when membership selects nothing, and it has a scoped side effect (only the manifest, not members). This goes beyond the basic readOnly/idempotent/destructive hints and gives the agent a clear model of what will happen.

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, each packed with relevant information. There is no redundant phrasing, and the structure flows logically from the primary action to the rejection condition and then to the scope of the side effect.

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?

The tool has an output schema (not shown), so the description does not need to explain return values. It covers the core behavior, a key failure mode, and the side-effect scope, which are the most important contextual aspects for an agent deciding to call this tool. No critical information appears to be missing.

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 already provides descriptions for both parameters (app_id and version) with 100% coverage. The description adds context that the version must have a non-empty membership to be accepted, which deepens understanding of the version parameter's role. This is a slight enhancement over the schema 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 states precisely what the tool does: publishes an app version to make it the live manifest. It further clarifies the scope (only the manifest, not members) which distinguishes it from related publish tools. The verb 'publish' combined with the resource 'app' is explicit 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 gives a clear rejection condition ('Rejected if the version's membership selects nothing') and explains that publishing only promotes the manifest, not members, which tells the agent when to use this versus other publish operations. It does not explicitly mention when to prefer this over unpublish_app or how to revert, but the provided context is sufficient for typical usage.

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

publish_datafilePublish datafileAInspect

Publish a datafile to a CDN path you choose, so a page can fetch() it client-side. Only needed for that client-side fetch — NOT to bind a datafile server-side (an endpoint's @latest datafile ref reads the stored draft directly). Pass expected_content_sha256 (from the create/update/get that produced this content) — publish fails if the content changed since, so you publish the exact version you intend. Returns the public CDN URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
datafile_idYesthe datafile id to publish
public_pathYesthe CDN path to publish at (e.g. data/products.json)
expected_content_sha256Yesthe content_sha256 returned by the create/update/get of this datafile; publish fails if the stored content has changed since, so publish the exact version you intend

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
public_urlYes
datafile_idYes

TDQS

A4.7/5.0
Behavior4/5

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

Beyond annotations, description discloses failure on content change and return of public URL. It doesn't discuss idempotent/repeat behavior or other side effects, but given idempotentHint false and non-destructive annotation, no contradiction.

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?

Everything is purposeful; purpose, usage caveat, parameter note, and return value are compactly organized. No redundant content.

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?

Description covers what, why, when, and outcome, without needing an output schema. It is complete for an agent to choose and call this tool 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?

All three required params are described in schema, and description elaborates on expected_content_sha256 purpose and failure semantics. Datafile_id and public_path are self-explanatory, so schema coverage plus extra context is strong.

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 opens with a specific verb and target: publishes a datafile to a chosen CDN path. It also states the client-side fetch use case, separating it from other publish_* 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 Guidelines5/5

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

Explicitly says when it is needed (client-side fetch) and when not needed (server-side binding reads draft directly). It also explains the expected_content_sha256 precondition, guiding correct usage.

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

publish_dynamic_endpointPublish dynamic endpointAInspect

Publish a dynamic endpoint version, taking it live at its public URL (edge-cached). The response includes the public URL to share.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesthe version number to make live
endpoint_idYesthe endpoint id to publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
public_urlNo
descriptionYes
endpoint_idYes
content_typeYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.1/5.0
Behavior3/5

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

The description mentions edge-caching and the public URL, which adds context, but it does not explicitly disclose that publishing will replace the currently live version or that the action can be reverted via unpublish. This is moderately transparent beyond the annotations, but not fully.

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 includes the essential purpose and a note about the response. There is no redundancy or extraneous details.

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 simplicity of the two parameters and presence of an output schema, the description fully covers the tool's purpose, expected side effect (making live), and response contents (public URL). No additional 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?

The schema already provides clear descriptions for both parameters (version and endpoint_id). The tool description adds no additional meaning beyond restating the resource, so it aligns with the baseline for full 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 (publish) and the target (dynamic endpoint version), including the outcome of making it live at a public URL. It effectively distinguishes this from related operations like unpublish_dynamic_endpoint or preview_dynamic_endpoint.

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

Usage Guidelines4/5

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

The phrase 'taking it live' conveys the intended use case, but the description does not explicitly mention when to prefer this over previewing or publishing other resource types. The guidance is implicit rather than explicit.

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

publish_schedulePublish scheduleAInspect

Publish a schedule version, making it the ACTIVE definition — the dispatcher starts firing its workflow on the version's cron. Enforces the per-plan minimum-interval floor at publish.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesthe version number to make active (start firing on its cron)
schedule_idYesthe schedule id to publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
last_run_atNo
last_run_idNo
next_run_atNo
schedule_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the key side effect: the dispatcher begins firing on the specified version's cron. It also mentions the minimum-interval floor enforcement, which is a behavioral constraint. Annotations indicate a mutating, non-idempotent operation, which aligns with the described activation effect.

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 compact and well-structured, consisting of two sentences that efficiently convey the action, the result, and an important constraint. There is no redundant or 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?

The description provides the essential context for using the tool correctly: the active definition effect, dispatcher behavior, and the interval floor rule. Since an output schema exists, return values do not need to be described. It does not cover edge cases like invalid version or already-active schedules, but those are not necessary for basic correct 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?

The input schema already provides 100% coverage with clear descriptions for both parameters: schedule_id and version. The description does not add significant extra detail about the parameters themselves, but the schema descriptions are sufficient for an agent to understand their roles.

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 ('Publish a schedule version'), the resource ('schedule'), and the outcome ('making it the ACTIVE definition — the dispatcher starts firing its workflow on the version's cron'). It distinguishes this from related schedule operations like create, update, run, and unpublish.

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

Usage Guidelines4/5

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

The description explains when to use the tool: to make a schedule version active and start the dispatcher. It also notes the constraint that the per-plan minimum-interval floor is enforced at publish time, giving the agent useful decision-making context. It does not explicitly contrast with alternatives, but the effect is clear enough.

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

publish_schemaPublish schemaAInspect

Publish a schema version, making it the version a datafile resolves when it binds to this schema without requesting the latest.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesthe version number to make the published version datafiles resolve by default
schema_idYesthe schema id to publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
schema_idYes
descriptionYes
json_schemaNo
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructive behavior. The description adds the effect on datafile resolution, which is useful. It doesn't disclose additional side effects like overwriting previous published versions, but does not contradict annotations.

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 sentence, front-loaded with the action, and directly explains the purpose without fluff. Every word 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?

The tool is simple (2 required params), has an output schema, and annotations cover safety. The description explains purpose and effect. It doesn't mention prerequisites like schema version existence, but that is likely implied and not critical for selection.

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 have descriptions. The description adds no extra semantics beyond what the schema already provides, 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 states a specific verb and resource ('Publish a schema version') and explains the concrete effect on datafile resolution, which clearly distinguishes it from other publish_* sibling tools by 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 Guidelines4/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 set the default version for schema binding. It doesn't explicitly state alternatives or exclusions, but the sibling list makes the resource focus obvious. Lacks explicit 'when not to use' guidance, but adequate for the context.

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

publish_workflowPublish workflowAInspect

Publish a workflow version, making it the version served to callers (including dynamic endpoints that reference it @published).

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesthe version number to make live
workflow_idYesthe workflow id to publish

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
workflow_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.3/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations by explaining that the version becomes the one served to callers, including dynamic endpoints referencing @published. It does not detail every side effect, but the core behavior is 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 a single, concise sentence that directly communicates the tool's purpose without unnecessary detail.

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 mutation tool with well-described parameters and an output schema, the description is sufficient. It includes relevant context about dynamic endpoints and the published version 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?

The schema already provides accurate descriptions for both parameters ('the workflow id to publish' and 'the version number to make live'). The tool description does not add substantial extra meaning to the parameters themselves.

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 ('Publish') and the resource ('a workflow version'), and specifies the effect ('making it the version served to callers'). It also distinguishes this from similar publish tools for other resource types.

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

Usage Guidelines4/5

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

The description explains the consequence of publishing—making that version live for callers and dynamic endpoints—which conveys when to use the tool. It does not explicitly mention alternatives, but the intent is clear.

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

rename_app_slugRename app slugAInspect

Rename an app's slug (its unique per-tenant identifier / folder prefix). Fails if the new slug is already in use. Note: this renames the APP; it does not move member resources, which are matched by their own slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesthe app id to rename
new_slugYesthe new slug (unique per tenant; hierarchical path segments allowed)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
descriptionYes
display_nameYes
latest_versionYes
published_manifestNo
last_published_versionYes

TDQS

A4.7/5.0
Behavior5/5

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

The description is transparent about the failure mode (slug in use), the scope (renames the app only, not member resources), and the nature of the operation. Annotations are consistent (readOnlyHint=false, destructiveHint=false), and the description adds important behavioral details beyond those flags.

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, directly addresses the action, condition, and scope, and contains no redundant or filler information. It is well-structured and easy to parse.

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 simplicity of the operation and the existence of an output schema, the description provides all necessary context: what is renamed, the failure condition, and the non-effect on member resources. No additional explanation is needed.

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 provides descriptive entries for both parameters, including constraints on new_slug (unique per tenant, hierarchical path segments allowed). The description adds useful conceptual context (folder prefix) that helps interpret the parameters, going slightly 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 ('Rename an app's slug'), specifies the resource, and clarifies the scope (per-tenant identifier/folder prefix). It also distinguishes the effect from moving member resources, which helps the agent understand exactly what this tool does.

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 a key condition ('Fails if the new slug is already in use') and a note about not moving member resources, which helps prevent misuse. However, it does not explicitly name alternative tools (e.g., rename_schedule_slug) or state when to prefer this tool over others, though the sibling list makes the context clear.

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

rename_schedule_slugRename schedule slugAInspect

Rename a schedule's slug (its unique per-tenant identifier). Fails if the new slug is already in use.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_slugYesthe new slug (unique per tenant; hierarchical path segments allowed)
schedule_idYesthe schedule id to rename

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
last_run_atNo
last_run_idNo
next_run_atNo
schedule_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses the uniqueness failure behavior, which adds value beyond the annotations. It does not mention side effects on schedule versions, references, or URLs, but the annotations already indicate this is not read-only and not 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 concise sentences with no redundant wording. The key purpose is front-loaded and the failure condition is stated efficiently.

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 rename operation, the description adequately explains the purpose and a critical failure mode. It does not elaborate on post-conditions or impact on references, but the tool is simple enough that this is a minor gap rather than a major omission.

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 already covers both parameters well, and the description mostly repeats their meaning while adding the 'unique per-tenant identifier' context for new_slug. This adds slight semantic value but does not provide substantial new parameter details 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 a specific action ('Rename') on a specific resource ('a schedule's slug') and adds the defining scope ('unique per-tenant identifier'). This distinguishes it from other schedule operations like create, update, delete, and the sibling rename_app_slug.

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?

It states the key failure condition ('Fails if the new slug is already in use'), which is useful guidance. However, it does not explicitly say when to prefer this tool over update_schedule or other schedule modification tools, leaving some inference to the agent.

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

run_schedule_nowRun schedule nowAInspect

Fire a schedule ONCE, immediately, WITHOUT publishing — so you can test a draft before it goes live (parallels preview_dynamic_endpoint). Runs the version's workflow (omit version for the latest draft) and returns a reference to the workflow run it triggered; resolve its outcome with get_workflow_run. Unlike an automatic fire, this one is captured in FULL — output and traces intact — so it is also how you reproduce something a due firing only sampled. This executes the workflow (may have side effects).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe schedule slug (provide this or schedule_id)
versionNospecific version to fire; omit (0) for the latest version (the draft)
schedule_idNothe schedule id (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
run_idYes
statusNo
messageNo
versionYes
dispatched_atYes
scheduled_forYes

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses that it executes the workflow and may have side effects, aligning with the annotations. It also explains the behavior of triggering a run, capturing full output/traces, and returning a reference to resolve later.

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 and front-loaded with the core action, but it is slightly verbose with multiple clauses and contrasts. Still, it remains focused and readable.

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 and the presence of an output schema, the description is complete: it explains what is returned (a workflow run reference) and how to use it (get_workflow_run), and it covers side effects. No missing context for a correct invocation.

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 covers the parameters, but the description adds meaning for the version parameter by explaining 'omit version for the latest draft'. It does not add much beyond the schema for slug/schedule_id, but the context is sufficient.

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: firing a schedule once immediately without publishing, to test drafts. It also distinguishes it from similar tools like preview_dynamic_endpoint and mentions it's for full capture unlike automatic fires.

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?

It explicitly explains when to use this tool (testing drafts before going live, reproducing full output from sampled fires) and contrasts it with automatic firing. It also provides usage hints like omitting version for the latest draft.

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

run_workflowRun workflowAInspect

Run a workflow now and return the outcome: status, content_type, the workflow's output (decoded as a string; read it per content_type), and a trace_summary of which steps ran. Pass version= to test an unpublished draft (the number returned by create_workflow_version); omit for the published version. For per-block detail when debugging, call get_workflow_run_traces with the returned run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNothe workflow slug to run (provide this or workflow_id)
inputNoJSON bound as the workflow's $input for this run
versionNoexplicit version to run; 0 (default) runs the last published version. To test a draft you just created but have not published, pass the version number returned by create_workflow or create_workflow_version
datafileNooptional: a datafile slug to bind as the workflow's host context ($datafile / $data) for this run — mirroring how a dynamic endpoint binds one, so you can test a workflow that reads $datafile without wrapping it in an endpoint. Binds the datafile's current stored content (its JSON must be an object). A trailing @latest/@published is ignored.
workflow_idNothe workflow id to run (provide this or slug)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
outputNo
run_idYes
statusYes
messageNo
content_typeYes
trace_summaryNo
trace_truncatedNo

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, so a run is expected to be a non-idempotent, mutating action. The description adds behavioral details (synchronous run, return outcome and trace_summary) but does not explicitly warn about potential side effects; however, this is largely covered by the annotations.

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

Conciseness5/5

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

The description is dense but every sentence adds value, front-loaded with the core purpose and output. It covers version, datafile, and debugging alternatives without unnecessary fluff, maintaining a clear structure.

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 related sibling tools and output schema, the description is complete: it states what the tool does, the exact return fields, how to handle versions and datafiles, and when to delegate to a tracing tool. Nothing essential is missing for an agent to invoke it 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?

All 5 parameters are described in the schema (100% coverage), and the description adds crucial extra semantics: version explains 0 default and how to test drafts, datafile explains binding and JSON requirement, slug/workflow_id explains mutual exclusivity. This goes well 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's purpose: 'Run a workflow now and return the outcome' with a specific list of return fields. It distinguishes itself from sibling tools like get_workflow_run and get_workflow_run_traces by describing the action and pointing to those for per-block detail.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: testing an unpublished draft via version=<n>, testing with a datafile without wrapping in an endpoint, and pointing to get_workflow_run_traces for debugging. This covers both when to use and when to use an alternative.

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

unpublish_appUnpublish appA
Destructive
Inspect

Hide an app (last_published_version -> 0) while preserving its definition; republish any version later. Does not touch its members.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesthe app id to hide (last_published_version -> 0; definition preserved)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
descriptionYes
display_nameYes
latest_versionYes
published_manifestNo
last_published_versionYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the tool is known to be destructive. The description adds valuable context: the hide is reversible ('republish any version later'), definition is preserved, and members are untouched. This goes beyond the annotation by clarifying the scope of destruction and 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 is a single sentence that packs the key facts: the action, the effect, preservation, reversibility, and a side-effect (members). No filler or redundancy, and the most critical information is front-loaded.

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 tool with one parameter and an output schema, the description covers all essential aspects: what happens to the app, what is preserved, that it can be undone, and what is not affected. Nothing critical is missing for an agent to call it 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% for the single parameter, and the parameter description already explains the effect ('last_published_version -> 0; definition preserved'). The tool description adds no additional parameter-level detail, so it relies entirely on the schema. 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 states a specific action ('Hide an app'), the target resource (app), and the concrete effect (last_published_version -> 0). It clearly distinguishes from delete_app by emphasizing definition preservation and from publish_app as the inverse. This is precise 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 implicitly conveys when to use this tool: to hide an app while keeping its definition for later republishing. It also notes that members are unaffected, which helps avoid using it when member changes are intended. However, it doesn't explicitly compare to delete_app or other alternatives, so it's not a full when/when-not guide.

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

unpublish_datafileUnpublish datafileA
Destructive
Inspect

Pull a published datafile off the CDN so its URL stops serving.

ParametersJSON Schema
NameRequiredDescriptionDefault
datafile_idYesthe datafile id to pull from the CDN

Output Schema

ParametersJSON Schema
NameRequiredDescription
jsonNo
slugYes
schema_idNo
datafile_idYes
descriptionYes
display_nameYes
content_sha256No
last_published_pathNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructive=true and readOnly=false. The description adds the concrete behavioral outcome that the URL stops serving, which is useful. It does not explicitly state whether the underlying datafile is deleted, but it does not contradict the annotations.

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

Conciseness5/5

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

The description is a single concise sentence that directly conveys the action and result. No unnecessary words or details are present.

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 unpublish action, the description, parameter, and annotations provide enough context for an agent to understand the purpose and expected effect. It does not detail edge cases or error conditions, but those are not essential for this tool.

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

Parameters3/5

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

The parameter datafile_id has a description that essentially restates its name. While the meaning is clear and the parameter is required, the description does not add meaningful extra semantics 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 a specific action ('Pull a published datafile off the CDN') and the expected outcome ('its URL stops serving'). It is easily distinguished from sibling tools like unpublish_app or unpublish_dynamic_endpoint.

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 should be used on a published datafile, but it does not explicitly mention when to prefer it over alternatives such as delete_datafile or publish_datafile. The usage context is understandable but not fully explicit.

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

unpublish_dynamic_endpointUnpublish dynamic endpointA
Destructive
Inspect

Take a dynamic endpoint offline so its public URL stops serving content.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYesthe endpoint id to take offline

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
public_urlNo
descriptionYes
endpoint_idYes
content_typeYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the externally visible effect of stopping the public URL, which complements the destructiveHint and openWorldHint annotations. It does not mention reversibility or behavior if already unpublished, but this is not essential.

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, focused sentence that leads with the action and immediately states the consequence, with no filler or redundant detail.

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 single-parameter tool with an output schema, the description is sufficient for correct invocation. Mentioning how unpublishing relates to deletion or publishing could add context, but it is not required.

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 only parameter, endpoint_id, is fully covered by the schema description and the tool description simply repeats that phrasing, adding no additional 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 describes the action ('take offline') and effect ('public URL stops serving content'). It is easily distinguished from delete_dynamic_endpoint and publish_dynamic_endpoint by focusing on availability rather than lifecycle.

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 the obvious use case and contrasts naturally with publish/delete, but it does not explicitly name alternatives or state when not to use the tool.

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

unpublish_scheduleUnpublish scheduleA
Destructive
Inspect

Deactivate a schedule so it stops firing on its cron. The definition is preserved (last_published_version -> 0); republish any version later to resume.

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYesthe schedule id to deactivate (stops firing; definition preserved)

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
last_run_atNo
last_run_idNo
next_run_atNo
schedule_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, and the description adds that the definition is preserved and last_published_version is set to 0, and that republishing any version resumes. This goes beyond the annotation to explain the exact state change and reversibility, with no contradiction.

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 primary action. Every phrase adds information: what happens, what is preserved, and how to reverse. No filler.

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

Completeness4/5

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

For a one-parameter tool with a clear annotation profile and output schema, the description covers the behavior, the state change, and the reversal path. It lacks explicit prerequisites or edge cases, but for this simple tool the description 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?

The schema already describes schedule_id as 'the schedule id to deactivate (stops firing; definition preserved)', which is 100% coverage. The description repeats this concept without adding new syntax or format details, so it adds little 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 that the tool deactivates a schedule, stopping its cron firing. It distinguishes from delete by noting the definition is preserved, 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 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: when you want to stop a schedule while preserving its definition. However, it does not explicitly name alternatives like delete_schedule or publish_schedule, nor state conditions for when not to use it, leaving some ambiguity for an agent choosing between related tools.

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

update_api_templateUpdate API templateA
Destructive
Inspect

Update an api template's display_name and description (metadata only — this does NOT change the request definition; author that with create_api_template_version, and the slug cannot be changed). This is a WHOLESALE replace: display_name is required and description is set to exactly what you pass (an empty/omitted description CLEARS it), so to change one field while keeping the other, read the current values with get_api_template first and pass both.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoWhat this api template calls. Set wholesale — an empty value clears it.
template_idYesThe api template id to update.
display_nameYesHuman-readable name. Required (cannot be blank).

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
template_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.8/5.0
Behavior5/5

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

The description fully discloses the tool's behavior, including that it is a wholesale replace, that an empty description clears it, and that display_name is required. This aligns with the destructiveHint annotation and leaves no ambiguity about the effects of calling the 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 slightly verbose but each sentence adds crucial information about scope, wholesale semantics, and prerequisites. The structure is logical, and the repeated emphasis on metadata-only and read-first is justified given the tool's destructive potential.

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 comprehensive information about the tool's purpose, behavior, and parameter nuances. While an output schema is mentioned, the description doesn't need to explain return values for an update operation, and the provided details are sufficient for correct invocation.

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?

Every parameter in the schema is described with meaningful details: template_id identifies the target, display_name is required and cannot be blank, description is set wholesale and can be cleared. The description adds context beyond the schema by explaining the wholesale behavior in the parameter 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 an api template's display_name and description, specifying it only affects metadata and not the request definition. It distinguishes itself from create_api_template_version and other related tools, and the sibling list reinforces this by including create/delete/get variants.

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 explicitly explains when to use the tool: for metadata updates only, and it advises reading current values first due to the wholesale replace semantics. It also clarifies what it does NOT do (change request definition), providing clear guidance on appropriate usage.

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

update_appUpdate appA
Destructive
Inspect

Update an app's display name and description (metadata only — the membership selector and display metadata live in the versioned definition; change those with create_app_version). This is a WHOLESALE replace: display_name is required and description is set to exactly what you pass (an empty/omitted description CLEARS it), so to change one field while keeping the other, read the current values with get_app first and pass both.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesthe app id to update
descriptionYes
display_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
app_idYes
descriptionYes
display_nameYes
latest_versionYes
published_manifestNo
last_published_versionYes

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint: false, destructiveHint: true), the description reveals the wholesale replace semantics: description is set exactly to what is passed, an empty or omitted description CLEARS it, and partial updates require reading current values first. This is critical behavioral disclosure with no contradiction to annotations.

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 zero filler. The first sentence front-loads the purpose and key alternative; the second delivers the critical behavioral nuance. Well-structured and appropriately sized for the tool's 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?

For a simple 3-parameter tool with an output schema present, the description fully covers purpose, alternative tools, and the critical replace semantics. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema description coverage is only 33% (app_id documented), but the description compensates by explaining that display_name is required and that description's value is replaced wholesale with clearing behavior. It adds meaningful semantics for the two undocumented parameters, though it does not walk through each parameter individually.

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 a specific verb ('Update') with a specific resource ('an app') and the exact fields affected ('display name and description'). It also distinguishes itself from create_app_version, making the tool's scope 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?

Explicitly directs the agent to use create_app_version for membership and display metadata changes, and instructs to read current values with get_app before updating a single field. This gives clear when-to-use and when-not-to-use guidance.

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

update_custom_domainUpdate custom domainA
Destructive
Inspect

Update a custom domain's mutable settings: its label (display_name) and its routing (slug_prefix + root_endpoint). This is how a domain becomes the public front door of an app: set slug_prefix to the app's slug prefix so shop.customer.com/ serves /, and root_endpoint to the app's landing endpoint so '/' has a page. All provided fields are set WHOLESALE — an empty value CLEARS that setting. The hostname identifies the domain and cannot be changed — and these tools cannot delete a domain, so a hostname cannot be moved from here; removing a claim is done in the Tessryx app.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesThe hostname identifying the domain to update.
slug_prefixNoThe endpoint subtree this domain mounts (usually an app's slug prefix). Empty = the whole tenant tree. Set wholesale.
display_nameNoHuman label. Empty clears it.
root_endpointNoWhat the domain root ('/') serves, RELATIVE to slug_prefix. Empty = the root returns 404. Set wholesale.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
hostnameYes
dns_recordsNo
slug_prefixNo
verified_atNo
activated_atNo
display_nameNo
root_endpointNo
last_check_messageNo
cert_status_messageNo

TDQS

A4.7/5.0
Behavior5/5

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

Explicitly discloses wholesale field replacement, empty-value-clearing behavior, root 404 default, and immutability of hostname. Aligns with destructiveHint and enriches the annotation with operation-specific 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?

Well-organized and every sentence carries useful information, but the final hostname/no-delete clause is slightly convoluted and the front-door framing adds length. Still far from padded.

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?

Covers all parameters, constraints, mutations, and relationship to deletion via the Tessryx app. Output schema exists, so not explaining return values is acceptable. Complete for correct invocation.

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 already covers all parameters 100%, and the description adds meaningful clarifications: display_name empty clears it, slug_prefix empty maps to whole tenant tree, root_endpoint is relative to slug_prefix, and hostname is identifying and immutable.

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 updates a custom domain's mutable settings (display_name, slug_prefix, root_endpoint) and explicitly notes hostname is immutable. Distinguishes from deletion/creation by stating domains cannot be deleted via these tools, so the action 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 Guidelines4/5

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

Provides concrete routing semantics and examples (set slug_prefix to app slug prefix), and notes destructive/delete actions occur in the Tessryx app. Does not explicitly name create_custom_domain or verify_custom_domain as alternatives, so guidance is strong but not exhaustive.

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

update_datafileUpdate datafileA
Destructive
Inspect

Update a datafile. This is a partial update at the FIELD level: only the arguments you provide change. Provide json to replace the WHOLE document (its property order is preserved verbatim); omit it to change only metadata. To change PART of an existing document, prefer patch_datafile — it sends just the edit and cannot lose a concurrent write. Use this tool when you are replacing the whole document anyway; both preserve property order. Sending json here means get_datafile, change the object you got back, then send it all — pass expected_content_sha256 with that round trip so a change you did not see is reported instead of overwritten. Republish to push the change to the CDN.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoReplacement JSON object for this datafile. Omit to leave the content unchanged. Property order is preserved verbatim.
schema_idNoId of the schema this datafile's JSON is validated against. Omit to leave the current binding unchanged.
datafile_idYesThe datafile id to update.
descriptionNoWhat this datafile holds. Omit to leave unchanged.
display_nameNoHuman-readable name. Omit to leave unchanged.
use_latest_schemaNoValidate against the latest (draft) schema version instead of the published one. Only applied when schema_id is also provided.
expected_content_sha256NoThe content_sha256 from the get/create/update that gave you the content you edited. When set, the update is rejected (FAILED_PRECONDITION) if the stored content changed since — do NOT retry the same json, because it was built from a document that no longer exists: get_datafile again, re-apply your change to the content you just read, and send that with the new content_sha256. Omit for a blind overwrite, which is fine when nothing else writes this datafile (e.g. content you just created).

Output Schema

ParametersJSON Schema
NameRequiredDescription
jsonNo
slugYes
schema_idNo
datafile_idYes
descriptionYes
display_nameYes
content_sha256No
last_published_pathNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description adds critical context: it explains the concurrency safeguard via expected_content_sha256, that property order is preserved, that json replaces the whole document while metadata updates are partial, and that republishing pushes to the CDN. No contradictions with annotations.

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 long but every sentence earns its place. It front-loads the core purpose, then systematically covers the json-vs-metadata distinction, the alternative tool, the concurrency check, and the CDN push. No filler or redundancy.

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?

Covers all critical aspects: usage intent, alternative selection, concurrency safety, and the need to republish. With an output schema present, return values need not be described. The 7 parameters and nested structure are fully addressed through schema plus description.

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 good parameter descriptions, but the description adds strategic value beyond the schema: it clarifies the semantic difference between json (whole document replacement) and metadata fields, and explains the expected_content_sha256 precondition (reject on concurrent change, do not retry same json). This is more than mere repetition.

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

Purpose5/5

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

States a specific verb (update) and resource (datafile), and clarifies it is a partial update at the field level. Explicitly distinguishes from patch_datafile, telling the agent exactly what this tool does versus the alternative.

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?

Directly instructs when to prefer patch_datafile ('To change PART of an existing document') and when to use this tool ('when you are replacing the whole document anyway'). Also explains the expected_content_sha256 workflow for safe round-trip updates, providing clear decision criteria.

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

update_dynamic_endpointUpdate dynamic endpointA
Destructive
Inspect

Update a dynamic endpoint's display_name, description, and content_type (metadata only — this does NOT change the workflow binding or cache setting; author those with create_dynamic_endpoint_version, and the slug cannot be changed). This is a WHOLESALE replace: display_name is required and description + content_type are set to exactly what you pass. IMPORTANT: an empty content_type CLEARS it, reverting the endpoint to serving whatever content-type the workflow returns (e.g. a text/html page would start serving as text/plain). So read the current values with get_dynamic_endpoint first and pass all fields you want to keep.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoWhat this endpoint serves. Set wholesale — an empty value clears it.
endpoint_idYesThe endpoint id to update.
content_typeNoThe response Content-Type this endpoint serves (e.g. text/html). Set wholesale — an empty value CLEARS it, reverting to the workflow's own content-type. Pass the current value to preserve serving behavior.
display_nameYesHuman-readable name. Required (cannot be blank).

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
public_urlNo
descriptionYes
endpoint_idYes
content_typeYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true), the description discloses the wholesale replace semantics, that an empty content_type clears it, and the scope (metadata only). It fully explains the side effects and the requirement to pass all fields to preserve them, which is critical for a destructive, non-idempotent operation. No contradiction with annotations.

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 longer than average but each sentence is essential: it front-loads purpose and exclusions, then details replace semantics, then warns about clearing and gives the read-first directive. It is well-structured and efficient for the complexity involved, though slightly dense.

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 destructive, wholesale-replace operation, the description covers everything an agent needs: scope, replace behavior, clearing hazard, prerequisite read step, and the sibling tool for related changes. The output schema exists, so return values are documented elsewhere. No gaps remain for correct invocation.

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 significant value by explaining the replace behavior and the clearing effect of empty content_type, which the schema only hints at. It also clarifies that display_name is required and cannot be blank, enriching parameter 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 states a specific verb and resource ('Update a dynamic endpoint's display_name, description, and content_type'), and immediately clarifies it is metadata-only, distinguishing it from version creation. This is unambiguous and differentiates from sibling tools like create_dynamic_endpoint_version.

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?

It gives explicit when-to-use and when-not-to-use guidance: it tells the agent to read current values with get_dynamic_endpoint first, warns against using it for workflow binding or cache (directing to create_dynamic_endpoint_version), and explains the wholesale replace behavior. This is precise operational guidance.

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

update_scheduleUpdate scheduleA
Destructive
Inspect

Update a schedule's display name and description (metadata only — the cron/workflow/input live in the versioned definition; change those with create_schedule_version). This is a WHOLESALE replace: display_name is required and description is set to exactly what you pass (an empty/omitted description CLEARS it), so to change one field while keeping the other, read the current values with get_schedule first and pass both.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
schedule_idYesthe schedule id to update
display_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
last_run_atNo
last_run_idNo
next_run_atNo
schedule_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.8/5.0
Behavior5/5

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

Goes beyond annotations by detailing the exact replace semantics: display_name is required, description is set exactly as passed, and omitted description clears it. This gives full transparency about the mutation's 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 slightly verbose but every sentence carries essential information (behavior, alternative tool, and prerequisite). The structure is logical and not wasteful.

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 sibling tools, it effectively disambiguates from related schedule operations and the versioned definition. No critical details are missing for correct invocation.

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?

While only schedule_id has a schema description, the description adds meaning to display_name and description by explaining the wholesale replace and clearing behavior. This compensates for the low 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?

Clearly states the specific action (update display name and description) and explicitly contrasts with create_schedule_version for other fields. The verb and resource are 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?

Provides explicit guidance: directs users to create_schedule_version for cron/workflow/input changes, and warns about the wholesale replace behavior, advising to read current values first. This is actionable and complete.

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

update_schemaUpdate schemaA
Destructive
Inspect

Update a schema's display_name and description (metadata only — this does NOT change the JSON Schema body; author that with create_schema_version, and the slug cannot be changed). This is a WHOLESALE replace: display_name is required and description is set to exactly what you pass (an empty/omitted description CLEARS it), so to change one field while keeping the other, read the current values with get_schema first and pass both.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_idYesThe schema id to update.
descriptionNoWhat this schema describes. Set wholesale — an empty value clears it.
display_nameYesHuman-readable name. Required (cannot be blank).

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
schema_idYes
descriptionYes
json_schemaNo
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already carry destructiveHint=true and readOnlyHint=false, but the description adds critical behavioral detail beyond them: the WHOLESALE replace semantics, that description is set to exactly what you pass, that an empty/omitted description CLEARS it, and that display_name is required and cannot be blank. This surfaces the destructive edge cases the annotation only hints at.

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?

A single dense paragraph, front-loaded with the core purpose and scoping before the wholesale warning. Every sentence carries information, though it is somewhat long and could be split for scanability. Slightly above average for a tool with complex destructive semantics.

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 destructive mutation with no idempotentHint, the description fully covers the failure modes: what is and isn't changed, the clearing behavior, the required field, and the safe procedure for partial updates. With an output schema present, return-value documentation is not needed. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters, including 'Set wholesale — an empty value clears it' for description. The description adds the cross-parameter interaction (must pass both to change one) which is genuinely useful, but the schema carries most of the parameter burden, 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?

States a specific verb+resource+fields: 'Update a schema's display_name and description'. Explicitly scopes itself to metadata-only and distinguishes from the sibling create_schema_version (which authors the JSON Schema body), so an agent can tell them apart without opening schemas.

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

Usage Guidelines5/5

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

Gives explicit when-not guidance (this does NOT change the JSON Schema body; use create_schema_version for that) and names the alternative for safe partial updates (read current values with get_schema first). Also notes the immutable slug. Nothing is left to inference.

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

update_workflowUpdate workflowA
Destructive
Inspect

Update a workflow's display_name and description (metadata only — this does NOT change the workflow's logic; edit that with create_workflow_version / patch_workflow, and the slug cannot be changed). This is a WHOLESALE replace: display_name is required and description is set to exactly what you pass (an empty/omitted description CLEARS it), so to change one field while keeping the other, read the current values with get_workflow first and pass both.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoWhat this workflow does. Set wholesale — an empty value clears it.
workflow_idYesThe workflow id to update.
display_nameYesHuman-readable name. Required (cannot be blank).

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
definitionNo
descriptionYes
workflow_idYes
display_nameYes
latest_versionYes
last_published_versionYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already indicate destructiveHint=true, but the description adds valuable context that the operation is metadata-only and does not alter workflow logic, and clarifies that the slug is immutable. This goes beyond the annotation flags without contradicting them.

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 somewhat long but every sentence carries essential information: scope, wholesale-replace behavior, required fields, and the get_workflow-first approach. It is well-structured and not redundant with the schema descriptions.

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 that an output schema exists and no nested objects are present, the description sufficiently covers the operation's context. It explains the distinguishing factors from sibling tools (create_workflow_version, patch_workflow), the slug immutability, and the exact replacement semantics, making it complete 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.

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents that display_name is required and cannot be blank, and that description is set wholesale with an empty value clearing it. The tool description repeats this guidance but does not add new 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?

Clearly states the verb 'Update', the resource 'workflow', and the precise scope (display_name and description metadata only). It explicitly distinguishes from sibling tools by noting that logic edits go through create_workflow_version / patch_workflow and that the slug cannot be changed.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: it is a wholesale replace, display_name is required, description is set exactly to the passed value (empty clears it), and advises reading current values with get_workflow first to preserve fields. This leaves no ambiguity about how to invoke it correctly.

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

validate_workflowValidate workflowA
Read-onlyIdempotent
Inspect

Statically check a workflow definition WITHOUT running it — use this to catch authoring mistakes before create_workflow / create_workflow_version. Returns a findings list: JSON/schema shape, per-expression syntax, variable scope (a $var referenced where it isn't in scope), and resolution of referenced api_templates / sub_workflows / schemas / secrets. valid is true when there are no error-severity findings; warnings/info are advisory. Author the definition against get_workflow_definition_schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionYesThe workflow definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_workflow_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
findingsYes

TDQS

A4.3/5.0
Behavior5/5

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

The description clearly states the tool does not execute the workflow, describes the returned findings list, and explains the meaning of valid, warnings, and info. This aligns with and goes beyond the annotations readOnlyHint, idempotentHint, and destructiveHint=false.

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 dense but each sentence contributes useful information about purpose, usage, and output semantics. The repeated schema-authoring instruction is slightly redundant with the parameter description, but overall it is well-organized and not overly verbose.

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?

It covers validation scope, side-effect-free behavior, and output semantics, and an output schema is present so detailed return-value explanation is unnecessary. It could mention error or failure behavior more explicitly, but the core context 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?

The only parameter, definition, is already fully described in the input schema, including its nested object nature and the instruction to author against get_workflow_definition_schema. The tool description restates this but does not add substantial new parameter-level 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 states an explicit verb ('Statically check') and resource ('workflow definition'), and clarifies it does NOT run the workflow. It also distinguishes its purpose from create_workflow/create_workflow_version by positioning it as a pre-authoring validation step.

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

Usage Guidelines4/5

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

It explicitly says to use this before create_workflow/create_workflow_version and points to get_workflow_definition_schema for authoring. It implies the alternative is running/creation, but does not explicitly enumerate when-not-to-use compared with run_workflow or other tools.

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

verify_custom_domainVerify custom domainAInspect

Check the DNS TXT challenge for a claimed domain and, on success, take the global (hostname -> tenant) binding and start certificate issuance. Call this ONCE after the human confirms they have added the DNS records from create_custom_domain. DNS can take minutes to propagate, so do NOT poll this in a loop — if verified is false, tell the human it may take a few minutes and check back later (the server throttles rapid re-checks). Read get_custom_domain to watch the certificate go from CERT_PENDING to ACTIVE. First-to-verify wins: verifying is what actually claims the hostname.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesthe custom domain hostname to verify, e.g. shop.customer.com

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYes
verifiedYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations indicate a mutating, non-idempotent, open-world operation. The description adds crucial context: the one-time nature, the claim of the hostname ('first-to-verify wins'), the throttling of rapid re-checks, and that it initiates certificate issuance. This goes well beyond the annotations and fully discloses 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 yet information-dense. It opens with the core action, then layers in usage constraints and behavioral notes. Every sentence adds distinct value, and there is no fluff or repetition. It is well-structured for quick comprehension.

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 single-parameter tool with a complete schema and an output schema (as signaled), the description covers all necessary operational context: when to call, what happens on success, how to handle propagation delays, and how to track progress via a sibling. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

The input schema already provides a clear description for hostname ('the custom domain hostname to verify, e.g. shop.customer.com') with 100% coverage. The description does not add extra parameter-level detail, but none is needed. Baseline 3 is appropriate since the schema carries the semantic load.

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: 'Check the DNS TXT challenge for a claimed domain and, on success, take the global (hostname -> tenant) binding and start certificate issuance.' It distinguishes itself from siblings like create_custom_domain (which creates the entry) and get_custom_domain (which reads status) by describing the verification and binding action.

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

Usage Guidelines5/5

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

Explicitly instructs when to call ('ONCE after the human confirms they have added the DNS records'), when not to ('do NOT poll this in a loop'), and how to handle failures ('tell the human it may take a few minutes'). It also names an alternative tool, get_custom_domain, for monitoring progress. This is exemplary usage guidance.

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

whoamiShow current user and workspaceA
Read-onlyIdempotent
Inspect

Return the authenticated user and tenant for the current MCP session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailYes
rolesYes
scopeYes
user_idYes
tenant_idYes
tenant_slugYes

TDQS

A4.7/5.0
Behavior5/5

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

The description indicates a read-only retrieval operation. This aligns with the annotations readOnlyHint=true, idempotentHint=true, and destructiveHint=false. No side effects or mutations are implied.

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 redundant wording. It contains exactly the necessary information about the tool's 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?

The description adequately explains what the tool returns and the context ('current MCP session'). It does not spell out the exact output schema, but for a simple identity/tenant lookup, the stated information is likely sufficient for an agent to select and invoke 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?

The tool has no parameters, so there are no parameter semantics to document. The empty input schema fully covers this dimension.

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 returns the authenticated user and tenant for the current MCP session. The verb 'Return' is specific and the resource is unambiguous. It is distinct from the many CRUD-oriented 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 makes clear this is for retrieving identity/tenant context for the current session. It does not explicitly mention alternatives, but no sibling tool appears to offer the same function, so the use case is implicit and sufficient.

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. 1 tool update
    • Changedget_workflow_run_traces1 field changed
      • addedOutput schema / properties / steps / items / properties / blocks / items / properties / iterations
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "blocks": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "block": {
        +              "type": "string"
        +            },
        +            "error_message": {
        +              "type": "string"
        +            },
        +            "finished_at": {
        +              "type": "integer"
        +            },
        +            "input": {
        +              "additionalProperties": true,
        +              "type": "object"
        +            },
        +            "iterations_total": {
        +              "type": "integer"
        +            },
        +            "output": {
        +              "additionalProperties": true,
        +              "type": "object"
        +            },
        +            "started_at": {
        +              "type": "integer"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "block",
        +            "status"
        +          ],
        +          "type": "object"
        +        },
        +        "type": [
        +          "null",
        +          "array"
        +        ]
        +      },
        +      "index": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "index",
        +      "blocks"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
  2. 1 tool update
    • Changedget_workflow_run_traces1 field changed
      • removedOutput schema / properties / steps / items / properties / blocks / items / properties / iterations
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "blocks": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "block": {
        -              "type": "string"
        -            },
        -            "error_message": {
        -              "type": "string"
        -            },
        -            "input": {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            "iterations_total": {
        -              "type": "integer"
        -            },
        -            "output": {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            "status": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "block",
        -            "status"
        -          ],
        -          "type": "object"
        -        },
        -        "type": [
        -          "null",
        -          "array"
        -        ]
        -      },
        -      "index": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "index"
        -    ],
        -    "type": "object"
        -  },
        -  "type": [
        -    "null",
        -    "array"
        -  ]
        -}
  3. 1 tool update
    • Changedget_workflow_run_traces1 field changed
      • addedOutput schema / properties / steps / items / properties / blocks / items / properties / iterations
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "blocks": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "block": {
        +              "type": "string"
        +            },
        +            "error_message": {
        +              "type": "string"
        +            },
        +            "input": {
        +              "additionalProperties": true,
        +              "type": "object"
        +            },
        +            "iterations_total": {
        +              "type": "integer"
        +            },
        +            "output": {
        +              "additionalProperties": true,
        +              "type": "object"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "block",
        +            "status"
        +          ],
        +          "type": "object"
        +        },
        +        "type": [
        +          "null",
        +          "array"
        +        ]
        +      },
        +      "index": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "index"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
  4. 93 tool updates
    • First observedanalyze_resource
    • First observedcreate_api_template
    • First observedcreate_api_template_version
    • First observedcreate_app
    • First observedcreate_app_version
    • First observedcreate_custom_domain
    • First observedcreate_datafile
    • First observedcreate_dynamic_endpoint
    • First observedcreate_dynamic_endpoint_version
    • First observedcreate_schedule
    • First observedcreate_schedule_version
    • First observedcreate_schema
    • First observedcreate_schema_version
    • First observedcreate_workflow
    • First observedcreate_workflow_version
    • First observeddelete_api_template
    • First observeddelete_app
    • First observeddelete_datafile
    • First observeddelete_dynamic_endpoint
    • First observeddelete_schedule
    • First observeddelete_schema
    • First observeddelete_workflow
    • First observedexecute_api_template
    • First observedget_api_template
    • First observedget_api_template_definition_schema
    • First observedget_api_template_version
    • First observedget_app
    • First observedget_app_definition_schema
    • First observedget_app_members
    • First observedget_app_version
    • First observedget_asset
    • First observedget_custom_domain
    • First observedget_datafile
    • First observedget_dynamic_endpoint
    • First observedget_dynamic_endpoint_definition_schema
    • First observedget_dynamic_endpoint_version
    • First observedget_guide
    • First observedget_resource_graph
    • First observedget_schedule
    • First observedget_schedule_definition_schema
    • First observedget_schedule_version
    • First observedget_schema
    • First observedget_secret
    • First observedget_workflow
    • First observedget_workflow_definition_schema
    • First observedget_workflow_run
    • First observedget_workflow_run_traces
    • First observedget_workflow_version
    • First observedlist_api_templates
    • First observedlist_app_versions
    • First observedlist_apps
    • First observedlist_assets
    • First observedlist_custom_domains
    • First observedlist_datafiles
    • First observedlist_dynamic_endpoint_runs
    • First observedlist_dynamic_endpoints
    • First observedlist_guides
    • First observedlist_runs
    • First observedlist_schedule_runs
    • First observedlist_schedule_versions
    • First observedlist_schedules
    • First observedlist_schemas
    • First observedlist_secrets
    • First observedlist_workflows
    • First observedpatch_datafile
    • First observedpatch_workflow
    • First observedpreview_dynamic_endpoint
    • First observedpublish_api_template
    • First observedpublish_app
    • First observedpublish_datafile
    • First observedpublish_dynamic_endpoint
    • First observedpublish_schedule
    • First observedpublish_schema
    • First observedpublish_workflow
    • First observedrename_app_slug
    • First observedrename_schedule_slug
    • First observedrun_schedule_now
    • First observedrun_workflow
    • First observedunpublish_app
    • First observedunpublish_datafile
    • First observedunpublish_dynamic_endpoint
    • First observedunpublish_schedule
    • First observedupdate_api_template
    • First observedupdate_app
    • First observedupdate_custom_domain
    • First observedupdate_datafile
    • First observedupdate_dynamic_endpoint
    • First observedupdate_schedule
    • First observedupdate_schema
    • First observedupdate_workflow
    • First observedvalidate_workflow
    • First observedverify_custom_domain
    • First observedwhoami

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources