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을 설정하세요.

관련 프로젝트

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