# İTÜ MCP

MCP-сервер подключает ИТ-системы İTÜ к ИИ-ассистенту. Он пригодится для проверки курсов, оценок, заданий, расписания и каталога библиотеки.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 14
- Автор: yatuk
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/yatuk/itu-mcp
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/itu-mcp

## Что делает

İTÜ MCP даёт ассистенту доступ к Ninova, OBS, Portal, Moodle, сайтам курсов, ИТУ Mail, каталогу библиотеки и архиву прошлых курсов. Через обычный запрос можно узнать о заданиях, оценках, расписании, местах в группе, меню и статусе регистрации. Сервер также умеет отслеживать открывшиеся места и создавать файл календаря `.ics`.

Сервер работает локально и по умолчанию только читает данные. Загрузка задания и сохранение черновика регистрации требуют подтверждения. Для закрытых данных нужны учётные данные İTÜ; пароль хранится на компьютере и отправляется только на страницу входа İTÜ. Для запуска требуется Python 3.11 или выше и `uvx`.

В Claude Code сервер добавляется командой `claude mcp add`; доступны также Codex, Cursor, GitHub Copilot и Gemini CLI. Поскольку проект не связан официально с İTÜ, вопросы по доступу зависят от работы её систем и учётной записи.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `NINOVA_USERNAME`, `NINOVA_PASSWORD`, `NINOVA_MAIL_USERNAME`, `NINOVA_MAIL_PASSWORD`, `NINOVA_LIBRARY_NAME`, `NINOVA_LIBRARY_ID`, `NINOVA_LIBRARY_PIN` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env NINOVA_USERNAME=<NINOVA_USERNAME> --env NINOVA_PASSWORD=<NINOVA_PASSWORD> --env NINOVA_MAIL_USERNAME=<NINOVA_MAIL_USERNAME> --env NINOVA_MAIL_PASSWORD=<NINOVA_MAIL_PASSWORD> --env NINOVA_LIBRARY_NAME=<NINOVA_LIBRARY_NAME> --transport stdio itu-mcp -- uvx itu-mcp
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from itu-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add itu-mcp --env NINOVA_USERNAME=<NINOVA_USERNAME> --env NINOVA_PASSWORD=<NINOVA_PASSWORD> --env NINOVA_MAIL_USERNAME=<NINOVA_MAIL_USERNAME> --env NINOVA_MAIL_PASSWORD=<NINOVA_MAIL_PASSWORD> --env NINOVA_LIBRARY_NAME=<NINOVA_LIBRARY_NAME> -- uvx itu-mcp
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from itu-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "itu-mcp": {
            "command": "uvx",
            "args": [
                "itu-mcp"
            ],
            "env": {
                "NINOVA_USERNAME": "<NINOVA_USERNAME>",
                "NINOVA_PASSWORD": "<NINOVA_PASSWORD>",
                "NINOVA_MAIL_USERNAME": "<NINOVA_MAIL_USERNAME>",
                "NINOVA_MAIL_PASSWORD": "<NINOVA_MAIL_PASSWORD>",
                "NINOVA_LIBRARY_NAME": "<NINOVA_LIBRARY_NAME>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from itu-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "itu-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "itu-mcp"
            ],
            "env": {
                "NINOVA_USERNAME": "<NINOVA_USERNAME>",
                "NINOVA_PASSWORD": "<NINOVA_PASSWORD>",
                "NINOVA_MAIL_USERNAME": "<NINOVA_MAIL_USERNAME>",
                "NINOVA_MAIL_PASSWORD": "<NINOVA_MAIL_PASSWORD>",
                "NINOVA_LIBRARY_NAME": "<NINOVA_LIBRARY_NAME>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from itu-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e NINOVA_USERNAME=<NINOVA_USERNAME> -e NINOVA_PASSWORD=<NINOVA_PASSWORD> -e NINOVA_MAIL_USERNAME=<NINOVA_MAIL_USERNAME> -e NINOVA_MAIL_PASSWORD=<NINOVA_MAIL_PASSWORD> -e NINOVA_LIBRARY_NAME=<NINOVA_LIBRARY_NAME> itu-mcp uvx itu-mcp
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from itu-mcp <команда>

## Когда брать
- проверить задания и сроки сдачи
- сверить оценки и прогресс выпуска
- найти курс, группу или свободное место
- посмотреть расписание и объявления
- найти книгу в каталоге библиотеки

## Примеры запросов агенту
- Покажи мои ближайшие задания в Ninova и сроки сдачи.
- Проверь оценки в OBS и посчитай итоговый GPA для заданных оценок.
- Найди свободные места в группах `MAT 210E` и добавь расписание в файл `.ics`.

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
