Duolingo MCP. Track streaks, XP, and friend activity directly from your agent.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
Duolingo MCP Server tracks language learning progress. Your AI client uses this to view public user profiles, check streaks, analyze leaderboards, and get dictionary hints for any supported language pair.
It lets you measure XP gains and see friend activity without needing API keys for public data.
What your AI agents can do
Get daily leaderboard
Gets the top users by XP for the current day. You can specify a language and timezone.
Get dictionary hints
Returns translation pairs for given tokens. Use this to build vocabulary tools for any two languages.
Get friends
Lists a user's friends, returning their usernames, IDs, streaks, and XP totals.
Get a user's public profile data, including their XP, streak, and current learning language, using get_user_by_username or get_user_by_id.
Retrieve translation pairs and hints for specific words between any two supported languages using get_dictionary_hints.
See who is performing well by fetching daily or overall leaderboard rankings with get_daily_leaderboard or get_leaderboard.
Retrieve a user's friend list, showing the usernames, IDs, and current XP/streak for each friend using get_friends.
List available items in the Duolingo store, including names, IDs, and prices, using get_store_items.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
Duolingo MCP Server: 8 Tools for Language Tracking
Use these tools to pull Duolingo's public metrics, including user profiles, leaderboards, and dictionary hints, directly into your AI workflow.
019d8431get daily leaderboard
Gets the top users by XP for the current day. You can specify a language and timezone.
019d8431get dictionary hints
Returns translation pairs for given tokens. Use this to build vocabulary tools for any two languages.
019d8431get friends
Lists a user's friends, returning their usernames, IDs, streaks, and XP totals.
019d8431get leaderboard
Gets Duolingo leaderboard info. You can optionally specify a user ID to see their rank and XP.
019d8431get store items
Lists Duolingo store items, providing IDs, names, prices, and descriptions.
019d8431get user by id
Retrieves a Duolingo user profile using their numeric ID.
019d8432get user by username
Retrieves a Duolingo user profile using their username. This shows XP, streak, and skills.
019d8432get version info
Returns API version information, useful for knowing supported languages and features.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Duolingo, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
Man, you gotta use this Duolingo MCP Server if you wanna track who's actually learning a language. Your AI client uses it to view public profiles, check streaks, analyze leaderboards, and grab dictionary hints for any two languages. You don't need API keys for the public data, which is a major win.
You can measure XP gains and see your friends' activity without any hassle.
Check User Status
Your agent can pull a user's public profile data. You can get details using get_user_by_username with a username, or you can use get_user_by_id if you only have the numeric ID. Both tools return the user's XP, streak count, and current learning language.
Compare Progress in Groups
Need to know who's winning? You can check leaderboards. get_leaderboard gives you the overall leaderboard info, and you can optionally specify a user ID to see their rank and XP. If you wanna see who's stacking XP today, use get_daily_leaderboard. You can specify a language and timezone for those daily rankings.
View Social Connections
Want to see what your crew's up to? get_friends lists a user's friends, giving you their usernames, IDs, streaks, and total XP. Build Vocabulary
If you're building a vocabulary tool, get_dictionary_hints returns translation pairs and hints for specific tokens between any two supported languages. View Store Inventory
You can list the available items in the Duolingo store using get_store_items, which returns their IDs, names, prices, and descriptions. Other Info
get_version_info tells you the API version, so you know what languages and features are supported. You can also call get_user_by_username or get_user_by_id to retrieve a profile using a username or ID, respectively. There's also get_leaderboard for the main leaderboard and get_daily_leaderboard for the daily one.
How Duolingo MCP Works
- 1 First, subscribe to the Duolingo server on Vinkius. No API key is needed for public data access.
- 2 Next, your AI client calls a specific tool, like
get_user_by_username, providing the required identifier (e.g., a username or ID). - 3 Finally, the server returns structured data detailing the user's metrics, which your client then uses to build a report or answer a question.
The bottom line is, your agent talks to the server, which fetches Duolingo's public metrics and sends the data back.
Who Is Duolingo MCP For?
Language educators, ed-tech developers, and student performance analysts use this. If you need to track engagement or measure vocabulary growth for a group of students, this is for you. You're tired of manually checking dozens of profiles to gauge class momentum.
Uses get_dictionary_hints to build structured vocabulary quizzes for specific language pairs and get_user_by_username to see which core skills students are struggling with.
Runs get_leaderboard and get_daily_leaderboard to gather quantitative data on learner engagement and compare skill progression across different student groups.
Checks get_store_items to understand what incentives (like streak freezes) are popular among users, and uses get_friends to map social learning patterns.
What Changes When You Connect
- See a user's full progress immediately. Use
get_user_by_usernameto pull XP, streak count, and current skills without manual navigation. - Gauge competition instantly. Run
get_daily_leaderboardto see who is currently winning in a specific language and time zone. - Build better flashcards. Use
get_dictionary_hintsto get structured translation pairs between languages, perfect for vocabulary builders. - Map out social learning. Call
get_friendsto see a user's whole network, including how long each friend has maintained their streak. - Understand the ecosystem.
get_store_itemslists available power-ups and items, helping you understand the commercial side of learning. - Handle different identifiers. Use both
get_user_by_usernameandget_user_by_idto fetch profiles, depending on what data you have available.
Real-World Use Cases
Checking a Student's Progress After a Quiz
A teacher needs to know if 'john_doe' is making progress in Spanish. Instead of logging into Duolingo, they ask their agent to run get_user_by_username. The agent returns the total XP, streak, and skills completed, giving the teacher an immediate progress report.
Finding the Top Language Learners Today
A parent wants to see who is leading the English leaderboard today. They prompt their agent: 'Who has the most XP in English today?'. The agent calls get_daily_leaderboard and returns the top 5 names and their scores, letting the parent compare results instantly.
Building a Cross-Language Vocabulary Quiz
A developer needs translation hints for 20 common words. They use get_dictionary_hints with the desired source and target languages. The agent receives structured pairs (e.g., 'hello' $\to$ 'hola') and formats them into a ready-to-use quiz format.
Analyzing a User's Learning Network
A researcher wants to know who 'user_a' is connected to. They run get_friends and get a list of connected users, along with their individual streaks and XP. This lets them map the social structure of the learning group.
The Tradeoffs
Guessing the right tool
Trying to get a profile by just knowing the user's name, but the agent fails because it doesn't know whether to use get_user_by_username or get_user_by_id.
→
If you have the username, use get_user_by_username. If you have the numerical ID, use get_user_by_id. Always check the available inputs for both tools.
Over-relying on one data point
Only checking the total XP from a profile and assuming the user is skilled, ignoring the current streak or which skills they recently completed.
→
Always cross-reference the profile data. Use get_user_by_username for the basic profile, then check get_friends to see how that user's network is performing, adding context.
Treating data as permanent
Assuming a high XP score means a user will remain active, ignoring that the data is dynamic and can change daily.
→
For time-sensitive metrics, always run get_daily_leaderboard instead of relying on static profile data. This ensures you get the most current, day-specific rankings.
When It Fits, When It Doesn't
Use this if you need to track public, quantifiable progress in language learning. This includes checking streaks, comparing daily rankings, or building vocabulary lists. Don't use this if your goal is to analyze private user behavior, like specific lesson performance or deleted records—that data is protected. If you just need to know a user's current status, use get_user_by_username. If you need to compare them to others, run get_leaderboard. If you need translations, run get_dictionary_hints.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Duolingo. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 8 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Manual tracking of progress and streaks is a huge time sink.
Right now, checking a group of students' progress means opening Duolingo, navigating to each profile, and manually copying the XP and streak count into a spreadsheet. You spend hours just gathering basic metrics before you even start analyzing anything.
With the Duolingo MCP Server, your agent pulls all that data instantly. Ask it to 'List the top 10 students in Spanish.' and it runs `get_daily_leaderboard` for you. You get the clean, structured data you need in seconds.
Duolingo MCP Server: Get structured data instantly.
Before, getting a vocabulary hint required switching between the app and a separate dictionary page, often leading to copy/paste errors and manual formatting. The process was slow and disjointed.
Now, your agent uses `get_dictionary_hints`. It returns structured translation pairs (e.g., 'cat' $\to$ 'gato') directly to your client, ready to populate a database or a front-end quiz component. The data flows cleanly.
Common Questions About Duolingo MCP
How do I get a user profile using the Duolingo MCP Server? +
You can use either get_user_by_username or get_user_by_id. Use the username if you know the handle, or the numeric ID if you have that specific identifier.
Can I see today's leaderboard using the Duolingo MCP Server? +
Yes, run the get_daily_leaderboard tool. This shows the top users by XP for the current day and allows you to specify a language.
What data does `get_friends` provide? +
get_friends returns a list of usernames and IDs, plus their current streak and total XP. This is useful for mapping social activity within a group.
Does the Duolingo MCP Server require an API key? +
No. The server provides public endpoints, so you don't need an API key to access basic data like profiles and leaderboards.
How do I get translations between languages using the Duolingo MCP Server? +
Use the get_dictionary_hints tool. You provide the source and target language codes and the tokens, and it returns the translation pairs.
How do I use `get_dictionary_hints` to build vocabulary tools? +
It returns translation pairs between any two supported languages. You can feed these pairs into flashcard apps or vocabulary builders to get translation hints for specific words.
What does `get_user_by_id` provide compared to `get_user_by_username`? +
Both retrieve user profile data. get_user_by_id uses a numeric user ID, while get_user_by_username uses the visible username. The resulting data fields are largely the same.
Does the Duolingo MCP Server need authentication to view public data? +
No, the server requires no API key for public endpoints. You can access basic data like leaderboards and friend lists using your AI client.
Do I need a Duolingo account to use this? +
No! Public endpoints like user profiles, version info and dictionary hints work without authentication. Just provide a username to look up. For private data (your own progress, store items), you'd need to be logged into Duolingo.
What languages are supported? +
Duolingo supports 40+ languages including English, Spanish, French, German, Italian, Portuguese, Japanese, Korean, Chinese, Hindi and many more. Use get_version_info to see the full list of supported language codes.
Can I get my full learning progress? +
The public API returns limited profile data. For full progress including individual skill levels and detailed stats, you need to be authenticated with your Duolingo session. The username-based endpoint returns basic info like total XP, streak and current language.
Can I get translation hints for vocabulary? +
Yes! Use get_dictionary_hints with target and source language codes plus a list of words. It returns common translations for each word, useful for building flashcards or studying vocabulary.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Fathom Analytics
Privacy-first website analytics via Fathom — list sites, monitor real-time visitors, and aggregate pageviews directly through your AI agent.
Forj
Manage community members, groups, and activity via AI agents with Forj (formerly Mobilize).
Customer.io
Send behavior-driven emails, push notifications, and in-app messages triggered by what your users actually do in your product.
You might also like
AcademyOcean
LMS for smart corporate training — manage learners, courses, and training progress via AI.
AntEater
Monitor website changes, detect content updates, and receive alerts when key pages are modified across your digital properties.
Amplitude
Analyze product data via Amplitude — get user activity, calculate retention, analyze funnels, and track revenue directly from any AI agent.