EdyVision/student-services-mcp
If you are the rightful owner of student-services-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Student Services MCP Server is a FastAPI-based server that provides student services functionality through a Model Control Protocol (MCP) interface.
title: Student Services MCP Server tags:
- mcp
- fictitious
- education emoji: 🧾 colorFrom: blue colorTo: green sdk: docker sdk_version: "1.0" app_file: Dockerfile pinned: false
Student Services MCP Server
This is a FastAPI-MCP based server that provides comprehensive student services functionality through an MCP (Model Control Protocol) interface. The server allows you to manage student records, check financial aid eligibility, perform academic planning, and conduct advanced analytics including attrition prediction and dropout risk analysis. It was built as part of the 5-Day Google AI Kaggle Competition / Course in Q1 of 2025 and has since been expanded to support the new Academic Planning Agent sample project and advanced student analytics.
For the original agent concept, check out the Medium post or Kaggle notebook for full submission details.
For the new Academic Planning Assistant, check out Academic Planning Assistant Project.
It demonstrates how to:
- Fetch student profiles and academic history
- Determine financial aid eligibility based on academic performance and field of study
- Generate and manage academic course plans
- Submit and track student notes and observations
- Predict student dropout risk using machine learning
- Analyze attrition patterns and feature importance
- Identify high-risk students for early intervention
- Handle synthetic data for demonstration purposes
Prerequisites
- Python 3.13+
- uv - A fast Python package installer and resolver
- Docker (optional, for containerized deployment)
Features
Core Student Management
- Fetch student information and profiles
- Retrieve academic history and records
- Manage student data and notes
Financial Aid System
- Check student eligibility for financial aid
- Real-time eligibility updates
- Support for merit-based and need-based aid
Academic Planning
- Generate personalized course plans
- Submit and track academic plans
- Stress-level aware planning
Advanced Analytics & Attrition Prediction
- Dropout Risk Prediction: ML-based risk assessment for individual students
- High-Risk Student Identification: Automated flagging of at-risk students
- Attrition Statistics: Comprehensive population-level analytics
- Feature Importance Analysis: Understanding key predictors of student success
- Attrition Factor Analysis: Detailed breakdown of risk factors per student
API Endpoints
The server exposes the following main endpoints:
/messages/- Main endpoint for all MCP operations/mcp- Server-Sent Events endpoint for real-time updates
Available Commands
Student Management
fetch_students- Retrieves a list of all studentsfetch_student_profile <student_id>- Retrieves detailed information for a specific studentfetch_student_profile_by_name <student_name>- Retrieves student profile by name (case-insensitive)fetch_academic_history <student_id>- Retrieves academic history for a student
Financial Aid
fetch_financial_aid_eligibility <student_id>- Checks financial aid eligibility for a specific student
Academic Planning
fetch_course_plan <student_id> <target_credits> <stress_level>- Generates a course plan for a studentsubmit_course_plan <student_id> <plan> <justification>- Submits a course plan with justification
Student Notes
submit_note <student_id> <note> <stress_level>- Submits a note for a student
Analytics & Attrition Prediction
fetch_student_dropout_risk <student_id>- Get dropout risk prediction for a specific studentfetch_high_risk_students <limit>- Get list of students at high risk of dropping outfetch_attrition_statistics- Get overall attrition statistics for the student populationfetch_student_attrition_analysis <student_id>- Get detailed attrition factor analysis for a studentfetch_attrition_feature_importance- Get feature importance analysis for dropout prediction
Development
The server uses:
- FastAPI for the web framework
- UV for Python package management
- MCP for the protocol implementation
Local Development
- Clone the repository:
git clone https://github.com/edyvision/student-services-demo-mcp.git
cd student-services-demo-mcp
- Install dependencies:
uv sync
# or
make install
- Run the server:
uv run main.py
#or
make start.mcp
- Connecting with Custom Client or Agent
A simple Python client is provided to interact with the server. The client is located in
src/client.py. Here's how to use it:
from src.client import StudentServicesMCPClient
# Create a client instance
client = StudentServicesMCPClient()
# Connect
await client.connect_to_server()
# Student Management
students = await client.fetch_students(limit=50)
student_profile = await client.fetch_student_profile("S001")
academic_history = await client.fetch_academic_history("S001")
# Financial Aid
eligibility = await client.fetch_financial_aid_eligibility("S001")
# Academic Planning
course_plan = await client.fetch_course_plan("S001", target_credits=15, stress_level="moderate")
await client.submit_course_plan("S001", "Plan details...", "Justification...")
# Student Notes
await client.submit_note("S001", "Student struggling with math", "high")
# Analytics & Attrition Prediction
dropout_risk = await client.fetch_student_dropout_risk("S001")
high_risk_students = await client.fetch_high_risk_students(limit=10)
attrition_stats = await client.fetch_attrition_statistics()
attrition_analysis = await client.fetch_student_attrition_analysis("S001")
feature_importance = await client.fetch_attrition_feature_importance()
Docker Setup
Building the Image and Running Container
docker compose up --build
The server will be available at http://localhost:7860
Deployment
This project deploys to HuggingFace. Simply create a new HuggingFace Space, update the Makefile with your space URL, then run the following:
make hf.deploy
Connecting to Cursor
To connect Cursor to either your local or HF deployed space, update the mcp.json file to include the following:
{
"mcpServers": {
"student-services-mcp-hf": {
"url": "https://<hf_user-handle>-student-services-demo-mcp.hf.space/mcp",
"headers": {
"Authorization": "Bearer ${HF_TOKEN}",
"Accept": "text/event-stream",
"Cache-Control": "no-cache",
"Connection": "keep-alive"
}
},
"student-services-mcp-local": {
"url": "http://0.0.0.0:7860/mcp"
}
}
}