Skip to main content
Glama
yatuk
by yatuk

İTÜ MCP nedir?

İTÜ MCP bilgisayarında çalışır ve kendi İTÜ hesabını yapay zeka asistanlarına bağlar. Kimlik bilgilerinle (genelde ad@itu.edu.tr) giriş yapar, Ninova ve OBS üzerinden veri okur, Model Context Protocol üzerinden yapılandırılmış araçlar sunar.

İhtiyacın

İTÜ MCP cevabı

"Bu hafta hangi ödevlerin teslimi var?"

Ninova ödev ve teslim tarihi araçları

"X dersinin notları / yoklaması?"

OBS ara not, harf notu ve yoklama

"Transkript / danışman / staj?"

OBS profil, danışman, staj, transkript PDF

"PDF özetle"

İndirme + read_resource_text (PDF/DOCX)

"Ödev yükle"

İsteğe bağlı yükleme, confirm=true şart

Önce yerel. Şifren cihazda kalır; yalnızca İTÜ giriş / Ninova / OBS adreslerine gönderilir. Üçüncü taraf bir sunucuya kimlik bilgisi depolanmaz.

İTÜ ile resmi bağlantısı yoktur. Yalnızca kendi hesabınla kullan.


Related MCP server: Ninova MCP

Örnekler

Claude Desktop üzerinden doğal dilde soru sorma örnekleri:


Mimari

flowchart LR
    subgraph istemciler["MCP İstemcileri"]
        claude["Claude Desktop"]
        claude_code["Claude Code"]
        cursor["Cursor"]
        codex["Codex"]
    end

    subgraph sunucu["itu-mcp (Python 3.11+)"]
        mcp["MCP Sunucu<br/>(FastMCP · stdio / HTTP)"]
        ninova_client["NinovaClient<br/>SSO · HTML parse"]
        obs_client["ObsClient<br/>JWT · JSON API"]
        obs_public["ObsPublicClient<br/>kimliksiz · HTML/JSON"]
        state["Durum<br/>çerez · anlık görüntü · indirme"]
    end

    subgraph itu["İTÜ Sunucuları"]
        ninova["ninova.itu.edu.tr<br/>(LMS · HTML)"]
        giris["girisv3.itu.edu.tr<br/>(İTÜ SSO giriş)"]
        obs["obs.itu.edu.tr<br/>(öğrenci JSON API)"]
        obs_pub["obs.itu.edu.tr/public<br/>(açık katalog · program)"]
    end

    istemciler -->|"MCP araçları"| mcp
    mcp --> ninova_client
    mcp --> obs_client
    mcp --> obs_public
    ninova_client --> giris
    ninova_client --> ninova
    obs_client --> giris
    obs_client --> obs
    obs_public --> obs_pub
    ninova_client --> state
    obs_client --> state
    obs_public --> state

Katman

Rol

MCP sunucu

Araç listesi, sade yanıtlar, CLI (--check-auth, --list-tools)

Ninova istemcisi

Oturum + HTML ayrıştırma (duyuru, dosya, ödev, yükleme formu)

OBS istemcisi

SSO → /ogrenci/auth/jwt/api/ogrenci/...

OBS public istemcisi

Kimliksiz → /public/DersProgram, /public/DersBilgi, /public/GenelTanimlamalar/...

Durum

İsteğe bağlı çerez önbelleği, izleme anlık görüntüleri, indirmeler (~/.ninova_state)


Hızlı başlangıç

1. Kurulum

pipx install itu-mcp
# veya: pip install --user itu-mcp
# kaynaktan:
#   git clone https://github.com/yatuk/itu-mcp.git
#   cd itu-mcp && pip install -e .

2. Kimlik bilgileri

cp .env.example .env
# NINOVA_USERNAME=ad.soyad@itu.edu.tr
# NINOVA_PASSWORD=********

Kullanıcı adı genelde İTÜ e-posta adresindir; yalnızca yerel kısım değil.

3. Duman testi

itu-mcp --version
itu-mcp --check-auth
itu-mcp --list-tools

4. MCP istemcisini bağla

Claude Code

claude mcp add itu itu-mcp \
  -e NINOVA_USERNAME=ad.soyad@itu.edu.tr \
  -e NINOVA_PASSWORD=sifren

Codex CLI

codex mcp add itu \
  --env NINOVA_USERNAME=ad.soyad@itu.edu.tr \
  --env NINOVA_PASSWORD=sifren \
  -- itu-mcp

Claude Desktop / Cursor: docs/installation.md ve examples/ klasörüne bak.

Bitti. İstemciyi yeniden başlat ve sor: "Ninova'daki derslerimi listele" veya "OBS'te bu dönem kayıtlı derslerim?"


Ne sorabilirsin?

  • "Bu hafta hangi ödevlerimin teslimi var?"

  • "EEF 211E sınıf dosyalarındaki PDF'i oku."

  • "OBS'te 2025-2026 Bahar kayıtlı derslerim neler?"

  • "CEN 354E ara notlarım?"

  • "Danışmanım kim? Staj bilgilerimi göster."

  • "Transkript PDF indir."

  • "BLG bölümünde bu dönem hangi dersler açılmış, kontenjan durumu ne?"

  • "BLG 223E'yi almak için önce hangi dersleri almam lazım?"

Kimlik gerektirmez — .env olmadan da çalışır.


Araç haritası

Tam araç listesi, Docker, uzak HTTP, ortam değişkenleri: docs/advanced.md.


Güvenlik

Yap

Yapma

Yalnızca kendi İTÜ hesabını kullan

.env veya çerezleri commit etme

Yerel stdio MCP tercih et

Uzak MCP URL / API anahtarını paylaşma

submit_assignment yalnızca confirm=true ile

Önizlemeyi okumadan ödev yükleme

Uzak kurulumda NINOVA_REMOTE_API_KEY kullan

Gizli path ve anahtar olmadan public açma

Ayrıntılar: docs/security.md.

OBS profil araçları TCKN / telefonu varsayılan olarak gizler (include_sensitive=true ile açılır).


Yapılandırma (isteğe bağlı)

export NINOVA_COURSE_CACHE_TTL_SECONDS=60
export NINOVA_REQUEST_DELAY_MS=120
export NINOVA_SESSION_PERSIST=1
export NINOVA_COMPACT_DEFAULT=0
export NINOVA_ALLOW_UPLOADS=1
export NINOVA_OBS_BASE_URL=https://obs.itu.edu.tr
export NINOVA_OBS_PUBLIC_CACHE_TTL_SECONDS=3600
export NINOVA_PUBLIC_SCHEDULE_CACHE_TTL_SECONDS=60

.env.example ve docs/advanced.md dosyalarına bak.


Geliştirme

git clone https://github.com/yatuk/itu-mcp.git
cd itu-mcp
python -m venv .venv
# Windows: .venv\Scripts\activate
source .venv/bin/activate
pip install -e ".[playwright]"
python -m unittest discover -s tests -v

Bağlantılar

Kaynak

URL

Kurulum

docs/installation.md

Gelişmiş / araçlar

docs/advanced.md

Güvenlik

docs/security.md

Değişiklik günlüğü

CHANGELOG.md

Sorunlar

github.com/yatuk/itu-mcp/issues


Teşekkür

Bu proje, Hikmet Gultekin tarafından yazılan orijinal ninova-mcp çalışmasının üzerine kurulmuştur. İlk açık kaynak, kimlik bilgisiyle çalışan İTÜ Ninova MCP sunucusudur (LMS giriş, HTML ayrıştırma, izleme, .mcpb paketleme).

İTÜ MCP bu temeli genişletir: OBS öğrenci portalı API'leri, PDF metin okuma, güvenli ödev yükleme, oturum kalıcılığı, uzak API anahtarı ve bu depo altında yeniden paketleme.


Lisans

MIT. İstanbul Teknik Üniversitesi ile resmi bağlantısı yoktur.

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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