Skip to main content
Glama

List members

list_members
Read-onlyIdempotent

Lists members of a Skool group with pagination, filtering by active, banned, churned, or cancelling status and by admin or moderator role; returns role, level, points, and join date.

Instructions

Members of a group with role, level, points and join date, newest first; also banned or churned.

Lists members of one group, newest approved first, 30 to a page; pass next_cursor back as cursor for the next page. status picks Skool's tab: active members (admins included), banned, churned (left the group) or cancelling (paid groups). role admin or moderator asks Skool for the admins only. joined_at is when the member was approved. level is the Skool level (1 to 9) and points the likes that count toward it. joined_since filters within the page. member_id is the person (send_message, get_member); membership_id is their place in this group (set_member_role, ban_member, remove_member).

Input Schema

NameRequiredDescriptionDefault
roleNoall, admin, moderator or member. Default: all.
groupYesGroup URL name, e.g. 'yourgroup' for skool.com/yourgroup.
limitNo1 to 30. Default: 30.
cursorNoNext page cursor from the previous call.
statusNoWhich members tab: active (default), banned, churned (left) or cancelling (paid groups).
joined_sinceNoOnly members who joined on or after this date.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial context beyond the readOnly/idempotent annotations: fixed page size of 30, newest-approved-first ordering, cursor round-trip protocol, the per-tab semantics of status including that admins count as active, and the non-obvious caveat that joined_since filters only within the fetched page rather than the whole group. That last point is exactly the kind of trap disclosure that prevents wrong conclusions.

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?

Front-loaded with the resource and ordering, then the paging protocol, then per-parameter semantics — a sensible priority order. Dense but nearly every clause carries information; the one cost is a somewhat run-on middle section where the three sentences blend paging, status and role together.

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 read-only list tool with no output schema, the description carries the needed burden: it enumerates returned attributes, states page size and ordering, explains the pagination handshake, and covers both enum parameters and the page-scoped filter. An agent could call this correctly and interpret the results without further documentation.

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%, so baseline is 3, but the description genuinely adds meaning: it clarifies that role=admin/moderator is applied server-side ('asks Skool for the admins only') and warns that joined_since is page-scoped, neither of which appears in the schema. It also disambiguates member_id (person-level, used by send_message/get_member) from membership_id (group-level, used by set_member_role/ban_member/remove_member), which are return identifiers rather than inputs but still resolve real ambiguity for follow-up calls.

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 with scope: 'Lists members of one group, newest approved first.' The return fields (role, level, points, join date) and the tab variants (banned, churned, cancelling) make the capability concrete. It never names the nearby sibling search_members, so an agent can't fully rule out the alternative without opening both schemas.

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?

Operational guidance is strong — pass next_cursor back as cursor, status selects the tab, role=admin/moderator restricts to admins — but that is how-to-use, not when-to-use-this-vs-something-else. No exclusion or routing against search_members or list_membership_requests, which are the obvious confusable siblings in a roster-listing context.

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