Skip to main content
Glama
nalancuchu

Librus Read-only MCP

by nalancuchu

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 targets a clear and distinct aspect: list_students for all children, get_timetable for schedule, get_grades, get_attendance, etc. No overlaps exist between listing messages and announcements or between fetching a single message and downloading its attachment.

    Naming Consistency5/5

    The naming follows a predictable pattern: list_ for multiple items (students, messages) and get_ for single items or specific resources (timetable, profile, grades). The download_message_attachment is also clear and consistent with the rest.

    Tool Count5/5

    With 11 tools, the server covers all standard read-only facets of a student management system without being excessive. Each tool has a clear and non-redundant purpose, making the count well-scoped.

    Completeness5/5

    Given the persistent read-only nature, the tool surface covers all necessary areas: attendance, timetable, grades, homework, calendar, announcements, messages, and attachments. There are no critical missing operations that would prevent typical workflows.

  • Average 3.3/5 across 11 of 11 tools scored.

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

    • No community issues in the last 6 months
    • 4 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?

    Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the basic purpose—nothing about date range semantics, pagination (limit parameter), or what happens if no homework exists. Given the presence of annotations, the description should at least mention relevant constraints, but it does not.

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

    Conciseness2/5

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

    The description is extremely short—a single noun phrase. While it is concise, it is under-specified and does not front-load key information such as the operation type (get) or the necessary scope (date range, student). It reads more like a title than a functional description.

    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?

    For a simple read-only tool with detailed schema and annotations, the description is minimally adequate. It identifies the resource and subject, and the schema covers parameter meaning. However, it does not mention return format, pagination behavior, or anything about how results are ordered or filtered, which an agent might need to know. The lack of an output schema makes this gap more noticeable.

    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?

    The input schema has 100% coverage, with descriptive comments for all parameters (student_id, date_from, date_to, limit). The description itself adds no additional parameter documentation, so it does not improve beyond the schema's existing clarity. Baseline of 3 is appropriate.

    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?

    The description 'Zadania domowe i przypisane prace dziecka' clearly identifies the resource (homework and assigned tasks for a child) and implies retrieval, though it lacks an explicit verb like 'get' or 'list'. It is distinguishable from sibling tools like get_grades or get_timetable based on the domain, so the purpose is reasonably clear.

    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. It does not mention prerequisites, typical scenarios, or why one would choose get_homework over other tools. The context signals show sibling tools, but the description gives no comparative information.

    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?

    The description says 'read-only', which merely repeats the readOnlyHint=true annotation. It adds no extra behavioral context such as return format, error behavior, or that message_id must belong to the student. Given the annotations already cover safety, this is redundant.

    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 extremely short and without repetition, but it omits essential usage context. It earns no penalty for verbosity, but minimalism here comes at the cost of completeness.

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

    Completeness2/5

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

    The tool is simple, but the description lacks any note about when to invoke it, what the response looks like, or why it differs from list_messages. With no output schema, more detail would be needed for full completeness.

    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%, so both parameters are already documented in the input schema. The description does not add any meaning beyond the schema, which meets the baseline for full coverage.

    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?

    The description states a clear resource ('single message') and operation ('content', read-only), distinguishing it from list_messages or download_message_attachment. It is concise and specific, though it does not explicitly name alternatives or contrast with siblings.

    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 like list_messages or download_message_attachment. The description does not mention conditions, prerequisites, or exclusions, leaving the agent to infer usage.

    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?

    Annotations already declare readOnlyHint=true and idempotentHint=true, and the description redundantly states 'read-only'. It adds no further behavioral context such as pagination behavior, ordering, or completeness of results. It is consistent with annotations, so no contradiction, but adds little beyond them.

    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 extremely short, front-loaded, and has no obvious filler. However, the phrase 'read-only' duplicates an annotation, so not every part adds new value. It is concise but slightly under-informative.

    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?

    For a read-only list operation, the minimal purpose is clear, and annotations cover the safety profile. But with no output schema, an empty list response, pagination behavior, and the relationship to sibling tools like get_message are not described. This leaves an agent uncertain about the exact result format and pagination handling.

    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 only 33%: only student_id has a schema description, and that description already says it comes from list_students. The tool description does not clarify page or limit parameters, their defaults, or how pagination works. Since coverage is low, the description should compensate but does not.

    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?

    The description states the operation clearly: listing a child's messages, and identifies the resource ('child's messages'). It does not explicitly name sibling alternatives, so it doesn't fully distinguish itself from 'get_message', but the 'list' vs 'get' contrast is implicit.

    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?

    The description provides no guidance on when to use this tool versus alternatives like get_message or list_students. It does not state any prerequisites or exclusions. The only hint is the schema description for student_id, which is not part of the tool description.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no extra behavioral context, such as pagination behavior or whether absence reasons are included. With annotations covering the core traits, a 3 is appropriate because the description doesn't contradict but also doesn't enhance 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/5

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

    The description is a single short sentence with no wasted words. It is front-loaded with the core purpose, though it lacks any structured breakdown of behavior or parameters. Still, it earns a 4 for efficiency and clarity.

    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?

    For a simple read-only tool with complete parameter schema, the description is mostly adequate but misses return value expectations. Since there is no output schema, the agent is left unaware of what the response will contain (e.g., list of per-day statuses). The absence of any note about pagination or limit behavior also leaves a gap. Overall, it is minimally complete but with clear gaps.

    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?

    The schema description coverage is 100%, so all parameters (student_id, date_from, date_to, limit) are already documented with types and explanations. The description adds minimal semantic value beyond the schema, only implying a date range. Baseline 3 is correct since the schema does the heavy lifting.

    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?

    The description states the tool retrieves a child's attendance for a date range, which clearly identifies the verb (frekwencja as fetch attendance) and resource (child's attendance). It is distinguishable from sibling tools like get_grades or get_timetable because attendance is a distinct concept. However, it is a noun phrase rather than an explicit action verb, so it could be slightly more directive.

    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 about when to use this tool versus alternatives. The description simply states what it does, with no mention of conditions, exclusions, or related tools. An agent would need to infer from the name and sibling list, which is insufficient.

    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?

    Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so safety is covered. The description adds no extra behavioral context (e.g., what happens if the ID is invalid), but it does not contradict 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/5

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

    Single sentence with no clutter; it is appropriately minimal for a simple lookup. The brevity is efficient, though it does not attempt to convey extra context.

    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?

    With only one parameter and rich annotations, the description is minimally sufficient. However, there is no output schema, and the description does not indicate what fields or data the profile contains, leaving some ambiguity for an agent.

    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 100%, and the parameter description clearly states that student_id comes from list_students. The tool description itself adds no new semantic meaning beyond what the schema provides, so baseline 3 applies.

    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?

    Description states the resource (a single child's profile) and is distinct from list_students and other siblings. However, it uses a noun phrase without a clear verb, leaving the exact action implied.

    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 such as list_students or get_grades. The intended context is implicit from the name, but the description offers no explicit selection criteria or exclusions.

    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?

    The annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already declare the safety profile; the description adds only the detail that the file is placed in a 'private local directory', which is marginally useful. It does not describe behavior on missing attachments, overwrites, or exact local path conventions. This does not contradict the annotations (read-only on the server is compatible with saving a local copy).

    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 short sentence that correctly places the core action first. No filler, no redundancy, and the most important fact (download + target location) is front-loaded.

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

    Completeness2/5

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

    No output schema is present, and the description does not say what the result is (e.g., a local file path, success status, or the downloaded file itself). It also does not give any hint about how to obtain the required IDs from the sibling tools, leaving the caller to infer the entire workflow.

    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?

    Only student_id has a schema description, and the description adds nothing about message_id or attachment_id – where they come from, how they are formatted, or how they relate to the message. At 33% schema description coverage, the description must compensate but does not.

    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 specifies a concrete action (

    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 when to use or when-not guidance exists. The tool relies on the caller having a student_id, message_id, and attachment_id, but the description never references the sibling tools (list_messages, get_message, list_students) for obtaining those IDs, nor does it explain why one would use this downloader rather than just reading the message directly.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only and safe nature is covered. The description adds that it returns calendar and days-off in a date range, which gives some context, but it does not disclose return format, pagination behavior, or the definition of 'dni wolne.' This matches the calibration where annotations cover the safety profile, yielding a moderate score.

    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 a single, tight sentence with no filler or redundant words. It efficiently communicates the core resource and scope. Because every word earns its place and it is simple to parse, it merits a high conciseness score.

    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?

    The input schema and annotations cover parameters and safety, but there is no output schema. The description only gives a high-level 'calendar and days off' without specifying what fields or event types are returned, nor does it clarify how this differs from get_timetable. For a tool that might return a mix of schedule and holiday data, this is a noticeable gap. Overall, it is minimally complete but not thorough.

    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 100%, so all four parameters are already described in the input schema. The description only repeats the concepts of child and date range, adding no new meaning about parameter values or formats. Per the rubric, a high-coverage schema sets a baseline of 3, and no extra parameter detail is provided.

    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?

    The description clearly names the resource (calendar and free days) and scope (child, date range), matching the get_calendar name. It goes beyond a vague label and does not contradict the name. However, it is phrased as a noun phrase rather than an explicit action, and it could still be confused with sibling get_timetable without more differentiation, so it does not earn a 5.

    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?

    The description gives no guidance on when to choose this tool over siblings such as get_timetable or list_students. There are no stated alternatives, prerequisites, or context that would help an agent decide between similar calendar/schedule tools. Usage has to be inferred entirely from the tool name and description.

    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?

    Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no additional behavioral context such as pagination, ordering, or return shape, but it does not contradict the annotations either.

    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 extremely concise, one short phrase that conveys the resource and its distinction from messages. No wasted words, though it could arguably include more action-oriented phrasing; still, it is efficiently sized.

    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?

    For a simple read-only listing tool with full schema coverage and safety annotations, the description is minimally adequate. It lacks any mention of return values or filtering semantics beyond what the schema offers, but given the low complexity and strong annotations, this gap is not critical.

    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 100%, with each parameter (student_id, date_from, date_to, limit) having a description. The tool description adds no parameter-specific meaning beyond what the schema provides, so baseline 3 is appropriate.

    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?

    The description clearly identifies the resource as 'school announcements' and explicitly distinguishes them from messages, which helps differentiate from list_messages. Although it is a noun phrase rather than a verb phrase, the tool name 'get_announcements' supplies the action, so the overall purpose is clear.

    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?

    The description notes that announcements are separate from messages, implying when to choose this tool over list_messages. However, it does not give explicit conditions or detailed guidance on when to use this versus other sibling tools, leaving usage context mostly implicit.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context such as pagination limits or data freshness; it only states the basic operation.

    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, direct sentence that conveys the essential function without extraneous words. Efficient and front-loaded.

    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?

    The tool is simple and the schema plus annotations cover most needs. However, the description lacks guidance on typical usage context or how it fits into a workflow (e.g., that student_id comes from list_students, though mentioned in the schema). Overall adequate but not rich.

    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?

    The schema provides 100% coverage with descriptions for all parameters, including formats and source of student_id. The description adds no additional parameter meaning, so the baseline of 3 applies.

    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 returns a child's grades within a given date range, with a specific verb and resource. It distinguishes from sibling tools like get_attendance or get_homework by focusing on grades.

    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. The description implies usage by stating the function, but there is no mention of prerequisites, exclusions, or scenarios where another tool would be more appropriate.

    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?

    Annotations already signal readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description does not contradict these and adds useful context about substitutions being returned and the 31-day maximum range. However, it does not disclose other behaviors such as pagination or error conditions, which are minor given the safety profile already declared.

    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 a single, brief sentence in Polish that covers the core purpose, the key constraint, and an output behavior. No filler or redundancy. It is well-structured with the main subject first.

    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 simple read-only getter with all parameters described and safety covered by annotations, the description is sufficient. It mentions the relevant output (timetable with substitutions) and the 31-day limit. Without an explicit output schema, this level of context is adequate, though it could mention that the result is per-student and no pagination is involved.

    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 input schema already describes all three parameters with 100% coverage, so the description does not need to repeat them. It adds a non-obvious constraint not present in the schema: the overall date range must not exceed 31 days. This gives the agent important cross-parameter semantics that would otherwise be missed.

    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?

    The description clearly identifies the action (get) and resource (child's timetable). It adds a specific constraint (range max 31 days) and notes that substitutions are included, which helps distinguish it from generic calendar tools. However, it does not explicitly name any sibling tool to compare against, so it lacks a clear differentiator.

    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?

    The description implies this is for retrieving a child's schedule and includes a range limit, but it does not explicitly state when to use this tool versus alternatives like get_calendar or get_grades. There are no exclusion criteria or 'when not to use' hints, making it adequate but not strongly guiding.

    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 establish read-only, idempotent, non-destructive behavior. The description adds useful context by emphasizing that the result is the full set of children and that it explicitly does not return tokens, which clarifies a likely invalidation concern. No contradictions with 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 extremely concise—two short sentences—with the primary action first and an important limitation second. There is no redundant or extraneous text.

    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 the tool's trivial input complexity, the rich annotations, and the clarifying 'no tokens' statement, the description fully covers the calling context. No return schema exists, but the tool name and description convey sufficient expectations for correct invocation.

    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 input schema has zero parameters, so the description need not explain any. Schema coverage is effectively 100% and baseline for 0 params is 4; the description's statement of returning all children without filters is consistent but adds no parameter-specific semantics.

    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 states a clear verb and object: 'Lista wszystkich dzieci' (list all children) associated with the LIBRUS account. It distinguishes itself from sibling tools by performing an unfiltered list operation, not a data-specific retrieval. The function name and description align clearly.

    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 the get_* siblings or when it should precede other calls. It does not mention alternatives or prerequisites. The only hint (does not return tokens) is a behavioral note, not a usage policy.

    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

librus-readonly-mcp MCP server

Copy to your README.md:

Score Badge

librus-readonly-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/nalancuchu/librus-readonly-mcp'

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