Tessryx
Server Details
Build and run websites, APIs, automations, and admin tools from chat. Your agent creates the data, logic, pages, and scheduled jobs; Tessryx hosts them on your own domain. No code generated, nothing to deploy.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
93 toolsanalyze_resourceAnalyze resourceARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | the kind of resource to analyze: app, dynamic_endpoint, schedule, custom_domain, workflow, api_template, datafile, schema, secret. An app is the usual subject | |
| resource | Yes | slug 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 | |
| hypothetical | No | instead 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
| Name | Required | Description |
|---|---|---|
| infos | Yes | |
| errors | Yes | |
| subject | Yes | |
| findings | Yes | |
| warnings | Yes | |
| deployable | Yes | |
| incomplete_nodes | Yes | |
| reachability_known | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that hypothetical mode runs 'WITHOUT changing anything' and explicitly says 'nothing is changed — this is a preview', which is consistent with readOnlyHint=true and destructiveHint=false. It also adds non-obvious behaviors: incomplete_nodes are runtime-built references that cannot be statically checked, and non-root subjects are analyzed without reachability weighting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but densely useful, with the core purpose front-loaded and examples inline. Minor redundancy exists ('WITHOUT changing anything' and later 'nothing is changed — this is a preview'), but 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an output schema, the description still covers the essential return semantics (findings, deployable, incomplete_nodes), parameter syntax, and the non-root subject behavior. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, and the description adds meaning on top: bare slugs mean @published, custom_domain expects a hostname, and hypothetical defines delete/unpublish/publish semantics with concrete examples. This materially improves an agent's ability to pick correct values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Check whether a resource and everything it depends on is sound') and names the deployability outcome (errors/warnings/deployable), making the tool's job unambiguous. However, it never explicitly distinguishes this from sibling tools like get_resource_graph or validate_workflow, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: run it before deleting or unpublishing something that other resources may use, and before publishing a draft to see whether it resolves. It does not name alternatives or state when not to use the tool, so it stops short of full when/when-not coverage.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | URL-safe slug, optionally hierarchical. | |
| publish | No | If 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. | |
| definition | Yes | The 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. | |
| description | No | What external call this template makes. | |
| display_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint and destructiveHint annotations, the description carries most of the behavioral burden and handles it well: it discloses that this operation mints a new template plus version 1, that publish=true publishes in the same step, and that iteration should happen before wiring into a workflow. It could more explicitly state the unpublised-draft default, though the schema already covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the tool's core purpose, then proceeds through the essential workflow and the key sibling distinction. Every sentence earns its place, and the parenthetical alternative is cleanly separated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and focused workflow guidance, the description is complete enough for correct tool selection and invocation. It covers prerequisites, iteration, publishing behavior, and the main alternative tool without requiring the agent to infer the critical steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameters. The description adds useful semantics beyond the schema by explaining that the definition must be authored against get_api_template_definition_schema, that execute_api_template is the iteration path, and that publish=true collapses create-then-publish into one step.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('create') and a specific resource ('a BRAND-NEW api template') and clarifies it mints the template plus its version 1. It distinguishes itself from create_api_template_version by explicitly saying that tool is for adding versions to existing templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear creation workflow: fetch the JSON Schema, author the definition, iterate with execute_api_template, publish with publish=true. It also names the exact alternative for appending versions to existing templates, so the agent knows when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| publish | No | If 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. | |
| definition | Yes | The 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_id | Yes | The template id to add a version to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark the operation as non-open-world and non-destructive; the description adds meaningful behavioral context: it evolves an existing template, creates an unpublished draft by default, and can publish immediately with publish=true. It stops short of disclosing error/auth/validation outcomes, but the schema describes that the owning service validates on submit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, followed by actionable guidance and a clear alternative. Every sentence earns its place with no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description sufficiently covers the workflow: prerequisite (existing template), definition authoring path, publish behavior, and sibling differentiation. Nothing essential for selecting and invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters; the description nevertheless adds value by telling the agent to author the definition against get_api_template_definition_schema and to pass publish=true for immediate publishing. This goes beyond bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (api template version) and the specific action (add a new version to an EXISTING api template by template_id), and distinguishes it from create_api_template by explicitly directing brand-new template creation to that sibling. This is a specific verb+resource statement with sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the exact condition for use (existing template), how to author the definition (against get_api_template_definition_schema), the optional publish=true behavior, and names the alternative tool for brand-new templates. This is explicit when-to-use and alternative routing.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Unique per-tenant slug; this is the app's folder prefix (hierarchical segments allowed, e.g. storefront or marketing/campaigns). | |
| publish | No | If 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. | |
| definition | Yes | The 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. | |
| description | No | What this app is (human + LLM-facing prose). | |
| display_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| version | Yes | |
| published | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry openWorldHint=false and destructiveHint=false, so the description carries the behavioral burden — and it carries it thoroughly. It discloses the minting behavior (app + version 1 created together), automatic member capture via prefix rules ('you never hand-add members'), and the side-effect of publish=true. It also reveals the validation rule that an empty definition is draft-valid but unpublishable, which no structured field communicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, with publish behavior and sibling routing following logically. It runs long, but every clause contributes — workflow, membership semantics, schema reference, draft rule — with no filler or repetition of schema content. Slightly dense but appropriately so for a tool with a nested definition object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is unnecessary. The description covers the invocation workflow, definition schema lookup, publish semantics, validation constraints, and sibling alternatives. Nothing an agent needs to correctly select and invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, and the description adds genuine meaning on top: slug becomes the folder prefix that drives automatic membership ('storefront/page, storefront/products…'), and definition is disclosed as holding the membership selector (prefix rules + includes/excludes). publish=true gains workflow context as 'publish v1 immediately'. It adds little for display_name/description, but those are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'create a BRAND-NEW app (mints the app + its version 1)'. It explicitly differentiates itself from its closest sibling with '(To add a version to an existing app, use create_app_version.)', and the slug-as-folder-prefix explanation further separates it from API-template/workflow creators. An agent can tell exactly what this tool produces and how it differs from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to start here — 'Start here when building a page or an API bundle' — and names the exclusion: adding a version to an existing app goes through create_app_version. It also walks through the authoring flow (choose slug, author members under the prefix, fetch the definition schema) and clarifies draft-vs-publish behavior. This is explicit, actionable routing guidance.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The app id to add a version to. | |
| publish | No | If 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. | |
| definition | Yes | The 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
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| version | Yes | |
| published | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint=false and destructiveHint=false but no readOnlyHint, so the description carries the burden of explaining the write behavior. It does so: the call mutates an existing app's selector/display, and "publish=true to make it the live manifest immediately" implies the previous version is superseded. This adds useful behavioral context beyond the structured annotations, though it stops short of spelling out the fate of the previously live version.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler. The core purpose is front-loaded in the first sentence, the authoring workflow in the second, and the sibling disambiguation in the third. Every sentence earns its place, and the parenthetical about create_app is placed exactly where the agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity — versioning semantics, publish behavior, a nested definition object, and an output schema — the description covers the essentials: purpose, definition authoring path (get_app_definition_schema), publish mechanics, and alternative routing. Minor gaps remain (whether the prior live version is destroyed or demoted on publish, and how unpublished drafts are listed), but nothing that would block a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents app_id, publish, and definition thoroughly. The description adds modest extra framing — "membership selector (prefix rules, includes/excludes)" gives the definition parameter practical meaning, and "live manifest" sharpens the publish semantics. This is value-add but not substantial enough to push above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — "add a new version to an EXISTING app (by app_id)" — and states exactly what the version changes: "membership selector (prefix rules, includes/excludes) or display." It explicitly distinguishes itself from the immediate sibling create_app ("For a brand-new app, use create_app"), and is also distinguishable from the other create_*_version siblings by naming its resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-not with a named alternative: "(For a brand-new app, use create_app.)" It also gives workflow guidance for the main path — author the version definition against the schema fetched from get_app_definition_schema — and explains when to set publish=true versus leaving the draft unpublished. The agent can select and execute this tool without inference.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | The customer's fully-qualified hostname, e.g. shop.customer.com. Immutable — it is the domain's identity. | |
| slug_prefix | No | Optional. 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_name | No | Optional human label, e.g. 'Marketing site'. | |
| root_endpoint | No | Optional. What the domain root ('/') serves, RELATIVE to slug_prefix. Can be set later with update_custom_domain. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| hostname | Yes | |
| dns_records | No | |
| slug_prefix | No | |
| verified_at | No | |
| activated_at | No | |
| display_name | No | |
| root_endpoint | No | |
| last_check_message | No | |
| cert_status_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral context far beyond the sparse annotations: that the claim alone grants nothing, that ownership must be proven, and that two DNS records are returned for the customer to add. This prevents an agent from assuming the domain is immediately active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary action and the critical caveat, then moves into the customer-facing flow, then the parameter lifecycle note. Every sentence earns its place and none is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, high schema coverage, an output schema, and a clear stateful flow, the description covers the essential workflow: what the claim produces, what the customer must do, and what to call next. The presence of an output schema means return-value details do not need to be repeated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description adds meaningful lifecycle context for slug_prefix and root_endpoint, noting they are optional here and usually set later with update_custom_domain, which is beyond the schema's static property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Claim a custom hostname for this tenant and generate its DNS challenge.' It clearly distinguishes this tool from verify_custom_domain and update_custom_domain by framing the action as a claim, not a completed setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names verify_custom_domain as the next step after DNS records are added by the customer, and update_custom_domain as the tool for setting slug_prefix/root_endpoint after verification. This gives the agent a clear when-to-use and sequencing rule versus 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.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | The JSON object this datafile holds. Property order is preserved verbatim. | |
| slug | Yes | URL-safe slug, optionally hierarchical. | |
| schema_id | Yes | Id 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. | |
| description | No | What this datafile holds. | |
| display_name | No | Human-readable name. | |
| use_latest_schema | No | Validate against the latest (draft) schema version instead of the published one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| json | No | |
| slug | Yes | |
| schema_id | No | |
| datafile_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| content_sha256 | No | |
| last_published_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description highlights key behavioral aspects: the datafile must be bound to a schema, schema validation applies, property order is preserved, and publishing is a separate step. Annotations indicate non-destructive behavior (destructiveHint false), which aligns with the 'create' action. It does not mention auth or rate limits, but these are not critical for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that are direct and free of fluff. It front-loads the core purpose and then provides essential caveats (schema requirement, property order, publishing step) without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool, the description covers the necessary workflow context: the prerequisite (schema), the creation action, and the follow-up (publish). It does not detail the output or error cases, but these are typically not required in a tool description. Overall, it provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions already cover all parameters (100% coverage), and the tool description adds context about the relationship between schema_id and json (schema validates the JSON, generates the human editor). It also reinforces the preservation of property order. While redundant with schema descriptions in some places, it adds meaningful workflow context, so it is above average.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a new datafile holding a JSON object.' It uses a specific verb (create) and resource (datafile), and distinguishes it from sibling tools like create_schema or create_dynamic_endpoint by emphasizing the datafile-specific requirement of being bound to a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful usage guidance: it specifies the prerequisite of having a schema ('author or pick one with the schema tools first') and the next step after creation ('Publish it with publish_datafile to serve it from the CDN'). It does not explicitly contrast with update_datafile, but the creation vs. update distinction is clear from the tool name and context.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | URL-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 '..'. | |
| publish | No | If 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. | |
| definition | Yes | The 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. | |
| description | No | What this endpoint serves. | |
| content_type | No | The 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_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| public_url | No | |
| endpoint_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare openWorldHint=false and destructiveHint=false, so the description carries the burden of disclosing side effects. It does so effectively: the call mints both the endpoint and its version 1, and the publish=true vs. unpublished-draft behavior is clearly stated. No description contradicts the annotations, so no contradiction flag. It stops short of disclosing prerequisites or reversibility, but the core behavioral surface is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: core action, definition-authoring guidance, publish semantics, and sibling routing. The most decision-relevant fact (brand-new vs. version-add) is front-loaded, and there is zero filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (return values covered), the input schema is 100% documented, and the description covers the publish workflow, authoring flow, and sibling differentiation, the tool is nearly complete for an agent to invoke correctly. The only gap is unstated prerequisites — e.g., whether the referenced workflow version must already exist or be published before this call succeeds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself is unusually rich (slug's path-routing, :param placeholders, 404 semantics, authoritative content_type). The description still adds value beyond it by revealing the definition's internal content — binding to a workflow by versioned-slug reference plus a cache setting — which the schema does not state. The publish flag's one-step meaning is also reinforced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific verb and resource: 'create a BRAND-NEW dynamic endpoint (mints the endpoint + its version 1)'. It precisely scopes the operation as creating a new endpoint, which distinguishes it from dozens of create_* siblings, and the parenthetical clarifies it also mints version 1. This is far more specific than 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative: 'To add a version to a dynamic endpoint that already exists, use create_dynamic_endpoint_version.' It also distinguishes the publish path (publish=true now vs. publish_dynamic_endpoint later) and directs the agent to get_dynamic_endpoint_definition_schema for authoring. When-to-use and when-not-to-use are both explicit, which is essential given 70+ sibling tools.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| publish | No | If 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. | |
| definition | Yes | The 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_id | Yes | The endpoint id to add a version to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| public_url | No | |
| endpoint_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare openWorldHint=false and destructiveHint=false, but do not establish that this is a mutating operation. The description adds valuable behavioral context: it creates a new version on an existing endpoint, and that publish=true takes the version live immediately. This goes beyond what annotations alone convey, though it does not discuss draft lifecycle details beyond implication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core operation, then covers the authoring source, publish behavior, and the key sibling exclusion in four short sentences. Every sentence carries useful operational guidance with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema presence, and annotations, the description covers the remaining contextual needs: distinguishing existing vs. new endpoint creation, pointing to the definition schema, and explaining the publish path. Nothing operationally critical is missing for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the publish=true purpose and points to the definition schema tool, but most of the actual parameter meaning is already fully documented in the input schema. The description adds only marginal value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action: 'add a new version to an EXISTING dynamic endpoint (by endpoint_id)' to evolve an existing endpoint. It explicitly contrasts with create_dynamic_endpoint for brand-new endpoints, so an agent can disambiguate from the sibling tool without opening its schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use guidance: use this when the dynamic endpoint already exists, and explicitly names the alternative for new endpoints ('For a brand-new dynamic endpoint, use create_dynamic_endpoint.'). It also tells the agent to author definitions against get_dynamic_endpoint_definition_schema and explains the publish=true shortcut.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Unique per-tenant slug; hierarchical path segments allowed (e.g. reports/daily-summary). | |
| publish | No | If 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. | |
| definition | Yes | The 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. | |
| description | No | What this schedule does (human + LLM-facing prose). | |
| display_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| schedule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse ({openWorldHint:false, destructiveHint:false}), so the description carries the burden and meets it: it discloses that the call mints two artifacts (the schedule plus its version 1), that publish=true activates firing, and that the workflow definition must reference a versioned-slug (published/latest). It does not cover auth prerequisites or failure behavior, but the creation and activation semantics are clearly stated and consistent with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but front-loaded with the core purpose ('Schedule authoring — create a BRAND-NEW schedule') and every clause earns its place: mint semantics, definition anatomy, publish behavior, and sibling routing. It is slightly repetitive with the definition parameter's schema text, but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with a deeply nested required parameter, an output schema, and several tightly related siblings, the description is complete: it says what artifacts are created, what the definition must contain, how to author it correctly, how publish/activation works, and exactly which sibling to use instead. Return-value explanation is unnecessary given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, setting the baseline at 3, but the description adds genuine value beyond the schema: it explains the internal anatomy of the required 'definition' object (versioned-slug ref, cron+IANA timezone vs. 'every N minutes/hours' interval, optional $input binding), which the schema does not describe. This compensates for the one nested parameter with the most ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'create a BRAND-NEW schedule (mints the schedule + its version 1)'. The 'BRAND-NEW' qualifier and closing parenthetical explicitly contrast with create_schedule_version for existing schedules, so an agent can distinguish this tool from its closest sibling without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'To add a version to a schedule that already exists, use create_schedule_version' names the exclusion condition and the alternative tool. It also explains the publish path alternatives (publish=true inline vs. publish_schedule later) and directs the agent to get_schedule_definition_schema before 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_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.)
| Name | Required | Description | Default |
|---|---|---|---|
| publish | No | If 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. | |
| definition | Yes | The 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_id | Yes | The schedule id to add a version to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| schedule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate openWorldHint=false and destructiveHint=false, so the description carries the behavioral burden. It transparently states the additive nature ('add a new version'), the publish=true activation behavior, and that the service validates the definition. It does not detail what happens to previously published versions, but this is adequately implied by the versioning model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and contains no filler. Every sentence adds value: purpose, definition authoring, publish behavior, and sibling differentiation are all covered efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with a fully documented input schema and an output schema, gives the agent everything needed to call this tool correctly. It covers what to pass, how to construct the definition, the publish option, and when to use a different tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful parameter-level context: publish=true activates immediately, and the definition must be authored against get_schedule_definition_schema. This goes beyond what the schema alone states and helps the agent construct a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: adding a new version to an existing schedule by schedule_id. It names the specific resource and explicitly contrasts itself with create_schedule for brand-new schedules, making sibling differentiation immediate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to use this tool (existing schedule) and when to use the alternative (brand-new schedule → create_schedule). It also provides concrete direction to fetch the definition schema before authoring, which is actionable usage guidance.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | URL-safe slug, optionally hierarchical. | |
| publish | No | If 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. | |
| description | No | What this schema describes. | |
| json_schema | Yes | The JSON Schema body datafiles validate against; becomes version 1. Property order is preserved verbatim. | |
| display_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| schema_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations, the description discloses important behavioral details: property order is preserved and becomes the editor field order, certain types need x-tessryx-ui hints to render properly, and publish defaults to false. It makes the side effects of the call clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries important operational knowledge. It front-loads the core purpose, then flows naturally from schema authoring details to publishing and versioning alternatives without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and all parameters are already described in the input schema, the description covers the remaining contextual needs: version creation, publishing behavior, ordering semantics, and UI rendering caveats. An agent has enough to invoke this tool correctly and avoid common pitfalls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics for json_schema (order preservation, UI implications, hint requirements) and publish (immediate publication semantics), going beyond the raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a brand-new schema and implicitly its version 1, using a specific verb and resource. It explicitly distinguishes itself from create_schema_version, so an agent can tell them apart immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete routing guidance: use create_schema_version when adding a version to an existing schema, use publish_schema for later publishing, and consult get_guide("schemas") for UI hints. This is explicit and directly actionable.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| publish | No | If 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_id | Yes | The schema id to add a version to. | |
| json_schema | Yes | The JSON Schema body for the new immutable version. Property order is preserved verbatim. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | Yes | |
| published | Yes | |
| schema_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare openWorldHint=false and destructiveHint=false, providing little behavioral context. The description adds meaningful behavior: versions are immutable, property order is preserved verbatim, media/uploads/cron/colors need an x-tessryx-ui hint or they render as bare text, and publish chooses the live version. It does not fully explain what happens to prior versions or drafts, but it discloses the key operational behaviors 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph that front-loads the core purpose (add a new version to an EXISTING schema), then gives the key behavioral caveats and the sibling differentiator. Every sentence carries information; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, 3 parameters, and an output schema, the description covers the essential context: existing schema usage, immutability, property order, publish behavior, and referencing get_guide for hints. It is slightly less complete than the top-tier examples because it doesn't mention version listing or rollback behavior, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents schema_id, json_schema, and publish. The description adds value by explaining the verbatim property-order semantics and noting that publish=true is the common create-then-publish convenience. However, the description doesn't add much deep parameter-level detail beyond the schema, keeping it at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (add a new version) and resource (an EXISTING schema by schema_id) and contrasts it with create_schema for brand-new schemas. It clearly distinguishes create_schema_version from sibling tools like create_workflow_version and create_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use create_schema for a brand-new schema, and this tool for evolving an existing schema. It also explains publish=true as a convenience for create-then-publish in one step, and directs users to get_guide('schemas') for hints. This is strong when-to-use guidance with exclusions.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | URL-safe slug, optionally hierarchical (e.g. reports/daily). | |
| publish | No | If 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. | |
| definition | Yes | The 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. | |
| description | No | What this workflow does. | |
| display_name | No | Human-readable name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| valid | Yes | |
| created | Yes | |
| version | No | |
| findings | No | |
| published | Yes | |
| workflow_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the full behavior: it mints both the workflow and version 1, statically validates the definition before writing, returns created=false on error-severity findings, includes advisory findings on success, and supports publish=true for one-step publication. This goes far beyond the sparse annotations and gives the agent a clear model of side effects and failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: it opens with the core purpose, then covers definition authoring, validation behavior, publish option, and the sibling alternative. Every sentence carries useful information, and the final parenthetical cleanly prevents confusion with the versioning tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex authoring tool, the description covers all essential aspects: how to author the definition, what validation means, what the result indicates on both success and failure, how to publish, and how to handle the versioning alternative. The output schema handles the exact return shape, so no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the input schema has 100% coverage, the description adds important meaning around the publish parameter (create-and-publish in one step) and the definition parameter (must satisfy a JSON Schema, validated before writing). The mention of slug being URL-safe and optional publication defaulting to draft is also useful. It does not add much for display_name or description, but those are self-explanatory and schema-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a BRAND-NEW workflow and explicitly distinguishes it from create_workflow_version, which is for adding a version to an existing workflow. The verb 'create' plus the specific resource 'workflow' and the version 1 minting detail leave no ambiguity about 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use create_workflow_version when adding a version to an existing workflow, and it tells the agent to use get_workflow_definition_schema before authoring. It also explains that the built-in static validation means a separate validate_workflow pass is unnecessary, which directly informs tool selection.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| publish | No | If 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. | |
| definition | Yes | The 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_id | Yes | The workflow id to add a version to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| valid | Yes | |
| created | Yes | |
| version | No | |
| findings | No | |
| published | Yes | |
| workflow_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only openWorldHint=false and destructiveHint=false, leaving behavioral disclosure to the description. The description delivers the critical behaviors: static validation happens BEFORE the write, error-severity findings mint nothing (valid=false, created=false), and successful writes return advisory findings. This is exactly the kind of side-effect and failure-semantics context an agent needs and is well beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries a distinct job: scope, authoring source, validation behavior, publish option, and sibling routing. It is slightly heavy with parenthetical asides ('valid=false, created=false'), but the core purpose is front-loaded and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested definition object and a conditional publish side-effect, the description covers the full calling flow: what to pass, how to author it, what validation does, what a failed vs. successful write yields, and how publishing is handled. An output schema exists, so return-value shapes are already documented, and the agent is left with no material gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine value on top: it tells the agent to author the definition against get_workflow_definition_schema, explains the validation consequence for a bad definition, and frames publish=true against the alternative publish_workflow tool. This gives each parameter decision context the schema alone doesn't provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'add a new version to an EXISTING workflow (by workflow_id)'. It explicitly scopes to workflows that already exist and closes with the parenthetical exclusion '(For a brand-new workflow, use create_workflow.)', which clearly differentiates it from its closest sibling without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('to evolve a workflow you already created'), an explicit when-not-to-use with the named alternative ('For a brand-new workflow, use create_workflow'), and routes to the correct related tools for authoring (get_workflow_definition_schema) and later publishing (publish_workflow). No inference is required.
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 templateADestructiveInspect
Permanently delete an api template and all its versions. Cannot be undone; a workflow api_call that references it fails cleanly at run time.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | the api template id to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include destructiveHint: true; the description adds the irreversibility ('Cannot be undone'), cascading version deletion, and the runtime failure behavior of referencing workflows. This is exactly the extra behavioral context that annotations do not provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences; the key fact (permanent delete of template and all versions) is front-loaded and every clause adds information. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, single-parameter destructive tool, the description covers the object scope, irreversibility, and downstream consequences (runtime failure). The presence of an output schema and annotations handles return and safety details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single template_id parameter is fully documented in the schema (100% coverage), so the description need not repeat it. The description adds no new parameter-level details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'permanently delete' with the resource 'api template' and clarifies scope ('all its versions'). It is unmistakably distinct from sibling read, update, publish, and unpublish operations on api templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: this is an irreversible, destructive removal, and dependent workflow api_calls will fail at runtime. This implies use only when permanent removal is intended, but it does not explicitly name an alternative such as unpublish_api_template or state a direct 'when not to use' condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_appDelete appADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | the app id to delete permanently |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint annotation by explicitly stating 'This cannot be undone' and clarifying that member resources are untouched, giving full transparency about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and well-structured, covering all necessary points without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It fully covers the operation's scope, permanence, and alternatives, making it complete in the context of sibling delete and unpublish tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter app_id is described in the schema with 'the app id to delete permanently', which matches the description. The tool description adds no further detail, so it stays at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool permanently deletes an app and all its versions, and explicitly distinguishes it from unpublish_app, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It directly provides guidance on when to use the tool (for permanent deletion) and when not to (use unpublish_app to hide), leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_datafileDelete datafileADestructiveInspect
Permanently delete a datafile (unpublishing it from the CDN first if published). Cannot be undone; anything referencing it is left dangling and degrades.
| Name | Required | Description | Default |
|---|---|---|---|
| datafile_id | Yes | the datafile id to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds critical behavioral details: deletion is permanent, cannot be undone, unpublishes from CDN first, and leaves referencing content dangling and degraded. This richly discloses consequences the agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, followed by essential caveats (permanence, CDN unpublish, dangling references) that each add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive operation with an existing output schema, the description covers all relevant context: what the tool does, side effects, and consequences. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the only parameter (datafile_id) with 100% coverage. The description does not add new parameter-level detail, and the baseline of 3 applies because the schema carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Permanently delete') and resource ('datafile'), making the purpose unmistakable. It also clarifies the CDN unpublishing step, which distinguishes it from the sibling unpublish_datafile tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about what happens when the datafile is published, implying this tool is the full deletion path versus merely unpublishing. It does not explicitly name an alternative or exclusion, but the context is sufficient for an agent to decide when to invoke it.
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 endpointADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint_id | Yes | the endpoint id to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint annotation by stating the action is irreversible, that the server purges the public edge URL first, and that the resource no longer appears in list_dynamic_endpoints. This gives the agent crucial behavioral context about side effects and permanence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action, followed by a parenthetical behavioral note and a clear differentiation from the sibling. Every sentence adds value with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, a destructive semantic clearly disclosed, an output schema, and a clear comparison to the relevant alternative. Nothing an agent needs to correctly select and invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter endpoint_id, with the schema already describing it as 'the endpoint id to delete'. The tool description does not add parameter-level detail beyond the schema, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Permanently delete' with the resource 'dynamic endpoint', and explicitly contrasts with 'unpublish' by stating this removes the resource entirely. This makes it immediately distinguishable from sibling tools like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative ('Unlike unpublish') and explains the key difference: unpublish does not remove the resource, while this tool does. An agent can confidently decide between delete_dynamic_endpoint and unpublish_dynamic_endpoint based on this guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_scheduleDelete scheduleADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes | the schedule id to delete permanently |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, but the description goes further by disclosing that deletion is permanent, cannot be undone, and cascades to versions and run history. This is meaningful behavioral context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry all essential information with no filler. The primary action and consequence are front-loaded, and the alternative tool is mentioned at the end in one compact sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive operation with an output schema and clear annotations, the description fully covers irreversibility, scope of deletion, and the key alternative. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter schedule_id is already well-described in the schema as 'the schedule id to delete permanently.' The description does not add parameter-level detail, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('delete'), a specific resource ('schedule'), and the full scope of the deletion ('all its versions and run history'). It also clearly distinguishes this from unpublish_schedule, so an agent can immediately tell which sibling tool is relevant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool and when not to: 'To simply stop it firing without deleting, use unpublish_schedule.' This direct alternative guidance removes ambiguity and is exactly what an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_schemaDelete schemaADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| schema_id | Yes | the schema id to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses irreversible deletion, the removal of all versions, and downstream consequences: bound datafiles/workflows keep dangling references and skip schema validation. This is substantial behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences carry the essential purpose, irreversibility, and downstream effects with no filler or repetition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-parameter tool with an output schema and strong annotations, the description is complete: it names the target, scope, irreversibility, and effect on bound resources. No critical caller decision is left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the schema already documents the single schema_id parameter. The description adds that the deletion affects all versions of that schema, but this is a behavioral consequence rather than new parameter-format semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Permanently delete a schema and all its versions.' It clearly distinguishes this delete_schema tool from the many other delete_* siblings by naming the exact target and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for permanent removal of a schema, but it does not explicitly state when to choose it over alternatives such as unpublish_schema or how it differs from deleting other resources. Usage must be inferred from the 'permanently delete' wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflowDelete workflowADestructiveInspect
Permanently delete a workflow and all its versions. Cannot be undone; endpoints or sub_workflow references to it fail cleanly at run/serve time.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | the workflow id to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already include destructiveHint=true, and the description adds meaningful detail: deletion is permanent, cannot be undone, and downstream endpoints or sub_workflow references will fail cleanly at run/serve time. This gives the agent a concrete understanding of consequences beyond the annotation flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the most important information front-loaded: permanent deletion and irreversibility. Every sentence adds value and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool with destructiveHint and an output schema, the description covers the key operational facts: scope of deletion, irreversibility, and downstream failure behavior. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage and already describes workflow_id as 'the workflow id to delete'. The description does not add parameter-level nuance, so the baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('delete'), the resource ('a workflow'), and the full scope ('and all its versions'), which goes beyond the title. It clearly distinguishes this from sibling delete_* tools by naming the exact resource type and its versioned nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope is clear: this deletes the workflow and all versions, which helps an agent decide whether it is the right operation. However, it does not explicitly discuss when to prefer this over alternatives or when not to use it, such as when only a single version needs removal.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the template slug to execute (provide this or template_id) | |
| version | No | specific version to execute; omit for the published version | |
| variables | No | values bound to the template's variables for this execution | |
| template_id | No | the template id to execute (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| duration_ms | Yes | |
| request_url | Yes | |
| status_code | Yes | |
| request_body | Yes | |
| response_body | Yes | |
| request_method | Yes | |
| request_headers | Yes | |
| response_headers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond the annotations by stating 'This runs the real outbound request.' This warns the agent that executing the template has live side effects, which is not obvious from destructiveHint=false alone. It also clarifies that this is a live execution, not a preview or simulation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: it opens with the core action and output, then gives the use case, then states the critical caveat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description only needs to convey purpose, use case, and behavioral caveats—all of which are present. It covers the live request nature, the trace output, and the workflow-debugging context. Nothing essential is missing for an agent to decide when and how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters and their meanings. The description mentions 'variables' and 'debug a template' but does not add new parameter semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Execute an api template live'), the resource ('against the given variables'), and the exact output ('full trace: rendered request... response...'). It clearly identifies this as a debug/execution tool, distinguishing it from the many get/update/publish siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it: 'Use this to debug a template before wiring it into a workflow.' It does not explicitly name alternatives or exclusion conditions, but the workflow-context guidance gives clear situational direction.
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 templateARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the template slug (provide this or template_id) | |
| template_id | No | the template id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| template_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the version selection behavior ('published if any, else latest') and that the definition body is included. This goes beyond the readOnly annotation to explain exactly what the tool returns, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary purpose, and the alternative tool mention is placed appropriately. No unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description covers what the tool returns, how to retrieve older versions, and the optional parameter choice. It is 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes both parameters (slug and template_id) with 'provide this or template_id' hints. The description adds no additional parameter-specific meaning beyond what is in the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (Get) and resource (single api template) and specifies that it returns the current version's definition body. It also distinguishes from reading older versions, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the user when to use this tool vs the alternative: 'Use get_api_template_version to read a specific older version.' This provides clear guidance on when to choose this tool over the sibling tool.
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 schemaARead-onlyInspect
Get the JSON Schema an api template definition must satisfy. Fetch this before authoring the definition for create_api_template / create_api_template_version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| json_schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context by noting the schema is normative ('must satisfy') and that fetching it is a prerequisite step before authoring a definition, which is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no wasted words. The primary purpose is front-loaded, and the second sentence earns its place by connecting the schema to the specific create operations that require it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only schema getter, the description covers what the tool returns, which creation tools it supports, and when to call it. The output schema covers return-shape details, so nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and its input schema documents no properties, so there is nothing to explain. The description adds no conflicting parameter information, and the zero-parameter baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetch the JSON Schema that an api template definition must satisfy. It clearly distinguishes this from sibling definition-schema getters by naming the exact resource type and tying it to create_api_template and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage direction: fetch this schema before authoring a definition for the named create tools. It does not list alternatives or exclusions, but the targeted creation tools make the intended workflow 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 versionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the template slug (provide this or template_id) | |
| version | No | specific version to fetch; omit (0) for the latest version | |
| template_id | No | the template id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| definition | Yes | |
| content_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it is a read operation ('Read back', 'Returns') and the annotations (readOnlyHint true, destructiveHint false) align perfectly. No side effects are hidden or misrepresented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and includes necessary details without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the return format (JSON string) and the checksum, and explains how the result can be used (diff/patch/resubmit), providing enough context even without an explicit output schema. It is complete for the intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the schema, and the description reinforces the alternative identifiers (slug or template_id) and the optional version behavior. Parameter semantics are fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads back the full stored definition of an API template version by slug or id, and differentiates from siblings like get_api_template and get_api_template_definition_schema by focusing on the exact definition body and checksum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when to use it: when you need the exact definition body to diff or patch and resubmit as a new version. Also clarifies that omitting version returns the latest, giving precise usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appGet appARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the app slug (provide this or app_id) | |
| app_id | No | the app id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| published_manifest | No | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral context: published_manifest is a typed selector, not the raw definition, and it is absent when the app is unpublished. This sets accurate expectations beyond the structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the action and resource, the second explains the key return-value behavior, and the third routes to the relevant sibling. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with a full output schema and complete parameter documentation, the description covers all decision points: what is returned, when published_manifest is absent, and which sibling to use for raw definition access. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter description already explains the slug-or-app_id relationship. The description repeats this idea in prose but adds no new precedence, format, or combination semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Get a single app by slug or id') and explains what is returned: metadata plus published_manifest. It clearly distinguishes itself from get_app_version by contrasting the typed selector with the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells agents when to use this tool: when they need the metadata and typed published_manifest of the last-published version. It also names the alternative — get_app_version — for raw definition bodies and notes that published_manifest is absent for unpublished apps.
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 schemaARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| json_schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only and non-destructive, and the description adds return-content context: it returns a JSON Schema (not the app itself) covering selector rules and metadata. This goes beyond the annotations by clarifying what the response describes and that this is a preparatory fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the main action ('Get the JSON Schema an app definition must satisfy') and then packs the necessary domain specifics into a clearly separated clause. No filler or repetition of the title is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, a present output schema, and read-only annotations, the description is complete for an agent's decision-making: it states what will be fetched, what the schema covers, and when to call it. There is no missing prerequisite or hidden side-effect that an agent would need to discover separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is already complete (100% coverage). The description has no parameter semantics to add, and the baseline of 4 applies cleanly at this parameter count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the JSON Schema an app definition must satisfy.' It goes beyond the title by detailing the schema's contents (membership SELECTOR prefix rules, explicit includes/excludes, and display metadata), and it names the downstream tools (create_app / create_app_version), making it unmistakably distinct from sibling definition-schema tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit timing instruction: 'Fetch this before authoring the definition for create_app / create_app_version.' This clearly establishes when the tool is relevant. It does not name alternative definition-schema tools or state exclusions, but the app-specific context is sufficient for an agent to route correctly.
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 membersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the app slug (provide this or app_id) | |
| app_id | No | the app id (provide this or slug) | |
| version | No | resolve 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
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| members | Yes | |
| version | Yes | |
| members_complete | Yes | |
| summarized_kinds | No | |
| unresolved_kinds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, it discloses non-obvious behavior: summarized_kinds omits large kinds, members_complete flips false, count may exceed members length, and the resolved members are always a live lens rather than a pinned list. This is exactly the kind of behavioral nuance an agent must know before trusting the returned member count.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place; it front-loads the core concept and then layers edge cases (summarized kinds, count mismatch) without digression. Slightly verbose relative to a two-line alternative, but the complexity of the behavior justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich output schema, 100% parameter coverage, and annotations for safety, this description fully covers what the agent needs: return shape, member set semantics, draft-preview behavior, summarized-kind caveats, and what to call instead for full enumeration. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents slug, app_id, and version. The description adds value by clarifying version semantics (published vs latest draft, omit 0 for current), but it doesn't add much beyond the schema's version description. Baseline 3 is appropriate because structured coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Resolve') and resource ('an app's LIVE member set'), then defines exactly what that set is: the concrete resources its selector currently matches, resolved as union(prefixes) + includes − excludes. This clearly distinguishes it from generic getters like get_app or get_app_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('Use this to see or verify what an app contains'), how version selection behaves ('pass version to preview a draft's members before publishing'), and when NOT to use it for collection items ('see that kind's own list tool with one of the reported slug_prefix values... e.g. list_datafiles'). It names the alternative tool and never claims to page whole collections.
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 versionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the app slug (provide this or app_id) | |
| app_id | No | the app id (provide this or slug) | |
| version | No | specific version to fetch; omit (0) for the latest version |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| definition | Yes | |
| content_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral context: it returns a JSON string of the authored definition, includes a checksum, and defaults to the latest version when version is omitted. This goes well beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then gives return format, default behavior, and the key sibling distinction. Every sentence earns its place without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with an output schema and full parameter documentation, the description is complete: it specifies how to identify the version, what the response contains, the default when version is omitted, and when to prefer the sibling get_app. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds value by explaining that slug or app_id can be used interchangeably, and that omitting version fetches the latest version, which clarifies the intended semantics beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource, 'Read back the full stored definition of an app version by slug or id,' and clarifies the return payload: the authored JSON definition body plus checksum. It also distinguishes this tool from get_app by calling it the 'EDITING view' versus the 'typed published manifest for reading.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool versus the sibling get_app: use get_app_version for the editing representation to diff/edit/resubmit, and get_app for reading the typed published manifest. It also gives guidance on omitting version to fetch the latest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetGet assetARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the asset slug (provide this or media_id) | |
| media_id | No | the asset's media id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| slug | Yes | |
| status | No | |
| media_id | Yes | |
| created_at | No | |
| size_bytes | No | |
| updated_at | No | |
| content_type | No | |
| display_name | No | |
| original_filename | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive. The description adds useful behavioral context: the asset must be published, and the response includes an absolute CDN URL, content type, and size. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core action and return values are front-loaded, and the use-case sentence earns its place by guiding invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-asset lookup with a rich output schema and read-only annotations, the description fully covers what the agent needs: what the tool retrieves, the published-asset constraint, and the intended use. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both slug and media_id parameters. The description restates that either slug or media id can be used, but does not add meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this gets a single published asset by slug or media id and lists what is returned (CDN URL, content type, size). This distinguishes it from sibling list operations like list_assets by emphasizing 'single' and 'published'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use case: 'confirm an asset exists and fetch the URL to embed.' It provides clear context for when to call the tool, though it does not explicitly name sibling alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_custom_domainGet custom domainARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | the custom domain hostname, e.g. shop.customer.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| hostname | Yes | |
| dns_records | No | |
| slug_prefix | No | |
| verified_at | No | |
| activated_at | No | |
| display_name | No | |
| root_endpoint | No | |
| last_check_message | No | |
| cert_status_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read nature is established. The description adds the concrete data elements returned, but no additional behavioral traits such as pagination, caching, or permission requirements. It neither contradicts nor substantially extends 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the operation and its returned fields, and the second provides concrete user intents. Every clause earns its place, and the main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, an output schema, and read-only annotations, the description provides all necessary decision-making information for a simple getter. The use cases also help an agent choose between this and sibling custom-domain tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter is fully documented in the schema with 100% coverage, so the description does not need to repeat syntax. The description confirms that the lookup is by hostname, matching the schema exactly. No extra semantic burden falls on the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: get a single custom domain by hostname. It enumerates the returned content (lifecycle status, DNS records, routing, messages), which distinguishes it from list_custom_domains and other getters. There is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives practical use cases: answering 'is my domain live yet?' and re-displaying DNS records for a pending domain. It does not explicitly name alternatives or exclusion conditions, but the provided context is strong enough for an agent to select this tool for single-domain lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datafileGet datafileARead-onlyInspect
Get a single datafile by slug or id, including its JSON content and last published CDN path.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the datafile slug (provide this or datafile_id) | |
| datafile_id | No | the datafile id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| json | No | |
| slug | Yes | |
| schema_id | No | |
| datafile_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| content_sha256 | No | |
| last_published_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered without the description. The description adds useful response-context (includes JSON content and last published CDN path) but does not disclose behavior around identifier conflicts or missing identifiers; this is consistent with the annotations, and the added value is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 15-word sentence that front-loads the verb and resource and packs the identification method and key return values into the remainder. There is no filler and no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool, the description plus a 100%-covered schema, safety annotations, and an existing output schema cover nearly everything an agent needs to call it correctly. The only minor gap is edge-case behavior when both slug and datafile_id are provided, which the schema hints at but the description does not settle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema descriptions already capture the either/or constraint ('provide this or datafile_id' / 'provide this or slug'). The description's 'by slug or id' reiterates the schema rather than adding new semantics, so the baseline 3 applies 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('single datafile'), and the two identification routes (slug or id). It adds return-content detail ('JSON content and last published CDN path'), and the 'single' qualifier distinguishes it from list_datafiles and the many other get_* siblings targeting different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by slug or id' phrasing implies the agent should call this when it already holds a datafile identifier and wants the record's full content, but no alternative tool is named and no when-not-to-use condition is given. There is no explicit routing toward list_datafiles for multi-record needs, so usage guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dynamic_endpointGet dynamic endpointARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the endpoint slug (provide this or endpoint_id) | |
| endpoint_id | No | the endpoint id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| public_url | No | |
| description | Yes | |
| endpoint_id | Yes | |
| content_type | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so safety is covered. The description adds meaningful behavioral context by disclosing that the returned definition body is from the current version, choosing 'published if any, else latest' — a non-obvious selection rule an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core purpose and return behavior are front-loaded, and the routing to get_dynamic_endpoint_version is a single useful addition without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-endpoint retrieval tool with two optional parameters, an output schema, and safety annotations, the description is complete. It covers current-version semantics and names the sibling for older versions, so an agent has everything needed to invoke this tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both slug and endpoint_id fully described as alternatives. The description briefly restates 'by slug or id' but adds no new semantics, such as precedence if both are provided. The schema carries the parameter documentation, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Get a single dynamic endpoint by slug or id', which immediately distinguishes it from listing tools like list_dynamic_endpoints. It further clarifies what is returned (public URL and current-version definition body), and explicitly separates it from get_dynamic_endpoint_version for older versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: reading one dynamic endpoint's current version. It explicitly directs agents to get_dynamic_endpoint_version for specific older versions, providing a clear exclusion. It doesn't mention list_dynamic_endpoints for multi-endpoint retrieval, but 'single' makes that distinction reasonably clear.
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 schemaARead-onlyInspect
Get the JSON Schema a dynamic endpoint definition must satisfy. Fetch this before authoring the definition for create_dynamic_endpoint / create_dynamic_endpoint_version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| json_schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context by explaining that the returned schema is a required precondition for authoring dynamic endpoint definitions, which goes beyond the annotations and clarifies the tool's role in the workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The main purpose is front-loaded, and the second sentence adds essential workflow guidance about which create tools it supports.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, annotations, and clear reference to the dependent create operations, the description is fully sufficient. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. There is nothing additional to document about parameters in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the JSON Schema a dynamic endpoint definition must satisfy.' This clearly identifies what the tool does and differentiates it from sibling get_*_definition_schema tools by naming the dynamic endpoint resource explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'Fetch this before authoring the definition for create_dynamic_endpoint / create_dynamic_endpoint_version.' It does not explicitly mention alternatives for other definition schemas, but the resource-specific naming and sibling list make the applicable context clear.
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 versionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the endpoint slug (provide this or endpoint_id) | |
| version | No | specific version to fetch; omit (0) for the latest version | |
| endpoint_id | No | the endpoint id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| definition | Yes | |
| content_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return payload: the exact authored definition as a JSON string and its checksum. It also explains that omitting version returns the latest, adding behavioral context beyond the readOnlyHint annotation. This is useful for agents planning to diff, patch, or resubmit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with dense, relevant information. The core function is stated first, followed by return format details and the version behavior. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a read-only tool with an output schema: it states what is returned, how to select the version, and why the return format is useful. It doesn't explicitly warn that exactly one of slug/endpoint_id should be provided, but the schema's descriptions imply that choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents slug, version, and endpoint_id. The description adds that the tool reads 'by slug or id' and repeats the version omitting behavior, but it doesn't meaningfully enrich the parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('Read back'), a specific resource ('dynamic endpoint version'), and the retrieval criteria ('by slug or id'). It distinguishes itself from sibling tools like get_dynamic_endpoint by emphasizing the full stored definition of a version, though it doesn't explicitly name the sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational guidance ('Omit version to get the latest version') but does not state when to use this tool versus related tools such as get_dynamic_endpoint or preview_dynamic_endpoint. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideGet guideARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | The 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
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| topic | Yes | |
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, and the description's action 'Fetch' aligns with a read-only operation. The description adds that the output is markdown, which is helpful, and contains 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with the primary action ('Fetch a Tessryx guide by topic (markdown)') front-loaded. The two additional sentences provide necessary context about list_guides and the intended use case without any superfluous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, output format (markdown), related tool (list_guides), and the appropriate usage context (before authoring). The presence of an output schema means the return value does not need further description, so all necessary information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the parameter, explicitly naming 'topic' as the guide topic to fetch, referencing list_guides, and enumerating all allowed enum values. The description adds the 'see list_guides' hint, making the parameter's meaning and accepted values fully clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a Tessryx guide by topic in markdown format, and it names the sibling list_guides tool for discovering available topics. It also explains when to use this tool (before authoring to avoid trial-and-error), making its purpose unambiguous and differentiated from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs users to use list_guides first to see available topics, and then to reach for the relevant guide before authoring. This provides clear guidance on when to use this tool versus the sibling list_guides tool, and gives a concrete use case scenario.
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 graphARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | the kind of resource to start from: workflow, dynamic_endpoint, api_template, datafile, schema, schedule, secret, custom_domain | |
| depth | No | how 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 | |
| resource | Yes | slug 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 | |
| direction | No | which 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
| Name | Required | Description |
|---|---|---|
| root | Yes | |
| edges | Yes | |
| nodes | Yes | |
| truncated | No | |
| depth_exceeded | No | |
| scan_truncated | No | |
| unscanned_kinds | No | |
| aggregate_referrers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the tool as read-only and non-destructive, and the description adds substantial behavioral context beyond those: transitive traversal, depth limits, version drift visibility, and the unscanned_kinds caveat about empty reverse results. No 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds operational detail; defaults are front-loaded and alternatives are named early. It is slightly longer than strictly necessary, with minor redundancy with the schema's transitivity note, but remains well-organized and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and all parameters are documented, the description covers the non-obvious runtime behaviors an agent needs: default direction and depth, transitive reverse traversal, version resolution, and the false-empty caveat for schemas. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning beyond the schema: bare slugs mean @published, custom_domain expects a hostname, depth is only a browsing control, and depended_on_by is transitive. This materially improves the agent's ability to choose correct parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Browse how resources connect, in either direction.' It clearly differentiates itself from sibling get_* tools by describing graph traversal semantics and explicitly naming analyze_resource as the alternative for diagnosing breakage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: use 'depended_on_by' before a delete or breaking edit, and use analyze_resource instead when the question is whether something is broken. This gives an agent concrete decision rules 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_scheduleGet scheduleARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the schedule slug (provide this or schedule_id) | |
| schedule_id | No | the schedule id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| last_run_at | No | |
| last_run_id | No | |
| next_run_at | No | |
| schedule_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the description does not need to cover safety. It adds useful behavioral detail beyond annotations: the response includes cron status fields and the current version is selected as published-if-any, else latest. This clarifies version-selection semantics that the schema does not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences with no filler. The primary capability is front-loaded, and the sibling guidance is placed efficiently at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with an output schema and fully documented parameters, this description is complete. It explains the resolution behavior for the current version and names the sibling for older versions, so an agent has what it needs to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both slug and schedule_id. The description only restates that lookup is by slug or id and adds no new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a single schedule by slug or id. It also clarifies what is returned, including cron status and the current version's definition body, and distinguishes itself from get_schedule_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use get_schedule_version instead when reading a specific older version. This gives the agent a clear routing rule and alternative for a closely related sibling tool.
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 schemaARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| json_schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only and non-destructive, and the description adds useful context about the schema's constraints: workflow reference, recurrence as either cron+timezone or interval, and optional static input. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core purpose is front-loaded, followed by a compact parenthetical summarizing the schema's key requirements and a clear directive on when to use the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless metadata tool, the description explains what the tool returns, why it matters, and when to call it. The output schema and annotations cover the remaining context, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific detail because there are none, but it does explain what the returned schema covers, which is the relevant semantic content for this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the JSON Schema that a schedule definition must satisfy, naming the resource ('schedule definition') and linking it to the specific creation tools. This distinguishes it from sibling definition-schema tools like get_workflow_definition_schema or get_api_template_definition_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to fetch this schema before authoring a definition for create_schedule or create_schedule_version, providing a clear when-to-use directive. It does not explicitly mention alternatives or when not to use it, so it stops short of the strongest level of guidance.
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 versionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the schedule slug (provide this or schedule_id) | |
| version | No | specific version to fetch; omit (0) for the latest version | |
| schedule_id | No | the schedule id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| definition | Yes | |
| content_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it discloses that the return value is a JSON string containing the authored body and a checksum, and that omitting version fetches the latest. The readOnlyHint and destructiveHint annotations align with the read-only nature of the description, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no filler. The core purpose is front-loaded, and the return-format detail and version default are mentioned efficiently without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for this tool's complexity: it covers what the tool returns, how to identify a version, and the default behavior. The output schema and annotations cover return structure and safety, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying that slug and schedule_id are alternative lookup keys and that omitting version returns the latest version, reinforcing and extending the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Read back the full stored definition') on a specific resource ('a schedule version') and clarifies the lookup by slug or id. It clearly differentiates this tool from siblings like list_schedule_versions, which lists versions, and get_schedule_definition_schema, which returns the schema rather than the stored definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use the tool: when you need the exact authored definition body, checksum, or latest version. It does not explicitly exclude alternatives or state when not to use it, but the purpose is specific enough that an agent can infer the correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schemaGet schemaARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the schema slug (provide this or schema_id) | |
| schema_id | No | the schema id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| schema_id | Yes | |
| description | Yes | |
| json_schema | No | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing that only the current version's body is returned and that the response bundles the JSON Schema body with the schema record. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carries the action, the identification method, the response content, and the purpose with zero filler. Every clause earns its place, and the key scoping detail ('current version') appears before the purpose clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read-only tool with an output schema, the description covers how to identify the resource, what will be returned, and why the agent would want it. Nothing an agent needs for normal invocation is missing; the precedence if both slug and schema_id are provided is a minor edge not worth penalizing here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both slug and schema_id already documented including their either/or intent. The description's 'by slug or id' only restates what the schema says, so it adds no new semantic meaning beyond the structured definitions — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Get a single schema' — and adds distinguishing qualifiers: lookup by slug or id, and inclusion of the current version's JSON Schema body. The 'single' qualifier separates it from list_schemas, and 'current version' separates it from version-specific or definition-schema getters among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'use it to author a datafile that conforms' gives a clear, actionable context for when to invoke this tool, implicitly routing an agent to fetch the schema before creating or updating a datafile. It does not go so far as to name alternatives or state exclusion cases, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_secretGet secretARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the secret slug (provide this or secret_id) | |
| secret_id | No | the secret id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| secret_id | Yes | |
| created_at | Yes | |
| updated_at | Yes | |
| description | Yes | |
| display_name | Yes | |
| value_preview | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the read-only nature, but the description adds meaningful specifics: value_preview is a non-sensitive hint (last few characters), and the tool cannot set values through the assistant. These details go beyond the annotation without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no filler. The first sentence states the operation and constraints; the second provides the alternative path. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple metadata-get tool with two optional parameters and a straightforward output, the description covers purpose, key limitations, preview behavior, and the fallback path. It could explicitly reference list_secrets for multi-secret needs, but the singular framing makes that inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with both slug and secret_id described, including the 'provide this or the other' mutual exclusivity. The description reinforces 'by slug or id' but adds only marginal value beyond the schema's existing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (get), resource (single secret by slug or id), and scope (metadata only, value never returned). It implicitly distinguishes from the list_secrets sibling by emphasizing 'single' and explicitly clarifies the metadata-only nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when NOT to use this tool — for adding or changing a secret's value — and directs the user to the dashboard URL instead. It also states the value is never returned, setting expectations for when this tool cannot fulfill a value request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowGet workflowARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the workflow slug (provide this or workflow_id) | |
| workflow_id | No | the workflow id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| workflow_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds useful behavioral context about what is returned (current version, definition body, version numbers), going beyond the basic annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences efficiently convey the tool's purpose, scope, and alternative, with no redundant or fluff content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for a get operation, including what is returned and when to use an alternative. It is complete for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes each parameter and their exclusivity. The description adds no additional parameter meaning, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (workflow), and specifies it retrieves the current version with definition body and version numbers. It also distinguishes itself from get_workflow_version, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use get_workflow_version for specific older versions, providing clear guidance on when not to use this tool and when to use the alternative.
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 schemaARead-onlyInspect
Get the JSON Schema a workflow definition must satisfy. Fetch this before authoring the definition for create_workflow / create_workflow_version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| json_schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is consistent with the implied read-only behavior, and the description adds clarity about the purpose without conflicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are efficient and directly convey the tool's purpose and usage, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a simple getter: it states what is retrieved, the target resource, and the related create tools, covering all necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the empty input schema fully covers this. The description adds no conflicting parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the JSON Schema for workflow definitions, and explicitly distinguishes it from other definition schema getters by referencing workflow-specific create tools (create_workflow / create_workflow_version).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance: fetch this before authoring a workflow definition for the create tools, leaving no ambiguity about appropriate invocation.
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 runARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | the run id returned by run_workflow |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| output | No | |
| run_id | Yes | |
| status | Yes | |
| message | No | |
| workflow_id | Yes | |
| content_type | Yes | |
| output_truncated | No | |
| workflow_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds substantial behavioral context beyond that: output is decoded as a string, the output_truncated flag is explained, and the storage retention policy is disclosed with conditions (live endpoint serve runs keep only the first few KB; run_workflow/preview runs store in full). This surfaces a real gotcha the agent needs to interpret results correctly. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
All three sentences earn their place: the first front-loads purpose and return payload, the second discloses the truncation caveat with the remediation, and the third states the storage rule for user-triggered runs. No redundant or filler content; appropriately sized for a single-parameter tool with one meaningful behavioral caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter tool with 100% schema coverage, an output schema present, and safety annotations in place, the description covers everything an agent needs to call it correctly: what is returned, how the output is decoded, what the truncation flag means, and when the stored output may be incomplete. No meaningful gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — run_id is already documented as 'the run id returned by run_workflow,' so the schema carries the full burden. The tool description only restates 'by run id' and does not add format, provenance, or validation details beyond the schema. Baseline 3 is appropriate given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('the stored record of a past workflow run'), the key by which it is retrieved (run id), and the exact fields returned (status, content_type, output, output_truncated). This clearly differentiates it from siblings like get_workflow_run_traces (traces vs. record) and list_runs (single record vs. list), even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (retrieving a stored past run record) and explicitly routes around a limitation: for runs from a LIVE ENDPOINT SERVE, the stored output is truncated, and the 're-run or preview the endpoint' alternative is named to see a whole render. It does not, however, explicitly position this tool against its closest retrieval siblings (get_workflow_run_traces, list_runs), which keeps it just shy of a 5.
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 tracesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | the run id returned by run_workflow | |
| page_size | No | maximum number of step traces to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page |
Output Schema
| Name | Required | Description |
|---|---|---|
| steps | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and nothing contradicts them. Beyond that, the description discloses significant non-obvious behavior: pagination, shortening of large captured values with a marker, scope entries that point at adjacent block outputs instead of repeating values, and that UNATTENDED runs replace literal expressions with their path and are shortened harder overall. These are exactly the surprises an agent needs before invoking 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, then flows logically through trace structure, shortening behavior, and unattended-run caveats. It is long, but each clause carries distinct information — nothing is filler. It is slightly dense with parenthetical examples, but the complexity of the behavior justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and safety annotations are present, the description covers all remaining needs: the content of each step trace, paging behavior, the shortening edge cases, the unattended-run difference, and the concrete workaround for full capture. Nothing an agent needs to correctly invoke or interpret the tool is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: run_id, page_size, and page_token each have meaningful schema descriptions, including the next_page_token contract for paging. The description only reinforces this ('by run id', 'paged') without adding format or syntax detail, so the baseline 3 applies since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Get the full per-step execution trace of a run by run id (paged)'. This clearly distinguishes it from sibling read tools like get_workflow_run (run-level metadata) and list_runs (run listing), and the rest of the text specifies exactly what a trace contains: blocks, inputs, outputs, error_message, and variable scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is given: 'Use this to debug why an expression or block produced the wrong value.' It also provides when-not guidance and names concrete alternatives: for literal values on unattended runs use get_workflow_version, and to capture full values re-run via run_workflow / preview_dynamic_endpoint / run_schedule_now. The routing is unambiguous.
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 versionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the workflow slug (provide this or workflow_id) | |
| version | No | specific version to fetch; omit (0) for the latest version | |
| workflow_id | No | the workflow id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | Yes | |
| definition | Yes | |
| content_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavior: it returns the definition body as a JSON string plus content_sha256, and describes the latest-version fallback. This goes beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The purpose is front-loaded, the return format and use case are explained, and the version behavior is stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with an output schema, this description is complete. It covers how to identify the version, what the response contains, and why an agent would use it. Nothing necessary for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents slug, workflow_id, and version. The description adds the alternate 'by slug or id' framing and repeats the 'omit version for latest' behavior, but these are already present in the schema. No additional parameter meaning beyond that is introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Read back the full stored definition of a workflow version by slug or id.' It clearly distinguishes this from related tools like get_workflow or get_workflow_definition_schema by focusing on the stored version definition plus content hash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use it to retrieve the exact authored definition for diffing, patching, or resubmitting as a new version. It also explains the version selection rule ('Omit version to get the latest version'), though it does not explicitly name alternatives or exclusion criteria.
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 templatesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of templates to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return templates whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the tenant-scoping behavior and clarifies what an API template is, but does not disclose pagination behavior or any other behavioral details beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no filler. The first states the action and scope, the second defines the domain concept. Every sentence earns its place and the description is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with full schema coverage and an output schema, the description is largely complete. It defines the resource, scopes the list, and the schema handles pagination. It could be slightly stronger by pointing to sibling tools for alternative operations, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents page_size, page_token, and slug_prefix. The description adds no parameter-specific meaning or examples, so it stays at the baseline rather than adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('api templates'), and scopes the operation to the authenticated tenant. It also defines what an API template is, which makes the tool's purpose unambiguous and distinguishes it from get/create/delete/execute siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for enumerating the tenant's API templates, but it does not explicitly say when to use this over get_api_template, list_workflows, or other related tools. The tenant scoping provides some context, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appsList appsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of apps to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return apps whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| apps | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint true and destructiveHint false, which aligns with the list operation. The description adds behavioral context by indicating that it returns summaries and points to get_app for full details, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with two sentences, but the second sentence includes a lengthy explanation about app organization. This is relevant context but could be slightly trimmed. Overall, it is efficient and front-loads the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential context: the scope (authenticated tenant), the nature of apps (versioned groupings of resources), the output (summaries), and a follow-up action (get_app). Pagination is not mentioned but is handled by the schema, so the description is sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for all three optional parameters (page_size, page_token, slug_prefix) and the descriptions are self-explanatory. The tool description does not add extra parameter semantics, so it remains 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'apps belonging to the authenticated tenant.' It also distinguishes the tool's summary output from a single get_app call, which helps clarify its purpose. However, it does not explicitly differentiate from other listing 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by explaining what an app is and noting that it returns summaries for subsequent get_app calls. It does not explicitly state when to use this tool versus alternatives, but the sibling list includes similar listing tools, so more explicit guidance would have been helpful.
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 versionsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the app slug (provide this or app_id) | |
| app_id | No | the app id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| latest_version | Yes | |
| earliest_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds useful behavioral context beyond the annotations by specifying that the tool returns only the earliest and latest version numbers rather than all versions, and by framing the result as a fetchable range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler: it states the action, the resource, the acceptable identifiers, and the purpose relative to get_app_version. The key scoping detail (earliest/latest range) is front-loaded and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only lookup with an output schema present and both parameters fully documented, the description is sufficient. It explains what the tool returns and why an agent would call it, and the sibling context plus annotations cover the remaining operational guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents that slug or app_id can be provided as alternatives. The description repeats "by slug or id" but adds no new format, constraints, or interaction details beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Get the earliest and latest version numbers of an app," clarifying that this tool returns a range rather than a full list. It also differentiates from the sibling get_app_version by explicitly framing the output as the range one can fetch, so an agent can distinguish the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: to learn the range before fetching a specific version with get_app_version. It names the relevant alternative but does not explicitly state exclusions or exactly when not to use it, so it stops slightly short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList assetsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of assets to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return assets whose slug starts with this prefix (hierarchical browse, e.g. 'products/hero') | |
| exact_slug_prefix | No | if true, only return assets directly under slug_prefix (not deeper descendants) | |
| include_level_prefixes | No | if true, also return the child folder prefixes at the current level |
Output Schema
| Name | Required | Description |
|---|---|---|
| assets | Yes | |
| next_page_token | No | |
| current_level_prefixes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation and adds transparency by explicitly stating that uploading is not possible ('you cannot upload a binary the user has not given you'). This gives agents a clear understanding of the tool's limitations beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with no redundant information. It efficiently combines the primary purpose, usage examples, and a graceful fallback instruction in just a few sentences. The structure is logical and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema is present, the description adequately covers the tool's behavior, usage context, and limitations. It provides all necessary information for an agent to decide when and how to use it, without needing to infer anything critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters have detailed, meaningful descriptions in the schema. The descriptions explain hierarchical browsing, pagination tokens, and the exact behavior of boolean flags, providing clear semantics beyond mere parameter names. Since schema coverage is 100% and the descriptions are highly informative, this exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), the resource (binary assets), and the scope (published to the media CDN for this tenant). It also mentions key capabilities like slug-prefix browse and pagination, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: 'use this to see what has already been published and to get an asset's URL to embed in a page'. It also gives a clear alternative when the desired asset is not present, directing users to upload via a URL, which is actionable and reduces ambiguity.
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 domainsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | only return domains in this lifecycle status: PENDING, VERIFIED, CERT_PENDING, or ACTIVE; omit for all | |
| page_size | No | maximum number of domains to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page |
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavior beyond that: it explains what a custom domain is, how it replaces the default URL pattern, and that results can be filtered by lifecycle status. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the core listing statement, the contextual explanation of what a custom domain is, and the optional filter. No redundant wording or filler, with the key purpose front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema and fully described parameters, the description is complete. It covers the resource concept, the tenant scoping, and the optional status filter. Pagination and return values are already handled by the input schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters well. The description repeats the status filter information but adds no new meaning for page_size or page_token. This matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'List the custom domains claimed by the authenticated tenant.' It then adds useful domain-specific context about serving dynamic endpoints on a custom hostname. This clearly distinguishes the tool from sibling domain tools like get_custom_domain, create_custom_domain, and verify_custom_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: it lists domains belonging to the authenticated tenant and optionally filters by lifecycle status. It implies read-only listing without explicitly naming alternatives such as get_custom_domain for a single domain or verify_custom_domain for verification, but the usage is self-evident for a list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datafilesList datafilesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of datafiles to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only 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_total | No | if 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
| Name | Required | Description |
|---|---|---|
| datafiles | Yes | |
| total_count | No | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnlyHint=true and destructiveHint=false. The description adds useful context beyond annotations: tenant scoping, the CDN-published JSON nature of datafiles, and the hydration use case. openWorldHint=false is also consistent with the stated tenant scope; no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The action and scope are front-loaded, and the datafile definition earns its place because it clarifies what is being listed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with fully described parameters and an existing output schema, the description plus annotations supplies everything an agent needs to select and invoke the tool correctly. Return-value and pagination details are already covered by the schema, so the description does not need to repeat them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds no parameter-level detail beyond that, which is acceptable but not value-adding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the datafiles') with an explicit scope ('belonging to the authenticated tenant'). The added definition of a datafile as a published JSON object served from a CDN clearly distinguishes it from generic assets or other sibling resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear usage context is provided: this lists the authenticated tenant's datafiles, and the datafile definition helps separate it from sibling tools like list_assets or get_datafile. It does not explicitly name alternatives or exclusion conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dynamic_endpoint_runsList dynamic endpoint runsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the endpoint slug (provide this or endpoint_id) | |
| previews | No | list editor PREVIEW runs instead of live serves; defaults to false (live serves only) | |
| page_size | No | maximum number of runs to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| endpoint_id | No | the endpoint id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile; the description adds substantial behavior beyond that: only cache MISSES reaching the origin appear, history is kept ~two weeks, ordering is newest-first, and items expose the failure message the public URL hides behind a 500. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five dense sentences, each carrying a distinct fact: scope+ordering+use case, item contents, run_id resolution, data scoping+retention, and the previews default. The primary purpose is front-loaded; slightly long, but every sentence earns its place given the tool's behavioral nuance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema is present, so return-value format does not need explaining, and the description covers the non-obvious context: cache-miss-only data, two-week retention, live-vs-preview default, and the path to step-level traces. The only gap is an explicit sibling contrast with list_runs, which is minor given the otherwise clear scoping.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters; baseline 3 applies. The description adds modest reinforcement for previews ('Defaults to live serves') and gives meaning to request_path (an output field) regarding :param values, but adds little new input-parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: 'List a dynamic endpoint's recent EXECUTIONS, newest-first.' It immediately gives the operational use case ('the place to look when a live page is broken') and narrows scope to dynamic endpoints, clearly distinguishing it from generic siblings like list_runs and list_schedule_runs. The live-vs-preview distinction further sharpens exactly what this tool enumerates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('the place to look when a live page is broken') and routes follow-up resolution to get_workflow_run / get_workflow_run_traces via run_id. It also instructs when to switch modes ('pass previews=true for the editor-preview history instead') and scopes the data ('renders, not traffic'). It does not explicitly contrast with list_runs, but the scoping is strong enough that the correct selection is clear.
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 endpointsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of endpoints to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return endpoints whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| endpoints | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar for additional disclosure is lower. The description adds tenant-isolation scope and a clarifying definition of the endpoint resource, but discloses no deeper behavior such as whether unpublished endpoints are included, default pagination behavior, or ordering. This is adequate but not rich behavioral context, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core purpose front-loaded: 'List the dynamic endpoints belonging to the authenticated tenant.' The second sentence explains the dynamic-endpoint concept, which is informative and earns its place given the domain-specific term, though it describes the resource rather than the tool's behavior. It is appropriately sized with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three optional, well-documented parameters, an existing output schema, and annotations covering the safety profile, the structural supports are strong. The description adds the tenant scope and resource semantics, which are the main pieces an agent needs to select this tool correctly. Minor gaps remain (e.g., whether the list includes only published endpoints), but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (page_size, page_token, slug_prefix) already described in the schema, so the baseline is 3. The tool description itself adds no parameter-level meaning beyond the schema, but none is needed given the complete schema coverage. No compensation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List the dynamic endpoints belonging to the authenticated tenant,' adding a tenant scope that clarifies the data boundary. It also explains what a dynamic endpoint is ('binds a public URL to a workflow; it is both a page render and a callable API route'), which aids resource comprehension. However, it does not explicitly differentiate from sibling tools like list_dynamic_endpoint_runs or get_dynamic_endpoint, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives enough context for an agent to infer when this applies: whenever a list of the tenant's dynamic endpoints is needed, given the 'list' verb and tenant scoping. It provides no explicit when-not-to-use guidance, such as directing agents to get_dynamic_endpoint for a single endpoint or list_dynamic_endpoint_runs for execution history. Usage is thus implied rather than stated, with no exclusions or alternative routing mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_guidesList guidesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| guides | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful context by clarifying that the tool returns topics and coverage summaries, not just guide IDs, and that the guides cover specific areas like the platform overview, page recipe, and authoring lifecycle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. The core listing behavior is front-loaded, and the second sentence earns its place by routing the agent to get_guide with a concrete decision heuristic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only list tool with an output schema, the description is complete. It tells the agent what the tool returns, why it matters, and how it connects to the follow-up get_guide tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add. Per the rubric, a parameterless tool receives a baseline of 4, and the description appropriately invests no space in parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it lists the available Tessryx guides and explicitly states it returns the topic and what each covers. This distinguishes it clearly from sibling get_guide, which is referenced as the follow-up read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow context: use this to see available guides, then use get_guide to read a guide before modeling something unfamiliar. It names the relevant sibling and explains the relationship, though it does not explicitly state when not to use list_guides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_runsList workflow runsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | optional status filter: succeeded, failed, running, or cancelled; omit for all | |
| page_size | No | maximum number of runs to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| workflow_id | Yes | the workflow id whose runs to list |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false), so the description's job is to add behavioral context beyond that — which it does: sort order ('most-recent-first'), the summary fields returned ('run_id, status, message, timestamps'), and the status filter values. No contradiction with annotations; the only omission is pagination behavior, but that is covered by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the core action and ordering are front-loaded, followed by the filter, the return shape, and sibling routing. Every clause earns its place, and the alternative-tool routing is packed efficiently into the final clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter list tool with an output schema and safety annotations, the description covers purpose, ordering, filter values, return summary, and sibling routing — nearly everything an agent needs. Pagination is legitimately left to the schema, which thoroughly documents page_token and next_page_token. Minor gaps like not-found behavior or empty-result semantics are acceptable given the output schema and the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces workflow_id as the lookup key ('by workflow id') and restates the status filter values, but page_size and page_token semantics are left entirely to the schema, which already documents them adequately ('token from a previous response's next_page_token'). The description adds modest interpretive value without needing to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a workflow's past runs') with a precise scope qualifier ('by workflow id') and ordering ('most-recent-first'). It also names the sibling tools it is not — get_workflow_run for output and get_workflow_run_traces for per-step detail — so an agent can distinguish it from adjacent run-related tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to alternatives with concrete conditions: 'use get_workflow_run for a run's output or get_workflow_run_traces for per-step detail.' The description also signals optionality ('Optionally filter by status') and enumerates the valid filter values, so an agent knows when to omit the filter entirely.
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 runsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of runs to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| schedule_id | Yes | the schedule id whose run history to list |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description discloses important behavior: results are newest-first, items are thin references rather than full runs, automatic fires are stored as diagnoses, outputs are sampled/truncated, and large trace values are shortened. This is exactly the kind of behavioral context an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by essential behavioral caveats and a pointer to the alternative tool. Each sentence adds distinct value: scope, reference semantics, truncation behavior, and full-capture guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema is present, the description does not need to restate return fields. It explains the crucial semantics not visible in the schema: ordering, thin-reference nature, diagnostic storage for automatic fires, output sampling, and how to obtain fuller data. An agent has enough context to correctly invoke and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the input schema. The tool description adds no additional parameter-level meaning, which is acceptable but does not exceed the baseline expected when the schema fully covers parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: listing a schedule's fire history, newest-first. It clearly distinguishes this tool from related siblings by scoping it to schedule fire history rather than generic run listing, and by contrasting it with run_schedule_now for full capture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use related tools: resolve run details with get_workflow_run/get_workflow_run_traces, and use run_schedule_now when a full firing capture is needed. This tells an agent not only what this tool does, but how to proceed after calling it and which alternative to choose for richer data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedulesList schedulesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of schedules to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return schedules whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| schedules | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint, so the safety profile is covered. The description adds behavioral value by stating the response contains summaries only, not definition bodies, and by scoping results to the authenticated tenant. That goes beyond the structured annotations and shapes agent expectations about output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action is front-loaded, the domain analogy is brief, and the return-behavior/alternative guidance is placed at the end without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no required parameters and a full output schema, the description covers the essential context: scope, return granularity, and where to go for full details. Pagination and filtering are already documented in the schema. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (page_size, page_token, slug_prefix) already have descriptions in the schema, so the baseline applies. The tool description does not restate or enrich these parameter meanings, but it doesn't need to at 100% coverage. No parameter-level detail is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List the schedules belonging to the authenticated tenant.' It distinguishes itself from sibling get_schedule tools by noting it returns summaries and directing the agent to get_schedule/get_schedule_version for full bodies. The 'cron for workflows' analogy adds domain context without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit conditional alternative: if a definition body is needed, fetch it with get_schedule or get_schedule_version. It clarifies scope ('belonging to the authenticated tenant'), which helps an agent decide it's the right listing tool. It doesn't explicitly contrast with list_schedule_runs, but the resource word ('schedules' vs runs) and return-summaries note provide adequate context.
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 versionsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the schedule slug (provide this or schedule_id) | |
| schedule_id | No | the schedule id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| latest_version | Yes | |
| earliest_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds meaningful behavior: it returns only the earliest and latest version numbers, not the versions themselves, and supports lookup by slug or id. This is enough for an agent to predict the call's outcome.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that front-loads the core action ('Get the earliest and latest version numbers') and immediately explains the purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has an output schema, and its annotations cover safety. The description fully explains the operational context and the relationship to get_schedule_version, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both slug and schedule_id already described as 'provide this or' the other. The description repeats this relationship but adds no new detail about formats, constraints, or mutual exclusivity beyond what the schema supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('earliest and latest version numbers of a schedule'), and the identifier options (slug or id). It clearly distinguishes this from the sibling get_schedule_version by framing it as the range-finder for that follow-up call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use it to determine the version range before fetching with get_schedule_version. It does not explicitly exclude other tools or list when-not-to-use scenarios, but the intended workflow is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schemasList schemasARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of schemas to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return schemas whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| schemas | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds useful behavioral context beyond the annotations: results are scoped to the authenticated tenant, and schemas are JSON Schemas used for datafile validation, which helps the agent understand the returned objects' role.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant phrasing. The core action and scope are front-loaded, and the second sentence adds valuable domain context without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with fully documented optional parameters and an output schema, the description covers the essential context. It explains what schemas are, that they are tenant-scoped, and how they are used downstream, so an agent has enough information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (page_size, page_token, slug_prefix) are already fully documented in the input schema. The description adds no additional parameter-level detail, but per the baseline for high schema 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a clear resource ('schemas'), and a scope ('belonging to the authenticated tenant'), which is more precise than the title alone. It also defines what schemas are and how they relate to datafiles, making the tool's role unmistakable among the many list_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool by noting schemas are referenced by schema_id when creating a datafile, so an agent can infer this is the lookup step before create_datafile. It does not explicitly name alternatives or exclusions, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_secretsList secretsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of secrets to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return secrets whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| secrets | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond that: it discloses that only metadata is returned and never the secret value, and it states the important limitation that secrets cannot be created or set through this assistant — both of which materially shape how an agent should act.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The primary purpose and scope are front-loaded in the first sentence, with use-case guidance and limitation disclosure following in the second. The brief definition of what a secret is earns its place because it grounds the agent in domain semantics, and every sentence carries distinct information. Slightly dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema present, zero required parameters, and safety annotations already covering the mutation profile, the description covers purpose, scope, usage context, domain meaning, and a key limitation. The pagination mechanics are implicitly referenced via page_token's schema description, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (page_size, page_token, slug_prefix) are already documented in the schema. The description reinforces the slug concept by explaining that api templates reference secrets by slug, which adds minor semantic context for slug_prefix, but it does not need to compensate for any schema gap. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'List the secrets belonging to the authenticated tenant.' It further distinguishes itself from sibling get_secret by clarifying it returns metadata only, and from secret creation by stating secrets cannot be created or set through the assistant. An agent can unambiguously determine what this tool does and what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use case — discovering which secrets exist so an api template's auth.secret can be wired to the correct slug — and provides an explicit fallback path (send the user to the dashboard) when the needed secret doesn't exist. It does not explicitly name the sibling get_secret as an alternative for retrieving a specific secret's details, which would have made the routing complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsList workflowsARead-onlyInspect
List the workflows belonging to the authenticated tenant. Supports an optional slug prefix filter and pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | maximum number of workflows to return in this page | |
| page_token | No | token from a previous response's next_page_token to fetch the next page | |
| slug_prefix | No | only return workflows whose slug starts with this prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| workflows | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be safe. The description adds useful context about tenant scoping and the optional filter/pagination behavior without contradicting anything in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose and then adds the key optional behaviors. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with an output schema, full parameter documentation, and safety annotations, the description covers tenant scope, filtering, and pagination. There are no significant gaps that would prevent an agent from selecting and using the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description mentions slug prefix filtering and pagination, which maps to the schema parameters, but adds no extra semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists workflows and scopes them to the authenticated tenant. It also distinguishes this from related resources like runs or schedules by explicitly naming 'workflows' and noting the optional slug prefix filter and pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to list workflows belonging to the authenticated tenant, optionally filtered by slug prefix and paginated. It does not explicitly mention alternatives like get_workflow for a single workflow or list_runs for runs, but the resource focus is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_datafilePatch datafileAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the datafile slug (provide this or datafile_id) | |
| republish | No | after 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. | |
| operations | Yes | ordered edits applied to the datafile's stored JSON | |
| datafile_id | No | the datafile id (provide this or slug) | |
| expected_content_sha256 | No | the 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
| Name | Required | Description |
|---|---|---|
| datafile | Yes | |
| public_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavioral traits: concurrency safety (no read-modify-write race), schema validation before writing, property order preservation, and the role of expected_content_sha256 for index-based paths. These details go far beyond the sparse annotations and set accurate expectations for side effects and failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence contributes useful information, covering purpose, operations, safety, schema validation, and republish behavior. While it could be slightly more concise, the density of important details justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential aspects: operation types, path syntax, concurrency guarantees, schema validation, republish behavior, and integrity checks. No critical context is missing for an agent to correctly invoke the tool, even in complex scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context to parameters beyond the input schema, such as 'Pass values as raw JSON' and guidance on value_encoding and expected_content_sha256. Since the schema already has detailed descriptions, the combination gives a complete understanding of each parameter's intent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: editing an existing datafile's JSON in place without resending the whole document. It also distinguishes it from update_datafile by highlighting safety and efficiency, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (small changes to large datafiles, appending to lists, fixing substrings) and when to prefer specific options like replace_in or base64 encoding. It also contrasts with update_datafile and explains the republish option, leaving no ambiguity.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the workflow slug (provide this or workflow_id) | |
| publish | No | publish the resulting version immediately (ignored if validation fails) | |
| operations | Yes | ordered edits applied to the LATEST version's definition | |
| workflow_id | No | the workflow id (provide this or slug) | |
| expected_content_sha256 | No | the 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
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| created | Yes | |
| version | No | |
| findings | No | |
| published | Yes | |
| workflow_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The sparse annotations (openWorldHint=false, destructiveHint=false) are meaningfully extended: the description discloses validation-before-write ("statically validated BEFORE it is written: if validation fails, no version is created"), non-destructive version minting ("a NEW version is minted from the latest (an unpublished draft unless publish=true)"), and transmission-integrity guarantees ("the write can't silently ship broken"). This is consistent with destructiveHint=false — the original version survives as a prior version. Substantial behavioral context is added 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long (~200 words) but front-loaded with the core purpose, and every subsequent sentence earns its place by covering a distinct decision: escaping ownership, encoding choice by payload size, validation-before-write safety, draft-minting outcome, and sibling routing. The logical flow — what → how → strategy → safety → result → alternative — is coherent. Only minor redundancy with the schema (publish=true semantics) keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool (5 top-level parameters, an 8-field operations array, 4 op types, integrity hashes, and a staleness guard), yet the description covers the strategic layer — addressing by step name + dot-path, encoding choices, validation-before-write, latest-version semantics — while the 100%-covered schema and output schema carry parameter and return details. An agent has everything needed to select the correct op, encoding, and guard parameters. Nothing material is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter; per the baseline, the description gets credit only for added meaning. It adds decision strategy that maps to parameters: when to use value_encoding=base64/gzip+base64 vs utf8 (large text avoiding corrupting escapes), when value_sha256 is needed (transmission verification), and when replace_in vs set is cheaper (payload sizing). It does not redundantly restate schema text, though the strategic guidance is a tier above merely adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a precise verb-resource-scope: "Edit an EXISTING workflow's latest version in place without resending the whole definition." It is clearly differentiated from the closest sibling: "Use this to change one block; use create_workflow_version for a wholesale rewrite," and the "without resending the whole definition" phrasing implicitly separates it from update_workflow. An agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance abounds: "Use this to change one block; use create_workflow_version for a wholesale rewrite." It also provides intra-tool selection rules — "use replace_in (find→replace, unique match) so you send a few bytes" for small changes to large values, base64/gzip+base64 with value_sha256 for large new values, and run_workflow/preview on the resulting draft. Both exclusions and named alternatives are present.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the endpoint slug (provide this or endpoint_id) | |
| params | No | sample 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 | |
| version | No | specific version to preview; omit (0) for the latest version (the draft) | |
| endpoint_id | No | the endpoint id (provide this or slug) | |
| viewer_email | No | simulated 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_roles | No | simulated 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_id | No | simulate 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
| Name | Required | Description |
|---|---|---|
| output | Yes | |
| run_id | No | |
| status | Yes | |
| message | No | |
| content_type | Yes | |
| resolved_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations (openWorldHint=true, destructiveHint=false), the description adds substantial behavioral disclosure: it executes the workflow through the full serve path including the bound datafile and content-type, and explicitly warns 'This executes the workflow (may have side effects).' It also discloses exact failure semantics (status=failed with a message) and when viewer simulation parameters take effect. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but every sentence earns its place: purpose, version semantics, params behavior, side-effect warning, and return-value semantics each occupy one clearly scoped sentence. The core purpose is front-loaded in the first clause, and the information flows logically from invocation to outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 7-parameter tool with an output schema, the description covers everything needed for correct invocation: when to use it, the side-effect risk, failure reporting, version selection, param handling for :param endpoints, and post-call debugging via run_id linking to get_workflow_run_traces. The return-value prose complements the output schema by explaining failure semantics rather than repeating structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining that sample params flow through the definition's input_transform, that the intent is to confirm good values render and bad ones fail input validation, and that resolved_input exposes the transformed $input for debugging. This genuinely deepens agent understanding of how params and output relate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Render what a dynamic endpoint serves WITHOUT publishing.' This immediately distinguishes it from publish_dynamic_endpoint and get_dynamic_endpoint, and it clarifies the draft-versus-version preview modes. No tautology — the title is expanded into a precise operational statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use case is given: 'preview a DRAFT before publishing (or verify any version).' The description names a follow-up alternative, get_workflow_run_traces, for deeper drilling, and the 'WITHOUT publishing' framing contrasts with the publish sibling. It does not explicitly enumerate when-not-to-use cases (e.g., direct execution vs. run_workflow), slightly missing the full exclusion guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | the version number to make live | |
| template_id | Yes | the template id to publish |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| template_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the behavioral effect (making the version the one workflows resolve to). Given the annotations already indicate non-destructive behavior (destructiveHint false), the description adds useful context about what publishing accomplishes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and clearly states the outcome. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple publish operation with two well-described parameters and no nested objects, the description provides sufficient context. It does not mention return values, but an output schema is indicated, and the operation's purpose is fully conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are described in the schema (template_id and version), and the descriptions are clear and accurate. Since schema coverage is 100%, the description adds marginal value but confirms the role of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (publish an API template version) and its effect (making it the version workflows resolve). It also distinguishes this tool from sibling publish tools for other resource types by specifying 'api template'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool—when you want to set a specific version as the live one that workflows reference. It does not explicitly compare with alternatives like create_api_template_version or update_api_template, but the purpose is clear enough 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_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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | the app id to publish | |
| version | Yes | the version number to make the live manifest |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| published_manifest | No | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry openWorldHint=false and destructiveHint=false. The description adds substantial behavioral context beyond that: the live-manifest side effect, role-based visibility with an authoritative selector, the rejection condition when membership selects nothing, and the crucial boundary that members are never promoted. No annotation contradiction; the description enriches the safety profile meaningfully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the primary effect is front-loaded, followed by the failure condition, then the side-effect boundary. There is no filler, jargon beyond the domain concept of a manifest, or redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter publish operation with an output schema and safety-relevant annotations, the description covers the purpose, the behavioral effect, the validation failure mode, and what the operation does not touch (members). An agent has everything needed to decide on and correctly invoke this tool among the large publish_* sibling family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both app_id and version, so the schema already does the heavy lifting. The description reinforces that version 'make[s] the live manifest,' mirroring the schema text, but adds no new parameter-level detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Publish an app version') and defines the precise effect: 'making it the live manifest (visible per role, its selector authoritative)'. It also distinguishes this operation from the many publish_* siblings by clarifying it is app-specific and manifest-only, so an agent can differentiate it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose statement doubles as when-to-use guidance (make a version the live manifest), and the description gives an explicit exclusion: publishing 'promotes only its manifest — never its members, which publish independently on their own lifecycles.' It also flags a precondition ('Rejected if the version's membership selects nothing'). It stops short of naming a concrete alternative tool for member publication, so it loses the top score.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| datafile_id | Yes | the datafile id to publish | |
| public_path | Yes | the CDN path to publish at (e.g. data/products.json) | |
| expected_content_sha256 | Yes | the 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
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| public_url | Yes | |
| datafile_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only carry openWorldHint=false and destructiveHint=false, so the description carries the burden of behavioral disclosure. It adds a meaningful concurrency guard: 'publish fails if the content changed since, so you publish the exact version you intend.' It also reveals that the operation returns a public CDN URL, which is material for the client-side fetch use case. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. Each sentence serves a distinct purpose: the core purpose, an explicit non-use case, and a required-parameter guard with the return value. All information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with full input schema and an output schema, the description covers the key selection decision, a critical failure condition (hash mismatch), and the return value (public CDN URL). No additional information is essential for an agent to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed descriptions for all three required parameters, so the baseline is 3. The description largely restates the expected_content_sha256 semantics rather than adding significantly new field-level meaning, though it does reinforce provenance by saying 'from the create/update/get that produced this content.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Publish a datafile to a CDN path you choose, so a page can fetch() it client-side.' This makes the exact use case unmistakable and also distinguishes the operation from server-side binding, setting it apart from the numerous 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-not: 'Only needed for that client-side fetch — NOT to bind a datafile server-side' and explains the alternative path through an endpoint's @latest datafile ref. It does not name a specific sibling tool like unpublish_datafile, but the contextual guidance 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | the version number to make live | |
| endpoint_id | Yes | the endpoint id to publish |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| public_url | No | |
| description | Yes | |
| endpoint_id | Yes | |
| content_type | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint=false and openWorldHint=false, so the description adds useful behavioral context: the endpoint is edge-cached and the response includes the public URL. This goes beyond the raw schema and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the core action, the operational effect, and the key response detail without filler. The go-live behavior 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter publish action with an output schema, the description is sufficient: it explains what happens, where the endpoint goes live, and what the response contains. It could mention prerequisites or alternatives explicitly, but those are reasonably inferable from sibling tool names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both endpoint_id and version already described in the schema. The tool description adds no additional parameter-level semantics, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('publish') and a precise resource ('dynamic endpoint version'), clarifying that the action takes the version live at a public URL. This distinguishes it from sibling operations like create, preview, and unpublish by emphasizing the go-live effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys this is the tool for making a dynamic endpoint version publicly live, with edge-cached serving. It does not explicitly name alternatives or exclusion conditions, but the operational context is clear enough for an agent to infer when to use it.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | the version number to make active (start firing on its cron) | |
| schedule_id | Yes | the schedule id to publish |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| last_run_at | No | |
| last_run_id | No | |
| next_run_at | No | |
| schedule_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are minimal (openWorldHint and destructiveHint only), so the description carries the behavioral burden. It discloses that publishing switches the active definition, that the dispatcher begins firing on the version's cron, and that a per-plan minimum-interval floor is enforced. There is no contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary effect is stated first, followed by the enforcement behavior. It 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two required parameters, an output schema, and a small annotation set, the description fully covers what the tool does, what changes as a result, and what constraint is enforced. Combined with the sibling list, an agent has enough context 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both required parameters with clear descriptions. The tool description reinforces the meaning of 'version' by linking it to activation, but it does not add semantic detail beyond what the schema already supplies, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Publish a schedule version.' It also states the concrete effect — making it the ACTIVE definition that the dispatcher starts firing on the version's cron — which clearly distinguishes this from creating a schedule version, running one now, or unpublishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when the caller wants to activate a schedule version and have the dispatcher begin firing its workflow. It does not explicitly name alternative tools such as create_schedule_version or run_schedule_now, but the behavioral context is strong enough that an agent can infer the right moment to call it.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | the version number to make the published version datafiles resolve by default | |
| schema_id | Yes | the schema id to publish |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| schema_id | Yes | |
| description | Yes | |
| json_schema | No | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate openWorldHint=false and destructiveHint=false, so the safety profile is partially covered. The description adds meaningful behavioral context by explaining that publishing changes which version datafiles resolve to when binding without requesting the latest, which is the key state-changing effect beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that leads with the action and resource, then explains the meaningful consequence. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with a full input schema and an output schema, the description covers the essential behavior and side effect. It could be more complete by noting that the version must already exist or by clarifying reversibility, but those are not critical gaps given the available structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with both schema_id and version having explicit descriptions. The tool description adds no parameter-specific details beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Publish' and the resource 'a schema version,' then defines the precise effect: making that version the default resolution for datafiles that bind to the schema without requesting the latest. This distinguishes it from other publish_* sibling tools and from create_schema_version, which creates rather than publishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool through its explanation of default resolution behavior, but it does not explicitly state when to use it versus alternatives such as create_schema_version or update_schema. There is no when-not-to-use guidance or mention of prerequisites like the version already existing.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | the version number to make live | |
| workflow_id | Yes | the workflow id to publish |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| workflow_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry openWorldHint=false and destructiveHint=false, so the description bears the burden and does add behavioral context: it discloses that publishing changes which version is served to callers and that @published dynamic endpoints are affected. Reversibility, idempotency, and preconditions are not addressed, but the core state-change behavior is meaningfully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 22-word sentence that front-loads the verb and resource, states the consequence, and folds in the @published context without any repetition or filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with full schema coverage and an output schema present, the description covers the core purpose and the key side-effect. It omits prerequisites (e.g., the version must already exist), reversibility guidance, and any note that no unpublish_workflow sibling exists — a gap given the publish_*/unpublish_* pattern in the sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both workflow_id and version documented in the input schema, so the baseline of 3 applies. The description adds no parameter-level detail beyond the schema, where 'the version number to make live' already captures the essential semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Publish') with an exact resource ('a workflow version') and explains the operational consequence: the published version becomes the one served to callers. This separates it from the publish_* siblings (publish_app, publish_datafile, publish_schedule, etc.) by resource type, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool — to promote a workflow version to live status — by describing the effect on callers and dynamic endpoints referencing @published. However, it names no alternative tools, gives no when-not-to-use guidance, and the sibling list contains no unpublish_workflow, leaving the revert path undefined.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | the app id to rename | |
| new_slug | Yes | the new slug (unique per tenant; hierarchical path segments allowed) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| published_manifest | No | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the uniqueness failure condition ('Fails if the new slug is already in use') and the scope boundary (does not move member resources), which add context beyond annotations that only state openWorldHint=false and destructiveHint=false. No contradiction: destructiveHint=false is consistent with a non-destructive rename.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the action is front-loaded, the failure condition follows, and the scope warning closes the definition. No filler, no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter rename with a full output schema and annotations covering the side-effect profile, the description covers purpose, failure mode, and scope boundary. Success behavior is left to the output schema, which is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters, giving a baseline of 3. The description reinforces new_slug's per-tenant uniqueness and adds the 'folder prefix' metaphor, but it adds little beyond the schema's own 'unique per tenant; hierarchical path segments allowed'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rename) and resource (app slug), and defines the slug as a unique per-tenant identifier/folder prefix. The scope emphasis ('this renames the APP') distinguishes it from sibling tools like rename_schedule_slug and from resource-moving operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on scope: it operates on the app slug and explicitly excludes moving member resources, which are matched by their own slugs. It doesn't name alternative sibling tools explicitly (e.g., rename_schedule_slug), so some tool-routing 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.
rename_schedule_slugRename schedule slugAInspect
Rename a schedule's slug (its unique per-tenant identifier). Fails if the new slug is already in use.
| Name | Required | Description | Default |
|---|---|---|---|
| new_slug | Yes | the new slug (unique per tenant; hierarchical path segments allowed) | |
| schedule_id | Yes | the schedule id to rename |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| last_run_at | No | |
| last_run_id | No | |
| next_run_at | No | |
| schedule_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses an important failure behavior: the operation fails if the new slug is already in use. It does not contradict the annotations, though it does not mention other side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant or irrelevant content. It is focused, front-loaded, and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rename operation, the description provides enough context: it names the resource, the field being changed, and a key constraint. It does not mention the output or return value, but given the low complexity and presence of an output schema, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool-level description largely repeats information already present in the parameter schemas for schedule_id and new_slug. It adds little beyond the schema descriptions, so the parameter semantics are adequately covered but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (rename), the target resource (schedule's slug), and the unique per-tenant nature of the slug, making the tool's purpose unambiguous. This also implicitly distinguishes it from broader update operations like update_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for renaming a schedule slug, but it does not explicitly compare with sibling tools such as update_schedule or rename_app_slug. The failure condition is stated, but no direct guidance is given on when to prefer this tool over alternatives.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the schedule slug (provide this or schedule_id) | |
| version | No | specific version to fire; omit (0) for the latest version (the draft) | |
| schedule_id | No | the schedule id (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| run_id | Yes | |
| status | No | |
| message | No | |
| version | Yes | |
| dispatched_at | Yes | |
| scheduled_for | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently notes that the tool executes the workflow and may have side effects, which is important behavioral context. It also clarifies that it does not publish and captures full output and traces. While it does not mention auth requirements or rate limits, the provided annotations (openWorldHint, destructiveHint) are not contradicted and the side-effect warning adds meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise and each sentence contributes useful information: purpose, execution behavior, full-capture distinction, and side-effect warning. The use of emphasis and the slight repetition around 'draft' and 'automatic fire' adds a little verbosity but does not obscure meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the existence of an output schema, the description sufficiently covers the main behavior, return reference, and side effects. It does not cover every edge case (e.g., both slug and schedule_id provided, or schedule not found), but it is complete enough for typical usage and aligns with the stated annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the three parameters with 100% description coverage, so the baseline is 3. The description adds useful semantic nuance for the version parameter by explaining that omitting it targets the latest draft, which is valuable beyond the schema text. It does not deeply clarify slug vs. schedule_id selection, but the schema already handles that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fires a schedule once, immediately, and without publishing, for testing drafts before they go live. It also explains that it runs the version's workflow and returns a reference to the triggered run, making the purpose specific and distinct from publishing or automatic firing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool: to test a draft before going live and to reproduce a run with full output and traces, unlike an automatic fire which only samples. It also directs the user to get_workflow_run for resolving the outcome, offering clear usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | the workflow slug to run (provide this or workflow_id) | |
| input | No | JSON bound as the workflow's $input for this run | |
| version | No | explicit 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 | |
| datafile | No | optional: 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_id | No | the workflow id to run (provide this or slug) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| output | No | |
| run_id | Yes | |
| status | Yes | |
| message | No | |
| content_type | Yes | |
| trace_summary | No | |
| trace_truncated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare openWorldHint=true and destructiveHint=false; the description adds genuinely useful behavior: output is returned decoded as a string and must be interpreted per content_type, each run returns a trace_summary of executed steps, and draft vs published runs are governed by the version parameter. No contradiction with the annotations — it neither overstates destructiveness nor hides it, though it stops short of warning about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the outcome contract, the draft-vs-published version behavior, and the debugging pointer. All essential guidance is front-loaded before the alternative tool is mentioned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter execution tool with an output schema, the description covers the return contract, the draft-testing flow, and the debugging path, and the 100%-coverage schema fills in parameter details. The only notable omission is an explicit warning about side effects or cost of executing a workflow, which openWorldHint only weakly implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies; the description itself adds no per-parameter syntax beyond the schema. It does add cross-parameter flow context (version connects to create_workflow_version's return value; run_id connects to get_workflow_run_traces), but the schema already documents each parameter in detail, so the description adds only marginal value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run a workflow now') and enumerates the exact return payload (status, content_type, decoded output, trace_summary), which distinguishes it from read-only siblings like get_workflow and get_workflow_run_traces. The scope of what it does is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: pass version=<n> to test an unpublished draft vs omit for the published version, and explicitly routes debugging to get_workflow_run_traces using the returned run_id. The datafile parameter description also defines the scenario (testing a $datafile-reading workflow without wrapping it in an endpoint), so there is no ambiguity about 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.
unpublish_appUnpublish appADestructiveInspect
Hide an app (last_published_version -> 0) while preserving its definition; republish any version later. Does not touch its members.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | the app id to hide (last_published_version -> 0; definition preserved) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| published_manifest | No | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark destructiveHint: true, but the description clarifies the reversible nature ('preserving its definition; republish any version later') and explicitly states it does not touch members. This adds transparency beyond the raw annotation and prevents misunderstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, using one sentence to convey the action, its effect, and exclusions, with no redundant or extraneous 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for a mutation tool: what it does, what it preserves, and what it does not affect. It lacks explicit mention of return values, but given the absence of an output schema, this is acceptable and not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter app_id is fully described as 'the app id to hide (last_published_version -> 0; definition preserved)', giving clear meaning and the exact effect on the resource. Schema coverage is 100% and the description reinforces it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Hide an app'), specifies the effect (last_published_version -> 0), and explicitly notes what it does not do (preserve definition, not touch members). This is unambiguous and distinguishes it from destructive deletions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case (temporarily hiding an app while allowing republishing) but does not explicitly compare with alternatives like publish_app or delete_app. It does not directly state when to use this instead of a sibling tool, 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.
unpublish_datafileUnpublish datafileADestructiveInspect
Pull a published datafile off the CDN so its URL stops serving.
| Name | Required | Description | Default |
|---|---|---|---|
| datafile_id | Yes | the datafile id to pull from the CDN |
Output Schema
| Name | Required | Description |
|---|---|---|
| json | No | |
| slug | Yes | |
| schema_id | No | |
| datafile_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| content_sha256 | No | |
| last_published_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, and the description adds meaningful behavioral context by specifying the mechanism ('off the CDN') and the observable effect ('URL stops serving'). It clarifies that the action stops serving rather than deleting the underlying datafile, which is valuable beyond the structured annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler. The most important information ('pull off the CDN' and 'URL stops serving') is front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a destructive annotation and an output schema present, the description provides sufficient context. It states the precondition ('published datafile'), the action, and the consequence, leaving no critical gap 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema already states that datafile_id is 'the datafile id to pull from the CDN'. The description does not add new parameter-level semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Pull') with a specific resource ('datafile') and a clear effect ('URL stops serving'), making it immediately distinguishable from delete_datafile, publish_datafile, and get_datafile. The phrase 'published datafile' precisely identifies the target state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when a datafile is published and you need to stop its CDN URL from serving. It does not explicitly list alternatives or state when not to use it, but the single-scope phrasing and sibling context make the intended use unambiguous.
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 endpointADestructiveInspect
Take a dynamic endpoint offline so its public URL stops serving content.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint_id | Yes | the endpoint id to take offline |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| public_url | No | |
| description | Yes | |
| endpoint_id | Yes | |
| content_type | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal destructiveHint=true and openWorldHint=false. The description adds that the public URL stops serving content, which is the operative behavioral effect, but it does not mention reversibility, state prerequisites (e.g., must be currently published), or whether existing pending runs are affected. With annotations carrying the safety signal, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence communicates the action, the resource, and the observable effect. No filler or repetition of the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lifecycle action with annotations and an output schema, the description covers the essential behavior. It is slightly thin on prerequisites and reversibility, but nothing critical is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the endpoint_id property is already described as 'the endpoint id to take offline'. The description adds the public URL context but no additional format, source, or selection guidance, so it does not meaningfully elevate the parameter semantics beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool's description states a specific action ('take a dynamic endpoint offline') and its direct consequence ('its public URL stops serving content'). This clearly distinguishes unpublish from delete_dynamic_endpoint and update_dynamic_endpoint, using the lifecycle verb 'unpublish'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is the action for making a dynamic endpoint stop serving publicly while presumably keeping it available for republishing. It does not explicitly name alternatives or list when-not-to-use conditions, but the context is unambiguous enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_scheduleUnpublish scheduleADestructiveInspect
Deactivate a schedule so it stops firing on its cron. The definition is preserved (last_published_version -> 0); republish any version later to resume.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes | the schedule id to deactivate (stops firing; definition preserved) |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| last_run_at | No | |
| last_run_id | No | |
| next_run_at | No | |
| schedule_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the side effects: it stops firing, sets last_published_version to 0, and preserves the definition. This aligns with the destructiveHint annotation while providing specific state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using only two sentences to convey the action, its effect, and the recovery mechanism. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter interface, the description provides all necessary context: what happens to the schedule, what is preserved, and how to resume. An agent can confidently invoke this tool based on this information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, schedule_id, is fully described in the input schema with a clear explanation. The tool description adds no additional meaning beyond the schema's own description, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: deactivating a schedule so it stops firing. It distinguishes from related operations like delete_schedule by emphasizing that the definition is preserved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly notes that the definition is preserved and that republishing any version later will resume, which gives clear guidance on when to use this tool versus deleting a schedule.
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 templateAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | What this api template calls. Set wholesale — an empty value clears it. | |
| template_id | Yes | The api template id to update. | |
| display_name | Yes | Human-readable name. Required (cannot be blank). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| template_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the minimal annotations, the description discloses the wholesale replace behavior, that an empty/omitted description clears it, that slug cannot be changed, and that display_name is required. This is exactly the behavioral nuance an agent needs before invoking a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff; the scope and key constraint (metadata only) appear first, followed by the critical wholesale-replace caveat and the safe usage pattern. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with two required parameters and a clear output schema, this description fully covers what changes, what does not change, what cannot change, and the safe sequence to follow. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters, so baseline is 3. The description adds extra meaning beyond the schema by explaining that display_name is required, description is set wholesale, omitting description clears it, and both should be passed to avoid losing values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Update') with a specific resource ('api template') and identifies exactly which fields are affected (display_name and description). It also clearly distinguishes itself from create_api_template_version by noting this does not change the request definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly states this is metadata-only and directs authoring request definitions to create_api_template_version. It also tells the agent to read current values with get_api_template first when changing only one field, giving a concrete usage procedure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_appUpdate appAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | the app id to update | |
| description | Yes | ||
| display_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| app_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| published_manifest | No | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations by clarifying that this operation only touches metadata and does not affect the versioned definition. It names create_app_version as the alternative for versioned changes. It does not discuss permissions or error behavior, but the annotations already declare it non-destructive and an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence with no filler. It front-loads the core action, then adds the essential scoping caveat and alternative tool reference in a parenthetical—every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter metadata update, the description, schema, annotations, and output schema together provide sufficient context. The only minor gap is the unexplained 'membership selector' term, but it does not block correct invocation because the routing to create_app_version is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description compensates by explicitly identifying display_name and description as the metadata fields being updated. It also distinguishes those from versioned display metadata, which helps the agent understand the parameter semantics even though no format or constraint details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: updating an app's display name and description. It further narrows scope by stating it is metadata-only and explicitly contrasts with create_app_version, so the purpose is unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when not to use this tool: changes to membership selector and display metadata in the versioned definition should go through create_app_version. This gives the agent an explicit routing rule among related app-management tools.
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 domainAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | The hostname identifying the domain to update. | |
| slug_prefix | No | The endpoint subtree this domain mounts (usually an app's slug prefix). Empty = the whole tenant tree. Set wholesale. | |
| display_name | No | Human label. Empty clears it. | |
| root_endpoint | No | What the domain root ('/') serves, RELATIVE to slug_prefix. Empty = the root returns 404. Set wholesale. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| hostname | Yes | |
| dns_records | No | |
| slug_prefix | No | |
| verified_at | No | |
| activated_at | No | |
| display_name | No | |
| root_endpoint | No | |
| last_check_message | No | |
| cert_status_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses critical behavioral traits: all provided fields are set wholesale, empty values clear settings, root_endpoint empty returns 404, and hostname cannot be changed or deleted through these tools. This adds meaningful operational context that the annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then provides a concrete example, then important behavioral caveats. Every sentence adds useful information and none is wasted on repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation with a required hostname, the description fully explains parameter semantics, mutation behavior, and limitations. With an output schema present, return-value details are not needed here, making this definition effectively complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains the routing relationship with a concrete example, clarifies that slug_prefix is relative to the tenant tree, and emphasizes wholesale overwrite semantics. This is more than redundant paraphrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: updating a custom domain's mutable settings, explicitly listing display_name, slug_prefix, and root_endpoint. It distinguishes the tool from creation, verification, and deletion by clarifying the hostname is immutable and deletion is not possible here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is relevant: turning a domain into an app's public front door by configuring slug_prefix and root_endpoint. It also notes an exclusion by warning that hostname cannot be changed and deletion must be done in the Tessryx app, though it does not explicitly compare against create_custom_domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_datafileUpdate datafileAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Replacement JSON object for this datafile. Omit to leave the content unchanged. Property order is preserved verbatim. | |
| schema_id | No | Id of the schema this datafile's JSON is validated against. Omit to leave the current binding unchanged. | |
| datafile_id | Yes | The datafile id to update. | |
| description | No | What this datafile holds. Omit to leave unchanged. | |
| display_name | No | Human-readable name. Omit to leave unchanged. | |
| use_latest_schema | No | Validate against the latest (draft) schema version instead of the published one. Only applied when schema_id is also provided. | |
| expected_content_sha256 | No | The 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
| Name | Required | Description |
|---|---|---|
| json | No | |
| slug | Yes | |
| schema_id | No | |
| datafile_id | Yes | |
| description | Yes | |
| display_name | Yes | |
| content_sha256 | No | |
| last_published_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (openWorldHint, destructiveHint), so the description carries the disclosure burden and delivers: whole-document replacement semantics, verbatim property-order preservation, optimistic concurrency via expected_content_sha256 with FAILED_PRECONDITION rejection on conflict, and the explicit post-condition that the change must be republished to reach the CDN. These behavioral traits go well beyond what the annotations declare.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Seven sentences, each carrying distinct information: the core operation, field-level semantics, document-replacement semantics, sibling routing, concurrency workflow guidance, and the republish post-condition. It is front-loaded with the core verb, but it is a single dense paragraph with minor redundancy around 'property order preserved verbatim,' which keeps it just shy of zero-waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool of this complexity — 7 params, concurrency control, update/patch sibling ambiguity, and a CDN side-effect — the description covers the semantic core, the routing decision, the concurrency failure workflow, and the republish requirement. The schema covers parameter details and the output schema covers return values, so nothing an agent needs to call this correctly is missing. The only minor gap is that the republish sibling (publish_datafile) is not named, but it is obvious from the sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns a 4 by adding cross-parameter workflow meaning the individual schema docs do not provide: the coupling of json with expected_content_sha256 as a required round trip ('get_datafile, change the object you got back, then send it all') and the relationship between providing json (whole-document replace) versus omitting it (metadata-only). This synthesis is genuine added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the operation as 'Update a datafile' and immediately resolves the ambiguous update-vs-patch semantics: field-level partial update where only provided arguments change, while the json argument replaces the WHOLE document and omitting it changes only metadata. It explicitly distinguishes itself from patch_datafile, so an agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names patch_datafile explicitly as the alternative for partial document edits and states the deciding condition: 'Use this tool when you are replacing the whole document anyway.' It justifies the routing with the concurrency argument ('cannot lose a concurrent write') and adds the get-modify-send round-trip workflow with expected_content_sha256. 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_dynamic_endpointUpdate dynamic endpointAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | What this endpoint serves. Set wholesale — an empty value clears it. | |
| endpoint_id | Yes | The endpoint id to update. | |
| content_type | No | The 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_name | Yes | Human-readable name. Required (cannot be blank). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| public_url | No | |
| description | Yes | |
| endpoint_id | Yes | |
| content_type | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses the wholesale replace semantics (all provided fields are set exactly), the requirement that display_name cannot be blank, and the critical edge case where an empty content_type clears it and reverts to the workflow's own content-type. It provides an example (text/html → text/plain) to illustrate the consequence. No annotation contradicts this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is moderately long, every sentence contributes essential information: scope, alternative tool, replace semantics, empty-content-type caveat, and a usage tip. The structure is logical and free of filler, making it dense but well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides complete operational context for an agent: which fields are affected, which are not, how the tool behaves on partial input, the critical empty-content-type behavior, and a recommended workflow (read first, then pass all fields). It fully equips the agent to call the tool correctly without needing external clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are covered by the schema (100% coverage), and the description adds meaning beyond the schema: it explains the wholesale replace behavior for description and content_type, the clearing implication of an empty content_type, and the required/non-blank nature of display_name. This enriches the schema descriptions significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update'), resource ('dynamic endpoint'), and enumerates the affected fields (display_name, description, content_type). It explicitly distinguishes this tool from create_dynamic_endpoint_version for workflow binding/cache changes and notes the slug cannot be changed, making the purpose unmistakable among the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs when to use this tool versus create_dynamic_endpoint_version for other changes, and advises to read current values with get_dynamic_endpoint first to avoid data loss. This is clear, actionable guidance on when and how 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.
update_scheduleUpdate scheduleAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| schedule_id | Yes | the schedule id to update | |
| display_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| last_run_at | No | |
| last_run_id | No | |
| next_run_at | No | |
| schedule_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive and closed-world behavior. The description adds valuable transparency by clarifying that the versioned definition is untouched and that this operation only affects metadata. It does not contradict annotations, though it does not discuss side effects on published schedules or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads the operation and scope, then routes to the correct sibling for other changes. Every clause contributes value without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter metadata update, this description is complete enough. It defines the scope, names the alternative tool, and the output schema handles return-value expectations. An agent can invoke this tool correctly without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only documents schedule_id, leaving display_name and description unexplained. The description compensates by treating them as metadata fields and explicitly separating them from cron/workflow/input, which is important semantic context for correct invocation. It does not add formatting constraints, but none are obviously needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action: updating a schedule's display name and description. It explicitly narrows the scope to metadata-only and distinguishes this from create_schedule_version, so an agent knows exactly what resource and fields are affected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly tells the agent when to use this tool (metadata-only changes) and when not to (changes to cron/workflow/input should use create_schedule_version). This explicit routing prevents confusion with the most similar sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_schemaUpdate schemaAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| schema_id | Yes | The schema id to update. | |
| description | No | What this schema describes. Set wholesale — an empty value clears it. | |
| display_name | Yes | Human-readable name. Required (cannot be blank). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| schema_id | Yes | |
| description | Yes | |
| json_schema | No | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the critical WHOLESALE replace behavior — description is set to exactly what is passed and an empty/omitted value CLEARS it — which is a surprising semantic that annotations (openWorldHint: false, destructiveHint: false) do not convey. It also states the metadata-only boundary and that display_name is required and cannot be blank, adding real behavioral context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler. The most important scoping fact (metadata only, not the JSON Schema body) is front-loaded, followed by the behavioral gotcha and the read-first workflow. Each clause earns its place and the structure mirrors the decision order an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter update tool with a rich schema and output schema present, the description covers everything needed to call it correctly: what it updates, what it does not touch, what cannot be changed, the replace semantics, and the safe workflow. Sibling differentiation is explicit and no critical behavioral gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents each parameter, including 'Set wholesale — an empty value clears it', so the baseline is 3. The description adds operational meaning by tying parameters together — requiring both fields to preserve one unchanged and explaining the implication of the required display_name — going slightly beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Update a schema's display_name and description' — and immediately narrows scope with 'metadata only — this does NOT change the JSON Schema body'. It explicitly names the sibling that handles the excluded case (create_schema_version) and flags that the slug cannot be changed, so an agent can distinguish this tool from update-like siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing: use create_schema_version for JSON Schema body changes, use this tool for metadata only. It also provides a concrete operational procedure for the common case — 'read the current values with get_schema first and pass both' — and warns that the slug cannot be changed, which prevents attempts to use this tool for that purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workflowUpdate workflowAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | What this workflow does. Set wholesale — an empty value clears it. | |
| workflow_id | Yes | The workflow id to update. | |
| display_name | Yes | Human-readable name. Required (cannot be blank). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| version | No | |
| definition | No | |
| description | Yes | |
| workflow_id | Yes | |
| display_name | Yes | |
| latest_version | Yes | |
| last_published_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by revealing wholesale replacement semantics: display_name is required, description is set exactly to what is passed, and an empty or omitted description clears it. It also clarifies that this update does not touch workflow logic, giving the agent a complete behavioral model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two information-dense sentences with no filler. The primary scope is stated first, followed by the wholesale-replace behavior and the read-first precaution, so the most decision-relevant content is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers purpose, alternatives, exclusions, parameter behaviors, and a safe update workflow (get_workflow before update). With an output schema present, no return-value documentation is needed, so nothing material is missing for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all three parameters, the description adds crucial semantics not inferable from it: the required display_name cannot be blank, description is a full replace rather than a patch, and omitted description means clearing. This materially improves correct parameter construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update a workflow's display_name and description') and scopes it to metadata only, explicitly excluding logic changes and slug changes. It names the sibling tools that handle logic edits, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: logic edits should go through create_workflow_version / patch_workflow, and slug cannot be changed. It also gives a concrete precondition, reading with get_workflow before updating one field, which is directly actionable for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_workflowValidate workflowARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | The 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
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| findings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it does NOT run the workflow, aligning with readOnlyHint and destructiveHint annotations. It also details what the static check covers and the meaning of the 'valid' flag, going beyond the basic annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using clear sentence structure and bullet-like lists for the findings. It avoids redundancy and presents the key information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It fully explains the return findings list, the conditions for validity, and the scope of checks (schema shape, syntax, variable scope, reference resolution). This is complete for an agent to decide when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'definition' is covered 100% in the schema description, which already explains it as a JSON object and how to author it. The tool description reinforces this and adds helpful guidance about copying an existing version with get_*_version, providing extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool statically checks a workflow definition without running it, and explicitly differentiates it from create/run tools. It specifies the purpose of catching authoring mistakes before submission, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises using this tool before create_workflow or create_workflow_version, and directs the user to author against get_workflow_definition_schema. This provides clear when-to-use and alternative context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | the custom domain hostname to verify, e.g. shop.customer.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| verified | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (openWorldHint=true, destructiveHint=false) by disclosing real behavioral traits: verification is what actually claims the hostname (first-to-verify-wins), success triggers global binding and certificate issuance, the server throttles rapid re-checks, and DNS propagation can take minutes. This is crucial context for a tool whose surface behavior ('check DNS TXT') could otherwise look read-only. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each earning its place: purpose, call timing, non-polling instruction with rationale, monitoring alternative, and the claiming side-effect warning. It is slightly dense and longer than strictly necessary, but the content is high-value operational guidance rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a full output schema and complete parameter documentation, the description covers everything an agent needs to call it correctly: when to invoke it, how to handle the verified=false case, throttling behavior, how to follow up (get_custom_domain), and the side-effect of claiming the hostname. Return-value details are already handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the hostname parameter is already documented with a concrete example ('shop.customer.com'). The description reinforces that the hostname comes from create_custom_domain but adds no new format, constraint, or semantic detail beyond the schema. Baseline 3 is appropriate because the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Check the DNS TXT challenge for a claimed domain' and states the consequential outcome ('take the global (hostname -> tenant) binding and start certificate issuance'). It clearly differentiates from the sibling family by referencing create_custom_domain as the source of DNS records and get_custom_domain as the status watcher, so an agent can tell verify_custom_domain apart from create/get/update/list_custom_domain without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is given: 'Call this ONCE after the human confirms they have added the DNS records from create_custom_domain.' It also gives explicit when-not-to-use behavior ('do NOT poll this in a loop') and names the alternative tool for continued monitoring ('Read get_custom_domain to watch the certificate go from CERT_PENDING to ACTIVE'). 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.
whoamiShow current user and workspaceARead-onlyInspect
Return the authenticated user and tenant for the current MCP session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| Yes | ||
| roles | Yes | |
| scope | Yes | |
| user_id | Yes | |
| tenant_id | Yes | |
| tenant_slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'current MCP session' scoping detail, which is useful, but otherwise describes a simple read operation with little additional behavioral nuance to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that front-loads the action and result. Every word adds value, and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only identity tool with an output schema present, the description is fully sufficient. An agent can understand exactly what this tool does and when to invoke it without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which sets a baseline of 4. The description does not need to explain parameters because there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a clear resource ('the authenticated user and tenant'), and a clear scope ('for the current MCP session'). It fully distinguishes this introspection tool from the many CRUD and workflow tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for retrieving identity/tenant context for the current MCP session, which is the only natural use case. There are no sibling tools with overlapping purpose, so explicit exclusions are unnecessary; the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
93 tool updates
- First observed
analyze_resource - First observed
create_api_template - First observed
create_api_template_version - First observed
create_app - First observed
create_app_version - First observed
create_custom_domain - First observed
create_datafile - First observed
create_dynamic_endpoint - First observed
create_dynamic_endpoint_version - First observed
create_schedule - First observed
create_schedule_version - First observed
create_schema - First observed
create_schema_version - First observed
create_workflow - First observed
create_workflow_version - First observed
delete_api_template - First observed
delete_app - First observed
delete_datafile - First observed
delete_dynamic_endpoint - First observed
delete_schedule - First observed
delete_schema - First observed
delete_workflow - First observed
execute_api_template - First observed
get_api_template - First observed
get_api_template_definition_schema - First observed
get_api_template_version - First observed
get_app - First observed
get_app_definition_schema - First observed
get_app_members - First observed
get_app_version - First observed
get_asset - First observed
get_custom_domain - First observed
get_datafile - First observed
get_dynamic_endpoint - First observed
get_dynamic_endpoint_definition_schema - First observed
get_dynamic_endpoint_version - First observed
get_guide - First observed
get_resource_graph - First observed
get_schedule - First observed
get_schedule_definition_schema - First observed
get_schedule_version - First observed
get_schema - First observed
get_secret - First observed
get_workflow - First observed
get_workflow_definition_schema - First observed
get_workflow_run - First observed
get_workflow_run_traces - First observed
get_workflow_version - First observed
list_api_templates - First observed
list_app_versions - First observed
list_apps - First observed
list_assets - First observed
list_custom_domains - First observed
list_datafiles - First observed
list_dynamic_endpoint_runs - First observed
list_dynamic_endpoints - First observed
list_guides - First observed
list_runs - First observed
list_schedule_runs - First observed
list_schedule_versions - First observed
list_schedules - First observed
list_schemas - First observed
list_secrets - First observed
list_workflows - First observed
patch_datafile - First observed
patch_workflow - First observed
preview_dynamic_endpoint - First observed
publish_api_template - First observed
publish_app - First observed
publish_datafile - First observed
publish_dynamic_endpoint - First observed
publish_schedule - First observed
publish_schema - First observed
publish_workflow - First observed
rename_app_slug - First observed
rename_schedule_slug - First observed
run_schedule_now - First observed
run_workflow - First observed
unpublish_app - First observed
unpublish_datafile - First observed
unpublish_dynamic_endpoint - First observed
unpublish_schedule - First observed
update_api_template - First observed
update_app - First observed
update_custom_domain - First observed
update_datafile - First observed
update_dynamic_endpoint - First observed
update_schedule - First observed
update_schema - First observed
update_workflow - First observed
validate_workflow - First observed
verify_custom_domain - First observed
whoami
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Build and host full-stack apps from a prompt, with agents that reach you on WhatsApp and email.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Build and deploy websites, Telegram and Discord bots from chat via the DreamAgent platform.
- OrbitOAuthio.orbitapps
An app builder for agents. Your agent creates screens, a Postgres database, and a live URL.
Related MCP Servers
- AlicenseAqualityAmaintenanceInstant web hosting for AI agents. Publish a live site in one call, no account needed.5MIT
- AlicenseBqualityDmaintenanceEnables non-coders to build software by describing ideas in natural language, orchestrating AI agents and CLI workers via chat without needing a terminal.30294Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI agents to build, edit, and publish live websites with hosting, database, auth, and domains via the Model Context Protocol.13111MIT
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Every resource family follows the same verb+noun pattern and each tool name uniquely identifies a resource-action pair (create_app vs create_app_version vs update_app vs publish_app). Closest overlaps like analyze_resource vs get_resource_graph and patch_datafile vs update_datafile are explicitly differentiated by their descriptions, so misselection risk is low despite the scale.
Names are almost uniformly verb_noun snake_case with a consistent lifecycle vocabulary: create/get/update/delete/list/publish/unpublish/version. Minor outliers like whoami and run_schedule_now are idiomatic and do not break the predictability of the set.
At 93 tools this far exceeds the calibration's 50+ extreme-mismatch case. The count is inflated by repeating create/get/update/delete/version/publish/unpublish across ten resource families; even though each family is systematic, the combined surface is very hard for an agent to navigate and keep in context.
Core CRUD/publish/version lifecycles are present for apps, workflows, endpoints, schedules, schemas, datafiles, and api templates, and dependency analysis is well covered. However, secret creation/updating, asset upload, custom-domain deletion, and version-range enumeration for several resource types are absent or left to the external dashboard, so agents hit a few manual dead ends.