Skip to main content
Glama

Fijar los cursos activados de una persona

set_course_grants

Set exactly which classroom courses a person with a seat has full access to; courses left out are removed. Check current memberships first to avoid accidental access loss.

Instructions

[Administrador del aula] Fija exactamente a qué cursos del aula tiene acceso completo una persona con plaza (los que no incluyas se le quitan). Primero consulta list_members para no quitar accesos por error; confirma con la persona.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "classroom_id": "<classroom_id>",
      "user_id": "<user_id>",
      "course_ids": "<course_ids>"
    },
    "name": "set_course_grants"
  }
}

Input Schema

NameRequiredDescriptionDefault
user_idYesPersona
course_idsYesLista completa; vacía quita todos
classroom_idYesAula

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=false; the description adds the crucial behavioral fact that this is a full replacement and any course omitted from the list loses access, plus the permission context '[Administrador del aula]' and the human-confirmation requirement. Note the tension that revoking access reads as a removal while destructiveHint is false, but since only the authorization list is replaced (not underlying data deleted) I do not treat this as a contradiction. It does not describe what the call returns or idempotency, so 4.

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?

Two sentences: the first front-loads the actor scope and the exact effect, the second carries the prerequisite and the safety step. No filler, nothing repeated from the title or 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 three-parameter mutation with no output schema, the definition covers permission scope, replacement semantics and the required pre-check, which is what an agent needs to call it safely. It leaves the response unspecified — whether the resulting access list is echoed back or how failures for invalid course_ids surface — which is a minor gap given there is no output schema.

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 user_id, course_ids and classroom_id are already documented, including 'Lista completa; vacía quita todos'. The description reinforces the replace-all meaning of course_ids and that access is 'completo', but adds no field-level detail (e.g. that classroom_id scopes which courses are valid) beyond the schema, so the baseline 3 applies.

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: it sets exactly which classroom courses a person with a seat has full access to. The adverb 'exactamente' plus the parenthetical '(los que no incluyas se le quitan)' makes the set-replacement semantics unambiguous, and it names the sibling list_members it must be paired with, so an agent can tell it apart from the rest of the classroom/member tool family.

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?

Gives a concrete pre-call workflow: consult list_members first so access is not removed by mistake, and confirm with the person before applying. That is strong contextual guidance and names the alternative tool to use beforehand. It stops short of stating when this tool should not be used at all (e.g. add-only vs replace scenarios), which keeps it at 4 rather than 5.

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