Skip to main content
Glama

Skool MCP Server and API by Cotlet

List courses

list_courses
Read-onlyIdempotent

Courses in the group's Classroom, open or locked for you, with the modules of open ones. Lists the courses of the group's Classroom in its order. unlock is open when your account can open the course and locked otherwise (a level, a purchase or a time lock; Skool does not say which here). Open courses list their modules in order with links; locked ones have none. Use the module links in welcome messages.

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": {
      "group": "<group>"
    },
    "name": "list_courses"
  }
}

Input Schema

NameRequiredDescriptionDefault
groupYesGroup URL name, e.g. 'yourgroup' for skool.com/yourgroup.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and closed-world, so the description's job is to add context — and it does: it explains that 'unlock' means the account can open the course or not, that the cause may be a level, purchase, or time lock Skool won't disclose, and that locked courses return no modules. It doesn't cover pagination or result-size limits, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, but the ordering point is stated twice ('with the modules of open ones' and 'Lists the courses ... in its order'), and the closing sentence about welcome messages is vague and unearned without more context.

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 one-parameter list tool with annotations and no output schema, the description covers the essential return shape — ordering, open/locked status, module links present only for open courses. Missing only minor operational details like whether locked modules can be fetched elsewhere.

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 100% with a single, well-documented 'group' parameter, so the schema carries the semantics. The description only reinforces this by tying results to 'the group's Classroom' and adds no format or edge-case detail beyond 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 concrete verb and resource (list the courses of a group's Classroom) and specifies scope: open vs locked courses, plus modules for open ones. An agent can distinguish it from get_course (single course) and create_course without opening another schema, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the enumeration of course states; there is no explicit 'use this when... instead of get_course when...'. The final sentence ('Use the module links in welcome messages') is a downstream hint about the output rather than guidance on when to invoke the tool.

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.