@striderlabs/mcp-duolingo
v1.0.0
Published
MCP server for Duolingo - language learning app connector
Downloads
77
Maintainers
Readme
@striderlabs/mcp-duolingo
MCP (Model Context Protocol) server for Duolingo — a language learning platform.
Overview
This MCP server enables AI assistants to interact with Duolingo via browser automation using Playwright. It supports both local headless browsers and remote browsers via Browserbase.
Tools
| Tool | Description |
|------|-------------|
| get_profile | Get user profile, streak, XP, and current courses |
| get_courses | List available language courses on Duolingo |
| start_lesson | Start a lesson in a specific skill |
| get_progress | Get detailed progress for a course |
| get_leaderboard | Get league leaderboard standings |
Installation
npm install @striderlabs/mcp-duolingoUsage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"duolingo": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-duolingo"],
"env": {
"BROWSERBASE_CDP_URL": "your-browserbase-cdp-url-here"
}
}
}
}With Browserbase (Remote Browser)
Set the BROWSERBASE_CDP_URL environment variable to your Browserbase session CDP URL:
BROWSERBASE_CDP_URL="wss://connect.browserbase.com?apiKey=YOUR_KEY" node dist/index.jsLocal Headless Browser
Without BROWSERBASE_CDP_URL, the server launches a local headless Chromium instance:
node dist/index.jsRequirements
- Node.js >= 18.0.0
- A Duolingo account (the browser session must be authenticated)
- Either Browserbase CDP URL or local Chromium (installed via
npx playwright install chromium)
Authentication
This server uses browser automation and requires an active Duolingo session. The browser session must already be logged in to Duolingo, or you must log in manually when the browser opens.
For persistent sessions with Browserbase, configure a persistent session with saved cookies for duolingo.com.
Environment Variables
| Variable | Description |
|----------|-------------|
| BROWSERBASE_CDP_URL | CDP WebSocket URL for Browserbase remote browser (optional — uses local Chromium if not set) |
Tool Details
get_profile
Returns the user's profile information including username, current streak, total XP, and enrolled courses.
get_courses
Lists all available language courses on Duolingo's course catalog page.
start_lesson
Parameters:
skill(string, required): The skill name to start a lesson for (e.g., "Basics", "Food", "Travel")
Navigates to the specified skill and initiates a lesson session.
get_progress
Parameters:
course_language(string, optional): Language code (e.g.,es,fr,de). Defaults to current active course.
Returns XP, level, streak, daily goal progress, and skill completion status.
get_leaderboard
Returns the current league name, weekly XP standings for all league members, and promotion/demotion zone information.
Development
# Clone and install
git clone ...
npm install
# Build
npm run build
# Run locally
npm startLicense
MIT
