Skip to main content
Glama
bestpractical

mcp-server-rt

Official

validate_lifecycle

Read-only

Validate a lifecycle definition before saving: reports warnings for unknown statuses, malformed transitions, and invalid actions. Dry-run the full payload against RT checks before applying it.

Instructions

Check a lifecycle definition without saving it. Takes the same payload as update_lifecycle and reports whether RT would accept it, with a warning for each problem found (unknown statuses, malformed transitions or actions, and so on). Use this to dry-run a custom lifecycle before writing it, since update_lifecycle rejects the whole payload if anything is wrong. RT checks only the payload sent: it never reads the lifecycle the name refers to, which is why the name need not exist yet and why it does nothing but label the warnings. So send a complete definition rather than the part being changed — transitions on their own report every status in them as nonexistent, including statuses the named lifecycle already has. Read the current definition with get_lifecycle, change it, and validate the whole thing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesLifecycle name the warnings are labelled with; need not exist, and its stored definition is not consulted
activeNoActive statuses
colorsNoStatus colors as {"status_name": "#hex_color"}
rightsNoRights required for transitions as {"from -> to": "RightName"}
actionsNoUI action buttons — see update_lifecycle for the accepted formats
initialNoInitial statuses
defaultsNoDefault statuses (e.g. {on_create: "new"})
inactiveNoInactive statuses
transitionsNoAllowed transitions as {from_status: [to_statuses]}
status_metadataNoPer-status description/notes — see update_lifecycle
transition_metadataNoPer-transition description/notes — see update_lifecycle

Schema Changelog

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

  1. Addedv0.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond the sparse readOnlyHint annotation, disclosing non-obvious behavior: RT validates only the payload sent and never reads the stored lifecycle, the name merely labels warnings and need not exist, and partial payloads produce false positives where every transition status is reported as nonexistent. This is exactly the kind of behavior an agent would otherwise discover by failing.

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

Conciseness4/5

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

Lengthy at five sentences but front-loaded with the core purpose and every sentence carries distinct guidance about scoping, false positives, or workflow. The double-why construction ('which is why... and why...') is slightly wordy, but the complexity of the behavior justifies most of the length.

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

Completeness5/5

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

Despite having no output schema, it specifies the return contract ('reports whether RT would accept it, with a warning for each problem found'), enumerates warning types, and fully explains the scoping pitfalls for an 11-parameter nested-object tool. An agent has everything needed to call it correctly without opening sibling schemas.

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

Parameters4/5

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

Schema already covers all 11 parameters (100% coverage), so the baseline is 3. The description adds genuine semantic value on top: it equates the payload shape with update_lifecycle's, clarifies that name is label-only and need not exist, and warns that transitions and statuses interact during validation (sending transitions alone flags every status as nonexistent).

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

Purpose5/5

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

Opens with a specific verb+resource pair ('Check a lifecycle definition without saving it') that immediately separates it from update_lifecycle and create_lifecycle. The contrast with update_lifecycle (which rejects whole payloads) makes the validation-only 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?

Gives explicit when-to-use ('Use this to dry-run a custom lifecycle before writing it') and explains why the alternative (update_lifecycle) is worse for this purpose since it rejects the entire payload. Also prescribes the full workflow: read with get_lifecycle, change, then validate the whole definition.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bestpractical/mcp-server-rt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server