{
  "schemaVersion": "1.0",
  "item": {
    "slug": "interactive-leetcode",
    "name": "Interactive LeetCode practice",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/SPerekrestova/interactive-leetcode",
    "canonicalUrl": "https://clawhub.ai/SPerekrestova/interactive-leetcode",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/interactive-leetcode",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=interactive-leetcode",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "interactive-leetcode",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T10:36:11.261Z",
      "expiresAt": "2026-05-11T10:36:11.261Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=interactive-leetcode",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=interactive-leetcode",
        "contentDisposition": "attachment; filename=\"interactive-leetcode-1.0.3.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "interactive-leetcode"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/interactive-leetcode"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/interactive-leetcode",
    "agentPageUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent",
    "manifestUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Interactive LeetCode MCP",
        "body": "MCP server for LeetCode practice with learning-guided hints, solution submission, and AI-driven authentication."
      },
      {
        "title": "Prerequisite: Ensure MCP Server Is Connected",
        "body": "Before anything else, check whether the get_started tool is available. If it is, the server is connected — skip to the next section.\n\nIf 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.\n\nThe npm package is @sperekrestova/interactive-leetcode-mcp (source: GitHub). It runs over stdio transport. Requires Node.js >= 20.\n\nAfter the user confirms, add to the client's MCP configuration (the exact file varies by client):\n\n{\n  \"mcpServers\": {\n    \"leetcode\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@sperekrestova/interactive-leetcode-mcp@3.1.1\"]\n    }\n  }\n}\n\nFor Claude Code specifically, you can also run:\n\nclaude mcp add --transport stdio leetcode -- npx -y @sperekrestova/interactive-leetcode-mcp@3.1.1\n\nPin 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.\n\nAfter 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."
      },
      {
        "title": "First Action: Always Call get_started",
        "body": "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.\n\nDo 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."
      },
      {
        "title": "Session Flow (Critical)",
        "body": "1. Call get_started              <-- FIRST, every session\n2. Invoke leetcode_learning_mode <-- BEFORE any problem discussion\n3. User picks a problem\n4. Invoke leetcode_problem_workflow(problemSlug, difficulty)\n5. Invoke leetcode_workspace_setup(language, problemSlug, codeTemplate)\n6. Guide user with progressive hints (4 levels)\n7. submit_solution when ready\n\nSteps 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.\n\nStep 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."
      },
      {
        "title": "Prompt Invocation Rules",
        "body": "PromptWhenParamsleetcode_learning_modeSTART of session, before any problemnoneleetcode_problem_workflowAfter user selects a problemproblemSlug, difficultyleetcode_workspace_setupBefore user starts codinglanguage, problemSlug, codeTemplateleetcode_authentication_guideOn auth need, 401 errors, expired credsnone"
      },
      {
        "title": "Learning Mode Rules",
        "body": "Never show a full solution without working through hint levels 1 → 2 → 3\nLevel 1: Guiding questions (\"What pattern do you see?\")\nLevel 2: General approaches (\"Consider using a hash map...\")\nLevel 3: Specific hints (\"Iterate once, tracking seen values...\")\nLevel 4: Pseudocode or partial implementation\nOnly show complete solutions when explicitly requested AFTER earlier hints\nget_problem_solution returns full community solutions — Level 4 or explicit request only"
      },
      {
        "title": "Tool Quick Reference",
        "body": "ToolPurposeAuth?get_daily_challengeToday's challengeNoget_problemProblem by slugNosearch_problemsFind by tags/difficulty/keywordsNolist_problem_solutionsSolution metadata (topicIds)Noget_problem_solutionFull solution — Level 4 onlyNosubmit_solutionSubmit codeNo*get_user_profileAny user's statsNoget_recent_submissionsRecent submissionsNoget_recent_ac_submissionsAccepted submissionsNoget_user_contest_rankingContest rankingNostart_leetcode_authStart auth flowNosave_leetcode_credentialsValidate + save credsNocheck_auth_statusCheck credential stateNoget_user_statusCurrent user infoYesget_problem_submission_reportSubmission detailYesget_problem_progressProgress with filtersYesget_all_submissionsAll submissionsYes\n\n*submit_solution requires saved credentials to succeed."
      },
      {
        "title": "Auth Flow",
        "body": "Before auth-sensitive actions → call check_auth_status\nIf not authenticated or expired → ask the user if they want to authenticate. Explain that this will store LeetCode session cookies locally at ~/.leetcode-mcp/credentials.json (owner-read/write only). Do not proceed without consent.\nAfter consent → invoke leetcode_authentication_guide prompt\nCall start_leetcode_auth → the prompt will guide the user through providing credentials → call save_leetcode_credentials with the values the user provides\nOn success → retry original action\nOn 401 from any tool → repeat from step 1\n\nAlways 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.\n\nCredential 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."
      },
      {
        "title": "Submission Language Map",
        "body": "User saysPass to submit_solutionPython / Python 3python3Python 2pythonJavajavaC++cppJavaScriptjavascriptTypeScripttypescript\n\nDefault: \"Python\" without version → python3."
      },
      {
        "title": "Resources (Read-Only Lookups)",
        "body": "Resource URIWhat it providescategories://problems/allAll problem categoriestags://problems/allAll 60+ topic tagslangs://problems/allAll supported submission languagesproblem://{titleSlug}Problem detailsolution://{topicId}Solution detail (same learning-mode rules apply)"
      },
      {
        "title": "Common Mistakes",
        "body": "Jumping to problem search before invoking leetcode_learning_mode\nShowing full solutions without progressing through hint levels 1 → 2 → 3\nNot invoking leetcode_workspace_setup — code should live in a file, not only in chat\nGuiding auth manually instead of invoking leetcode_authentication_guide\nPassing \"Python\" to submit_solution instead of \"python3\"\nNot calling check_auth_status before auth-sensitive operations\nSkipping get_started and assuming tool descriptions are sufficient"
      }
    ],
    "body": "Interactive LeetCode MCP\n\nMCP server for LeetCode practice with learning-guided hints, solution submission, and AI-driven authentication.\n\nPrerequisite: Ensure MCP Server Is Connected\n\nBefore anything else, check whether the get_started tool is available. If it is, the server is connected — skip to the next section.\n\nIf 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.\n\nThe npm package is @sperekrestova/interactive-leetcode-mcp (source: GitHub). It runs over stdio transport. Requires Node.js >= 20.\n\nAfter the user confirms, add to the client's MCP configuration (the exact file varies by client):\n\n{\n  \"mcpServers\": {\n    \"leetcode\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@sperekrestova/interactive-leetcode-mcp@3.1.1\"]\n    }\n  }\n}\n\n\nFor Claude Code specifically, you can also run:\n\nclaude mcp add --transport stdio leetcode -- npx -y @sperekrestova/interactive-leetcode-mcp@3.1.1\n\n\nPin 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.\n\nAfter 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.\n\nFirst Action: Always Call get_started\n\nAt 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.\n\nDo 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.\n\nSession Flow (Critical)\n1. Call get_started              <-- FIRST, every session\n2. Invoke leetcode_learning_mode <-- BEFORE any problem discussion\n3. User picks a problem\n4. Invoke leetcode_problem_workflow(problemSlug, difficulty)\n5. Invoke leetcode_workspace_setup(language, problemSlug, codeTemplate)\n6. Guide user with progressive hints (4 levels)\n7. submit_solution when ready\n\n\nSteps 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.\n\nStep 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.\n\nPrompt Invocation Rules\nPrompt\tWhen\tParams\nleetcode_learning_mode\tSTART of session, before any problem\tnone\nleetcode_problem_workflow\tAfter user selects a problem\tproblemSlug, difficulty\nleetcode_workspace_setup\tBefore user starts coding\tlanguage, problemSlug, codeTemplate\nleetcode_authentication_guide\tOn auth need, 401 errors, expired creds\tnone\nLearning Mode Rules\nNever show a full solution without working through hint levels 1 → 2 → 3\nLevel 1: Guiding questions (\"What pattern do you see?\")\nLevel 2: General approaches (\"Consider using a hash map...\")\nLevel 3: Specific hints (\"Iterate once, tracking seen values...\")\nLevel 4: Pseudocode or partial implementation\nOnly show complete solutions when explicitly requested AFTER earlier hints\nget_problem_solution returns full community solutions — Level 4 or explicit request only\nTool Quick Reference\nTool\tPurpose\tAuth?\nget_daily_challenge\tToday's challenge\tNo\nget_problem\tProblem by slug\tNo\nsearch_problems\tFind by tags/difficulty/keywords\tNo\nlist_problem_solutions\tSolution metadata (topicIds)\tNo\nget_problem_solution\tFull solution — Level 4 only\tNo\nsubmit_solution\tSubmit code\tNo*\nget_user_profile\tAny user's stats\tNo\nget_recent_submissions\tRecent submissions\tNo\nget_recent_ac_submissions\tAccepted submissions\tNo\nget_user_contest_ranking\tContest ranking\tNo\nstart_leetcode_auth\tStart auth flow\tNo\nsave_leetcode_credentials\tValidate + save creds\tNo\ncheck_auth_status\tCheck credential state\tNo\nget_user_status\tCurrent user info\tYes\nget_problem_submission_report\tSubmission detail\tYes\nget_problem_progress\tProgress with filters\tYes\nget_all_submissions\tAll submissions\tYes\n\n*submit_solution requires saved credentials to succeed.\n\nAuth Flow\nBefore auth-sensitive actions → call check_auth_status\nIf not authenticated or expired → ask the user if they want to authenticate. Explain that this will store LeetCode session cookies locally at ~/.leetcode-mcp/credentials.json (owner-read/write only). Do not proceed without consent.\nAfter consent → invoke leetcode_authentication_guide prompt\nCall start_leetcode_auth → the prompt will guide the user through providing credentials → call save_leetcode_credentials with the values the user provides\nOn success → retry original action\nOn 401 from any tool → repeat from step 1\n\nAlways 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.\n\nCredential 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.\n\nSubmission Language Map\nUser says\tPass to submit_solution\nPython / Python 3\tpython3\nPython 2\tpython\nJava\tjava\nC++\tcpp\nJavaScript\tjavascript\nTypeScript\ttypescript\n\nDefault: \"Python\" without version → python3.\n\nResources (Read-Only Lookups)\nResource URI\tWhat it provides\ncategories://problems/all\tAll problem categories\ntags://problems/all\tAll 60+ topic tags\nlangs://problems/all\tAll supported submission languages\nproblem://{titleSlug}\tProblem detail\nsolution://{topicId}\tSolution detail (same learning-mode rules apply)\nCommon Mistakes\nJumping to problem search before invoking leetcode_learning_mode\nShowing full solutions without progressing through hint levels 1 → 2 → 3\nNot invoking leetcode_workspace_setup — code should live in a file, not only in chat\nGuiding auth manually instead of invoking leetcode_authentication_guide\nPassing \"Python\" to submit_solution instead of \"python3\"\nNot calling check_auth_status before auth-sensitive operations\nSkipping get_started and assuming tool descriptions are sufficient"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/SPerekrestova/interactive-leetcode",
    "publisherUrl": "https://clawhub.ai/SPerekrestova/interactive-leetcode",
    "owner": "SPerekrestova",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/interactive-leetcode",
    "downloadUrl": "https://openagent3.xyz/downloads/interactive-leetcode",
    "agentUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent",
    "manifestUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/interactive-leetcode/agent.md"
  }
}