Ninova MCP
Connect your İTÜ Ninova and OBS accounts to AI assistants like Claude. Ask about your courses, announcements, assignments, grades, files, attendance, and upcoming deadlines — and about your transcript, GPA, what is left until graduation, and which courses you can register for next term — in plain language. The assistant reads Ninova and OBS for you.
It logs in with your own İTÜ username and password, opens its own temporary sessions, and never touches your browser or sends your password anywhere except İTÜ's own login (ninova.itu.edu.tr and obs.itu.edu.tr through girisv3.itu.edu.tr).
What you can ask
- "Bu hafta hangi ödevlerimin teslimi var?"
- "X dersinde yeni duyuru veya ders dosyası var mı?"
- "Notlarımı ve ağırlıklı ortalamamı göster."
- "Tüm derslerimdeki son değişiklikleri özetle."
- "Mezuniyete kaç kredim kaldı, hangi dersler eksik?"
- "Gelecek dönem hangi dersleri alabilirim? Önşartlarım tutuyor mu?"
- "Şu CRN'lerle çakışmasız bir program çıkar."
- "Veritabanı dersinin şubelerini hocametre puanlarına göre karşılaştır."
- "Bu dönem hepsinden BB alırsam ortalamam ne olur?"
Install — pick one
1. Easiest: Claude Desktop, one click (no Python, no terminal)
- Download your platform's file from the latest release:
- macOS (Apple Silicon / M1–M4):
ninova-mcp-*-darwin-arm64.mcpb - Windows:
ninova-mcp-*-windows-amd64.mcpb
- macOS (Apple Silicon / M1–M4):
- Double-click the file. Claude Desktop opens an install dialog.
- Enter your İTÜ username and password, click Install. Done.
The bundle ships its own Python runtime, so there is nothing else to install. Your password is stored in your operating system's secure keychain.
2. Let your AI set it up (Claude Code, Cursor, Codex, and others)
Paste this to your AI assistant — it installs the server and configures your client end-to-end:
Install the ninova-mcp MCP server (PyPI: ninova-mcp, https://github.com/hikmedit/ninova-mcp).
1. Install it: `pipx install ninova-mcp` (or `pip install --user ninova-mcp`) — both put a
`ninova-mcp` command on my PATH.
2. Register a `ninova` MCP server (command `ninova-mcp`, env NINOVA_USERNAME and
NINOVA_PASSWORD) in whichever MCP client I use — detect it and edit the right config,
merging into any existing servers without overwriting them. Leave the credentials as
placeholders unless I already pasted them here.
3. Tell me to fill in my İTÜ credentials, restart the client, and call the `auth_status`
tool to verify.
3. One command (if you prefer the terminal)
After pipx install ninova-mcp:
# Claude Code
claude mcp add ninova ninova-mcp -e NINOVA_USERNAME=itu_username -e NINOVA_PASSWORD=itu_password
# Codex CLI
codex mcp add ninova --env NINOVA_USERNAME=itu_username --env NINOVA_PASSWORD=itu_password -- ninova-mcp
Other clients (Claude Desktop config file, Cursor, manual TOML) are in the installation guide.
To confirm it works, ask the assistant to run the auth_status tool.
Is it safe?
Yes — it runs entirely on your machine. Your İTÜ password stays local (in your OS keychain when installed as the extension) and is only ever sent to İTÜ's own single sign-on for ninova.itu.edu.tr and obs.itu.edu.tr. Nothing is uploaded to any third-party server, and it never reads your browser cookies. Everything is read-only: it cannot register you for a course, drop one, or change anything in OBS. The instructor ratings come from notkutusu.com's public "hocametre" pages, which need no login, so nothing about you is sent there either. Details: docs/security.md.
What it can do
Ninova. Reads your dashboard and course list, announcements, class and lesson files, assignments (with detail pages and deadlines), grades, message boards, attendance, and remote-learning sessions — plus a combined per-course overview. It can also sync all courses, track what changed since last time, and list upcoming deadlines.
OBS. Reads your profile, semester history and GPA, final and in-term grades, the full course history, registered courses, weekly and exam schedules, internships, announcements, "Mezuniyetime Ne Kaldı" (graduation progress), and the official transcript PDF.
Course-registration planning. Reads the public OBS course schedule of the upcoming term (every section with CRN, day/time, instructor, room, quota, and remaining seats — no login needed), evaluates each course's published prerequisites against your passed courses through your cohort's course-plan equivalences (so renamed course codes are matched correctly), lists which required and elective courses you can actually take this term, checks a candidate CRN set for time clashes, and projects your GPA under hypothetical grades.
Hocametre. Looks up instructors on notkutusu.com's anonymous student ratings (note sharing, helpfulness, homework load, attendance strictness, teaching) and attaches them to the sections of a course so you can compare instructors before picking a CRN. Duplicate profiles of the same instructor are merged with vote-weighted averages.
Full tool reference and self-hosting (remote HTTP server for ChatGPT / Claude.ai connectors, Docker, environment variables, running from source): docs/advanced.md.
License
MIT. Not affiliated with İTÜ; use with your own account.
Metadata
Release files for ninova-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ninova_mcp-0.2.0.tar.gz | 87.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ninova_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 162.0 kB
Release files / ninova_mcp-0.2.0.tar.gz
| Download URL | ninova_mcp-0.2.0.tar.gz |
|---|---|
| Size | 87.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be1b2b8a97c61141019d2df4d11fee6fc641e34d7a175ef87ffee5fd1199ae65
|
|
BLAKE2b-256 checksum How to use checksums |
9108a638302c16172be05c35bcfc630870ad462cd7454123aaa08566c3501cdc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / ninova_mcp-0.2.0-py3-none-any.whl
| Download URL | ninova_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 74.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cd9e96c00a0794840f632605f87270096e94cef05f88ca97250ad8972385f140
|
|
BLAKE2b-256 checksum How to use checksums |
65e8eb65b310996f13eb35901d52c960495113eb51f85b4d0114ffa431de51a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for ninova-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.