Student MCP Server
README.md
# š AI-Powered Student Assistant (Model Context Protocol + Groq + Web App)
An interactive, AI-driven educational platform built using **Model Context Protocol (MCP)**, **Groq LLM (`llama-3.3-70b-versatile`)**, **Python 3.11+**, and a modern **Glassmorphic Web Dashboard**.
---
## š Project Features
- **Model Context Protocol (MCP)**: Standardized protocol connecting AI reasoning with local file tools & calculations.
- **Groq LLM Power**: Blazing fast inference for autonomous tool selection and response synthesis.
- **6 Built-in Educational MCP Tools**:
1. š§® **Calculator**: Evaluates math expressions, percentage weights, and GPA formulas.
2. š **Attendance Tracker**: Analyzes student attendance records from `attendance.csv`, detects shortages (<75%), and predicts required classes.
3. š **Marks Analyzer**: Computes averages, top scores, letter grades, and performance rankings from `marks.csv`.
4. š **PDF Reader**: Extracts text and searches content from lecture PDF files (`notes.pdf`).
5. š **Lecture Notes Search**: Keyword and concept search across course revision notes.
6. š **College Regulations Checker**: Queries official college handbook (`rules.txt`) for attendance rules, grading scales, and library policies.
- **Interactive Web Interface (Frontend)**:
- Dark glassmorphism design with responsive tabs.
- **Live MCP Protocol Visual Trace**: Step-by-step pipeline view showing `User Prompt -> Groq LLM -> MCP Server -> Tool Run -> Answer`.
- **Interactive Analytics Modules**: Marks Report Card, Attendance Shortage Predictor, Searchable Rules Explorer, PDF Viewer, and MCP Tool Sandbox.
- **Offline Simulation Mode**: Browser fallback engine that works out-of-the-box even before adding an API key!
---
## šļø Architecture Overview
```
User Query
ā
ā¼
Frontend Web Dashboard (HTML/CSS/JS)
ā
ā¼
FastAPI Server (backend/api.py)
ā
ā¼
Groq LLM (llama-3.3-70b-versatile)
ā
āāāŗ Intercepts Query & Selects Tool
ā
ā¼
MCP Client (backend/client.py)
ā
ā¼
MCP Server (backend/server.py via FastMCP)
ā
āāāŗ calculator.py (Math & GPA)
āāāŗ attendance.py (attendance.csv)
āāāŗ marks.py (marks.csv)
āāāŗ pdf_reader.py (notes.pdf)
āāāŗ notes.py (notes.txt)
āāāŗ rules.py (rules.txt)
ā
ā¼
Groq Formats Natural Language Answer -> User
```
---
## š Project Directory Structure
```
student_mcp/
āāā backend/
ā āāā server.py # FastMCP / MCP Server tool registry
ā āāā client.py # Groq LLM tool router & MCP integrator
ā āāā api.py # FastAPI web bridge for Frontend
ā āāā calculator.py # Calculation logic
ā āāā attendance.py # Attendance CSV parser
ā āāā marks.py # Marks CSV calculator
ā āāā pdf_reader.py # PDF text extractor (PyPDF)
ā āāā notes.py # Lecture notes search
ā āāā rules.py # College handbook search
ā āāā prompts.py # System prompts & tool definitions
ā āāā requirements.txt # Dependencies list
ā āāā .env # Environment config (GROQ_API_KEY)
ā āāā data/
ā āāā attendance.csv # Attendance dataset
ā āāā marks.csv # Marks dataset
ā āāā notes.pdf # Sample academic PDF notes
ā āāā notes.txt # Text notes reference
ā āāā rules.txt # Official college regulations handbook
ā
āāā frontend/
ā āāā index.html # Interactive Student Assistant Web Dashboard
ā āāā styles.css # Dark mode, glassmorphism & micro-animations
ā āāā app.js # App logic, chat UI, MCP protocol visual trace & tool sandbox
ā
āāā server.py # Root server entrypoint
āāā client.py # Root terminal CLI client
āāā create_pdf.py # Utility to generate notes.pdf
āāā requirements.txt # Root dependencies
āāā .env # Root environment variables
āāā README.md # Complete documentation
```
---
## ā” Quick Start Guide
### 1. Install Dependencies
Ensure Python 3.11+ is installed, then run:
```bash
pip install mcp groq pandas pypdf python-dotenv fastapi uvicorn
```
Or install from requirements file:
```bash
pip install -r requirements.txt
```
---
### 2. Configure Groq API Key
1. Sign up for a free account at [https://console.groq.com](https://console.groq.com).
2. Create an API key (e.g. `gsk_xxxxxxxxxxxxxxxx`).
3. Open `.env` and paste your key:
```env
GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxx
```
---
### 3. Run the Applications
#### Option A: Launch Interactive Web Dashboard (Recommended)
1. Start the backend FastAPI server:
```bash
python backend/api.py
```
*(Runs on `http://localhost:8000`)*
2. Open `frontend/index.html` in your web browser!
---
#### Option B: Run via Python CLI Client
Start the terminal client directly:
```bash
python client.py
```
Example queries to try:
- `"Calculate Rahul's average marks."`
- `"Check Priya's attendance in Computer Networks."`
- `"What is the minimum attendance required and condonation rule?"`
- `"Search notes for Binary Search Tree."`
- `"Calculate (88 * 0.25 + 92 * 0.30 + 95 * 0.45)."`
---
#### Option C: Run MCP FastMCP Server
```bash
python server.py
```
---
## š Deployment (Easy Options)
Below are minimal options to deploy and run the whole app (backend + frontend) with a single command.
1) Local single-process (recommended for development)
- The backend now serves the frontend static files. Start only the backend:
```bash
# from project root
uvicorn backend.api:app --reload --host 0.0.0.0 --port 8000
# open http://localhost:8000 in your browser
```
2) Docker (recommended for repeatable deploys)
Build and run the included Docker image:
```bash
docker build -t student-mcp .
docker run -p 8000:8000 student-mcp
```
3) Cloud: push the Docker image to any container host (Render, Fly, Heroku Container Registry, Azure ACI) and deploy with their web UI.
Notes:
- Set `GROQ_API_KEY` in environment (.env or container env) to enable Groq-powered question answering.
- Use `requirements.txt` to reproduce Python dependencies.
---
## š ļø MCP Tools Reference
| Tool Name | File | Description | Example Query |
|---|---|---|---|
| `calculate_expression` | `calculator.py` | Evaluates math formulas, percentages, GPA | `Calculate (92*0.4 + 88*0.6)` |
| `check_attendance` | `attendance.py` | Reads `attendance.csv`, checks shortage (<75%) | `Check Rahul's attendance` |
| `get_marks_summary` | `marks.py` | Reads `marks.csv`, computes student averages & grades | `Calculate Rahul's average marks` |
| `read_pdf_notes` | `pdf_reader.py` | Extracts text from `notes.pdf` via PyPDF | `Search PDF for Dijkstra` |
| `search_lecture_notes` | `notes.py` | Topic search across course notes | `Search notes for OSI model` |
| `search_college_rules` | `rules.py` | Queries `rules.txt` for policies | `What is the attendance condonation policy?` |
---
## šÆ Verification & Testing
Run unit checks on individual modules:
```bash
python backend/calculator.py
python backend/attendance.py
python backend/marks.py
python backend/rules.py
```
Enjoy building with **Model Context Protocol (MCP)** and **Groq**! šThis server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues