Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
İTÜ Ninova, OBS, Portal, kampüs servisleri ve kütüphane için MCP sunucusu
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
NINOVA_USERNAME, NINOVA_PASSWORD, NINOVA_MAIL_USERNAME, NINOVA_MAIL_PASSWORD, NINOVA_LIBRARY_NAME, NINOVA_LIBRARY_ID, NINOVA_LIBRARY_PINค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"itu": {
"command": "uvx",
"args": [
"itu-mcp"
],
"env": {
"NINOVA_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_MAIL_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_MAIL_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_NAME": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_ID": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_PIN": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add itu --env NINOVA_USERNAME='ใส่ค่าของคุณ' --env NINOVA_PASSWORD='ใส่ค่าของคุณ' --env NINOVA_MAIL_USERNAME='ใส่ค่าของคุณ' --env NINOVA_MAIL_PASSWORD='ใส่ค่าของคุณ' --env NINOVA_LIBRARY_NAME='ใส่ค่าของคุณ' --env NINOVA_LIBRARY_ID='ใส่ค่าของคุณ' --env NINOVA_LIBRARY_PIN='ใส่ค่าของคุณ' -- uvx itu-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"itu": {
"command": "uvx",
"args": [
"itu-mcp"
],
"env": {
"NINOVA_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_MAIL_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_MAIL_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_NAME": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_ID": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_PIN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"itu": {
"type": "stdio",
"command": "uvx",
"args": [
"itu-mcp"
],
"env": {
"NINOVA_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_MAIL_USERNAME": "ใส่ค่าของคุณ",
"NINOVA_MAIL_PASSWORD": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_NAME": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_ID": "ใส่ค่าของคุณ",
"NINOVA_LIBRARY_PIN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
NINOVA_USERNAME envNINOVA_MAIL_USERNAME envNINOVA_LIBRARY_NAME envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub yatuk ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: NINOVA_PASSWORD, NINOVA_MAIL_PASSWORD, NINOVA_LIBRARY_ID, NINOVA_LIBRARY_PIN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.4.0) เข้า registry 11 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Tethered Trust
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
İTÜ MCP
Ninova, OBS, Portal, kütüphane ve ders arşivini yapay zeka asistanına bağla. Sonra sadece sor.
Kur · Örnekler · Sık sorulanlar · Tüm araçlar
Sesli ve tam çözünürlüklü hali: docs/demo.mp4
İTÜ MCP is an unofficial, open source Model Context Protocol server for students of Istanbul Technical University (İTÜ). It runs on your own computer and lets an AI assistant such as Claude, ChatGPT, Cursor or Codex read İTÜ's systems for you: the Ninova LMS (courses, assignments, files, announcements), İTÜ Moodle and the physics, chemistry and math pool course sites (syllabi, guides, announcements), OBS (grades, schedule, registration status, transcript, graduation progress), the student Portal, the library catalog and a public archive of past course offerings.
pipx install itu-mcp, or add it to Claude Code as a plugin: claude plugin marketplace add yatuk/itu-mcp.The rest of this page is in Turkish. Setup: 3 adımda kur. Full tool list: docs/advanced.md. Security model: docs/security.md. This project is not affiliated with İTÜ.
Ödev için Ninova'ya, not için OBS'ye, yemek için Portal'a girmek yerine asistanına yazıyorsun, o da gerçek veriyi çekip cevaplıyor.
İTÜ MCP bilgisayarında çalışan küçük bir programdır. Claude, Cursor veya Codex gibi bir asistana İTÜ sistemlerini okuma yeteneği kazandırır. Kod yazmayı bilmen gerekmez, kurup soru sorman yeterli.
| Sen yazarsın | O bakar |
|---|---|
| "Bu hafta hangi ödevlerim var?" | Ninova |
| "Vize notlarım açıklandı mı?" | OBS |
| "Bugün yemekte ne var?" | Portal |
| "Bu dersi geçen yıl kim verdi, kaç kişi AA aldı?" | Ders arşivi |
| "Kütüphanede bu kitap var mı?" | Kütüphane kataloğu |
| "Ödevim için uyku ve akademik başarı üzerine makale bul" | Makale indeksi, kütüphane veritabanları |
| "Okunmamış maillerimi özetle" | İTÜ Mail |
| "FIZ 102E izlencesini ve duyurularını oku" | Moodle ve havuz siteleri |
| "Bu şubede yer açılınca haberim olsun" | Kontenjan takibi |
| "Ders programımı telefonumun takvimine ekle" | Takvim dosyası (.ics) |
Şifren bilgisayarından çıkmaz. Program yalnızca İTÜ'nün kendi sunucularıyla konuşur.
İstanbul Teknik Üniversitesi ile resmi bir bağlantısı yoktur.
Python 3.11 veya üstü gerekir. Yüklü değilse python.org adresinden kurabilirsin.
1. Programı kur
pipx install "itu-mcp[keyring]"
pipx yoksa pip install --user "itu-mcp[keyring]" da olur.
2. Giriş bilgilerini kaydet ve asistanına bağla
itu-mcp setup
itu-mcp connect
itu-mcp setup İTÜ e-postanı ve şifreni sorar. Şifre yazarken ekranda görünmez ve hiçbir dosyaya yazılmaz, işletim sisteminin anahtar zincirine kaydedilir (Windows Kimlik Bilgileri Yöneticisi, macOS Anahtar Zinciri, Linux'ta GNOME Keyring ya da KWallet).
itu-mcp connect sunucuyu Claude Desktop, Claude Code ve Cursor ayarlarına şifresiz olarak ekler. Diğer ayarlarına dokunmaz, dosyanın yedeğini alır. Ne yapacağını önce görmek istersen itu-mcp connect --dry-run yaz. Tek bir asistan için: itu-mcp connect claude-desktop (ya da claude-code, cursor).
Anahtar zinciri istemiyorum ya da Codex kullanıyorum
Şifreyi asistanın ayarına elle de yazabilirsin.
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 ve Cursor için hazır ayar dosyaları examples/ klasöründe. Adım adım anlatım: docs/installation.md.
3. Sor
Asistanı yeniden başlat ve yaz:
Ninova'daki derslerimi listele
Bir liste geldiyse kurulum tamam.
Çalışmadı, ne yapmalıyım?
Önce şunu çalıştır:
itu-mcp doctor
Her satır OK, UYARI ya da HATA ile başlar ve OK olmayan satırın altında çözümü yazar. Girişi de denemesi için itu-mcp doctor --online yaz.
ad.soyad@itu.edu.tr, yalnızca ad.soyad değil).pipx kurulumdan sonra yeni bir terminal ister.Şifre vermek istemiyor musun? Ders programı, final tarihleri, not dağılımları, ders arşivi, mekik saatleri ve kütüphane kataloğu gibi herkese açık bilgiler şifresiz de çalışır.
itu-mcp setupadımını atlayıp yalnızcaitu-mcp connectçalıştırman yeterli.
Aşağıdakiler Claude Code'a yazılmış örnek sorular. Sen kendi cümlelerinle sorabilirsin, hangi aracın çağrılacağını asistan seçer. Çıktılar örnektir, sende kendi verin görünür.
Ödev takibi
> Bu hafta hangi ödevlerimin teslimi var?
● itu · get_upcoming_deadlines
Bu hafta 2 teslimin var:
BLG 223E Ödev 3 Perşembe 23:59, 2 gün kaldı Henüz yüklenmemiş
MAT 210E Proje raporu Pazar 23:59, 5 gün kaldı Yüklendi
Dersi kim verdi, nasıl geçti?
> BLG 223E geçen güz nasıl geçmiş?
● itu · archive_grade_distribution
2025-2026 Güz, 176 öğrenci:
AA 9 CC+ 19 BA+ 12 CC 21 BB+ 18 FF 38
En kalabalık not FF (38 kişi). AA alan 9 kişi var.
Kayıt haftası
> 12469, 12554 ve 12583 CRN'leri
çakışıyor mu?
● itu · check_course_conflicts
1 çakışma buldum:
Salı 08:30-10:29 BLG 223E ile BLG 345E üst üste
12583 (BLG 422E) sorunsuz. BLG 345E için başka şube arayayım mı?
Ön şart kontrolü
> BLG 335E'yi bu dönem alabilir miyim?
● itu · explain_course_eligibility
Henüz alamazsın.
Gereken: BLG 223E (en az DD) Durumun: BLG 223E bu dönem kayıtlı, notu açıklanmamış
BLG 223E'yi geçersen gelecek dönem açılıyor.
Günlük işler
> Bugün yemekte ne var, mekik kaçta?
● itu · get_cafeteria_menu ● itu · get_shuttle_schedule
Öğle yemeği: Mercimek çorbası, tavuk sote, pirinç pilavı, sütlaç
Ayazağa'dan sonraki mekik 13:30.
Not ve ortalama
> Bu dönem hepsinden BB alırsam
ortalamam kaç olur?
● itu · obs_simulate_cumulative_gpa
Şu anki GANO: 2.08 Dönem tahmini: 3.00 Dönem sonu GANO: 2.74
Tekrar aldığın 2 ders eski notun yerine sayıldı, 1 ders yeni eklendi.
Bu bir tahmin, resmi ortalama OBS'de açıklanır.
Daha fazla fikir:
Asistanın / menüsünde hazır akışlar da var: weekly_briefing (haftalık özet), plan_next_term (gelecek dönem planı), registration_week (kayıt haftası kontrolü), check_course_eligibility, research_course ve gpa_scenario.
Şifrem nereye gidiyor?
Hiçbir yere. Program senin bilgisayarında çalışır ve şifreni yalnızca İTÜ'nün kendi giriş sayfasına gönderir, tıpkı tarayıcının yaptığı gibi. Arada bizim ya da başkasının bir sunucusu yoktur. Kod açık, istersen kendin bakabilirsin.
Bu resmi bir İTÜ uygulaması mı?
Hayır. Öğrenciler tarafından yazılmış açık kaynak bir projedir, İTÜ ile resmi bağlantısı yoktur. Yalnızca kendi hesabınla kullan.
Hesabımda bir şeyi değiştirebilir mi?
Neredeyse her şey yalnızca okur. İki istisna var ve ikisi de senin açık onayın olmadan çalışmaz:
İkisinde de, asistanın destekliyorsa, program göndermeden hemen önce sana doğrudan bir onay penceresi açar: hangi dosya, hangi ödev, hangi CRN'ler yazılacak, hangileri taslaktan çıkacak. Asistanın kendi kendine "onaylıyorum" demesi bu pencereyi atlatamaz. Onaylamazsan hiçbir şey gönderilmez.
Ders kaydı yapmaz, ders bırakmaz, mail göndermez.
Verdiği cevaba güvenebilir miyim?
Veriyi doğrudan İTÜ sistemlerinden çeker, uydurmaz. Yine de OBS bazı bilgileri hesaba göre farklı döndürebiliyor. Bir veri eksikse araç bunu açıkça söyler. Kayıt, mezuniyet ve not gibi önemli kararlarda son sözü her zaman OBS'nin kendi sayfası söyler.
Hangi asistanlarla çalışıyor?
MCP destekleyen her istemciyle: Claude Code, Claude Desktop, Cursor, Codex ve benzerleri. ChatGPT ya da Claude.ai gibi web arayüzleri için uzak sunucu kurulumu gerekir, anlatımı docs/advanced.md içinde.
Yer açılınca haber verebilir mi?
Kısmen. Dolu bir şubenin CRN'ini izleme listesine ekleyebilirsin (watch_course_sections), sonra "izlediğim şubelerde yer açıldı mı" diye sorduğunda son kontrolden bu yana ne değiştiğini söyler. Giriş gerektirmez.
Ama program arka planda çalışmaz ve kendiliğinden bildirim göndermez. Kontenjan yalnızca sen sorduğunda okunur. Düzenli takip istiyorsan asistanında birkaç dakikada bir bu soruyu soran zamanlanmış bir görev kurman gerekir.
Araç sayısı çok fazla, azaltabilir miyim?
Evet. Araçlar gruplara ayrılmış durumda
ตัดมาแค่ช่วงต้น อ่านต่อใน repo