A powerful Model Context Protocol (MCP) server that automates PAF-IAST LMS interactions with AI assistants like Claude, Cursor, and VS Code Copilot.
- Automated login with advanced CAPTCHA solving
- Google Gemini Vision API integration for enhanced accuracy
- Secure session management with encryption
- Automatic session persistence and restoration
- Attendance Tracking - Real-time attendance records by subject
- Marks & Grades - Comprehensive exam scores and assessments
- Timetable Management - Class schedules and academic calendar
- Application System - Submit and track university applications
- Headless browser operation for efficiency
- Intelligent form handling and DOM navigation
- Robust error handling and retry mechanisms
- Multi-method CAPTCHA solving (Vision AI + OCR)
- Environment-based configuration
- Encrypted session storage
- No hardcoded credentials
- Secure API key management
- Python 3.11+
- Git
- Chrome Browser (for automation)
- Google Gemini API Key (optional, for enhanced CAPTCHA solving)
-
Clone the repository:
git clone <your-repo-url> cd LMS-MCP
-
Install dependencies:
# Using uv (recommended) uv sync # Or using pip pip install -e .
-
Configure environment:
# Copy the example environment file cp .env.example .env # Edit with your credentials (see Configuration section) notepad .env # Windows nano .env # Linux/Mac
Edit your .env file with the following settings:
# Required: Your PAF-IAST credentials
LMS_USERNAME=your_student_id_here
LMS_PASSWORD=your_password_here
# Optional: Enhanced CAPTCHA solving
GEMINI_API_KEY=your_gemini_api_key_here
# Browser settings
BROWSER_HEADLESS=true # Set to false for debugging
# Session settings
SESSION_EXPIRY_HOURS=24
ENCRYPT_SESSIONS=true- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the API key to your
.envfile
-
Locate Claude configuration file:
# Windows %APPDATA%\Claude\claude_desktop_config.json # macOS ~/Library/Application Support/Claude/claude_desktop_config.json # Linux ~/.config/Claude/claude_desktop_config.json
-
Add MCP server configuration:
{ "mcpServers": { "lms-automation": { "command": "python", "args": ["C:/path/to/your/LMS-MCP/main.py"], "env": { "PYTHONPATH": "C:/path/to/your/LMS-MCP" } } } } -
Restart Claude Desktop
-
Test the connection:
Can you check my LMS attendance?
-
Open Cursor IDE
-
Go to Settings (Ctrl/Cmd + ,)
-
Navigate to Extensions β MCP
-
Add new MCP server:
{ "name": "LMS Automation", "command": "python", "args": ["./main.py"], "cwd": "/path/to/LMS-MCP", "env": { "PYTHONPATH": "/path/to/LMS-MCP" } } -
Restart Cursor
-
Test in chat:
@lms-automation login to LMS and check my marks
-
Install MCP Extension:
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "MCP Client" and install
-
Configure MCP server:
Create
.vscode/settings.jsonin your project:{ "mcp.servers": [ { "name": "lms-automation", "command": "python", "args": ["main.py"], "cwd": "${workspaceFolder}", "env": { "PYTHONPATH": "${workspaceFolder}" } } ] } -
Use with Copilot Chat:
- Open Copilot Chat (Ctrl+Shift+I)
- Type:
@mcp:lms-automation login and get my attendance
login_to_lms- Login with credentials and CAPTCHA solvinglogout_lms- Logout and clear session
check_attendance- Get attendance records by subjectget_marks- Retrieve marks and gradesget_timetable- Access class schedule
create_application- Submit university applicationsview_application_status- Check application status
solve_captcha- Manual CAPTCHA solving
# Login to LMS
Login to PAF-IAST LMS with my credentials
# Check attendance
What's my current attendance status?
# Get marks
Show me my latest marks and grades
# View timetable
What's my class schedule for today?
# Comprehensive report
Generate a summary report of my academic performance including attendance, marks, and upcoming classes
# Specific subject
What's my attendance percentage for Computer Science subjects?
# Application tracking
Check the status of my scholarship application
β Login Failed
- Verify credentials in
.envfile - Check if CAPTCHA solving is working
- Ensure university LMS is accessible
β CAPTCHA Not Solving
- Add Gemini API key for better accuracy
- Check internet connection
- Verify image preprocessing
β Session Expired
- Sessions expire after 24 hours by default
- Re-login will create a new session
- Check
SESSION_EXPIRY_HOURSsetting
β Browser Issues
- Ensure Chrome is installed and updated
- Check
BROWSER_HEADLESSsetting - Install required browser drivers
Enable debug mode for troubleshooting:
# In .env file
DEBUG_MODE=true
SAVE_SCREENSHOTS=true
BROWSER_HEADLESS=falseLMS-MCP/
βββ main.py # MCP server entry point
βββ lms_automation.py # Core automation logic
βββ captcha_solver.py # CAPTCHA solving algorithms
βββ session_manager.py # Session persistence
βββ config.py # Configuration management
βββ models/ # Data models
β βββ attendance.py
β βββ marks.py
β βββ timetable.py
βββ utils/ # Utility functions
βββ encryption.py
βββ image_processor.py
βββ web_scraper.py
- Initialization - Load configuration and setup browser
- Authentication - Login with CAPTCHA solving
- Session Management - Save/restore login sessions
- Data Extraction - Navigate and scrape academic data
- Response Formatting - Structure data for AI consumption
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone your fork
git clone https://github.com/yourusername/LMS-MCP.git
cd LMS-MCP
# Install development dependencies
uv sync --dev
# Run tests
python -m pytest
# Run linting
black . && flake8 .This project is licensed under the MIT License - see the LICENSE file for details.
This tool is for educational purposes and personal use only. Users are responsible for:
- Complying with university policies
- Securing their own credentials
- Using the tool responsibly
- Not overloading university servers
- Documentation: Wiki
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β€οΈ for PAF-IAST students