skills/interactive-leetcode-mcp/SKILL.md
Use when the user wants to practice LeetCode problems, submit solutions, or set up LeetCode integration. Covers MCP server installation, learning-guided practice flow, solution submission, and authentication.
npx skillsauth add sperekrestova/interactive-leetcode-mcp interactive-leetcode-mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
MCP server for LeetCode practice with learning-guided hints, solution submission, and AI-driven authentication.
Before anything else, check whether the get_started tool is available. If it is, the server is connected — skip to the next section.
If get_started is NOT available, the MCP server needs to be installed. Ask the user for confirmation before proceeding — explain that this will download and run an npm package.
The npm package is @sperekrestova/interactive-leetcode-mcp (source: GitHub). It runs over stdio transport. Requires Node.js >= 20.
After the user confirms, add to the client's MCP configuration (the exact file varies by client):
{
"mcpServers": {
"leetcode": {
"command": "npx",
"args": ["-y", "@sperekrestova/[email protected]"]
}
}
}
For Claude Code specifically, you can also run:
claude mcp add --transport stdio leetcode -- npx -y @sperekrestova/[email protected]
Pin a specific version (shown above) rather than using @latest to avoid executing untested code. Users can check for newer versions at the npm page or GitHub releases and update the pinned version after reviewing the changelog.
After adding the server, tell the user to restart their session so the MCP tools become available. Do not proceed with the session flow until get_started is accessible.
At the START of every LeetCode session, call the get_started tool. It returns the full usage guide: prompt invocation rules, session flow, learning mode rules, auth flow, and language map.
Do not skip this — it is a single fast call, not redundant with tool descriptions. The server has MCP prompts that must be explicitly invoked — they are NOT auto-active. The get_started response tells you exactly when and how.
1. Call get_started <-- FIRST, every session
2. Invoke leetcode_learning_mode <-- BEFORE any problem discussion
3. User picks a problem
4. Invoke leetcode_problem_workflow(problemSlug, difficulty)
5. Invoke leetcode_workspace_setup(language, problemSlug, codeTemplate)
6. Guide user with progressive hints (4 levels)
7. submit_solution when ready
Steps 2, 4, and 5 are MCP prompt invocations. Invoke them via the Skill tool or equivalent prompt mechanism. All three must happen BEFORE the user starts coding.
Step 2 is non-negotiable. If you skip leetcode_learning_mode, you will bypass the progressive hint system and may show solutions prematurely. Invoke it before searching for or discussing any problem.
| Prompt | When | Params |
| ------------------------------- | --------------------------------------- | ----------------------------------- |
| leetcode_learning_mode | START of session, before any problem | none |
| leetcode_problem_workflow | After user selects a problem | problemSlug, difficulty |
| leetcode_workspace_setup | Before user starts coding | language, problemSlug, codeTemplate |
| leetcode_authentication_guide | On auth need, 401 errors, expired creds | none |
get_problem_solution returns full community solutions — Level 4 or explicit request only| Tool | Purpose | Auth? |
| ------------------------------- | -------------------------------- | ------- |
| get_daily_challenge | Today's challenge | No |
| get_problem | Problem by slug | No |
| search_problems | Find by tags/difficulty/keywords | No |
| list_problem_solutions | Solution metadata (topicIds) | No |
| get_problem_solution | Full solution — Level 4 only | No |
| submit_solution | Submit code | No* |
| get_user_profile | Any user's stats | No |
| get_recent_submissions | Recent submissions | No |
| get_recent_ac_submissions | Accepted submissions | No |
| get_user_contest_ranking | Contest ranking | No |
| start_leetcode_auth | Start auth flow | No |
| save_leetcode_credentials | Validate + save creds | No |
| check_auth_status | Check credential state | No |
| get_user_status | Current user info | Yes |
| get_problem_submission_report | Submission detail | Yes |
| get_problem_progress | Progress with filters | Yes |
| get_all_submissions | All submissions | Yes |
*submit_solution requires saved credentials to succeed.
check_auth_status~/.leetcode-mcp/credentials.json (owner-read/write only). Do not proceed without consent.leetcode_authentication_guide promptstart_leetcode_auth → the prompt will guide the user through providing credentials → call save_leetcode_credentials with the values the user providesAlways delegate auth guidance to the leetcode_authentication_guide prompt. Do not improvise your own auth instructions — the prompt handles browser-specific guidance, error recovery, and troubleshooting.
Credential storage: The MCP server stores credentials locally at ~/.leetcode-mcp/credentials.json with file permissions 0o600 (owner-read/write only). Only csrftoken, LEETCODE_SESSION, and a createdAt timestamp are stored. Credentials are never transmitted to any third party — they are used exclusively for direct LeetCode API calls. Typical credential lifetime is 7-14 days.
| User says | Pass to submit_solution |
| ----------------- | ----------------------- |
| Python / Python 3 | python3 |
| Python 2 | python |
| Java | java |
| C++ | cpp |
| JavaScript | javascript |
| TypeScript | typescript |
Default: "Python" without version → python3.
| Resource URI | What it provides |
| --------------------------- | ------------------------------------------------ |
| categories://problems/all | All problem categories |
| tags://problems/all | All 60+ topic tags |
| langs://problems/all | All supported submission languages |
| problem://{titleSlug} | Problem detail |
| solution://{topicId} | Solution detail (same learning-mode rules apply) |
leetcode_learning_modeleetcode_workspace_setup — code should live in a file, not only in chatleetcode_authentication_guide"Python" to submit_solution instead of "python3"check_auth_status before auth-sensitive operationsget_started and assuming tool descriptions are sufficienttools
Use when the user wants to practice LeetCode problems, submit solutions, or set up LeetCode integration. Covers MCP server installation, learning-guided practice flow, solution submission, and authentication.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------