Skip to main content
Glama

Validate workflow

validate_workflow
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
definitionYesThe workflow definition, as a JSON object. Fetch the exact JSON Schema it must satisfy with get_workflow_definition_schema and author against it (or copy an existing one with the get_*_version tool). The owning service validates it on submit.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
validYes
findingsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count1/5

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.

Completeness4/5

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.

Resources