İTÜ MCP について
İTÜ MCPは、イスタンブール工科大学の学生向けオープンソースMCPサーバーです。ローカルで動作し、Ninova、OBS、Portal、図書館、授業アーカイブなどを読み取ります。基本は読み取り専用で、一部の変更操作には確認が必要です。
主な機能
- 01Ninovaの授業と課題の読み取り
- 02OBSの成績、時間割、登録状況の確認
- 03Portal、図書館、授業アーカイブへのアクセス
- 04授業計画とGPAシナリオの計算
- 05メールと添付ファイルの読み取り
- 06ツールセット単位の機能選択
活用シーン
- 01今週の課題期限の整理
- 02授業の重複と履修資格の確認
- 03成績がGPAに与える影響の試算
- 04図書館の蔵書や学内シャトル時刻の検索
MCP 対応
ローカルで動作するMCPサーバーとして、MCP対応クライアントをİTÜの各システムに接続し、AIアシスタント向けの照会ツールを提供します。大半は読み取り専用で、課題のアップロードや登録下書きの保存には明示的な確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx itu-mcpNINOVA_USERNAMEİTÜ e-posta adresi ([email protected])NINOVA_PASSWORDシークレットİTÜ şifresiNINOVA_MAIL_USERNAMEOptional separate ITU Mail usernameNINOVA_MAIL_PASSWORDシークレットOptional separate ITU Mail passwordNINOVA_LIBRARY_NAMEKütüphane hesabındaki ad (hesap araçları için isteğe bağlı)NINOVA_LIBRARY_IDシークレットKütüphane üniversite numarası (hesap araçları için isteğe bağlı)NINOVA_LIBRARY_PINシークレットAyrı kütüphane PIN'i (hesap araçları için isteğe bağlı)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
111掲載時のツール一覧 · 1 日前に更新
このツールにパラメーターはありません。
詳細
İTÜ MCP
Ninova、OBS、Portal、図書館、授業アーカイブをAIアシスタントに接続しましょう。あとは質問するだけです。
インストール · 使用例 · よくある質問 · すべてのツール
音声付き・フル解像度版:docs/demo.mp4
英語で読む
İTÜ MCP は、イスタンブール工科大学(İTÜ)の学生向けの、非公式なオープンソースの Model Context Protocol サーバーです。お使いのコンピューター上で動作し、Claude、ChatGPT、Cursor、Codex などの AI アシスタントが、İTÜ のシステム(Ninova LMS(授業、課題、ファイル、お知らせ)、İTÜ Moodle と物理・化学・数学の共通授業サイト(シラバス、ガイド、お知らせ)、OBS(成績、時間割、履修登録状況、成績証明書、卒業要件の達成状況)、学生向け Portal、図書館カタログ、過去の授業開講情報の公開アーカイブ)を参照できるようにします。
- 普段の言葉で質問できます。「今週の課題は何?」「全部 BB だったら GPA はいくつ?」「MAT 210E でまだ空きのあるクラスはどれ?」
- デフォルトは読み取り専用です。何かを変更する2つの操作(課題のアップロード、履修登録の下書き保存)では、事前に確認を求めます。
- İTÜ のパスワードはお使いのコンピューターから外に出ず、İTÜ 独自のログインページにのみ送信されます。
pipx install itu-mcpでインストールするか、プラグインとして Claude Code に追加できます:claude plugin marketplace add yatuk/itu-mcp。
このページの残りはトルコ語です。セットアップ:3 adımda kur。ツール一覧:docs/advanced.md。セキュリティモデル:docs/security.md。このプロジェクトは İTÜ とは提携していません。
何ができますか?
課題のために Ninova を、成績のために OBS を、食事のために Portal を開く代わりに、アシスタントに入力するだけで、実際のデータを取得して回答してくれます。
İTÜ MCP は、お使いのコンピューター上で動作する小さなプログラムです。Claude、Cursor、Codex などのアシスタントに、İTÜ のシステムを読み取る機能を与えます。プログラミングの知識は不要です。インストールして質問するだけです。
| 入力する内容 | 参照先 |
|---|---|
| 「今週の課題は何?」 | Ninova |
| 「中間試験の成績は発表された?」 | OBS |
| 「今日の食事のメニューは?」 | Portal |
| 「この授業は去年誰が担当して、何人が AA を取った?」 | 授業アーカイブ |
| 「図書館にこの本はある?」 | 図書館カタログ |
| 「睡眠と学業成績について、課題に使える論文を探して」 | 論文インデックス、図書館データベース |
| 「未読メールを要約して」 | İTÜ Mail |
| 「FIZ 102E のシラバスとお知らせを読んで」 | Moodle と共通授業サイト |
| 「このクラスに空きができたら知らせて」 | 定員の監視 |
| 「時間割をスマートフォンのカレンダーに追加して」 | カレンダーファイル(.ics) |
パスワードがお使いのコンピューターの外に出ることはありません。プログラムは İTÜ 独自のサーバーとのみ通信します。 イスタンブール工科大学とは公式な関係はありません。
3ステップでインストール
Python 3.11以上が必要です。インストールされていない場合は、python.orgからインストールしてください。
1. プログラムをインストール
pipx install "itu-mcp[keyring]"
pipxがない場合は、pip install --user "itu-mcp[keyring]"でも構いません。
2. ログイン情報を保存して、アシスタントに接続
itu-mcp setup
itu-mcp connect
itu-mcp setupは、ITÜのメールアドレスとパスワードを尋ねます。パスワードを入力しても画面には表示されず、ファイルにも書き込まれません。OSのキーチェーンに保存されます(Windows資格情報マネージャー、macOSキーチェーン、LinuxのGNOME KeyringまたはKWallet)。
itu-mcp connectは、パスワードを含めずにサーバーをClaude Desktop、Claude Code、Cursorの設定に追加します。他の設定には触れず、ファイルのバックアップも作成します。実行内容を先に確認したい場合は、itu-mcp connect --dry-runを実行してください。特定のアシスタントだけに接続する場合は、itu-mcp connect claude-desktop(またはclaude-code、cursor)を実行してください。
キーチェーンを使いたくない、またはCodexを使っている場合
パスワードはアシスタントの設定に手動で入力することもできます。
Claude Code
claude mcp add itu itu-mcp -e [email protected] -e NINOVA_PASSWORD=sifren
Codex CLI
codex mcp add itu --env [email protected] --env NINOVA_PASSWORD=sifren -- itu-mcp
Claude DesktopとCursor用の設定ファイルのテンプレートはexamples/フォルダーにあります。手順については、docs/installation.mdをご覧ください。
3. 質問する
アシスタントを再起動して、次のように入力してください。
Ninova'daki derslerimi listele
一覧が表示されたら、セットアップは完了です。
動作しない場合は、どうすればよいですか?
まず、次を実行してください。
itu-mcp doctor
各行はOK、警告、エラーのいずれかで始まり、OK以外の行の下に解決方法が表示されます。ログインも確認するには、itu-mcp doctor --onlineを実行してください。
- ログインエラーが発生する場合は、ユーザー名にメールアドレス全体を入力していることを確認してください(
ad.soyadだけではなく、[email protected])。 - コマンドが見つからない場合は、ターミナルを閉じて再度開いてください。
pipxのインストール後は、新しいターミナルを開く必要があります。 - アシスタントにツールが表示されない場合は、アシスタントを完全に終了してから再起動してください。
- それでも解決しない場合は、問題を報告し、画面の出力を添付してください。パスワードは記載しないでください。
パスワードを入力したくない場合は? 時間割、期末試験の日程、成績の分布、講義アーカイブ、シャトルの時刻表、図書館のカタログなど、公開情報はパスワードなしでも利用できます。
itu-mcp setupを省略して、itu-mcp connectだけを実行してください。
どんなことを質問できますか?
以下はClaude Codeに入力する質問の例です。自分の言葉で質問できます。どのツールを呼び出すかはアシスタントが選択します。出力は例であり、実際にはご自身のデータが表示されます。
|
課題の確認
|
誰が講義を担当し、どんな評価だったか
|
|
履修登録期間
|
履修条件の確認
|
|
日々の作業
|
成績と平均点
|
ほかにも、次のような質問ができます。
- 「EEF 211Eのクラスファイルにある最新のPDFを要約して。」
- 「担当アドバイザーは誰?インターンシップの状況はどうなっている?」
- 「成績証明書をダウンロードして。」
- 「BBB棟に今、空いている教室はある?」
- 「BLG 223Eに合格したら、どの科目を履修できる?」
- 「卒業までにあと何科目必要?次の学期は何を履修すればいい?」
- 「図書館にIntroduction to Algorithmsはある?」
- 「未読の最新メールを一覧にして、添付PDFを要約して。」
アシスタントの/メニューには、weekly_briefing(週次概要)、plan_next_term(次学期の計画)、registration_week(履修登録期間の確認)、check_course_eligibility、research_course、gpa_scenarioなどの既定のワークフローもあります。
よくある質問
パスワードはどこに送信されますか?
どこにも送信されません。プログラムはお使いのコンピューター上で動作し、ブラウザーと同じように、パスワードをİTÜのログインページにだけ送信します。間に当社や第三者のサーバーはありません。コードは公開されているので、ご自身で確認できます。
これはİTÜの公式アプリですか?
いいえ。学生が作成したオープンソースプロジェクトで、İTÜとの公式な関係はありません。ご自身のアカウントでのみご利用ください。
アカウントの情報を変更することはありますか?
ほとんどの機能は読み取り専用です。例外は2つあり、どちらも明示的に承認しない限り実行されません。
- 課題のアップロード。 アップロード先と内容を事前に表示し、承認後にアップロードします。
- 履修登録の下書き保存。 デフォルトでは無効です。有効にしても、下書きから授業が削除される場合は処理を停止し、確認を求めます。
どちらの場合も、アシスタントが対応していれば、プログラムが送信する直前に、どのファイルをどの課題に送るか、どのCRNを入力するか、どのCRNを下書きから削除するかを示す確認ウィンドウが直接表示されます。アシスタントが独自に「承認します」と言っても、このウィンドウを回避することはできません。承認しなければ、何も送信されません。
履修登録や履修取消、メール送信は行いません。
回答を信頼できますか?
情報はİTÜのシステムから直接取得し、作り出すことはありません。ただし、OBSがアカウントによって異なる情報を返す場合があります。情報が不足している場合は、ツールがその旨を明確に伝えます。履修登録、卒業、成績などの重要な判断では、必ずOBSの公式ページで最終確認してください。
どのアシスタントで使えますか?
MCPに対応するすべてのクライアントで利用できます。Claude Code、Claude Desktop、Cursor、Codexなどが対象です。ChatGPTやClaude.aiなどのウェブインターフェースではリモートサーバーのセットアップが必要です。手順はdocs/advanced.mdに記載されています。
空きが出たら通知してもらえますか?
一部対応しています。満席のクラスのCRNをウォッチリストに追加(watch_course_sections)すると、「ウォッチしているクラスに空きが出た?」と尋ねた際に、前回の確認以降の変更を知らせます。ログインは不要です。
ただし、プログラムはバックグラウンドで動作せず、自動で通知を送ることもありません。空き状況は、質問したときにのみ確認されます。定期的に確認したい場合は、アシスタントで数分ごとにこの質問をするスケジュールタスクを設定してください。
ツールが多すぎます。減らせますか?
はい。ツールはグループに分かれており、各ツールの説明は会話の開始時にアシスタントへ読み込まれます。使用しないグループを無効にすると、アシスタントが適切なツールを選びやすくなります。
NINOVA_TOOLSETS=ninova,obs,archive # yalnızca bu gruplar açık olsun
NINOVA_DISABLED_TOOLSETS=library,mail # ya da: bunlar dışında her şey açık olsun
グループ:core、ninova、files、obs、registration、portal、planning、public、campus、library、moodle、archive、mail。どちらも指定しない場合は、すべて有効になります。各グループに含まれる内容は、itu-mcp --list-toolsetsで確認できます。
有料ですか?
いいえ。MITライセンスのもとで提供される完全無料のソフトウェアです。ご利用のアシスタントに料金がかかる場合は、その料金のみ適用されます。
仕組み
graph LR
istemci["Claude, Cursor, Codex"] -->|"MCP"| sunucu["İTÜ MCP"]
sunucu --> ninova["Ninova"]
sunucu --> obs["OBS"]
sunucu --> portal["Portal"]
sunucu --> kutuphane["Kütüphane"]
sunucu --> arsiv["Ders Arşivi"]
sunucu --> mail["İTÜ Mail"]
アシスタントが質問を受け取ると、İTÜ MCPの適切なツールを呼び出します。ツールが該当するİTÜシステムにアクセスし、情報を整理して返すと、アシスタントがその内容を説明します。NinovaとOBSでは同じİTÜログインを使用します。パスワードが不要なツールは、パスワードを一切使用しません。
すべてのツールを表示
| Ninova giriş gerekir | OBS ve Portal giriş gerekir | Herkese açık giriş gerekmez | Planlama ve kütüphane karma | Arşiv giriş gerekmez |
auth_status · list_coursesget_course_* · sync_all_coursesget_upcoming_deadlines · search_contentexport_table · read_resource_text · submit_assignment
|
obs_auth_status · obs_get_profileobs_list_registered_coursesobs_get_registration_draft · obs_save_registration_draftobs_get_elective_group · obs_validate_registration_planobs_get_course_grades · obs_get_attendanceobs_get_advisor · obs_download_transcriptget_cafeteria_menu · obs_get_notificationsobs_get_help_tickets · get_help_ticket
|
get_public_course_schedule · get_public_exam_scheduleobs_get_grade_distributionsearch_itu_directory · search_campus_locationsget_shuttle_schedule · get_sports_facility_hoursget_itu_announcements · get_academic_calendarwatch_course_sections · check_watched_course_sectionsexport_course_schedule_ics · export_exam_schedule_ics
|
obs_calculate_gpa · obs_simulate_cumulative_gpa · calculate_target_gpaestimate_relative_grade · check_course_conflictsfind_open_course_sections · find_empty_classroomsbuild_degree_plan · library_*moodle_* · pool_*search_articles · proquest_search
|
archive_who_taught · archive_course_historyarchive_fill_rate · archive_term_sectionsarchive_search_courses · plan_remaining_coursesarchive_grade_distribution · archive_course_catalogarchive_course_unlocks · archive_search_sectionsarchive_exam_schedule · archive_status
|
İTÜ Mail (salt okunur): mail_status · mail_list_inbox · mail_get_message · mail_get_attachment | ||||
Her aracın ne yaptığı, parametreleri ve sınırları: docs/advanced.md. Kayıt planlama araçları için docs/registration-planning.md, not dağılımları için docs/grade-distribution.md.
Ayarlar (isteğe bağlı)
Çoğu kişinin hiçbir ayara dokunması gerekmez. İstersen şunları ortam değişkeni olarak verebilirsin:
NINOVA_SESSION_PERSIST=1 # girişi hatırla (varsayılan açık)
NINOVA_ALLOW_UPLOADS=1 # ödev yüklemeye izin ver (0 yaparsan kapanır)
NINOVA_OBS_REGISTRATION_WRITES=1 # kayıt taslağı kaydetmeyi aç (varsayılan kapalı)
NINOVA_REQUIRE_ELICITATION=1 # onay penceresi gösteremeyen asistanlarda yazma işlemini reddet
NINOVA_ALLOW_SENSITIVE_OUTPUT=1 # TCKN, telefon, adres ve adların gizlenmeden dönmesine izin ver (varsayılan kapalı)
NINOVA_EXTRA_READ_DIRS=... # asistanın okuyabileceği ek klasörler (tam yol)
NINOVA_EXTRA_DOWNLOAD_DIRS=... # indirmelerin yazılabileceği ek klasörler (tam yol)
NINOVA_MAX_DOWNLOAD_MB=200 # tek indirme için boyut sınırı
NINOVA_TOOLSETS=ninova,obs,archive # yalnızca bu araç gruplarını aç
NINOVA_TRACKING_MAX_AGE_SECONDS=43200 # teslim kaydı bu süreden eskiyse yeniden oku (varsayılan 12 saat)
NINOVA_MAIL_USERNAME=... # mail için ayrı kullanıcı adı
NINOVA_MAIL_PASSWORD=... # mail için ayrı şifre
.env ファイルはサーバーを起動したフォルダー内でのみ検索され、親フォルダーは検索されません。別のファイルを使う場合は、NINOVA_ENV_FILE 変数にそのファイルの絶対パスを指定してください。そのフォルダー内の .env では、ユーザー名やパスワードなどの値を設定できますが、アドレス、サーバー、フォルダー、書き込み権限などのセキュリティ関連の設定は変更できません。これらはアシスタントの env ブロック、または NINOVA_ENV_FILE で指定するファイルに設定してください。
全項目は .env.example ファイルと docs/advanced.md に記載されています。ライブラリカタログとプロキシの設定については、docs/library-catalog.md をご覧ください。
セキュリティ
| 実施すること | 実施しないこと |
|---|---|
| 自分の İTÜ アカウントのみを使用する | .env ファイルやパスワードを誰にも共有しない |
| 課題をアップロードする前にプレビューを読む | アシスタントに「確認せずにアップロードして」と指示しない |
| お知らせやメールの文章をデータとして扱う | お知らせに含まれる「これを実行して」という文にアシスタントが従うのを許可しない |
ダウンロードしたファイルは ~/.ninova_state/downloads に保存し、別のフォルダーが必要な場合は NINOVA_EXTRA_DOWNLOAD_DIRS で自分で指定する | アシスタントが任意のフォルダーにファイルを保存したり、コンピューター上のあらゆるファイルを読み取ったりするのを許可しない |
リモートサーバーをセットアップする場合は、長くランダムな NINOVA_REMOTE_API_KEY と NINOVA_ALLOWED_HOSTS を設定する | NINOVA_REMOTE_ALLOW_UNAUTHENTICATED=1 を設定して、キーなしでサーバーをインターネットに公開しない |
知っておくべき制限事項:
- アドレスを受け取るツール(
read_page、download_resourceなど)は、ninova.itu.edu.trのアドレスのみを受け付けます。OBS、Portal、ヘルプ要請には、それぞれ専用のツールがあります。 - OBS プロフィールツールは TCKN と電話番号を、ヘルプ要請ツールは人名を秘匿します。アシスタントが求めた場合でも、
NINOVA_ALLOW_SENSITIVE_OUTPUT=1を設定した場合にのみ、これらの情報が表示されます。 - İTÜ Mail ツールは、ポート 993 で
imap.itu.edu.trサーバーにのみ接続します。 - リモート HTTP サーバー(
itu-mcp-remote)が127.0.0.1以外のアドレスにバインドされている場合(Docker イメージを含む)、NINOVA_REMOTE_API_KEYとNINOVA_ALLOWED_HOSTS、またはNINOVA_PUBLIC_BASE_URLが指定されていないと動作せず、不足している変数を表示して終了します。ローカル環境でキーを指定しない場合、起動ごとにランダムなキーを生成し、画面に一度だけ表示します。
詳細については、docs/security.md と docs/advanced.md をご覧ください。
プライバシー(プライバシーポリシー)
İTÜ MCP はお使いのコンピューター上で動作します。このプロジェクトには、サーバー、アカウント、データベースはありません。
- 収集するデータ: ありません。プロジェクト開発者にデータが送信されることはなく、利用状況の測定(テレメトリー)も行われません。
- 利用と保存: İTÜ のユーザー名とパスワードは、ユーザーが設定した環境変数からのみ読み取られ、İTÜ のログインページにのみ送信されます。セッション Cookie、トラッキング記録、ダウンロードしたファイルは、お使いのコンピューターの
~/.ninova_stateフォルダーに保存されます。 - 第三者との共有: ツールが読み取ったデータは、回答として、利用している AI アシスタント(Claude、ChatGPT など)に渡されます。そのデータの取り扱いは、アシスタントの提供元のポリシーに従います。サーバーがリクエストを送信するのは、İTÜ のサイトと、一般公開されている 2 つのデータソースのみです。すなわち、授業アーカイブ(
itu-ders.com)と、前提条件の比較に使用するコミュニティデータセット(raw.githubusercontent.com/itu-helper)です。この 2 つにはアカウントに関する情報は一切送信されず、授業コードのみが照会されます。 - 保存期間: ローカルファイルは、削除するまで保存されます。
~/.ninova_stateフォルダーを削除すると、すべて削除されます。 - お問い合わせ: GitHub で問題を報告するか、セキュリティ関連の内容については非公開で報告してください。
要約(英語):サーバーはローカルで動作し、データを収集しません。İTÜ の認証情報は İTÜ のログインページにのみ送信され、セッション Cookie とダウンロードファイルはお使いのコンピューターの ~/.ninova_state にのみ保存され、テレメトリーも行われません。ツールの結果は、利用する AI アシスタントに渡されます。
開発
貢献を歓迎します。バグを見つけた場合やアイデアがある場合は、issue を作成してください。コードを送る前に、貢献ガイドをご確認ください。
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 pytest tests/ -q
python -m ruff check src/ tests/
| リソース | リンク |
|---|---|
| インストール | docs/installation.md |
| すべてのツールと高度な使い方 | docs/advanced.md |
| セキュリティ | docs/security.md |
| 貢献ガイド | CONTRIBUTING.md |
| 変更履歴 | CHANGELOG.md |
謝辞
このプロジェクトは、Hikmet Gultekinが作成したオリジナルの**ninova-mcp**を基にしています。これは、認証情報を用いて動作する初のオープンソース İTÜ Ninova MCP サーバーです。
tzi4は、読み取り専用の İTÜ Mail ツール、履修登録計画と成績分布のツール、ヘルプリクエストの詳細、および OBS 側の多数の修正を貢献してくださいました。ありがとうございます。
ライセンス
MIT。İstanbul Teknik Üniversitesi との公式な関係はありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。