itmo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ITMO_PASSWORD | No | ITMO.ID password. Used together with ITMO_USERNAME to log in to both my.itmo.ru and БАРС. | |
| ITMO_USERNAME | No | ITMO.ID username (e.g. ISU number). Used together with ITMO_PASSWORD to log in to both my.itmo.ru and БАРС. Simplest option, but the password is stored in the MCP client config. | |
| ITMO_MCP_STATE_DIR | No | Directory where the server stores refreshed ITMO.ID tokens in state.json (mode 600). Defaults to ~/.config/itmo-mcp. | |
| ITMO_REFRESH_TOKEN | No | Refresh token granting access to my.itmo.ru only. The token lives 30 days and is refreshed automatically. | |
| ITMO_MCP_HTTP_TOKEN | No | When running the Streamable HTTP server, clients must send Authorization: Bearer <token>. Required if the server is exposed without an authenticating proxy. | |
| ITMO_KEYCLOAK_IDENTITY | No | KEYCLOAK_IDENTITY cookie value for passwordless login to both my.itmo.ru and БАРС. Obtain it by logging in to my.itmo.ru, opening DevTools (F12) -> Application -> Cookies -> https://id.itmo.ru and copying the KEYCLOAK_IDENTITY value. The cookie lives about 90 days. | |
| ITMO_MCP_HTTP_ALLOWED_HOSTS | No | Comma-separated list of allowed Host header values for the HTTP server (DNS rebinding protection), e.g. mcp.example.com. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| itmo_get_profileA | Profile of the signed-in ITMO student: ISU number, full name, faculty, group, course. |
| itmo_search_peopleA | Search ITMO students and employees by name, ISU number or other attributes. Returns ISU numbers, contacts and positions. |
| itmo_get_personA | Public profile of an ITMO student or employee by ISU number: positions, contacts, education. |
| itmo_get_scheduleA | Personal ITMO class timetable (lectures, practices, labs, exams, consultations) for a date range. Defaults to the next 7 days starting today (Moscow time). Days without classes are omitted. |
| itmo_get_gradesA | Final grades from the ITMO record book (zachetka) for one semester: points, grade, assessment type and date. Defaults to the current semester. Use entry_id with itmo_get_grade_details for the points breakdown. |
| itmo_get_grade_detailsA | Points breakdown (assessments, min/max points, received points) for one record book entry. |
| itmo_get_study_planA | Disciplines of the student's study plan for one semester: credits, hours by activity, department, language and whether it is an elective. Defaults to the current semester. |
| itmo_get_sport_statusA | Physical education (sport) summary: points this semester, enrolled sections, upcoming enrolled lessons for 14 days, enrollment attempts, debt and medical health group. |
| itmo_get_sport_points_historyB | Every physical education point award (lessons, competitions) for a sports semester. |
| itmo_get_sport_scheduleA | Physical education lessons open for enrollment with free places and enrollment restrictions. Defaults to 7 days from today. Filter ids come from itmo_get_sport_filters. Read-only: does not enroll. |
| itmo_get_sport_filtersB | Ids and names of sport types, buildings and sports semesters (optionally sections and teachers) for other sport tools. |
| itmo_get_sport_competitionsB | University sports competitions with dates, venue, free places and registration status. |
| itmo_get_scholarshipA | Scholarship and other payouts: totals by category for a period and individual payments with breakdown. Defaults to the last 365 days. |
| itmo_get_dormitoryA | Dormitory status (queue place, assigned dormitory and address) and housing contracts with balance and payment schedule. |
| itmo_get_room_bookingsA | Rooms (meeting rooms, coworkings, classrooms) booked by or shared with the student. |
| itmo_get_queue_appointmentsC | Appointments in the ITMO electronic queue (dean's office, student office, etc.). |
| itmo_get_requestsB | Applications and certificate requests submitted through my.itmo.ru with their status. |
| itmo_get_election_statusB | Status and dates of the current elective discipline selection campaign. |
| bars_get_scoresA | Current-semester points from BARS (bars.itmo.ru): total per discipline and points per checkpoint (labs, tests, exam) with min/max. Optionally filter by discipline name. |
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 19 tools
Most tools target distinct resources or actions (people, schedule, sport, dormitory, etc.). The main overlap is among the three grade/points tools (itmo_get_grades, itmo_get_grade_details, bars_get_scores), which come from different systems and could confuse an agent without careful reading.
All tools use snake_case verb_noun names, but 18 of 19 are prefixed with itmo_, while bars_get_scores breaks the server prefix. This minor inconsistency is the only deviation.
19 tools is borderline heavy (rubric: 16-25 feels heavy). While each tool covers a distinct facet of the student portal, the count could be reduced by consolidating some sport-related tools.
The surface is almost entirely read-only; there are no create/update/delete or action tools (e.g., enrolling in sport, submitting requests, booking rooms). This is a significant gap for a student portal domain.