iitkgp-erp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| erp_loginA | Login to IIT KGP ERP. If OTP is required, pass it as a parameter. |
| erp_logoutA | Logout from ERP and clear the session. |
| get_gradesA | Fetch grades. Pass semester like 'Semester 3' to filter, or leave empty for all. |
| get_cgpaC | Get your current CGPA. |
| get_sgpaC | Get SGPA for a specific semester. Example: 'Semester 3' |
| get_cgpa_trend_toolB | Get semester-wise CGPA and SGPA progression. |
| compare_subjects_toolB | Compare performance across subjects. Pass comma-separated codes or names. Example: 'CS10001,MA10001' or 'Programming,Mathematics' |
| what_if_cgpa_toolA | Calculate projected CGPA with hypothetical grades. Pass as JSON: [{"credits": 4, "grade": "A"}, {"credits": 3, "grade": "B"}] |
| get_grade_distribution_toolB | Get your grade distribution (count of each grade). |
| get_attendanceA | Get attendance for all subjects in current semester. |
| get_attendance_alertsB | Get subjects where attendance is below threshold (default 80%). |
| can_i_skipA | Check how many classes you can skip for a subject and still stay above 80%. |
| recommend_electives_toolB | Recommend electives based on your grade history and strengths. Types: 'breadth', 'depth', 'open' |
| get_strengths_weaknessesB | Find your strongest and weakest subjects based on grades. |
| get_department_performanceA | See your average performance grouped by department (CS, MA, EE, etc.). |
| get_placement_noticesA | Get placement/internship notices from CDC. Optionally filter by keyword. Example: 'SDE', 'Google', 'internship' |
| get_notice_detailA | Get full details of a specific placement notice. Pass the URL from get_placement_notices. |
| get_timetableA | Get your timetable. Pass a day like 'Monday' to filter, or leave empty for full week. |
| get_today_classesB | Get today's class schedule. |
| where_is_profA | Find where a professor is based on timetable data. Pass partial name like 'sharma' or 'Prof Kumar'. |
| 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. |
| 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. |
| search_erp_pagesA | Search for ERP pages by keyword. Returns matching page paths. Examples: 'grades', 'fee', 'hostel', 'library' |
| get_academic_noticesC | Get academic notices/announcements. Optionally filter by keyword. |
| get_registered_subjectsA | Get all subjects you're currently registered for this semester. |
| get_credit_summary_toolA | Get credit summary — total credits and breakdown by type (core, elective, lab, etc.). |
| check_slot_conflicts_toolA | Check if any of your registered subjects have slot conflicts. |
| clear_cacheB | Clear locally cached ERP data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
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.
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.
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.
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.