student-services-mcp

EdyVision/student-services-mcp

3.2

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 henry@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

Python FastAPI Medium Kaggle

This is a FastAPI-MCP based server that provides student services functionality through an MCP (Model Control Protocol) interface. The server allows you to manage and check student financial aid eligibility. It was built as part of the 5-Day Google AI Kaggle Competition / Course in Q1 of 2025 and has since been expanded to have additional functionality to support the new Academic Planning Agent sample project.

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
  • Handle synthetic data for demonstration purposes

Prerequisites

  • Python 3.13+
  • uv - A fast Python package installer and resolver
  • Docker (optional, for containerized deployment)

Features

  • Fetch student information
  • Check student eligibility for financial aid
  • Manage student records
  • Real-time eligibility updates

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

  1. fetch_students - Retrieves a list of all students
  2. check_financial_aid_eligibility <student_id> - Checks financial aid eligibility for a specific student
  3. fetch_student <student_id> - Retrieves detailed information for a specific student

Development

The server uses:

  • FastAPI for the web framework
  • UV for Python package management
  • MCP for the protocol implementation

Local Development

  1. Clone the repository:
git clone https://github.com/edyvision/student-services-demo-mcp.git
cd student-services-demo-mcp
  1. Install dependencies:
uv sync

# or

make install
  1. Run the server:
uv run main.py

#or 

make start.mcp
  1. 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()

# Fetch students
students = await client.fetch_students(limit: int = <limit>)

# Check eligibility for a specific student
student_id = "<student_id>"
eligibility = await client.check_financial_aid_eligibility(student_id)

# Fetch details for a specific student
student_details = await client.fetch_student(student_id)

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"
    }
  }
}