LeetCode交互式编程工具

一个AI辅助的LeetCode交互式编程工具,提供多语言支持、学习引导模式、代码提交反馈及详细问题数据。

  • by SPerekrestova
  • TypeScript
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 SPerekrestova/interactive-leetcode-mcp

使用说明

交互式LeetCode MCP

当前项目正在积极开发中,可能无法完美运行

特性

  • 🔐 AI引导认证 -Claude引导您完成一次性凭证设置
  • 🎓 学习指导模式 -人工智能在解决方案之前提供提示,以最大限度地提高学习效果
  • 📝 解决方案提交 -提交代码并获得即时结果
  • 💬 会话工作流程 -用Claude Code自然地练习
  • 🌍 多语言支持 -Java、Python、C++、JavaScript、TypeScript等
  • 📊 详细反馈 -运行时统计数据、内存使用情况、失败的测试用例
  • 📚 问题数据 -描述、约束、示例、编辑解决方案
  • 👤 用户跟踪 -个人资料数据、提交历史、比赛排名

先决条件

  • Node.js v20.x或更高版本
  • LeetCode帐户
  • 任何现代网络浏览器(Chrome、Firefox、Safari、Edge等)

安装

通过NPM(推荐)

npm install -g @sperekrestova/interactive-leetcode-mcp
interactive-leetcode-mcp --version
interactive-leetcode-mcp --help

您也可以在不全局安装的情况下运行该包:

npx -y @sperekrestova/interactive-leetcode-mcp@latest --version

来源

git clone https://github.com/SPerekrestova/interactive-leetcode-mcp.git
cd interactive-leetcode-mcp
npm install && npm run build
npm link

新鲜环境烟雾测试

使用此功能从干净的目录中验证已发布的npm包,而无需任何 LeetCode凭据:

mkdir leetcode-mcp-smoke
cd leetcode-mcp-smoke
npm init -y
npm install @sperekrestova/interactive-leetcode-mcp
npx --no-install interactive-leetcode-mcp --version
npx --no-install interactive-leetcode-mcp --help

这些命令确认Node可以安装包并公开CLI 二元的。对于实际的MCP服务器验证,使用连接 通过stdio完成MCP握手。

配置

克劳德代码和克劳德桌面

您可以在CLI中执行此命令

claude mcp add --transport stdio leetcode -- npx -y @sperekrestova/interactive-leetcode-mcp@latest

或添加到MCP配置文件中(~/.config/claude-code/mcp.json)或(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "leetcode": {
      "command": "npx",
      "args": ["-y", "@sperekrestova/interactive-leetcode-mcp@latest"]
    }
  }
}

本地建设

{
  "mcpServers": {
    "leetcode": {
      "command": "node",
      "args": ["/path/to/this/project/interactive-leetcode-mcp/build/index.js"]
    }
  }
}

快速开始

1.使用LeetCode进行授权

You: "Authorize with LeetCode"
Claude: [Opens LeetCode in your browser and guides you through the process]
Claude: "Please log in to your account. Once logged in, I'll walk you through
        getting two cookie values we need. First, press F12 to open DevTools..."
You: [Follows Claude's step-by-step guidance]
You: "Here are my cookies: csrftoken is abc123... and LEETCODE_SESSION is xyz789..."
Claude: "✓ Perfect! Your credentials are validated and saved. Welcome back, johndoe!"

2.练习一道题

You: "I want to practice two-sum"
Claude: [Fetches problem and creates working file]

3.卡住时寻求帮助

You: "Give me a hint"
Claude: [Provides contextual guidance based on your code]

4.提交您的解决方案

You: "Submit my solution"
Claude: "🎉 Accepted! Runtime: 2ms (beats 95.3%)"

可用工具

入门指南

get_started

  • 返回服务器使用指南、学习流程、身份验证流程和 提交语言图
  • 在LeetCode练习会话开始时调用此命令

授权

start_leetcode_auth

  • 启动身份验证流程
  • 打开浏览器以LeetCode登录(如果可能)
  • 返回AI代理的结构化指令以指导您
  • 无需参数

save_leetcode_credentials

  • 验证并保存您的LeetCode凭据
  • 参数: csrftoken, session (您提供的cookie值)
  • 进行测试API调用以验证凭据
  • 安全地存储凭据以供将来使用

check_auth_status

  • 检查您是否已通过身份验证
  • 返回用户名和凭据期限
  • 如果凭据可能很快过期,则发出警告
  • 无需参数

问题工具

get_daily_challenge

  • 获取今天的每日编码挑战

get_problem

  • 通过slug获取详细的问题信息
  • 参数: titleSlug (例如,“两和”)

search_problems

  • 按难度、标签、关键字搜索问题
  • 支持过滤和分页

会话和学习工具

start_problem

  • 为某个问题打开或继续辅导课程
  • 参数: titleSlug,可选 language
  • 问题特定提示和解决方案工具之前需要

request_hint

  • 提高活动会话的渐进提示级别
  • 参数: titleSlug
  • 在最终提示级别后解锁社区解决方案工具

get_session_state

  • 显示当前提示级别和会话元数据
  • 参数: titleSlug

reset_session

  • 重置问题的提示进度
  • 参数: titleSlug

本地运行工具

runner_doctor

  • 报告哪些本地运行时适用于支持的语言

run_local_tests

  • 在本地子流程沙箱中对示例测试运行用户代码
  • 参数: titleSlug, language, code,可选 timeoutMs

解决方案工具

list_problem_solutions

  • 列出问题的社区/编辑解决方案文章
  • 参数: questionSlug,可选 limit, skip, orderBy, userInput, tagSlugs
  • 要求会话达到解决方案解锁提示级别

get_problem_solution

  • 获取特定解决方案文章
  • 参数: topicId, titleSlug
  • 要求会话达到解决方案解锁提示级别

提交工具

submit_solution

  • 提交代码并获得实时结果
  • 参数: problemSlug, code, language
  • 返回:接受状态、运行时、内存或失败的测试用例

用户工具

get_user_profile

  • 检索用户配置文件信息

get_recent_submissions

  • 通过过滤获取提交历史记录

get_recent_ac_submissions

  • 获取最近接受的提交

get_user_status

  • 获取经过身份验证的用户的状态/配置文件摘要

get_problem_submission_report

  • 获取一个问题的提交报告

get_problem_progress

  • 获得问题的解决/尝试进度

get_all_submissions

  • 获取分页的提交历史记录

get_user_contest_ranking

  • 查看比赛表现和排名

学习模式

交互式LeetCode MCP通过MCP Prompts提供AI代理指导,以创造更好的学习体验。

特性

工作区设置: 当学习模式处于活动状态时,Claude将:

  • 创建名为的工作空间文件 {problem-slug}.{extension}
  • 将代码模板粘贴到文件中
  • 设置适当的命名约定(例如Java类名)

学习指导模式: 激活时,Claude遵循以下准则:

  • 在揭示解决方案之前提供渐进式提示(4个级别)
  • 就方法和复杂性提出指导性问题
  • 鼓励独立解决问题
  • 仅在明确请求时显示完整的解决方案

问题工作流程: 引导您完成整个循环:

  1. 理解问题
  2. 规划方法
  3. 设置工作区
  4. 用提示实现
  5. 优化和分析复杂性
  6. 提交并审查结果

如何使用学习模式

要激活学习模式,请告诉克劳德你想在指导下练习——例如,“让我们在学习模式下练习”或“我想学习两个加提示的和”。一旦激活:

  1. 叫 get_started 加载服务器的使用指南
  2. 获取问题 与 get_daily_challenge, search_problems,或 get_problem
  3. 打开会话 与 start_problem
  4. 询问提示 通过 request_hint 而不是直接跳到解决方案
  5. 实施您的解决方案 在渐进式指导下
  6. 请求解决方案 仅在最终提示级别之后或您想要时 与最优方法进行比较

狗粮检测

要将MCP服务器测试为没有实时LeetCode流量的黑盒MCP客户端:

npm run dogfood:local

这将构建服务器,生成 build/index.js 通过stdio,与 MCP SDK客户端,使用隔离 HOME,提供来自灯具的LeetCode响应, 并驱动用户般的流动 runner_doctor, start_problem, request_hint, run_local_tests,以及 get_session_state.

看 狗_测试.md 对于完整的工作流程和 复制粘贴提示以进行本地Claude/agent狗粮测试。

故障排除

“未授权”或“凭据无效”错误

  • 要求Claude“使用LeetCode授权”以开始新的身份验证
  • 在提取Cookie之前,请确保您已在浏览器中登录LeetCode
  • 验证您是否复制了完整的cookie值(它们可能很长)
  • 检查是否意外复制了多余的空格或字符

“凭据已过期”

  • LeetCode Cookie通常在7-14天后过期
  • 只需再次让Claude“使用LeetCode授权”
  • 您需要从浏览器中提取新的Cookie

找不到DevTools或Cookie

  • 询问Claude您正在使用哪个浏览器-Claude将提供特定于浏览器的说明
  • 在Chrome浏览器中:按F12,单击“应用程序”选项卡,展开“Cookie”
  • 在Firefox中:按F12,单击“存储”选项卡,展开“Cookie”
  • 在Safari浏览器中:首先启用“开发人员”菜单(首选项→ 高级),然后开发→ 显示Web检查器

复制了错误的值

  • 确保复制的是VALUE列,而不是名称
  • 值应该是长随机字符串(50+个字符)
  • 在复制之前,双击该值以选择所有值
  • 如果你不确定,克劳德可以再次指导你完成这个过程

授权期间浏览器未打开

  • 没关系!只需打开https://leetcode.com/accounts/login/手动地
  • Claude仍将指导您完成cookie提取过程

“不支持的语言”错误

  • 支持的语言:java、python、python3、cpp、c++、javascript、js、typescript、ts

提交超时

  • LeetCode可能遇到高流量-请等待并重试
  • 检查您的互联网连接

技能和插件

该回购还提供 代理技能 它教Claude(和其他AI代理)如何正确使用MCP服务器,包括会话流、提示调用、学习模式和身份验证。

Claude代码插件

将技能直接安装为Claude Code插件:

/plugin marketplace add SPerekrestova/interactive-leetcode-mcp
/plugin install interactive-leetcode-mcp@interactive-leetcode-mcp

然后开始练习环节:

/interactive-leetcode-mcp:interactive-leetcode-mcp

ClawHub(OpenClaw/Crawbot)

该技能也发表在 技能商店 与OpenClaw兼容的代理一起使用。

致谢

源自 Leetcode mcp)

许可证

麻省理工学院© SPerekristova

链接