itu-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NINOVA_PASSWORD | Yes | Your İTÜ password | |
| NINOVA_USERNAME | Yes | Your İTÜ email address (e.g., ad.soyad@itu.edu.tr) |
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 |
|---|---|
| auth_statusA | Check whether Ninova credentials are configured and whether a fresh session can be created. |
| refresh_sessionA | Force a new login with NINOVA_USERNAME and NINOVA_PASSWORD. |
| get_dashboardC | Read the Ninova dashboard and summarize courses, recent announcements, assignments, and messages. |
| list_coursesA | List all discovered Ninova courses from the dashboard (TTL-cached). |
| get_coursesB | Return all courses visible in the Ninova dashboard (alias of list_courses). |
| get_course_announcementsC | Return announcements for a specific Ninova course. |
| get_course_class_filesC | List files and folders under the Ninova 'Sınıf Dosyaları' section for a course. |
| get_course_lesson_filesC | List files and folders under the Ninova 'Ders Dosyaları' section for a course. |
| get_course_assignmentsB | Return a course's assignment list. By default also fetches each assignment detail/upload page; set include_details=false for a faster list-only read. |
| get_course_infoC | Return structured information from a course's 'Sınıf Bilgileri' page. |
| get_course_sectionsC | List the direct course routes exposed on the Ninova course home page. |
| get_course_gradesC | Read the Ninova 'Notlar' page for a course. |
| get_course_message_boardC | Read the Ninova 'Mesaj Panosu' page for a course. |
| get_course_attendanceC | Read the Ninova 'Yoklama' page for a course. |
| get_course_remote_learningC | Read the Ninova 'Uzaktan Eğitim' page for a course. |
| get_course_overviewB | Return a combined view of a course's sections, announcements, assignments, files, grades, message board, attendance, and remote learning routes. |
| get_dashboard_announcementsC | Return the announcements listed under the Ninova dashboard's aggregated announcements page. |
| get_dashboard_assignmentsA | Return the assignments listed under the Ninova dashboard's aggregated assignments page. Set include_details=false for a faster list-only read. |
| sync_all_coursesA | Fetch all visible courses, store a tracking snapshot, and return newly detected changes since the previous sync. Assignment detail pages are skipped by default for speed. |
| get_updatesB | Read the stored Ninova tracking history and return recent detected changes. |
| get_upcoming_deadlinesC | Return assignments whose submission deadline is approaching based on the stored tracking snapshot. |
| read_pageC | Fetch any Ninova page and return a structured summary of text, headings, links, tables, and attachments. |
| crawl_courseC | Inventory pages and downloadable resources inside a Ninova course tree. |
| download_resourceC | Download a Ninova file or other authenticated resource to disk. |
| read_resource_textB | Extract plain text from a Ninova PDF/DOCX/TXT (or a local path from download_resource) so the assistant can read lecture notes and assignments. |
| get_assignment_upload_slotsC | List the file slots on an assignment's 'Ödevi Yükle / OdevGonder' page, including which slots are already filled and allowed extensions. |
| submit_assignmentA | Upload a local file to one Ninova assignment slot via the official multipart form. Requires confirm=true to actually post; without it, returns a dry-run preview only. Ask the user before confirming. |
| snapshot_pageC | Save a structured snapshot of a Ninova page for later comparison. |
| diff_snapshotB | Compare the current state of a Ninova page against a previously stored snapshot. |
| obs_auth_statusB | Check whether an OBS JWT can be obtained with the configured İTÜ credentials. |
| obs_get_profileA | Read OBS personal/program profile. Sensitive fields are redacted unless include_sensitive=true. |
| obs_list_programsA | List the student's OBS academic programs (e.g. undergraduate major). |
| obs_list_semestersA | List academic semesters available in OBS for the student. |
| obs_get_registration_statusA | Read OBS registration and course-registration status (active/class level). |
| obs_get_advisorA | Read academic advisor information from OBS. |
| obs_get_internshipsB | Read internship records from OBS. |
| obs_get_contactsA | Read contact records from OBS (phones/emails redacted by default). |
| obs_list_registered_coursesA | List courses registered in OBS for a semester (default: latest). |
| obs_get_course_gradesB | Read midterm and/or letter grades for an OBS class (by sinifId or course code). |
| obs_get_attendanceC | Read attendance for an OBS class. Includes computed absence-risk summary by default. |
| obs_get_scheduleC | Read weekly class schedule and final exam calendar for a semester. |
| obs_get_graduation_remainingC | Read 'mezuniyetime ne kaldı', academic status, and debts for a program. |
| obs_get_campus_cardA | Read campus card balance and recent transactions from OBS (requires login). |
| obs_download_transcriptC | Download OBS transcript preview PDF to the local state downloads folder. |
| obs_search_coursesA | Search the public OBS course catalog by code or name (no auth required). |
| obs_get_course_prerequisitesA | Query prerequisite and postrequisite relationships for a course from the OBS public catalog. Supports chain queries up to 10 levels deep. |
| obs_calculate_gpaA | Calculate GPA/GANO from OBS registered courses. Supports projected grades for what-if scenarios. Uses İTÜ 4.00-scale letter grade conversion. |
| check_course_conflictsB | Check for schedule time conflicts between courses by CRN. Uses the public course schedule to look up session day/time/room. |
| obs_get_notificationsA | Read İTÜ Portal notifications (requires login). |
| obs_get_help_ticketsA | Read İTÜ Portal help desk tickets (requires login). |
| obs_get_cloud_quotaA | Read İTÜ Mail and İTÜ Bulut storage quota from the Portal (requires login). |
| get_academic_calendarA | Read the İTÜ academic calendar — semester dates, exams, holidays, registration periods (public, no login). |
| get_cafeteria_menuA | Read today's cafeteria menu from the İTÜ Portal (requires login). Shows daily lunch/dinner meals. |
| get_public_course_scheduleA | Read the public OBS course schedule for a department. No login required — reads the open DersProgram page. Returns structured course list with CRN, instructor, sessions (day/time/room), capacity, enrolled count, and prerequisite links. |
| get_public_course_prerequisitesA | Read prerequisite details from a course's public OBS DersBilgi page. No login required. Returns structured prerequisite list with codes, names, groups, and types. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/yatuk/itu-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server