schoox-mcp-server
OfficialServer Quality Checklist
Latest release: v1.0.2
- Disambiguation5/5
Each tool has a clearly distinct purpose, with descriptions explicitly guiding which tool to use for what. For example, 'content' is for browsing all content types while 'courses' is course-specific; 'dashboard' is for progress/analytics while 'users' is for profile data. No two tools overlap in functionality.
Naming Consistency5/5All tool names are single-word nouns (e.g., aboves, badges, content, dashboard). Sub-actions follow a consistent verb_noun pattern (list, get, etc.). There is no mixing of naming conventions, and the pattern is predictable across the entire tool set.
Tool Count5/5With 15 tools covering organizational hierarchy, content, courses, events, exams, skills, users, groups, jobs, and analytics, the count is well-scoped for an LMS data-access server. Each tool serves a distinct domain area without unnecessary bloat.
Completeness4/5The tool set provides comprehensive read-only coverage of major LMS entities (users, courses, content, skills, events, etc.) and includes analytics via the dashboard. However, there are no tools for create/update/delete operations, which may be a gap if the server's purpose extends beyond querying. Minor missing entities like certificates or announcements do not significantly hinder the core functionality.
Average 4.6/5 across 15 of 15 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 3 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and non-destructive. Description adds details about pagination support and the truncated flag in the response, providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose first, then sub-actions and return format. Concise but covers essential details; no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes return format with data and _meta, including truncated flag. Covers pagination and search. No output schema, so return description is sufficient. Missing error handling but not critical for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds limited additional meaning: clarifies that search supports partial match and that start/limit are for pagination with the list action. Does not significantly enhance schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists job roles with examples (Store Manager, Cashier). Distinguishes from sibling tools like users and skills by explaining how job IDs can be used as filters in those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use to get job roles and IDs for filtering in users/skills tools. Also advises narrowing results when truncated flag is true. Lacks explicit when-not-to-use but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds return format details including _meta with truncated flag and advice to apply filters/pagination when truncated, exceeding basic safety disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is informative but slightly verbose with return format details. However, it is well-structured with sub-actions and front-loaded purpose. Only minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description covers purpose, usage, return format, and handling of truncated results. Adequate for a simple list tool with one parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the one parameter 'action' with enum 'list' is fully described in schema. Description adds minimal extra meaning, only mentioning the sub-action list in text. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists custom type definitions and returns type enumerations like Above Unit types. Distinguishes from siblings by mentioning usage as filters for the 'aboves' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this to discover type IDs for filtering in other tools, with a concrete example (type_id parameter in the aboves tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is read-only. The description adds value by explaining the return format (JSON with data and _meta), truncation behavior, and pagination/filtering suggestions. It does not mention rate limits or authentication, but overall provides sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for main purpose, distinguishing guidance, and sub-action lists. However, it is verbose; some information (e.g., repeating parameters in sub-action descriptions) could be more concise. The front-loading of purpose and usage guidelines is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 17 parameters, no output schema, and many sub-actions, the description is remarkably complete. It covers all sub-actions, their required parameters, pagination, return format, and truncation handling. The description compensates for the lack of output schema by detailing the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents each parameter. The description adds semantic grouping by listing which parameters are used with which sub-actions (e.g., 'Used with list_users'), providing context beyond the schema. This helps the agent understand parameter applicability without relying solely on the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Training analytics and progress reporting.' It enumerates specific sub-actions and explicitly distinguishes from sibling tools by directing metadata queries to entity-specific tools (users, courses, etc.). The verb 'Get' and resource 'analytics' are specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool ('for training progress, completions, and analytics') and when to use alternatives ('For entity metadata and catalogs, use the entity-specific tool instead'). It lists sub-actions with prerequisites, but could be more explicit about when to use specific sub-actions over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing safety. The description adds value by specifying the return JSON structure (including truncated flag) and advising to apply filters or pagination when truncated. This adds behavioral context beyond annotations, though no further caveats about performance or auth are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two focused paragraphs: first states purpose and usage guidance, second details sub-actions and return format. Every sentence adds value, no filler. Well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one enum parameter and no output schema, the description provides return structure and truncation behavior. However, it mentions applying 'filters or pagination params' without specifying what those might be, which is slightly vague. Annotations cover safety. Overall fairly complete for complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'action' is well-documented in the schema with enum and description. The description restates the sub-action 'list' but does not add new semantic information beyond the schema. Baseline of 3 is appropriate as schema bears the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves academy-wide usage and licensing summary statistics, including specific data points like total users and license utilization. It distinguishes from the sibling 'dashboard' tool by contrasting scope (academy-wide vs per-user). The verb 'Get' and resource 'usage' are specific and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('for high-level academy usage stats') and when not to ('for per-user training data and progress details, use the dashboard tool instead'), naming a direct alternative. This provides clear decision guidance for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. Description adds return structure with truncation handling, which is beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences. Second paragraph about sub-actions is slightly redundant but still helpful. Well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and schema, description covers purpose, usage, return format, and truncation. Could mention pagination params more explicitly, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, so baseline 3. Description adds value by explaining default badge_type and meaning of enum values, plus context for action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists badges, distinct from sibling users tool that gets badges for a user. Verb 'list' and resource 'badges' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (see available badges) and when-not (use users tool for user-specific badges). Includes sub-actions hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive nature. Description adds value by detailing return JSON format, including the truncated flag and meta structure, which helps the agent understand pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficiently structured with a clear main purpose, followed by sub-action list and return format. No redundant phrases, but could be slightly more compact by omitting 'Use this for' repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and 4 sub-actions without output schema, the description covers return format, pagination, filter usage, and truncation handling. It sufficiently explains how to navigate the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides 100% parameter descriptions. Description adds grouping of parameters per sub-action and explains the purpose of category_id discovery via list_categories. However, the schema already carries most of the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses content items and metadata, distinguishes it from the courses tool, and lists specific sub-actions. The verb 'browse' and resource 'content items, categories, venues, timezones' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use ('browsing all content types') and when not ('For course-specific data, use courses instead'), providing a direct alternative. Also explains each sub-action's context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds value by detailing sub-actions, pagination support, return format (JSON with data and _meta), and what to do when truncated is true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and efficiently covers sub-actions and return format without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description covers all necessary aspects: purpose, pagination, truncation handling, and return structure. It is complete given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented. The description adds examples (e.g., 'e.g. 0' for start) and constraints ('Default: 20, max: 20'), providing additional context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists user groups, with specific verb 'list' and resource 'user groups'. It distinguishes from sibling tools like users or courses by focusing on groups for organizing users and assigning content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It says to use this to browse user groups and discover group IDs, and provides guidance on pagination and handling truncated results. However, it does not explicitly mention when not to use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, which the description supports by stating it queries data. The description adds behavioral details: pagination, truncation indicator, and return JSON structure, exceeding annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with bullet points and clear separation of ILT and VC sub-actions. It is longer but front-loaded with overall purpose. Could trim some redundancy, but structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and 11 actions, the description covers all sub-actions, parameter applicability, pagination, truncation, and return format. No output schema exists, but the description compensates with detailed JSON structure explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond schema by explaining parameter usage (e.g., 'Date filter start (e.g. 2024-01-01)') and specifying which actions each parameter applies to. This adds meaningful value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it queries instructor-led training (ILT) and virtual classroom (VC) events, listing specific sub-actions for each type. It clearly distinguishes between ILT and VC, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description details when to use each sub-action (e.g., 'Requires eventId' for gets, 'Used with list_ilt/list_vc' for filters) and explains pagination via start/limit parameters. While it doesn't compare to sibling tools, usage context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds details on response format (JSON with _meta), pagination behavior, and the truncated flag, fully disclosing tool behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with overall purpose, sibling disambiguation, and sub-action list. Information is front-loaded and each sentence serves a purpose, though slightly lengthy but justified by complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple sub-actions, 10 parameters, no output schema), the description covers return format, pagination, truncated flag, and required params per action. Lacks examples but is highly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, providing baseline 3. Tool description groups parameters by sub-action and clarifies which are required, adding value by mapping actions to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries skill/competency definitions, assessments, and relationships. It differentiates from siblings by directing to courses/get_skills for course skills and dashboard for user training progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (competency management) and when not to (course skills, user progress), with named alternatives. Each sub-action includes required parameters for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds behavioral context beyond annotations by detailing the return format (JSON with _meta) and the truncated flag behavior. It also explains how to handle pagination when results are truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear opening sentence, then bullet-style lists for sub-actions and parameter notes. It front-loads the primary purpose and alternative tool, making it easy for an agent to quickly understand usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 12 parameters and no output schema, the description covers return format, pagination, and truncation behavior. Combined with the detailed schema, it provides complete guidance for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described. The description adds meaning by grouping parameters by sub-action and explaining the userId acceptance logic (Schoox ID, external ID, email). This provides context beyond the schema's type descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to look up Schoox user profiles and badges. It distinguishes from sibling tools like 'dashboard' by specifying that for training progress and analytics, the dashboard tool should be used instead. The sub-actions (list, get, get_badges) further clarify the specific capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('identity data') and when not to ('training progress... use dashboard instead'). It also provides guidance on sub-actions and parameter usage, such as requiring userId for 'get' and 'get_badges', and listing filters for 'list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive. Description adds return format with _meta including truncated flag, plus guidance to apply filters/pagination when truncated. Contradictions: none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: purpose, usage hint, sub-action list, return format. Front-loaded with key info. Could be slightly more concise but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a multi-action read-only tool. Covers all sub-actions, return structure, pagination behavior, and distinguishes from sibling. No output schema but description explains return format adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description provides context beyond schema by grouping parameters per sub-action and mentioning pagination. Adds organizational value, but schema already describes each param well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states purpose: query learning paths for metadata, enrollment, student lists. Distinguishes from sibling 'dashboard' with get_user_curriculums for completion progress. Uses specific verbs and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (learning path metadata, enrollment, student lists) and when not (user's completion progress, use dashboard instead). Also provides sub-actions and their contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, which the description reinforces by stating it's a lookup tool. Beyond annotations, the description discloses response format with JSON containing data and _meta, truncation behavior, and sub-action effects. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a main purpose sentence, sibling distinction, sub-action breakdown, and response format. It is clear and informative, though slightly verbose; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and multiple sub-actions, the description covers all aspects: actions, filtering, pagination, response structure, and truncation handling. It also references the sibling tool for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds practical usage details, such as comma-separated search, external_id flag for get action, and pagination defaults. This adds value beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up organizational units, the lowest level in the hierarchy, and explicitly distinguishes from the sibling tool 'aboves' for higher-level groupings. The verb 'look up' and resource 'units' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly contrasts with 'aboves' tool, explaining when to use this tool (for units) and when not (for regions/divisions/areas). It also details sub-actions with their use cases, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds behavioral details such as the return JSON structure (with `_meta` fields), pagination behavior, and the 'truncated' flag. This fully informs the agent of the tool's behavior and responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the core purpose, then presents sub-actions with their associated parameters, and ends with return format. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description fully covers the return format. It explains all needed aspects: purpose, sub-actions, parameter usage, pagination, and return structure. The context is complete for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%—all parameters are described in the schema. The description adds extra context beyond the schema, such as advising to use the 'types' tool for type IDs and explaining the `external_id` parameter. This enhances usability, though the schema itself is already very clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to look up organizational hierarchy levels above units. It uses a specific verb ('Look up') and resource ('above units'), and distinguishes itself from the sibling 'units' tool by explicitly saying to use 'units' for unit-level entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this for org hierarchy above the unit level. For units themselves... use the units tool instead.' It also lists sub-actions and mentions pagination, leaving no ambiguity about when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this with 'Query' disclosure. It adds behavioral details: pagination notes for list/list_user_courses/get_students, return format with truncated handling, and which parameters are required per sub-action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a concise overview paragraph, bullet list of sub-actions with key requirements, and return format. It is front-loaded with purpose and alternatives. Each sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains the return format ({ data, _meta}) and pagination/truncation behavior. It covers all sub-actions and their parameter dependencies. For a complex tool with 15 parameters, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 15 parameters have descriptions). The description adds contextual semantics by mapping parameters to sub-actions (e.g., 'userId required for list_user_courses', 'external_id used with list_user_courses'), which helps agents apply parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Query' and clearly identifies resources (course catalog, course details, etc.). It explicitly distinguishes from sibling tools 'dashboard' and 'content' by stating alternate use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives ('for course metadata, catalogs, and course-level data') and directs to dashboard/content for other needs. Sub-actions are listed with required parameters, aiding correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive. Description adds return format details (data, _meta with truncation flag) and pagination behavior, providing full transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, structured with bullet list for sub-actions, return format note. No redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, 3-action tool with no output schema, description covers return format, pagination, truncation behavior, and required params per action. Complete given annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). Description adds value by grouping parameters per sub-action and clarifying required contexts, elevating beyond baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it queries exam metadata and scores, distinguishes from sibling dashboard tool for user exam history. Verb 'query' is specific, resource is exams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (exam catalogs, per-exam scores) and when to use sibling tool (dashboard for user's exam history), and references specific action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/schoox/schoox-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server