Skip to main content
Glama

get_leave_types

Read-onlyIdempotent

Lists hostel leave types VTOP currently offers from the live leave form, so added or retired types are reflected. Use CODE, not label; notes the 6 PM rule for OG1 (Day Outing). Requires login.

Instructions

List the hostel leave types VTOP currently offers, read from the live leave form (so a newly added or retired type is reflected rather than assumed). Use the CODE, not the label. Also states the 6 PM in-time rule: it applies to OG1 (Day Outing) only, and 18:00 itself is allowed. Requires login.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds genuinely useful behavior beyond that: the output is read from the live form (so it is not a static enum), that labels are unsafe to submit, and that login is required, which is not captured by openWorldHint alone.

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

Conciseness3/5

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

The first sentence is well front-loaded, but the leave-form caveat is embedded mid-clause and the unrelated 6 PM in-time rule plus login note are bolted on, making the payload feel like three loosely related facts rather than one tight definition. Every clause is arguably useful, but the structure is not clean.

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

Completeness4/5

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

Because there is no output schema, the description carries the burden of telling the agent what comes back, and it does so for the critical field (code vs label) and the login prerequisite. It is slightly over-stuffed with unrelated policy (6 PM rule) that is already its own sibling-ish concern, but an agent has enough to call and consume it correctly.

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

Parameters4/5

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

The tool has zero parameters, so the schema defines nothing to document. The description appropriately uses the space to explain how to interpret the returned data (use the code, not the label), which is the only semantic question a caller of a zero-arg list tool could have.

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

Purpose5/5

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

States a specific verb (List) and resource (hostel leave types) and adds critical scoping detail that the values come from the live form rather than a cached assumption. Distinguishable from the sibling get_leave_type_rules, which presumably covers policy rather than the enumeration of types.

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

Usage Guidelines4/5

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

Implies this is the lookup step before apply_leave by instructing 'Use the CODE, not the label', which tells the agent how to consume the result. It does not explicitly name apply_leave or get_leave_type_rules as the downstream/alternative tool, so full sibling routing is missing.

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