Skip to main content
Glama

Crear o editar un tema

save_theme

Create a course theme or update an existing one by ID; optionally replace its prerequisite themes within the same course.

Instructions

[Equipo del aula] Crea un tema del curso o edita uno existente (envía theme_id). Si envías prerequisite_ids, reemplaza los prerrequisitos; deben ser temas del mismo curso.

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>",
      "course_id": "<course_id>",
      "title": "<title>"
    },
    "name": "save_theme"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleYesNombre del tema
positionNo
theme_idNoTema a editar
course_idYesCurso
descriptionNoDescripción
classroom_idYesAula
prerequisite_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world write, so the description only needs to add operational detail. It does add real value by disclosing that `prerequisite_ids` replaces rather than appends and that prerequisites must belong to the same course. It leaves open whether omitted fields are preserved or cleared on edit, which matters for a partial-update tool.

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, zero filler, with the create-versus-edit distinction front-loaded before the prerequisite caveat. The bracketed scope tag signals who uses it without wasting a sentence.

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

Completeness3/5

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

For a 7-parameter mutation with no output schema or annotations explaining update semantics, the definition should say what happens to unspecified fields on edit and whether ordering via `position` is respected. Coverage is adequate to call the tool correctly but not complete enough to predict its effect.

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 coverage is 71%, and the schema already documents what crate, course and classroom ids mean, so the baseline is around 3. The description's one genuine addition is the replacement semantics and same-course constraint for `prerequisite_ids`; it says nothing about `position`, `description`, or the length limits that the schema itself covers.

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 states a concrete verb and resource ('Crea un tema del curso o edita uno existente') and explicitly distinguishes the two modes by naming the `theme_id` parameter that switches to edit. It is clearly separable from clear siblings like list_course_themes or delete_theme, though it does not name any sibling by name.

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 gives concrete selection criteria between the two modes: omit `theme_id` to create, send it to edit, and send `prerequisite_ids` to replace the prerequisite list. There is no explicit when-not guidance or reference to the related pruning tools (delete_theme, list_course_themes).

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