Skip to main content
Glama
ahtishamdilawar

FAST-NUCES Flex Student Portal MCP Server

README.md
# FAST-NUCES flex Student Portal MCP Server

An MCP server that connects AI assistants like **Claude Desktop** or **GitHub Copilot** directly to your Flex Student Portal. Ask questions about your academic data in plain English.

## What Can You Do?

Once connected, just chat naturally:

| Ask This | Get This |
|-------------|-------------|
| *"Roast my transcript"* | A brutally honest AI review of your transcript |
| *"Am I passing PF?"* | Quick calculation of your current standing |
| *"How many classes did I bunk?"* | Attendance reality check |
| *"Compare my marks to class average"* | See where you stand vs classmates |

## Requirements

- **Python 3.11+**
- **Google Chrome** installed (for login automation)
- **Claude Desktop** or **GitHub Copilot** (with MCP support)

## Installation

1. **Clone and install dependencies:**
   ```bash
   git clone https://github.com/ahtishamdilawar/nuces-flex-MCP.git
   cd nuces-flex-MCP
   pip install -r requirements.txt
   ```

2. **Create `.env` file with your credentials:**
   ```env
   FLEX_ROLL_NO=22F-XXXX
   FLEX_PASSWORD=your_password
   ```

3. **Configure your MCP client:**

   <details>
   <summary><b>Claude Desktop</b></summary>

   Edit `%APPDATA%\Claude\claude_desktop_config.json`:
   ```json
   {
     "mcpServers": {
       "flex": {
         "command": "python",
         "args": ["C:/path/to/FLEX/server.py"],
         "env": {
           "FLEX_ROLL_NO": "22F-XXXX",
           "FLEX_PASSWORD": "your_password"
         }
       }
     }
   }
   ```
   </details>

   <details>
   <summary><b>GitHub Copilot</b></summary>

   Add to your MCP settings:
   ```json
   {
     "flex": {
       "command": "python",
       "args": ["C:/path/to/FLEX/server.py"]
     }
   }
   ```
   </details>

## Usage

1. Start your MCP client (Claude Desktop / Copilot)
2. The first time, say **"Login to FLEX"** ,Chrome will open for CAPTCHA
3. If image CAPTCHA appears, solve it manually (you have 2 minutes)
4. Once logged in, ask away!

## Available Tools

| Tool | Description |
|------|-------------|
| `login` | Opens Chrome for CAPTCHA-authenticated login |
| `get_attendance` | Fetches attendance for all courses |
| `get_marks` | Gets detailed marks with class statistics |
| `get_transcript` | Full academic transcript with GPAs |
| `get_mca` | Modified Class Average for relative grading |
| `get_courses` | Current semester registered courses |
| `get_fee_report` | Payment history and fee details |
| `check_login_status` | Verify if session is active |

## Project Structure

```
FLEX/
├── server.py           # MCP entry point
├── auth.py             # Login & session management
├── tools/              # MCP tool implementations
│   ├── login.py
│   ├── attendance.py
│   ├── marks.py
│   ├── transcript.py
│   ├── mca.py
│   ├── courses.py
│   ├── fees.py
│   └── status.py
└── parsers/            # HTML parsing logic
    ├── attendance.py
    ├── marks.py
    ├── transcript.py
    ├── courses.py
    ├── fees.py
    └── challan.py
```

## Notes

- Login session persists until you restart the MCP server
- Chrome must be installed (Other browsers are not supported, well if you can add support please do)
- Your credentials are only used locally, never transmitted elsewhere
- Image CAPTCHAs require manual solving, the browser stays open for you

Maintenance

ActivityMaintained
ResponsivenessNo issues