Skip to main content
Glama

Classify activity

classify_activity
Idempotent

Fill in the classification of an activity that is still empty: its educational level, its knowledge area and its labels. It is the step that set_activity_content asks for when its result lists "level", "area" or "labels" in next_step.fields; the values come from next_step.catalog and from what the activity is about. It only fills what is empty and never changes a value already set: when the user asks to change the level, the area or the labels, use set_activity_audience, add_label or remove_label.

Input Schema

NameRequiredDescriptionDefault
areaNoKnowledge area id, from next_step.catalog.areas.
levelNoEducational level as {"kind": "course"|"age", "value": number, "subject": number}. Kind course takes the id of a course of next_step.catalog.levels, the courses of the education system of the user; add "subject" only with a subject id that a previous call returned in "subjects". Kind age takes a recommended age from 1 to 21, only when the catalog has no courses or none fits (adults, general public).
labelsNoLabels (tags) about the topic of the content, in the content language: lowercase, one topic each, 3 to 6. The course and the area become labels on their own, so never repeat them here.
activity_idYesId of the activity.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare write (readOnlyHint=false), idempotentHint=true and destructiveHint=false, and the description reinforces this with the merge semantics: it only fills empty fields and never overwrites existing values. That merge-only behavior is genuinely useful context beyond the annotation flags, though permissions, error behavior and side effects on the catalog are not discussed.

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?

Three sentences, front-loaded with the core action, then the trigger, then the exclusion rule. The sentences are long and somewhat run-on (the level/area/labels enumeration inside a conditional), but every clause carries routing information.

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?

Covers the multi-step workflow dependency, value sources and the no-overwrite constraint for a 4-parameter, nested-schema write tool with no output schema. Only prerequisites such as authentication or required prior state are unstated.

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 100% and the nested level object is fully documented in the schema itself, so baseline would be 3. The description adds the workflow-level meaning that values should be drawn from next_step.catalog and the content's topic, tying parameters back to the calling context rather than adding per-field syntax.

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 (fill in) and resource (the classification of an activity), naming exactly which fields it populates: educational level, knowledge area and labels. This clearly differentiates it from siblings like set_activity_content, add_label and set_activity_audience.

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 states the trigger condition (set_activity_content lists "level", "area" or "labels" in next_step.fields) and the value source (next_step.catalog plus the activity topic). It also gives the when-not rule: to change an already-set value, use set_activity_audience, add_label or remove_label instead.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources