Skip to main content
Glama

Listar disciplinas do professor/usuário

get_courses
Read-onlyIdempotent

List UFSC Moodle courses where you are enrolled or teaching, then filter by code, name, semester, or course ID to find a specific discipline.

Instructions

Lista todas as disciplinas (cursos) em que o usuário está inscrito ou leciona no Moodle da UFSC. Permite filtrar por código/nome/semestre (ex: "20262" ou "INE5429") ou buscar um courseId específico.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_courses"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoNúmero máximo de disciplinas retornadas (padrão: 50).
searchNoTermo opcional para filtrar disciplinas pelo nome ou código (ex: "20262", "INE5429", "Segurança").
courseIdNoID específico de uma disciplina para consultar detalhes.
onlyVisibleNoSe true, retorna apenas disciplinas visíveis.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.1

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the useful scope fact that results span both enrolled and taught courses, but says nothing about truncation behavior, ordering, or what happens when filters match nothing.

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?

Two compact sentences with the core capability front-loaded and filtering options second. No filler or repetition; the only small cost is the overlapping restatement of search terms already present in the schema.

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?

For a simple, fully-annotated read-only listing tool with complete parameter documentation, the description covers purpose and filtering adequately. The remaining gap is the absence of any hint about the returned course fields (no output schema exists), which an agent must discover by calling.

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%, so all four parameters are already documented, and this sets the baseline at 3. The description adds modest value by giving example term formats ('20262', 'INE5429') and framing courseId as a single-course lookup, but it introduces slight ambiguity by saying search covers 'semestre' while the schema lists only name or code.

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

Purpose4/5

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

The description names a specific verb and resource ('Lista todas as disciplinas (cursos)') and defines scope precisely: courses where the user 'está inscrito ou leciona' on UFSC Moodle. It is unambiguous against siblings such as get_course_contents or get_students, though it does not explicitly name those alternatives.

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?

Use is implied as an entry point for discovering courses, and the description explains that filtering by code/name/semester is possible or a specific courseId can be queried. There is no explicit when-to-use vs. when-not guidance, nor any pointer to sibling tools like get_course_contents once a course is found.

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