Skip to main content
Glama

OBS Grade Distribution

obs_get_grade_distribution
Read-onlyIdempotent

Retrieve historical letter-grade counts and percentages for an Istanbul Technical University course by term from public OBS data. Optionally filter by year or term; no login required.

Instructions

Read public OBS historical letter-grade counts and percentages for a course, by term. year is the academic ending year: 2026 means 2025-2026; defaults to the current calendar year. Optionally select a term_code returned in available_terms. Reports AA, BA, BB and every other published grade, including plus grades. OBS may combine Turkish and English course codes; reported_course_codes states the actual aggregate scope. No login required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNo
term_codeNo
course_codeYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.1

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description still adds real behavioral content: no authentication required, the Turkish/English course-code aggregation quirk with reported_course_codes stating the actual scope, and that plus grades are included. This is the kind of caveat 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.

Conciseness5/5

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

Purpose is front-loaded, then year semantics, then term_code sourcing, then the aggregation caveat, then auth. Five short sentences, each carrying distinct information with no restatement of the name or title.

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?

An output schema exists so return values need not be explained, and the description still flags the field (reported_course_codes) that clarifies scope. What is missing is any statement separating this tool from the sibling archive_grade_distribution, which an agent could easily confuse for the same job.

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 description coverage is 0%, so the description must carry the load, and it does for two of three parameters: 'year is the academic ending year: 2026 means 2025-2026; defaults to the current calendar year' is a non-obvious semantic the schema omits, and term_code is tied to available_terms output. Only course_code format is left unspecified, keeping it short of a 5.

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 (read), resource (public OBS historical letter-grade counts and percentages), and scope (for a course, by term). The word 'public' plus 'counts and percentages' distinguishes it from personal-grade siblings like obs_get_course_grades and obs_get_grade_distribution's archival cousin without the agent needing to open a schema.

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

Usage Guidelines3/5

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

It gives a workflow hint — 'Optionally select a term_code returned in available_terms' — which is genuinely useful routing. However, it never says when to prefer this over the very similar sibling archive_grade_distribution, nor does it state prerequisites or exclusions beyond 'no login required'. Usage is implied rather than delimited.

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

Deploy Server

Other Tools