Skip to main content
Glama

enroll_clients_in_program

Start a program for some clients and/or groups, with Day 1 on startDate (yyyy-MM-dd). Confirm-gated: without confirm the server previews who would start and who would be skipped (and why), writing nothing. Show that list to the coach, then confirm: true. Each client gets their own copy, so one can be changed later. Undo with undo_program_assignment.

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": {
      "programId": "<programId>",
      "startDate": "<startDate>"
    },
    "name": "enroll_clients_in_program"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
groupIdsNoGroup ids (from list_client_groups)
timeZoneNoIANA zone; default is each client's own
clientIdsNoClient User _ids (from list_clients)
programIdYes
startDateYesDay 1
allowDuplicatesNoAlso start a client who is already on this program
excludeClientIdsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, so the description carries most of the burden and does so well: it discloses the dry-run preview, the fact that nothing is written without confirm, and that the preview explains who would be skipped and why. It also discloses the per-client copy semantics (each client can be changed later) and the undo route.

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?

Front-loads the action and the date anchor, then the confirm gate, then the undo path. Four short sentences, each carrying distinct information, with no filler.

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 an 8-parameter mutation with no output schema, the confirm/preview contract and undo path are covered well enough to call safely. It is slightly incomplete on how groups expand to clients, duplicate handling (allowDuplicates), and batch limits.

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 75%, so the baseline is 3. The description clarifies the preview contents tied to confirm and restates the startDate format, but leaves allowDuplicates, excludeClientIds, timeZone inheritance, and the 40-client/10-group caps to the schema.

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?

States a specific verb and resource: start a program for clients and/or groups with Day 1 anchored to startDate. It even describes the per-client copy model, so the agent knows what is produced. It does not distinguish itself from near-siblings such as push_program_to_clients or assign_workout_to_groups, which is the only clarity gap.

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 an explicit operational sequence: call without confirm to get a preview, show that list to the coach, then call with confirm: true. It also names undo_program_assignment as the reversal path. What it lacks is guidance on when to pick this over sibling enrollment/assignment tools.

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.