Skip to main content
Glama

iGuat-MCP

Сервис MCP (Model Context Protocol) только для чтения, предназначенный для данных кампуса i桂航. Проект основан на Python, FastMCP и Streamable HTTP и предоставляет запросы расписания, классов и кампусов в виде стандартных инструментов, доступных для вызова AI-клиентами.

Этот проект предоставляет только возможности запроса и не изменяет данные мини-программы WeChat или вышестоящей учебной системы.

Возможности

  • Получение полного списка семестров, текущего и следующего семестра

  • Поиск классов по специальности, курсу и ключевому слову класса

  • Запрос расписания для указанного класса, семестра и недели

  • Запрос расписания для указанного лица с удалением полей идентификации перед возвратом

  • Определение кампуса на основе информации о специальности

  • Встроенный TTL-кэш расписания, ограничение параллелизма и проверка работоспособности

  • Защита MCP и административных интерфейсов с помощью Bearer API Key

  • Поддержка горячего обновления вышестоящего токена через административный интерфейс

  • Поддержка развертывания через Docker, переменные окружения и Docker Secrets

Related MCP server: gaokao-helper-worker-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-ключи или .env в репозиторий.

  • Сервис не возвращает токены, подписи или поля личной идентификации MCP-клиентам.

  • По умолчанию переменные системного прокси не читаются; устанавливайте IGUAT_TRUST_ENV=1 только если это действительно необходимо в среде развертывания.

Связанные проекты

  • 桂航百科查询系统: база знаний кампуса и система интеллектуальных ответов на вопросы, интегрирующая этот MCP-сервис.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

View all MCP Connectors

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/Strayed2SE/iGuat-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server