Skip to main content
Glama

create_groups

Batch-creates student groups with unique case-sensitive names. Optionally assign category, email domains for auto-add, and enrollment email settings.

Instructions

Create student groups. This is a BATCH operation.

    Each item needs a `name` of 1 to 100 characters, UNIQUE within the organization
    and CASE-SENSITIVE - "Partners" and "partners" are two different groups, which
    is a good way to end up with an accidental duplicate.

    Optional per item:
      `category_id`                    obfuscated StudentGroupCategory id, which must
                                       belong to this organization or the row fails
      `rule_email_domains`             bare domains like example.com (no @) that
                                       auto-add learners to this group when they
                                       sign up; duplicates are collapsed
      `send_course_enrollment_email`   whether members get enrollment email

    Within one batch, the first item to claim a name wins and later ones fail.

    Requires the `student-groups:write` OAuth scope.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsYes
noteYes
totalYes
failedYes
succeededYes
Install Server

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses critical runtime behavior: case-sensitive uniqueness with a concrete failure example ('Partners' vs 'partners'), first-wins conflict resolution within a batch, per-row failure when category_id belongs to another organization, domain normalization ('bare domains like example.com (no @)', duplicates collapsed), and the auto-add learner side effect of rule_email_domains. This is far richer than the readOnlyHint/idempotentHint/destructiveHint flags and is fully consistent with them.

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?

Purpose is front-loaded in the first two sentences, followed by cleanly separated sections for required constraints, optional fields, conflict semantics, and auth. Every sentence carries operational value — the case-sensitivity example, the 'no @' domain rule, and the first-wins rule each prevent real-world mistakes — with zero filler or repetition of schema content.

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

Completeness5/5

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

For a complex batch tool with one opaque parameter, the description covers the full item shape, validation rules, partial-failure behavior, intra-batch conflict resolution, and the required OAuth scope. Since an output schema exists, return values need no prose coverage, and nothing an agent needs to invoke this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — the schema only declares 'groups' as an array of objects with additionalProperties allowed, revealing nothing about item shape. The description fully compensates by documenting every per-item field (name, category_id, rule_email_domains, send_course_enrollment_email) with types, character limits, ownership constraints, and behavioral effects, which is essential given the opaque schema.

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?

The description opens with a specific verb and resource ('Create student groups') and immediately adds the distinguishing batch nature ('This is a BATCH operation'). This cleanly separates it from group-related siblings like list_groups, get_group, update_groups, and delete_groups without requiring an agent to open their schemas.

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?

The batch framing and the explicit prerequisite ('Requires the student-groups:write OAuth scope') give clear context on how and when the tool is invoked. It stops short of a 5 because it never explicitly routes to alternatives for the when-not case, such as pointing to update_groups for modifying existing groups, but the intended usage is unambiguous.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CloudSecurityAlliance/csa-skilljar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server