Skip to main content
Glama
MSR327
by MSR327

iitkgp-erp-mcp

MCP server for IIT Kharagpur ERP. Query your grades, CGPA, attendance, timetable, placements, and more through any AI agent.

Works with: Claude Code, Claude Desktop, Cursor, Cline, Continue, Zed, custom agents — anything that speaks MCP.

Install

pip install iitkgp-erp-mcp
playwright install chromium

Related MCP server: mcp-guap

Setup

iitkgp-erp-setup

This stores your credentials securely in your OS keychain.

Usage

Add to your MCP client config (.mcp.json, mcp_servers.json, etc.):

{
  "mcpServers": {
    "iitkgp-erp": {
      "command": "iitkgp-erp-mcp"
    }
  }
}

Then ask your AI agent:

  • "What's my CGPA?"

  • "Show my grades for semester 4"

  • "Compare my performance in CS vs MA subjects"

  • "If I get A in all subjects this sem, what's my CGPA?"

  • "Which breadth electives should I take?"

  • "Any new placement notices for SDE roles?"

  • "Can I skip tomorrow's Signals class?"

  • "What's my schedule today?"

  • "Export my timetable to Google Calendar"

  • "Browse the fee payment page"

Available Tools (25)

Grades & GPA

Tool

Description

erp_login

Login to ERP (handles OTP)

erp_logout

End session

get_grades

Fetch grades (all or specific semester)

get_cgpa

Current CGPA

get_sgpa

SGPA for a semester

get_cgpa_trend

Semester-wise CGPA/SGPA progression

compare_subjects

Compare across subjects

what_if_cgpa

Projected CGPA calculator

get_grade_distribution

Grade breakdown (EX/A/B/C/D/P/F counts)

Attendance

Tool

Description

get_attendance

All subjects with attendance %

get_attendance_alerts

Subjects below 80% danger zone

can_i_skip

How many classes you can safely miss

Elective Recommender

Tool

Description

recommend_electives

Suggests electives based on your grade patterns

get_strengths_weaknesses

Your top 5 best/worst subjects

get_department_performance

Average GPA by department

Timetable & Schedule

Tool

Description

get_timetable

Full week or specific day schedule

get_today_classes

Today's classes

where_is_prof

Find a professor's location via timetable

export_timetable_ics

Export to ICS format (Google Calendar, Apple Calendar)

Placements & Notices

Tool

Description

get_placement_notices

CDC notices, filterable by keyword

get_notice_detail

Full text of a specific notice

get_academic_notices

Academic announcements

Explorer

Tool

Description

browse_erp_page

Navigate any ERP page freely

search_erp_pages

Find ERP pages by keyword

Utility

Tool

Description

clear_cache

Clear locally cached data

Security

  • Credentials stored in OS keychain (never plaintext)

  • Session is local to your machine

  • OTP entered live, never stored

  • Nothing sensitive is committed to git

How it works

Your AI Agent ←→ MCP Protocol (stdio) ←→ iitkgp-erp-mcp server
                                              │
                                              ├── iitkgp-erp-login (auth)
                                              ├── requests + BeautifulSoup (scraping)
                                              └── Playwright (JS-heavy pages)
                                              │
                                              ▼
                                        erp.iitkgp.ac.in

Grading Scale

Grade

Points

EX

10

A

9

B

8

C

7

D

6

P

5

F

0

Roadmap

  • Grades & GPA tools

  • Attendance tracking + alerts

  • Elective recommender

  • Placement notice integration

  • Timetable extraction

  • Calendar sync (ICS export)

  • Prof finder

  • Academic notices

  • Freeform ERP browser

  • Batch grade distributions (historical data)

  • Registration status

  • Fee payment status

  • Hostel info

Contributing

PRs welcome! The scrapers in src/scrapers/ may need selector updates if ERP changes its HTML structure.

License

MIT

Available Tools

28 tools
browse_erp_pageA

Browse any ERP page. Pass a path like 'Academic/notices.htm' or full URL. Returns page title, text content, tables, and links found.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions return content (title, text, tables, links), but omits important details such as authentication requirements (given sibling erp_login), rate limits, or potential errors. This leaves the agent with incomplete 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.

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the action and resource, then lists return content efficiently. Perfectly concise for the information provided.

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 presence of many sibling tools for specific pages, the description does not explain why one would use this generic browse over those tools. It also lacks mention of prerequisites (e.g., login) and does not address edge cases. The output schema exists, which explains return values, but the description could be more complete for a tool with many related alternatives.

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 schema provides zero description for the single 'path' parameter. The description compensates by clarifying acceptable formats ('Academic/notices.htm' or full URL), adding meaningful guidance beyond the schema. However, it does not specify whether the path is relative to a base URL or if external URLs are allowed.

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 action ('browse'), the resource ('any ERP page'), and provides examples of valid paths. It distinguishes from siblings like 'search_erp_pages' which is a search tool, making the 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 Guidelines3/5

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

The description implies use for browsing generic ERP pages, but does not provide guidance on when to use this tool versus specific page tools (e.g., get_academic_notices). No exclusions or alternatives are mentioned, leaving the agent uncertain about tool selection.

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

can_i_skipA

Check how many classes you can skip for a subject and still stay above 80%.

ParametersJSON Schema
NameRequiredDescriptionDefault
subject_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. The description only indicates a read-only check, but does not explicitly confirm safety, side effects, or authentication needs. More transparency would be beneficial.

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, clear sentence of 14 words. It is front-loaded and every word adds value, with no waste.

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 tool has only one parameter, no annotations, and no output schema details in the description, the description is adequate but minimal. It lacks information about the return format, conditions, or required state (e.g., login), which would make it more complete for a simple tool.

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 schema has 0% description coverage for the single parameter, but the description adds context: 'for a subject' clarifies that subject_code identifies the subject to evaluate. This adds meaning beyond the schema's minimal 'Subject Code' title.

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 'check' and the resource 'how many classes you can skip for a subject' with the condition 'still stay above 80%'. It is specific and distinguishes from sibling tools like get_attendance or get_attendance_alerts.

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 usage for checking skip count, but does not explicitly state when to use this tool versus alternatives like get_attendance. No guidance on prerequisites or exclusions.

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

check_slot_conflicts_toolA

Check if any of your registered subjects have slot conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It does not mention whether the operation is read-only, what output is produced (beyond stating 'check'), or any side effects. Minimal transparency.

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, no wasted words. Perfectly concise and appropriate for the tool's simplicity.

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 description is complete for a simple check with no parameters, but lacks context such as when to invoke (e.g., after registration) or what the output schema provides. Output schema exists, so return value explanation is not required, but minimal context is missing.

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?

There are no parameters (0 params, schema coverage 100%). Per guidelines, baseline is 4. The description adds no parameter-specific information, but none is needed. No value added beyond 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 the action ('check') and the specific resource ('registered subjects' slot conflicts'). It is concise and distinguishes this tool from siblings that perform other ERP tasks. No ambiguity.

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, or prerequisites (e.g., must have registered subjects). The description is a simple statement without context on appropriate scenarios.

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

clear_cacheB

Clear locally cached ERP data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states the action (clear) but does not explain consequences like data loss, performance impact, or whether re-fetching is required. The destructive nature is implied but not elaborated.

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 that conveys the core function. It is concise but could benefit from slight expansion to include usage context without becoming verbose.

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?

Given the simplicity of the tool (no parameters) and presence of an output schema, the description is too brief. It lacks context about side effects, typical scenarios, or relation to other ERP tools.

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?

There are no parameters, and schema coverage is trivially 100%. The description adds no parameter information, but none is needed. Baseline for 0 params is 4.

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 uses a specific verb 'clear' and specifies the resource 'locally cached ERP data', making the purpose unambiguous. It clearly distinguishes from sibling tools, which are for browsing, logging in, or retrieving data.

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 does not mention prerequisites, typical use cases, or situations where clearing cache is appropriate.

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

compare_subjects_toolB

Compare performance across subjects. Pass comma-separated codes or names. Example: 'CS10001,MA10001' or 'Programming,Mathematics'

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description fully bears the burden of behavioral disclosure. It lacks details on the nature of comparison (e.g., returns chart? text? percentage?), side effects (likely none but unstated), authentication needs, or rate limits. This omission significantly reduces transparency for a tool with no annotation support.

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 with two sentences and an example, containing no extraneous information. Every part serves a purpose: stating the action, specifying the input format, and giving an example.

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 absence of annotations and the presence of an output schema (which may describe return values), the description is minimally complete. It explains what the tool does and how to call it, but omits details like return format, pagination, or error handling. While the output schema could compensate, the description alone feels incomplete for a tool comparing multiple subjects.

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 one parameter with 0% description coverage. The description adds crucial meaning: it explains the expected format (comma-separated codes or names) and provides two concrete examples. This goes well beyond the bare schema and aids correct parameter construction.

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 states the tool compares performance across subjects, using a specific verb and resource. While it distinguishes from siblings like get_grades or get_cgpa by focusing on comparison, it could be more explicit about what 'performance' means (e.g., grades, CGPA) to avoid ambiguity.

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 provides input format guidance and examples, implying when to use it. However, it does not explicitly state when this tool is preferred over sibling tools like get_grade_distribution_tool or recommend_electives_tool, nor does it mention any prerequisites or exclusions.

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

erp_loginA

Login to IIT KGP ERP. If OTP is required, pass it as a parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
otpNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only mentions OTP handling but omits important details like session management, error scenarios, or whether login is destructive. This is insufficient for a sensitive authentication tool.

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 with two short sentences. It front-loads the purpose and uses minimal text efficiently.

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 tool has an output schema (not provided), the description need not detail return values. However, it lacks completeness regarding login vs. logout flow, session state, and error handling, which are critical for a login tool.

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 has 0% coverage, but the description adds meaning to the 'otp' parameter by explaining its conditional use. However, it does not specify format or expected values, so it only partially compensates for the lack of schema 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 action ('Login') and the resource ('IIT KGP ERP'), making it distinct from sibling tools like 'erp_logout' and browsing tools.

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 mentions passing OTP if required, but lacks guidance on when to use this tool (e.g., prerequisites like having credentials) or when not to (e.g., if already logged in). Context is implied but not explicit.

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

erp_logoutA

Logout from ERP and clear the session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

States it clears the session, but no annotations provided; lacks details on side effects like unsaved data loss or re-login requirement.

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 waste; every word is necessary and front-loaded.

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?

Simple tool with no parameters; output schema exists so return values need not be explained. Missing mention of return behavior but not critical.

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; baseline for 0-param tools is 4. Description adds no parameter info because none are needed.

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 action (logout) and resource (ERP session), distinguishing it from sibling 'erp_login'.

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?

No explicit when-to-use or alternatives, but usage is implied after login; lack of guidance on 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.

export_timetable_icsA

Export timetable as ICS (calendar) format. Optionally pass semester start date (YYYY-MM-DD). You can import the output into Google Calendar, Apple Calendar, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
semester_startNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It discloses the optional semester start parameter and the ICS output, but does not mention default behavior, side effects, rate limits, or what exactly is included (e.g., all events?). This is minimal for a tool with no annotation safety cues.

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 two sentences long, front-loaded with the core purpose, and includes the only parameter in a natural way. Every sentence adds value with no redundancy.

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 export tool with one optional parameter and an existing output schema, the description covers the key aspects (purpose, param format, importability). It omits details about the output contents (e.g., what events are included), but the output schema likely fills that gap. Overall adequate.

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 schema has 0% description coverage, but the description adds meaningful detail: the parameter 'semester_start' is optional, takes a YYYY-MM-DD format, and controls the semester start date. This compensates well for the schema's lack of 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 action ('Export timetable as ICS format'), the resource ('timetable'), and the output format (ICS). This distinguishes it from siblings like 'get_timetable' which likely returns data in a different format.

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 usage by mentioning import into calendar apps, but lacks explicit guidance on when to use this tool versus alternatives (e.g., get_timetable). No 'when-not' or exclusion criteria are provided.

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

get_academic_noticesC

Get academic notices/announcements. Optionally filter by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

The description implies a read operation but does not disclose any behavioral details such as scope of results, pagination, or side effects. With no annotations, this is insufficient 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?

Two short sentences, front-loaded with the core purpose. No extraneous information.

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 retrieval tool with one optional parameter and an output schema, the description is minimally complete. However, it lacks details on output format and constraints, which would be helpful given multiple sibling tools.

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?

The schema has 0% description coverage, so the description must compensate. It states the keyword is optional for filtering, but does not explain what the keyword matches against (title, content, etc.). Minimal added value.

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 states the tool retrieves 'academic notices/announcements', which is a specific verb+resource. It distinguishes from sibling tools like get_placement_notices and get_notice_detail by implication, but does not explicitly differentiate.

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_placement_notices or get_notice_detail. The optional keyword filtering is mentioned but no context about use cases.

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

get_attendanceA

Get attendance for all subjects in current semester.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/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 does not disclose any behavioral traits such as read-only nature, authentication requirements, or what 'current semester' means.

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, effectively communicates the purpose.

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 zero parameters and the presence of an output schema, the description is nearly complete, though it could clarify what 'current semester' refers to.

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?

There are no parameters, so the description does not need to add parameter info; baseline 4 applies due to 100% schema description coverage.

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 'attendance for all subjects in current semester', distinguishing it from siblings like get_attendance_alerts.

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_attendance_alerts or compare_subjects_tool; lacks context for selection.

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

get_attendance_alertsB

Get subjects where attendance is below threshold (default 80%).

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only mentions default threshold but does not disclose whether the tool is read-only, whether it sorts results, or what format output takes.

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?

One sentence with no wasted words. However, it is too concise and could include more valuable information without becoming verbose.

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?

Adequate for a simple tool with one optional parameter and an output schema. However, it does not clarify the output structure (e.g., whether it returns subject names or IDs) and lacks completeness compared to rich sibling examples.

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?

Input schema has 0% description coverage for 'threshold'. Description mentions the default but fails to clarify that threshold is a percentage of classes attended, leaving ambiguity about the interpretation of the value.

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 states 'Get subjects where attendance is below threshold' with a default value, clearly specifying verb, resource, and scope. It distinguishes from sibling 'get_attendance' which retrieves overall attendance.

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

Usage Guidelines3/5

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

Usage is implied but explicit guidance on when to use versus alternatives like 'get_attendance' or other subject tools is missing. No exclusions or prerequisites are stated.

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

get_cgpaC

Get your current CGPA.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It only states 'Get your current CGPA' without disclosing behavioral traits such as whether it requires login, caching behavior, or any side effects.

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 concise at five words, but it omits valuable information that could be included without much verbosity, such as usage context or behavioral notes.

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?

Given the presence of many sibling tools and no output schema details provided, the description is too minimal. It does not clarify that the CGPA is from the ERP system or what 'current' means in the academic context.

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 no parameters, so the description cannot add meaning beyond the schema. With 0 parameters and 100% schema coverage, the baseline is 4. The description does not need to explain parameters.

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 states it retrieves the current CGPA. It distinguishes from siblings like get_sgpa (semester GPA) and get_cgpa_trend_tool (trend over time), but does not explicitly differentiate.

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. Usage is implied but not explicitly stated, and no exclusions or prerequisites are provided.

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

get_cgpa_trend_toolB

Get semester-wise CGPA and SGPA progression.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It does not mention data source, update frequency, or any side effects. For a progression tool, details about how the progression is computed or fetched are missing.

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 clear sentence, appropriately sized and front-loaded. However, it lacks any structured breakdown or additional sections that could aid readability.

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?

Given that there is an output schema (not shown), the description could have expanded on what the progression contains (e.g., list of semesters, values). The brevity leaves agents without sufficient context for effective use.

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 no parameters, so schema description coverage is 100%. The description adds minimal value beyond the schema by stating the output relates to progression, but does not elaborate on parameter semantics since there are none.

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 retrieves semester-wise CGPA and SGPA progression. It uses a specific verb ('Get') and resource ('CGPA and SGPA progression') and distinguishes from sibling tools like get_cgpa and get_sgpa which likely provide single values.

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 such as get_cgpa or get_sgpa. No context about prerequisites or use cases is given.

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

get_credit_summary_toolA

Get credit summary — total credits and breakdown by type (core, elective, lab, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. The description states the output (total credits and breakdown) but does not mention data freshness, permissions required, or any side effects. Given the tool is a simple read operation with no parameters, the level of transparency is adequate but not enhanced beyond the bare minimum.

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 sentence that is front-loaded with the core purpose and provides essential detail. Every word adds value, and there is no redundancy or wasted text.

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 has zero parameters and an output schema exists, the description is nearly complete. It covers the main function and output types. However, it could improve by mentioning that the output schema provides further details, but since the schema exists, the description does not need to reiterate return structure.

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 no parameters, so the description does not need to add parameter meaning. The tool takes no arguments, making parameter semantics trivial. A score of 4 reflects the baseline for zero-parameter tools.

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 retrieves a credit summary with total credits and breakdown by type (core, elective, lab, etc.). The verb 'Get' combined with the resource 'credit summary' makes the purpose explicit, and the mention of breakdown types distinguishes it from other academic tools like 'get_cgpa' 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?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites, exclusions, or comparison to sibling tools. The lack of usage context leaves the agent to infer applicability on its own.

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

get_department_performanceA

See your average performance grouped by department (CS, MA, EE, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description only states 'see' implying read-only, but no mention of side effects, authentication, rate limits, or other behavioral traits. Minimal disclosure.

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 of 11 words, front-loaded with action ('See your average performance'), no wasted words. Exemplary 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 zero parameters and existence of output schema, description covers the core function. Provides instructive examples of departments. Could add scope (e.g., current student) but overall adequate.

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?

Input schema has zero parameters, so baseline is 4. Description does not need to add parameter meaning, and it appropriately avoids listing nonexistent parameters.

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?

Specific verb 'see average performance grouped by department' with concrete examples (CS, MA, EE). Distinct from sibling tools like get_cgpa or get_grades which focus on overall or subject-specific 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 on when to use this tool versus alternatives like get_cgpa, get_grades, or compare_subjects_tool. Implies context from name but lacks explicit directives.

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

get_grade_distribution_toolB

Get your grade distribution (count of each grade).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral insight beyond the basic read operation. It does not disclose if the data is cached, if it requires authentication, or what happens on failure.

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, well-structured sentence that is front-loaded and contains no wasted 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?

Given the tool has no parameters and an output schema exists, the description covers the essential purpose. However, it could specify that the distribution is for the current user's overall grades.

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

Parameters3/5

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

Schema coverage is 100% with zero parameters, so baseline 3 applies. The description adds no parameter-specific meaning, but none is needed.

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 'Get your grade distribution (count of each grade)' clearly states the verb and resource, specifying that it returns counts per grade. It distinguishes from sibling tools like 'get_grades' which likely return individual grade records.

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_grades, get_cgpa). The description lacks context on prerequisites, such as whether the user must be logged in.

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

get_gradesA

Fetch grades. Pass semester like 'Semester 3' to filter, or leave empty for all.

ParametersJSON Schema
NameRequiredDescriptionDefault
semesterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states 'Fetch grades' and parameter behavior, omitting details like authentication requirements, side effects, or error handling. This is insufficient for a tool with no annotation support.

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 two sentences with no fluff, front-loading the purpose and immediately following with parameter guidance. Every sentence serves a clear function.

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 (one optional parameter, output schema exists), the description covers the essentials. It does not detail the output format, but that is presumably documented in the output schema. The description is adequate for this scope.

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 description coverage is 0%, so the description must compensate. It explains the parameter 'semester' with a concrete example ('Semester 3') and clarifies that an empty value retrieves all grades, adding meaningful context beyond the schema's type and default.

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 states 'Fetch grades' as the verb+resource, which is specific. However, it does not explicitly differentiate from sibling tools like get_cgpa, get_sgpa, or get_grade_distribution_tool, which also handle grade-related data.

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 provides guidance on when to use the filtering parameter ('Pass semester like 'Semester 3' to filter, or leave empty for all'), but it does not mention when not to use this tool or suggest alternative tools from the sibling list.

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

get_notice_detailA

Get full details of a specific placement notice. Pass the URL from get_placement_notices.

ParametersJSON Schema
NameRequiredDescriptionDefault
notice_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full responsibility for behavioral transparency. It does not disclose any behavioral traits such as side effects, error handling, or the nature of output (despite an output schema existing). For a tool that fetches details, stating it is read-only would help.

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 with two sentences, no filler, and the most important information (purpose and input source) is front-loaded. Every sentence serves a purpose.

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 tool has an output schema (not shown), the description does not need to detail return values. However, it lacks completeness in behavioral transparency and parameter semantics for a tool with only one parameter and no annotations. The core usage is covered, but safety details are missing.

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 describes only one parameter (notice_url) with no description, and schema description coverage is 0%. The tool description adds value by stating the URL should come from get_placement_notices, providing semantic context. However, it does not explain the expected format or constraints beyond 'URL'.

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 full details' and identifies the resource as 'placement notice'. It distinguishes from sibling tools by explicitly referencing 'get_placement_notices' as the source of the URL, making the purpose specific and 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/5

Does 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 (to get full details of a specific notice) and how to obtain the input (URL from get_placement_notices). While it does not explicitly say when not to use it or list alternatives, the context of a detail retrieval tool is well understood.

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

get_placement_noticesA

Get placement/internship notices from CDC. Optionally filter by keyword. Example: 'SDE', 'Google', 'internship'

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states it's a read operation and mentions optional filtering, but lacks details like auth, rate limits, ordering, or pagination. Output schema exists, mitigating need for return format explanation.

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 plus an example line. No wasted words. Front-loaded with core purpose.

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?

Simple tool with one optional parameter. Description covers what the tool does and how to use the filter. Output schema exists, so return information is handled elsewhere. No gaps given tool complexity.

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 description coverage is 0%, but description adds meaning: 'Optionally filter by keyword' with examples ('SDE', 'Google', 'internship'). This clarifies the parameter's purpose beyond the schema's type and default.

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 specific verb+resource: 'Get placement/internship notices from CDC'. Clearly distinguishes from sibling 'get_academic_notices' by specifying CDC and placement/internship nature.

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?

Provides clear context: for placement/internship notices from CDC, with optional keyword filtering. Gives example keywords. No explicit exclusion or alternatives, but context sufficiently differentiates from siblings.

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

get_registered_subjectsA

Get all subjects you're currently registered for this semester.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It indicates a read operation (get all subjects) but does not elaborate on aspects like authentication requirements, data freshness, or side effects. The presence of an output schema partially mitigates the need to describe return values.

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, straight-to-the-point sentence of 9 words. It is front-loaded and contains no extraneous information. Every word adds value.

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 tool with no parameters and an output schema, the description adequately covers the primary function. It specifies the scope ('this semester') which adds context. Minor gaps in usage guidelines do not severely impact completeness, as the tool is simple and the output schema can detail the response.

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 no parameters, and schema description coverage is 100% (trivial). According to the rules, baseline is 3. The description does not need to explain parameters, and it does not add parameter-specific 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?

The description clearly states the tool's function: retrieving currently registered subjects for the semester. The verb 'get' and specific resource 'registered subjects' make the purpose unambiguous, and it distinguishes well from sibling tools like 'get_timetable' 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 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 such as 'get_timetable' or 'get_grades'. There is no mention of prerequisites, exclusions, or context that would help an agent decide between tools.

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

get_sgpaC

Get SGPA for a specific semester. Example: 'Semester 3'

ParametersJSON Schema
NameRequiredDescriptionDefault
semesterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description must fully disclose behavior, but it fails to mention any traits like read-only status, authentication requirements, or side effects. Only states 'Get SGPA', leaving agents unaware of prerequisites or constraints.

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 concise (two sentences) and front-loaded with the action. However, the brevity sacrifices critical detail, making it minimally adequate rather than optimally structured.

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?

Given no annotations, no parameter descriptions, and the complexity of retrieving an SGPA (likely requiring a login), the description is incomplete. It relies on the output schema (not shown) for return info but omits prerequisites and context.

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?

Parameter 'semester' has 0% schema description coverage. The description adds an example ('Semester 3') but does not specify acceptable formats or values, leaving ambiguity about input validity.

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 uses the verb 'Get' with the resource 'SGPA' and specifies 'for a specific semester', making the primary function clear. It implicitly differentiates from sibling tools like 'get_cgpa' (overall) but does not explicitly name them, so not 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?

No guidance is provided on when to use this tool versus alternatives (e.g., 'get_cgpa', 'get_grades'). The example 'Semester 3' offers a hint but no explicit context or exclusions.

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

get_strengths_weaknessesB

Find your strongest and weakest subjects based on grades.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It mentions 'based on grades' but doesn't disclose how grades are used (e.g., overall CGPA vs per-subject), what happens if no grades exist, or any side effects. Minimal behavioral insight.

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, no filler, very concise. Every word 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?

For a zero-parameter tool with an output schema, the description is adequate but lacks detail on what 'strongest and weakest' means and the output format. Somewhat incomplete for a tool that likely returns derived data.

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?

There are zero parameters and schema coverage is 100%. Per guidelines, baseline is 4. Description adds no additional parameter info, but none is needed.

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 states it finds strongest and weakest subjects based on grades. It has a specific verb and resource, and though it doesn't explicitly distinguish from siblings like compare_subjects_tool, the purpose is unambiguous.

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 get_grades or compare_subjects_tool. No when-not-to-use or prerequisites mentioned.

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

get_timetableA

Get your timetable. Pass a day like 'Monday' to filter, or leave empty for full week.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It does not mention whether the operation is read-only, requires authentication, or any side effects. However, the tool appears straightforward and safe.

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 fluff. Every word serves a purpose: states the action, explains the parameter, and provides the default behavior.

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 simple nature of the tool (one optional parameter, output schema exists), the description is complete enough. It covers the main functionality and parameter usage, though could add more about the scope ('your' timetable).

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 0%, so description must add meaning. It explains the 'day' parameter with an example ('Monday'), but lacks format specifics (case, full name vs abbreviation) and error handling.

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 'Get your timetable' with a specific verb and resource. It explains filtering by day or full week, distinguishing from sibling 'get_today_classes' which only retrieves today's classes.

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?

Provides basic usage: pass a day to filter or leave empty for full week. But lacks explicit guidance on when to use this tool over similar siblings like 'get_today_classes' or 'export_timetable_ics'.

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

get_today_classesB

Get today's class schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior1/5

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

With no annotations provided, the description should disclose behavioral traits (e.g., requires login, read-only nature, behavior when no classes). It only states the basic purpose, offering no additional transparency.

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, front-loaded sentence that efficiently conveys the tool's purpose without extraneous information.

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 tool's simplicity (zero parameters, output schema exists), the description is minimally adequate. However, it could benefit from additional context such as user authentication requirements or what happens on days with no classes.

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 no additional parameter information is needed. According to rules, baseline is 4 for zero parameters.

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 'Get today's class schedule' clearly states a specific verb and resource, distinguishing it from sibling tools like 'get_timetable' which likely returns the full 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 is provided on when to use this tool versus alternatives (e.g., get_timetable for a broader view). The description lacks context for decision-making.

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

recommend_electives_toolB

Recommend electives based on your grade history and strengths. Types: 'breadth', 'depth', 'open'

ParametersJSON Schema
NameRequiredDescriptionDefault
elective_typeNobreadth

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states it 'recommends' (likely read-only), but does not clarify if it modifies data, requires authentication, or how it computes recommendations. The description adds minimal behavioral context beyond the name.

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 with two sentences and no redundant information. Every part is necessary 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?

Given the tool has one optional parameter and an output schema (not shown but present), the description is minimally adequate. However, it lacks any mention of prerequisites or data dependencies, and does not explain the recommendation logic or output shape beyond the output schema.

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 schema has 0% coverage for the single parameter, but the description lists the allowed types ('breadth', 'depth', 'open'), adding meaning beyond the schema's title and default. It compensates well for the lack of schema descriptions.

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 states the tool recommends electives based on grade history and strengths, and lists three types. It is distinct from siblings like 'get_strengths_weaknesses' or 'compare_subjects_tool', though no explicit differentiation is provided.

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 implies use when wanting elective suggestions, but does not mention prerequisites, exclusions, or when not to use it.

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

search_erp_pagesA

Search for ERP pages by keyword. Returns matching page paths. Examples: 'grades', 'fee', 'hostel', 'library'

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses that it returns page paths, but lacks details on partial matching, case sensitivity, pagination, or other nuances. With no annotations, the description provides basic but minimal 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.

Conciseness5/5

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

The description is brief (two sentences plus examples) with no redundancy. Every part contributes value: stating the action, result type, and illustrative examples.

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 (one parameter, has output schema), the description covers the essential purpose and result. It could mention the output schema or add behavioral details, but is largely adequate 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 input schema has 0% coverage for parameter descriptions. The description adds the keyword 'search' and concrete examples ('grades', 'fee', etc.), compensating for the schema's lack of parameter detail and clarifying the query parameter's meaning.

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 searches for ERP pages by keyword and returns matching page paths. It uses a specific verb ('search') and resource ('ERP pages'), and the sibling tool 'browse_erp_page' suggests a complementary action, distinguishing this tool's purpose.

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?

No explicit guidance on when to use versus alternatives like 'browse_erp_page' or other search tools. The examples imply usage for finding pages by keyword, but no exclusions or context are provided.

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

what_if_cgpa_toolA

Calculate projected CGPA with hypothetical grades. Pass as JSON: [{"credits": 4, "grade": "A"}, {"credits": 3, "grade": "B"}]

ParametersJSON Schema
NameRequiredDescriptionDefault
projected_gradesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It does not disclose whether this tool mutates data, requires authentication, or has limitations (e.g., only for current semester). Output schema exists but description lacks behavioral context beyond the calculation.

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 wasted words. First sentence defines purpose, second sentence provides input format. Front-loaded and efficient.

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 covered. Input format is explained. However, missing context about when this tool is applicable (e.g., requires previous CGPA data, only works for current semester) and error conditions.

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?

Input schema has 0% description coverage. Description adds example JSON format with grade and credits, compensating for the schema gap. However, it does not specify valid grade values or credit range constraints.

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 'Calculate projected CGPA with hypothetical grades', specifying the verb 'calculate' and the resource 'CGPA'. This distinguishes it from sibling tools like get_cgpa which return actual CGPA.

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?

Description implies usage for hypothetical scenarios but does not explicitly state when to use this tool versus alternatives like get_cgpa. No mention of prerequisites or excluded cases.

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

where_is_profA

Find where a professor is based on timetable data. Pass partial name like 'sharma' or 'Prof Kumar'.

ParametersJSON Schema
NameRequiredDescriptionDefault
prof_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It says 'based on timetable data' implying a read operation, but does not explicitly state read-only nature, potential errors, or data source limitations. Adequate for a simple lookup.

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 with no wasted words. First sentence states purpose, second provides usage example. Ideal 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?

Simple tool with one param and output schema. Description is sufficient for basic use. Could mention if login required or timetable data must be available, but not critical for understanding.

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 description coverage is 0%, but the description adds meaning: 'partial name like sharma or Prof Kumar' clarifies input format and flexibility. This adds value beyond the schema's 'Prof Name' title.

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 the tool finds a professor's location based on timetable data. It is distinct from siblings which deal with attendance, grades, timetables, etc. The example with partial names shows specific verb 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 Guidelines4/5

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

Provides clear instruction: pass a partial name like 'sharma' or 'Prof Kumar'. Does not explicitly mention when not to use or alternatives, but given unique purpose among siblings, usage is well implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 28 tool updatesv0.1.0
    • First observedbrowse_erp_page
    • First observedcan_i_skip
    • First observedcheck_slot_conflicts_tool
    • First observedclear_cache
    • First observedcompare_subjects_tool
    • First observederp_login
    • First observederp_logout
    • First observedexport_timetable_ics
    • First observedget_academic_notices
    • First observedget_attendance
    • First observedget_attendance_alerts
    • First observedget_cgpa
    • First observedget_cgpa_trend_tool
    • First observedget_credit_summary_tool
    • First observedget_department_performance
    • First observedget_grade_distribution_tool
    • First observedget_grades
    • First observedget_notice_detail
    • First observedget_placement_notices
    • First observedget_registered_subjects
    • First observedget_sgpa
    • First observedget_strengths_weaknesses
    • First observedget_timetable
    • First observedget_today_classes
    • First observedrecommend_electives_tool
    • First observedsearch_erp_pages
    • First observedwhat_if_cgpa_tool
    • First observedwhere_is_prof

TDQS

B3.4/5.0

Scored across 28 tools

Disambiguation5/5

Each tool has a distinct purpose with minimal overlap. For example, get_attendance and get_attendance_alerts target different information, and get_cgpa, get_sgpa, get_cgpa_trend are clearly separated. The functions cover unique academic queries, making it easy for an agent to select the right one.

Naming Consistency4/5

Most tools follow a verb_noun pattern in snake_case (e.g., get_attendance, check_slot_conflicts). However, there is inconsistency with the '_tool' suffix appearing on some (e.g., compare_subjects_tool) but not others. Also, erp_login/erp_logout use a prefix instead of a noun. Overall, the pattern is mostly consistent.

Tool Count4/5

With 28 tools, the set is on the higher end but reasonable for a comprehensive ERP system covering attendance, grades, timetable, notices, and more. Each tool addresses a specific need, and the count is not excessive given the domain complexity.

Completeness3/5

The tool set covers many common ERP queries (attendance, grades, timetable, notices) but lacks write operations (e.g., course registration, fee payment). It is read-heavy, missing some lifecycle actions one might expect from an ERP interface. This creates minor gaps for agents needing to perform updates.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/MSR327/iitkgp-erp-mcp'

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