iGuat-MCP
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
Инструмент | Описание |
| Получение полного списка семестров, включая текущий и следующий |
| Получение текущего семестра |
| Поиск классов по условиям |
| Получение расписания для указанного класса, семестра и недели |
| Запрос расписания по имени или номеру студента, ответ исключает поля идентификации |
| Определение кампуса на основе информации о специальности |
Технологический стек
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 и настройте по необходимости:
Переменная | Назначение |
| Токен запроса к вышестоящей системе |
| Ключ подписи основного интерфейса |
| Ключ подписи интерфейса классов |
| Ключ подписи интерфейса CSM |
| Ключ подписи интерфейса выпускников |
| Ключ подписи интерфейса сайта |
| Ключ доступа для MCP-клиентов |
| Ключ доступа к административному интерфейсу |
| Адрес и порт прослушивания сервиса |
| Время кэширования расписания в секундах, |
| Максимальное количество одновременных запросов |
| Лимит запросов классов по специальности |
| Читать ли системные переменные прокси и сертификатов |
Обновление вышестоящего токена
Когда вышестоящий токен становится недействительным, администратор может обновить токен в памяти без перезапуска сервиса:
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-сервис.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables querying academic data such as subjects, degrees, locations, and schedules from Universitat Jaume I via MCP tools.MIT
- FlicenseNot gradedqualityCmaintenanceProvides read-only access to Guangdong gaokao data, enabling searches for schools, scores, and data files via MCP.
- AlicenseNot gradedqualityBmaintenanceProvides MCP tools to read SJTU Canvas data, download course files, and access video/subtitle resources without authentication simulation.MIT
- FlicenseNot gradedqualityCmaintenanceEnables querying student information such as marks, attendance, pending assignments, and timetables from a MySQL database through MCP tools.
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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