Skip to main content
Glama

iGuat-MCP

i桂航 キャンパスデータ向けの読み取り専用 MCP(Model Context Protocol)サービスです。このプロジェクトは Python、FastMCP、Streamable HTTP をベースに、時間割・クラス・キャンパスの照会を AI クライアントから呼び出せる標準ツールとして提供します。

このプロジェクトは照会機能のみを提供し、WeChat ミニプログラムや上流の教务データを変更することはありません。

機能

  • 学期リスト全体、現在の学期、次の学期を取得

  • 専攻・学年・クラスのキーワードによるクラス検索

  • 指定したクラス・学期・週次の時間割を照会

  • 指定した人物の時間割を照会し、返却前に身分フィールドを除去

  • 専攻情報に基づいて所属キャンパスを推定

  • 内蔵 TTL 時間割キャッシュ、同時実行制限、ヘルスチェック

  • Bearer API Key による MCP および管理インターフェースの保護

  • 管理インターフェースによる上流トークンのホットアップデートに対応

  • Docker、環境変数、Docker Secrets によるデプロイに対応

Related MCP server: sanxiao-mcp

MCP ツール

ツール

説明

get_xnxq

学期リスト全体を取得。現在および次の学期を含む

get_current_term

現在の学期を取得

search_classes

条件によるクラス検索

get_class_schedule

指定したクラス・学期・週次の時間割を取得

get_ta_schedule

氏名または学籍番号で時間割を照会。レスポンスから身分フィールドを除去

infer_major_campus

専攻情報に基づいてキャンパスを推定

技術スタック

  • Python 3.11+

  • MCP / FastMCP

  • HTTPX

  • Uvicorn

  • Pytest

  • Docker

クイックスタート

ローカル実行

git clone https://github.com/Strayed2SE/iGuat-MCP.git
cd iGuat-MCP

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -e ".[test]"

cp .env.example .env
# 按下方说明配置环境变量后启动
python server.py

サービスはデフォルトで 0.0.0.0:8000 をリッスンします:

  • MCP:http://127.0.0.1:8000/mcp

  • ヘルスチェック:http://127.0.0.1:8000/healthz

MCP クライアントのリクエストヘッダー:

Authorization: Bearer <MCP_PUBLIC_API_KEY>

Docker

docker build -t iguat-mcp .
docker run --rm -p 8000:8000 --env-file .env iguat-mcp

本番環境では、NAME_FILE 形式を使用して Docker Secrets または読み取り専用ファイルから機密設定を読み込むことを推奨します:

docker run --rm -p 8000:8000 \
  -e IGUAT_USER_TOKEN_FILE=/run/secrets/iguat_token \
  -e IGUAT_MAIN_SIGN_KEY_FILE=/run/secrets/main_sign_key \
  -e MCP_PUBLIC_API_KEY_FILE=/run/secrets/public_key \
  -e MCP_ADMIN_API_KEY_FILE=/run/secrets/admin_key \
  --mount type=bind,src=/secure/secrets,dst=/run/secrets,ro \
  iguat-mcp

設定

.env.example をコピーし、必要に応じて設定します:

変数

用途

IGUAT_USER_TOKEN

上流クエリトークン

IGUAT_MAIN_SIGN_KEY

メインインターフェース署名キー

IGUAT_CLASS_SIGN_KEY

クラスインターフェース署名キー

IGUAT_CSM_SIGN_KEY

CSM インターフェース署名キー

IGUAT_ALUMNI_SIGN_KEY

同窓会インターフェース署名キー

IGUAT_SITE_SIGN_KEY

サイトインターフェース署名キー

MCP_PUBLIC_API_KEY

MCP クライアントアクセスキー

MCP_ADMIN_API_KEY

管理インターフェースアクセスキー

MCP_HOST / MCP_PORT

サービスがリッスンするアドレスとポート

MCP_CACHE_TTL

時間割キャッシュの秒数。0 に設定するとキャッシュを無効化

MCP_MAX_CONCURRENCY

最大同時実行数

MCP_MAX_MAJOR_CLASSES

専攻クラス照会の上限

IGUAT_TRUST_ENV

システムプロキシと証明書の環境変数を読み取るかどうか

上流トークンの更新

上流トークンが無効になった場合、管理者はサービスを再起動せずにメモリ内のトークンを更新できます:

curl -X PUT http://127.0.0.1:8000/admin/token \
  -H "Authorization: Bearer <MCP_ADMIN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"token":"<NEW_TOKEN>"}'

テスト

pip install -e ".[test]"
pytest -q

セキュリティに関する注意

  • 実際のトークン、署名キー、API Key、.env をリポジトリにコミットしないでください。

  • サービスはトークン、署名、個人の身分フィールドを MCP クライアントに返しません。

  • デフォルトではシステムプロキシ環境変数を読み取りません。デプロイ環境で本当に必要な場合のみ IGUAT_TRUST_ENV=1 を設定してください。

関連プロジェクト

  • 桂航百科查询系统:本 MCP サービスを統合したキャンパス知識ベースおよびインテリジェント Q&A システム。

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    C
    maintenance
    Enables read-only querying of Kingdee's Three-Effect project management system, covering projects, reimbursements, loans, payments, working hours, and budgets, via MCP tools.
    28
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables read-only interaction with CMU Student Information Online data, including student context, schedules, grades, enrollment, account activity, and campus life through MCP tools.
    8
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying SCAU dormitory electricity usage, balance, lifetime consumption, and cost calculations through read-only MCP tools.
    4
    MIT