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) |
Capabilities
Features and capabilities supported by this server
| 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. |
| 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_download_transcriptC | Download OBS transcript preview PDF to the local state downloads folder. |
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
- 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