Credential-based MCP server for ITU Ninova: read courses, announcements, files, assignments, grades, attendance, and deadlines from Claude, Cursor, Codex, and other MCP clients.
Project description
Ninova MCP
Connect your İTÜ Ninova account to AI assistants like Claude. Ask about your courses, announcements, assignments, grades, files, attendance, and upcoming deadlines in plain language — the assistant reads Ninova for you.
It logs in with your own İTÜ username and password, opens its own temporary Ninova session, and never touches your browser or sends your password anywhere except ninova.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."
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 ninova.itu.edu.tr. Nothing is uploaded to any third-party server, and it never reads your browser cookies. Details: docs/security.md.
What it can do
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.
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ninova_mcp-0.1.5.tar.gz.
File metadata
- Download URL: ninova_mcp-0.1.5.tar.gz
- Upload date:
- Size: 39.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39b4ded537c926230edae7545ae8c7ff18e68a39da4edbd5bbef399f54c21b6e
|
|
| MD5 |
671aabbfd08de14caa784202e81004ea
|
|
| BLAKE2b-256 |
45e3c114003ef3eb024d9d969166fc32235fd131ec2e4b2a5bf2ab87bd9174be
|
File details
Details for the file ninova_mcp-0.1.5-py3-none-any.whl.
File metadata
- Download URL: ninova_mcp-0.1.5-py3-none-any.whl
- Upload date:
- Size: 32.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cdc12b01c3bab6536814c11bf046c2e4ce2bb36ada8163fd305af0158382230
|
|
| MD5 |
dcfec5b855337e7bd508e0c1003617e0
|
|
| BLAKE2b-256 |
35f0de042ea113f48fc692e492b123b79d9e34e7ce8e0e2365a6b5dd423c8f27
|