Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool serves a distinct purpose: registration preview/confirm, viewing timetables/exams/grades, searching subjects, checking session status, and managing sniper jobs. No overlap in functionality.

    Naming Consistency3/5

    Most tools use verb_noun pattern (e.g., get_exam_schedule, start_course_sniper), but 'session_status' and 'sniper_status' are noun phrases without a verb, creating inconsistency.

    Tool Count5/5

    With 9 tools covering registration, schedules, grades, search, and automated grabbing, the count is well-suited to the domain without being overwhelming.

    Completeness5/5

    The toolset covers the full registration lifecycle (preview and confirm), all key views (timetable, exam schedule, grades), search, and even automated sniper management. No obvious gaps.

  • Average 3.9/5 across 9 of 9 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 12 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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.json to 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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the burden. It only states what the tool retrieves, not behavior like authentication needs, rate limits, or whether it returns only published schedules. The agent cannot infer side effects or permissions.

    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?

    The description is one short sentence, which is concise but omits critical details. It could be expanded with param behavior and usage tips without becoming verbose. As is, it is under-specified.

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

    Completeness3/5

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

    Output schema exists, so return values are documented elsewhere. However, the param is undocumented and no behavioral context is given. For a simple tool with 1 param, the description is minimally adequate but lacks completeness for parameter semantics.

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

    Parameters1/5

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

    Schema coverage is 0% for the single parameter 'term'. The description does not explain what 'term' means (e.g., semester identifier, format, or range). The agent has no guidance on how to use the parameter.

    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?

    Description uses a specific verb ('Get') and resource ('examination timetable') and lists the returned fields (date, time, venue, seat). It clearly distinguishes from siblings like 'get_timetable' (general schedule) and 'search_subjects' (subject lookup).

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, contexts, or exclusions. For example, it does not note whether it is for current term only or all available terms.

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

  • Behavior3/5

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

    With no annotations, the description provides basic behavioral insight (returns timetable data) but omits details like side effects, rate limits, or whether it requires authentication, though as a read operation, it is fairly clear.

    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?

    The description is a single concise sentence, but it is too minimal; adding more detail about the parameter or scope without being verbose would improve it.

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

    Completeness3/5

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

    While an output schema exists, the description is incomplete for a tool with one parameter; it does not mention the parameter or differentiate from siblings like 'get_exam_schedule', leaving gaps despite the output schema.

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

    Parameters2/5

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

    Schema description coverage is 0% and the description does not explain the 'term' parameter, its default behavior, or accepted values, failing to compensate for the lack of parameter documentation.

    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 clearly states the verb 'Get' and the resource 'class timetable' with specific examples (lecture/tutorial slots, venues, times), effectively distinguishing it from sibling tools like 'get_exam_schedule'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like 'get_exam_schedule' for exam schedules, nor any prerequisites or context for usage beyond the basic description.

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

  • Behavior2/5

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

    No annotations exist, so the description must disclose behaviors. It mentions optional filtering by term but lacks details on auth requirements, side effects, or response structure. The output schema exists but is not described.

    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?

    The description is extremely concise (one sentence) with no wasted words, front-loading the core functionality and optional filter.

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

    Completeness3/5

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

    Given the output schema exists, the description is minimally adequate but lacks context about what is returned (e.g., list of grades, GPA calculation). It also does not differentiate from siblings, leaving gaps for an agent.

    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?

    The description adds value for the 'term' parameter by explaining its purpose ('filter to a single term'), which is not evident from the schema alone (0% coverage). One sentence is sufficient for a single parameter.

    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 clearly states 'Get subject grades and GPA' with a specific verb and resource, distinguishing it from siblings like get_exam_schedule and get_timetable.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., get_exam_schedule). The description only states what it does without context for selection.

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

  • Behavior3/5

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

    No annotations provided, so description carries burden. It discloses rejection behavior if fingerprint mismatches, but lacks details on side effects, reversibility, or authorization needs. Adequate but not comprehensive.

    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?

    Two sentences, no filler. Front-loaded with purpose. Every sentence adds value.

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

    Completeness3/5

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

    Given output schema exists, return not needed. However, misses details on success behavior, error types, and relationship to sibling tools like start_course_sniper. Adequate for a simple tool but could be more complete.

    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 has 0% description coverage. Description adds meaning for fingerprint (must match preview_registration), but does not explain the 'actions' array. Partial compensation for missing schema descriptions.

    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?

    Description clearly states it submits add/drop actions for real, distinguishing it from preview_registration. Verb 'submit' and resource 'add/drop actions' 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 Guidelines4/5

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

    Explicitly requires fingerprint from preview_registration for the same actions, guiding the agent to use preview_registration first. Does not mention explicit when not to use or alternatives, but the requirement provides strong 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?

    No annotations are provided, so the description carries full burden. It thoroughly discloses self-healing (re-authentication, browser relaunch), terminal conditions (rejected credentials, page-structure errors, unreachable portal), and the macOS notification. This is exemplary transparency.

    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?

    The description is well-structured with a front-loaded overview, separate mode explanations, and behavioral details. It is slightly verbose but each sentence adds value. Could be more concise, but acceptable.

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

    Completeness3/5

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

    Given the complexity (7 parameters, no schema descriptions, has output schema), the description is fairly complete for behavioral aspects but critically missing the definition of 'actions', which is the only required parameter. The output schema presumably covers return values, but the input gap reduces completeness.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It explains mode, open_time_iso, retry_interval_seconds, total_duration_seconds, watch_interval_seconds, and then_watch, but the required 'actions' parameter (an array of objects) is not described at all. This is a significant gap.

    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 clearly states the tool starts an automated course-grab job with two specific modes (open_time and watch_vacancy). It distinguishes itself from sibling tools like sniper_status (which likely only checks status) by describing the job execution behavior.

    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 description explains when to use each mode (open_time for timed submission, watch_vacancy for polling) and mentions constraints like minimum intervals. It does not explicitly contrast with siblings, but the usage context is clear enough for an agent.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses the three behaviors and parameter combinations, but does not detail the consequences of stopping a job (e.g., irreversibility, side effects) or what 'inspect' returns.

    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?

    A single sentence conveys three modes of operation with parameter hints. No unnecessary words; front-loaded with the primary verb 'List'. Excellent conciseness.

    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?

    Given the tool's simplicity (2 optional params, no required), the description covers the key behaviors. Output schema exists, so return values need not be detailed. However, it lacks context on what a 'sniper job' is and assumes the user knows the domain.

    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 0%; the description adds critical meaning: job_id specifies which job to inspect or stop, and stop=true combined with job_id indicates a stop operation. It clarifies intended usage patterns beyond the raw schema, though it could be more precise about behavior when job_id is null.

    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 clearly states three distinct actions (list, inspect, stop) on the resource 'sniper jobs', using specific verbs. It differentiates from sibling tools like 'start_course_sniper' which starts jobs, while this tool manages existing ones.

    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 description explains when to use each mode: list all, inspect by job_id, or stop with job_id+stop=true. It implies not to use for starting jobs, but does not explicitly mention alternatives or when not to use.

    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?

    Discloses key behaviors: two modes, parameter switching logic, default term handling, and that single-subject results include teaching groups while broader searches do not. Despite no annotations, the description provides good transparency, though it could mention read-only safety or rate limits.

    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?

    Fairly concise with two paragraphs; front-loads purpose and then elaborates on modes. Every sentence adds value, but it could be slightly more streamlined without losing clarity.

    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?

    Covers all aspects of tool usage: two modes, parameter interactions, default behaviors, and output characteristics (teaching groups for single result). With an output schema present, the description sufficiently contextualizes the tool's capabilities.

    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?

    With 0% schema description coverage, the description fully compensates by explaining each parameter's role: `query` as subject code or keyword, `department` and `program` for programme mode, and `term` with mode-specific defaults. Adds significant meaning beyond the 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?

    Clearly states 'Search subject offerings' and provides two distinct modes (by subject, by programme). It explains the verb and resource, and distinguishes itself from sibling tools like confirm_registration or get_timetable.

    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?

    Describes two usage scenarios (by subject or by programme) and defaults for the `term` parameter, but does not explicitly state when to use this tool over alternatives or provide exclusions. Implicit guidance is present but not explicit enough for a higher score.

    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?

    Description indicates a read-only check with no side effects. However, with no annotations, it could explicitly state it is safe and non-destructive.

    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?

    Single sentence with no unnecessary words, front-loaded with verb and resource.

    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?

    Given zero parameters and existence of an output schema, description fully covers the tool's purpose and behavior.

    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?

    No parameters exist, so baseline 4 applies. Schema coverage is 100%. Description adds value by clarifying what is reported.

    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?

    Description clearly states verb 'Report' and specific resource 'live authenticated eSession'. Unambiguously distinguishes from sibling tools like confirm_registration or get_grades.

    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?

    Implied that it should be used to check session validity before other operations, but no explicit when-to-use or when-not, nor alternatives mentioned.

    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?

    The description discloses that it is non-destructive (preview only), returns a summary, conflicts, and a fingerprint, and that the fingerprint is required for confirmation. This is sufficient given no 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/5

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

    The description is concise, front-loads the purpose, and uses a list to detail the parameter structure without any unnecessary words.

    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?

    It covers input structure, output summary (summary, conflicts, fingerprint), and links to the sibling tool confirm_registration, providing adequate completeness despite lacking output schema details.

    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?

    With 0% schema coverage, the description fully explains the 'actions' parameter structure (array of objects with action, subject_code, optional section), adding critical meaning beyond the raw 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 clearly states 'Preview add/drop actions WITHOUT submitting', which uses a specific verb and resource, and distinguishes from the sibling 'confirm_registration' which actually submits.

    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?

    It indicates usage before confirmation by mentioning the fingerprint needed for confirm_registration, though it does not explicitly state when not to use or provide alternatives.

    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

polyu-estudent-mcp MCP server

Copy to your README.md:

Score Badge

polyu-estudent-mcp MCP server

Copy to your README.md:

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/1708004874a-star/polyu-estudent-mcp'

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