Skip to main content
Glama

List School Programs

list_school_programs
Read-onlyIdempotent

Returns the active before/after-school, enrichment, and camp programs for the user's active school: name, description, type, dates, price, capacity, and how many seats are already enrolled. The program ids returned feed register_for_program and the program administration tools. Optionally filter by program_type.

Input Schema

NameRequiredDescriptionDefault
school_slugNoSchool slug (defaults to the active school)
program_typeNoFilter to one program type

Output Schema

NameRequiredDescriptionDefault
programsNoActive programs at the school

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world, non-destructive behavior, so the bar is lower. The description still adds value by disclosing that only ACTIVE programs are returned and that enrollment counts (seats taken) are included, which annotations cannot convey.

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?

Three tight sentences, front-loaded with the purpose before the returned fields and the downstream routing. The field enumeration is somewhat redundant given an output schema exists, which costs it a point but does not bloat the text.

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

Completeness5/5

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

With full schema coverage, annotations covering the safety profile, and an output schema documenting return values, the description supplies everything else an agent needs: scope (active school, active programs), filtering, and the downstream consumer of the ids.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are self-documenting, so the schema carries the semantic load. The description restates the optional program_type filter but adds no enum guidance or format detail beyond it, making the baseline 3 appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Returns the active before/after-school, enrichment, and camp programs'), scopes it to the user's active school, and enumerates the returned fields. This clearly separates it from sibling list tools such as list_school_events or list_my_event_registrations.

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

Usage Guidelines4/5

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

It tells the agent what to do with the result ('program ids feed register_for_program and the program administration tools') and notes the optional program_type filter, which is real usage context. It does not state when NOT to use this tool or name a competing list tool, but no plausible confusion exists among the siblings.

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.

Resources