SGU Academic MCP Server
Provides a smart local caching layer using SQLite to cache academic results and schedules, enabling fast responses (<0.05s) and reducing requests to the university portal.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SGU Academic MCP Serverwhat's my exam schedule for next week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SGU Academic MCP Server
A production-grade Model Context Protocol (MCP) Server bridging AI Assistants (Claude Desktop, Antigravity, VS Code, Cursor, Windsurf) directly with the Saigon University (SGU) Academic Portal (
thongtindaotao.sgu.edu.vn).
Giới thiệu
SGU Academic MCP Server được xây dựng theo chuẩn mở Model Context Protocol (MCP) của Anthropic. Hệ thống đóng vai trò cầu nối thông minh (Bridge Middleware), giúp các Trợ lý AI có thể tương tác trực tiếp với dữ liệu học tập thực tế từ cổng thông tin đào tạo Đại học Sài Gòn (SGU) bằng ngôn ngữ tự nhiên.
Tính năng nổi bật
100% Dữ liệu thực tế: Tích hợp trực tiếp với API cổng đào tạo SGU (
thongtindaotao.sgu.edu.vn), không dùng dữ liệu giả lập.Cơ chế Reverse-Engineered Security: Tự động tạo dynamic header
uavới thuật toán mã hóa timestamp + XOR bitwise, tương thích hoàn toàn với cơ chế bảo mật của cổng đào tạo.Smart SQLite Caching: Tự động cache kết quả học tập và thời khóa biểu cục bộ, đảm bảo tốc độ phản hồi < 0.05s và giảm thiểu áp lực request lên máy chủ trường.
Hỗ trợ đa phương thức truyền tải (Transports):
stdio: Tích hợp chuẩn cho Claude Desktop, Cursor, Antigravity.SSE(Server-Sent Events): Dùng khi triển khai dạng dịch vụ mạng LAN hoặc Web container.
Bộ tính năng phong phú: 15 Tools, 4 Resources ngữ cảnh, và 3 Prompts mẫu thông minh.
Related MCP server: FAST-NUCES Flex Student Portal MCP Server
Kiến trúc hệ thống
┌────────────────────────────────────────────────────────┐
│ Trợ lý AI (Clients) │
│ Claude Desktop │ Antigravity │ VS Code │ Cursor │ CLI │
└───────────────────────────┬────────────────────────────┘
│ JSON-RPC (stdio / SSE)
▼
┌───────────────────────────────────────────────────────────┐
│ SGU ACADEMIC MCP SERVER │
│ │
│ [15 MCP Tools] [4 Resources] [3 Prompts] │
│ • TKB tuần / ngày • Lộ trình CNTT • Kế hoạch học │
│ • Lịch thi & Đếm • Chuẩn tốt nghiệp • Ôn thi cấp tốc │
│ • Điểm & GPA audit • Quy chế học vụ • Audit hồ sơ │
│ • Học phí & Nợ môn • Danh bạ cơ sở │
│ │
│ [Security & Performance Engine] │
│ • SguEncryptor: Thuật toán tạo header dynamic 'ua' │
│ • SguCache: SQLite Caching & Fallback Controller │
└───────────────────────────┬───────────────────────────────┘
│ HTTPS (REST API)
▼
┌────────────────────────────────────────────────────────┐
│ Cổng thông tin đào tạo SGU │
│ thongtindaotao.sgu.edu.vn │
└────────────────────────────────────────────────────────┘Danh mục năng lực MCP
1. 15 MCP Tools (Hành động có thể gọi)
STT | Tool Name | Mô tả |
1 |
| Đăng nhập tài khoản sinh viên vào cổng thông tin đào tạo SGU |
2 |
| Lấy danh sách các môn đã đăng ký thành công trong kỳ |
3 |
| Lấy thời khóa biểu học kỳ chi tiết theo từng thứ trong tuần |
4 |
| Tra cứu nhanh lịch học hôm nay và ngày mai (phòng, ca, giảng viên) |
5 |
| Kiểm tra xung đột lịch học khi dự định đăng ký môn mới |
6 |
| Tra cứu lịch thi chính thức từ SGU (ngày thi, phòng, ca, SBD) |
7 |
| Đếm ngược ngày thi và cảnh báo lịch thi dồn dập trong cùng 1 ngày |
8 |
| Lấy hồ sơ sinh viên chính thức (họ tên, MSSV, lớp, ngành, CVHT) |
9 |
| Lấy bảng điểm chi tiết theo từng học kỳ |
10 |
| Tổng hợp GPA tích lũy, số tín chỉ đạt và danh sách môn nợ |
11 |
| Thuật toán mô phỏng điểm số cần đạt ở các môn tới để đạt mục tiêu GPA |
12 |
| Tra cứu học phí từng kỳ, số tiền đã đóng và số tiền nợ đọng |
13 |
| Lấy thông báo mới nhất từ Nhà trường và Phòng Đào tạo |
14 |
| Tra cứu danh sách lớp học phần đang mở kèm số lượng chỗ còn lại |
15 |
| Kiểm tra điều kiện môn tiên quyết ngành CNTT SGU |
2. 4 MCP Resources (Tài nguyên đọc ngữ cảnh)
sgu://curriculum/it-roadmap: Toàn bộ lộ trình 9 học kỳ (4.5 năm) và khung chương trình Kỹ sư ngành CNTT SGU.sgu://regulations/academic-warning: Quy chế tính điểm hệ 4, các khung cảnh cáo học vụ và điều kiện buộc thôi học.sgu://graduation/standards: Điều kiện xét tốt nghiệp Kỹ sư CNTT (tín chỉ, chuẩn ngoại ngữ VSTEP Bậc 3 / TOEIC 500-550, miễn chuẩn tin học cho SV CNTT).sgu://campuses/directory: Danh bạ các cơ sở đào tạo, ký hiệu giảng đường và quy tắc tra cứu phòng học tại SGU.
3. 3 MCP Prompts (Mẫu tác vụ AI định sẵn)
plan_weekly_routine: Tự động phân bổ lịch tự học và sinh hoạt dựa trên thời khóa biểu tuần thực tế.exam_cramming_strategy: Lập chiến lược ôn thi nước rút tối ưu theo mức độ khẩn cấp của lịch thi.graduation_audit: Đối soát toàn diện điểm số và tín chỉ tích lũy so với chuẩn đầu ra tốt nghiệp.
Cài đặt & Sử dụng (1-Click Setup)
1. Yêu cầu môi trường
Python 3.10 trở lên
2. Các bước thiết lập
Bước 1: Tải mã nguồn & cài đặt thư viện
git clone https://github.com/zaikaman/SGU-Academic-MCP.git
cd SGU-Academic-MCP
pip install -r requirements.txtBước 2: Cấu hình tài khoản sinh viên
Tạo file .env từ .env.example và điền tài khoản SGU của bạn:
SGU_STUDENT_ID=3122xxxxxx
SGU_PASSWORD=MatKhauCuaBanBước 3: Tích hợp tự động 3-in-1 (Zero-Flag Universal 1-Click) Chạy script cài đặt tự động:
Trên Windows: Nhấp đúp chuột vào file
setup.bat(hoặc chạypython setup.py)Trên Linux / WSL: Chạy
bash setup.sh(hoặcpython3 setup.py)
Script
setup.pytự động nhận diện và cấu hình đồng thời cả 3 môi trường:
Windows Native (Stdio Default): Tự inject cấu hình Stdio vào Antigravity (
~/.gemini/...), Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.json), Claude Desktop (%APPDATA%/Claude/...), Windsurf...Docker Container (Stdio Bridge & SSE): Tự động phát hiện container
sgu_mcp_academic_server(hỗ trợ cả Docker Desktop Native và Docker qua WSL 2), tạo profile.cursor/mcp.docker.json&.vscode/mcp.docker.json. Khi muốn toàn bộ IDE ưu tiên chạy qua Docker, chỉ cần thêm cờ:python setup.py --docker.WSL Native: Tự động phát hiện WSL (
python3, chuyển đổi đường dẫn sang/mnt/...) và tạo sẵn profile.cursor/mcp.wsl.json&.vscode/mcp.wsl.json.Sau khi chạy xong, chỉ cần mở bất kỳ IDE hoặc AI Client nào lên là toàn bộ 15 Native Tools của SGU đã sẵn sàng ngay trong khung chat!
Trải nghiệm trò chuyện tự nhiên cùng Trợ lý AI (Native AI Chat)
Sau khi chạy 1-Click Setup, bạn chỉ cần mở IDE (Google Antigravity, Cursor, VS Code, Claude Desktop...) và chat trực tiếp bằng tiếng Việt tự nhiên. AI sẽ tự động kích hoạt các Native MCP Tool tương ứng:
Câu hỏi thực tế của sinh viên | MCP Tool được AI tự động gọi | Kết quả AI phản hồi |
"Hôm nay mình có tiết học nào không?" |
| Liệt kê chi tiết môn học, phòng học, ca học, giảng viên hôm nay & ngày mai |
"Xem giúp mình học phí học kỳ này và nợ đọng" |
| Thống kê số tiền cần nộp, số tiền đã đóng, biên lai và số dư còn nợ |
"GPA hiện tại của mình bao nhiêu, có nợ môn nào không?" |
| Tổng kết GPA thang 4 & thang 10, tổng tín chỉ tích lũy và danh sách môn nợ |
"Mục tiêu tốt nghiệp loại Giỏi (GPA 3.2), các kỳ tới mình cần đạt bao nhiêu?" |
| Thuật toán mô phỏng điểm trung bình tối thiểu cần đạt ở các tín chỉ còn lại |
"Sắp tới mình có lịch thi nào không, có bị trùng hay dồn dập không?" |
| Bảng đếm ngược ngày thi, số báo danh, phòng thi và cảnh báo thi 2 môn/ngày |
"Kỳ này mình tính đăng ký môn Lập trình mạng thì có cần học trước môn nào không?" |
| Đối soát cây môn tiên quyết ngành CNTT và tư vấn lộ trình học phù hợp |
Không cần gõ lệnh hay nhớ tên hàm! Bạn chỉ cần hỏi tự nhiên như nói chuyện với một người bạn cố vấn học tập SGU.
Kiểm thử Server & Công cụ Developer (Developer Testing)
Dành cho các nhà phát triển (Developers) muốn kiểm thử trực tiếp giao thức MCP hoặc gỡ lỗi (debug):
MCP Inspector (Giao diện Web GUI trực quan để debug từng tool):
npx @modelcontextprotocol/inspector python -m sgu_mcp.server --transport stdioClaude Code CLI (Thêm MCP Server vào CLI):
claude mcp add sgu_academic_server python -m sgu_mcp.server --transport stdioKhởi chạy trực tiếp Server ở chế độ Stdio (Dòng lệnh):
python -m sgu_mcp.server --transport stdio
Dành cho Trợ lý AI (AI Agents): Xem chi tiết quy chuẩn vận hành 100% Native MCP Tools tại AGENTS.md và hướng dẫn nghiệp vụ học vụ tại skills/sgu-academic/SKILL.md.
Chế độ SSE (HTTP Web Service cho mạng LAN hoặc Web Client)
python -m sgu_mcp.server --transport sse --port 8000Triển khai với Docker & Docker Compose (SSE Mode)
Dự án đã được đóng gói container hóa chuẩn production với non-root user (appuser), Docker build cache, volume mount cho SQLite database, và endpoint Healthcheck tự động.
Cách 1: Sử dụng Docker Compose (Khuyên dùng)
# 1. Khởi động MCP Server ở chế độ nền (Background)
docker compose up -d --build
# 2. Xem logs hoạt động thời gian thực
docker compose logs -f
# 3. Kiểm tra trạng thái container và healthcheck
docker compose ps
# 4. Dừng dịch vụ
docker compose downCách 2: Sử dụng Docker CLI thuần
# Build image
docker build -t sgu-mcp-server:latest .
# Chạy container kèm mount thư mục data và nạp .env
docker run -d \
--name sgu_mcp_academic_server \
-p 8000:8000 \
--env-file .env \
-v ${PWD}/data:/app/data \
sgu-mcp-server:latestCác Endpoint hoạt động:
MCP SSE Endpoint:
http://localhost:8000/sse(Dành cho AI Agent kết nối qua mạng)Healthcheck Endpoint:
http://localhost:8000/health(Trả về trạng thái dịch vụ{"status": "healthy", ...})Messages Endpoint:
http://localhost:8000/messages/
Mẫu cấu hình thủ công JSON (Dành cho mọi Client)
Cấu trúc JSON này tương thích 100% với Claude Desktop, Antigravity, VS Code, Cursor, Windsurf, v.v.:
{
"mcpServers": {
"sgu_academic_server": {
"command": "python",
"args": [
"-m",
"sgu_mcp.server",
"--transport",
"stdio"
],
"cwd": "C:/path/to/sgu-academic-mcp",
"env": {
"PYTHONIOENCODING": "utf-8",
"PYTHONUNBUFFERED": "1"
}
}
}
}Kiểm thử tự động (Unit Tests & 100% Coverage)
Dự án đi kèm bộ test tự động sử dụng pytest với độ bao phủ tuyệt đối 100% toàn bộ mã nguồn (cả Statement Coverage và Branch Coverage):
# Chạy toàn bộ 52 test cases kèm báo cáo độ bao phủ
python -m pytest --cov=sgu_mcp --cov-branch --cov-report=term-missing tests/Kết quả kiểm thử thực tế:
============================= test session starts =============================
platform win32 -- Python 3.12.10, pytest-9.1.1, pluggy-1.6.0
collected 52 items
tests/test_cache.py .... [ 7%]
tests/test_crypto.py .. [ 11%]
tests/test_mcp_server.py ............. [ 32%]
tests/test_modules.py .................. [ 67%]
tests/test_sgu_client.py ............... [ 94%]
tests/test_tools_offline.py ... [100%]
=============================== tests coverage ================================
Name Stmts Miss Branch BrPart Cover Missing
--------------------------------------------------------------------------
sgu_mcp\__init__.py 1 0 0 0 100%
sgu_mcp\config.py 12 0 0 0 100%
sgu_mcp\core\cache.py 45 0 6 0 100%
sgu_mcp\core\crypto.py 38 0 4 0 100%
sgu_mcp\core\sgu_client.py 76 0 12 0 100%
sgu_mcp\modules\academic.py 49 0 12 0 100%
sgu_mcp\modules\exams.py 31 0 12 0 100%
sgu_mcp\modules\schedule.py 84 0 34 0 100%
sgu_mcp\modules\tuition.py 45 0 12 0 100%
sgu_mcp\prompts\templates.py 2 0 0 0 100%
sgu_mcp\resources\content.py 2 0 0 0 100%
sgu_mcp\server.py 102 0 8 0 100%
--------------------------------------------------------------------------
TOTAL 487 0 100 0 100%
======================== 52 passed, 1 warning in 6.49s ========================Cấu trúc thư mục
SGU-Academic-MCP/
├── AGENTS.md # Hướng dẫn đa môi trường & cây quyết định cho AI Agents
├── sgu_mcp/
│ ├── config.py # Cấu hình Pydantic BaseSettings
│ ├── server.py # Entrypoint MCP Server (Stdio & SSE)
│ ├── core/
│ │ ├── crypto.py # Reverse-engineered dynamic 'ua' header
│ │ ├── cache.py # SQLite Caching Layer & Fallback
│ │ └── sgu_client.py # HTTP API Client kết nối thongtindaotao.sgu.edu.vn
│ ├── modules/
│ │ ├── schedule.py # 5 Tools: Thời khóa biểu, đăng ký môn & kiểm tra trùng
│ │ ├── exams.py # 2 Tools: Lịch thi & đếm ngược ngày thi
│ │ ├── academic.py # 4 Tools: Hồ sơ, bảng điểm & mô phỏng GPA
│ │ └── tuition.py # 4 Tools: Học phí, thông báo & môn tiên quyết
│ ├── resources/
│ │ └── content.py # 4 MCP Resources ngữ cảnh học vụ
│ └── prompts/
│ └── templates.py # 3 MCP Prompt templates
├── skills/
│ └── sgu-academic/
│ └── SKILL.md # Agent Skill nghiệp vụ học vụ SGU
├── hands_on_lab/
│ └── HANDS_ON_LAB.md # Hướng dẫn thực hành từng bước (Hands-on Guide)
├── tests/ # 52 unit tests tự động (100% Coverage)
│ ├── test_cache.py # Kiểm thử SQLite Caching, TTL & Error handling
│ ├── test_crypto.py # Kiểm thử tạo header 'ua' reverse-engineered
│ ├── test_sgu_client.py # Kiểm thử API Client, Auto-login & HTTP communication
│ ├── test_modules.py # Kiểm thử toàn diện 15 Tools & nghiệp vụ học vụ
│ ├── test_mcp_server.py # Kiểm thử MCP Protocol (Tools, Resources, Prompts & Server Lifecycle)
│ └── test_tools_offline.py # Kiểm thử offline mô phỏng GPA & môn tiên quyết
├── setup.py # Script cài đặt tự động 3-in-1 đa nền tảng (Polyglot)
├── setup.bat # 1-Click setup dành cho Windows
├── setup.sh # 1-Click setup dành cho Linux / WSL
├── Dockerfile # Container image build (Python 3.12-slim, non-root)
├── docker-compose.yml # Container orchestration & live volume mount
└── requirements.txt # Python dependenciesBảo mật & Quyền riêng tư
Xử lý cục bộ (Local Execution): Mọi thông tin đăng nhập và dữ liệu học tập cá nhân được xử lý hoàn toàn trên máy cục bộ của người dùng.
Không lưu trữ tập trung: Máy chủ không chuyển tiếp hoặc lưu trữ thông tin nhạy cảm lên bất kỳ server bên thứ ba nào.
File
.envđược bảo vệ: Cấu hình git mặc định đã ignore.envvà database cache để tránh vô tình công khai tài khoản.
Giấy phép (License)
Dự án được phát hành theo giấy phép MIT License. Tự do sử dụng, chỉnh sửa và tích hợp cho các mục đích học tập và nghiên cứu cá nhân.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect your Moodle to AI assistants: courses, content, grading and reports from the chat.
Your personal data for AI — Telegram, bank, courses, Zoom & more, scoped to you.
Connect AI assistants to Subotiz - Using Subotiz's external capabilities through natural language
Connect AI assistants to Subotiz - Using Subotiz's external capabilities through natural language
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to securely retrieve academic grades and course information from Sakarya University's SABIS student information system through automated web scraping.2ISC
- FlicenseNot gradedqualityCmaintenanceConnects AI assistants to the FAST-NUCES Flex Student Portal, enabling students to query their academic data including attendance, marks, transcript, and fee reports through natural language conversations.6-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access PSG College of Technology e-campus portal data including CA marks, attendance records, timetable schedules, and course information through natural language queries.4MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables University of Toronto students to access academic data from ACORN and Quercus via AI assistants. It provides tools to retrieve course schedules, enrollment details, syllabi, assignments, and announcements.-