Skip to main content
Glama

Get study program lecturers

get_study_program_lecturers
Read-onlyIdempotent

List lecturers attached to a study program for a given semester, choosing homebase or ratio-calculation sets, and return a JSON list for profile queries.

Instructions

List the lecturers attached to one study program in a semester. Pass a returned lecturer id to get_lecturer for their profile. Returns a JSON list. Which lecturer set. "dosen-homebase" — Get homebase lecturers by semester; "dosen-penghitung-ratio" — Get lecturers used for ratio calculations.

Input Schema

NameRequiredDescriptionDefault
kindYes
id_prodiYesOpaque study program (prodi) id, copied exactly from a search_pddikti result (entity "prodi"). Do not guess or construct it.
semesterYesSemester code YYYYS: year plus 1 (odd/ganjil) or 2 (even/genap), e.g. "20241".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.0

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds only the return shape ('Returns a JSON list') and says nothing about pagination or result volume, which matters for an openWorldHint tool that could return long rosters.

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?

Front-loaded and short, but the sentence fragments 'Which lecturer set.' and 'Returns a JSON list.' read as dangling labels rather than clean prose, and the enum explanations arrive after them. Content is dense enough to justify the length, but the ordering could be tighter.

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?

No output schema exists, so the description does its job by stating the return is a JSON list and by pointing to get_lecturer for follow-up detail. The only real gap is unspecified pagination or result-size behavior for a potentially long lecturer roster.

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 coverage is 67%: id_prodi and semester are documented in the schema, but the `kind` enum has no schema description — the description supplies the meaning of both enum values, which is genuine added value beyond the schema. It adds nothing extra for id_prodi or semester, but none is needed.

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 with explicit scope: 'List the lecturers attached to one study program in a semester.' The scope narrows it cleanly against the university-level sibling get_university_lecturers, and it names get_lecturer as the follow-up.

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?

Explicitly routes the agent: pass a returned lecturer id to get_lecturer for the profile, and disambiguates the two lecturer sets enumerated by `kind` ('dosen-homebase' vs 'dosen-penghitung-ratio'). This is exactly the when-to-use guidance the enum alone cannot convey.

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