UpGrad LXP MCP Server
Controls a Firefox browser to automate navigating UpGrad's learning platform, extracting class transcripts, and downloading resources.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UpGrad LXP MCP Server get transcript for latest class"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UpGrad LXP MCP Server
An MCP (Model Context Protocol) server that controls a Firefox browser via Playwright to automate navigating UpGrad's learning platform, extracting class transcripts, and downloading resources.
Setup
npm install
npx playwright install firefoxRelated MCP server: Coursera MCP Server
Usage
With Claude Code / Claude Desktop
Add to your MCP configuration:
{
"mcpServers": {
"upgrad-lxp": {
"command": "npx",
"args": ["tsx", "/path/to/upgrad-lxp-mcp/src/index.ts"],
"env": {
"UPGRAD_EMAIL": "your-email@example.com",
"UPGRAD_PASSWORD": "your-password",
"OUTPUT_DIR": "./output",
"HEADLESS": "false"
}
}
}
}Run directly
npm startAvailable Tools
Tool | Description |
| Launch Firefox browser instance |
| Close the browser |
| Log into UpGrad LXP |
| Check if currently logged in |
| List available courses |
| Navigate into a course |
| List tracks/modules in a course |
| Navigate into a track |
| List past classes in a track |
| Open a specific class's details |
| Extract transcript from class details |
| Extract resource links from class details |
| Download a resource file |
| Save transcript to disk |
| Take a page screenshot |
| Get page text content |
| Navigate to a URL |
| Click an element |
| Bulk scrape all past classes |
Output Structure
output/
├── transcripts/ # Saved transcript files (.md, .txt, .json)
├── resources/ # Downloaded resource files (organized by class)
├── screenshots/ # Page screenshots
├── errors/ # Error screenshots for debugging
└── index.json # Manifest from bulk scrapingSelector Updates
The CSS selectors in src/helpers/selectors.ts are initial guesses. After first launch:
Run the browser in headed mode (
headless: false)Log in and navigate to the target pages
Use browser DevTools to inspect the actual DOM
Update
selectors.tswith the real selectors
Available Tools
22 toolsapply_selectorsA
Save discovered selector overrides to disk. These override the default guesses and persist across server restarts.
Inputs: selectors (required).
check_login_statusA
Check if the user is currently logged in
Inputs: no named parameters.
clickC
Click an element on the page
Inputs: selector (required).
close_browserA
Close the browser instance and clean up resources
Inputs: no named parameters.
discover_selectorsA
Inspect the current page DOM to auto-detect CSS selectors for UpGrad LXP elements. Run this on each key page (login, dashboard, course, track, class_list, class_detail) to map the real selectors, then apply them with apply_selectors.
Inputs: page (required).
download_resourceB
Download a specific resource file to disk
Inputs: url (required), filename, className.
extract_resourcesB
Extract resource links/files from the current class detail view
Inputs: classNameOrId.
extract_transcriptA
Extract the transcript text from the current class detail view
Inputs: classNameOrId.
get_page_contentA
Get the visible text content of the current page or a specific element
Inputs: selector.
get_selectorsA
View the currently active selectors (defaults merged with any overrides)
Inputs: no named parameters.
launch_browserB
Launch a Firefox browser instance with Playwright
Inputs: headless.
list_coursesA
Get a list of available courses from the dashboard
Inputs: no named parameters.
list_past_classesA
Navigate to Past Classes tab and list all past classes
Inputs: no named parameters.
list_tracksA
List available tracks/modules within the current course
Inputs: no named parameters.
loginB
Log into UpGrad LXP with email and password
Inputs: email (required), password (required).
save_transcriptA
Save extracted transcript text to a file
Inputs: content (required), filename (required), format.
scrape_all_past_classesA
Bulk scrape all past classes in the current track — extracts transcripts and resources
Inputs: outputDir, includeResources.
screenshotB
Take a screenshot of the current page
Inputs: filename, fullPage.
select_courseC
Navigate into a specific course
Inputs: courseNameOrId (required).
select_trackC
Navigate into a specific track
Inputs: trackNameOrId (required).
view_class_detailsB
Open the details of a specific past class
Inputs: classNameOrId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Most tools have clear, distinct purposes. The generic browser tools (navigate, click, get_page_content) could overlap with higher-level specific tools, but their descriptions clarify their lower-level role. The selector management tools are clearly separate. Minor overlap exists between extract_transcript and scrape_all_past_classes, but the bulk nature distinguishes them.
Most tools follow a verb_noun pattern (list_courses, select_track, extract_transcript), but a few use bare verbs (login, navigate, click, screenshot). The style is consistent with lowercase and underscores throughout. The variation is minor and does not hinder predictability.
With 22 tools, the server feels heavy. It combines generic browser tools, platform-specific tools, and meta-tools for selector management. While each serves a purpose, the set could be consolidated without losing functionality.
The domain of browsing courses and extracting transcripts/resources is well covered: login, listing, selection, extraction, saving, and bulk scraping are present. The absence of a logout tool is a minor gap, but closing the browser suffices. Selector management tools add robustness.
Maintenance
Related MCP Connectors
Playwright browser automation — navigate, click, fill forms, extract, screenshot — 17 agent tools.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAutomates interactions with the PAF-IAST University LMS to provide AI assistants with access to academic data like attendance, marks, and schedules. It features smart authentication with CAPTCHA solving and secure session management for seamless integration with tools like Claude and Cursor.1-
- AlicenseAqualityDmaintenanceEnables users to search for courses, view detailed syllabus information, and manage enrollments and progress on Coursera. It supports automated interactions including viewing certificates through local or cloud-based browser environments using Playwright.59 npmMIT
- AlicenseAqualityDmaintenanceAutomates searching and downloading construction specifications from a public engineering website using Playwright, supporting batch downloads and multiple formats.47MIT
- AlicenseNot gradedqualityDmaintenanceAutomates LinkedIn job search and profile editing via Playwright browser automation, enabling targeted job searches and profile updates without manual UI interaction.1MIT