使用说明
交互式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个级别)
- 就方法和复杂性提出指导性问题
- 鼓励独立解决问题
- 仅在明确请求时显示完整的解决方案
问题工作流程: 引导您完成整个循环:
- 理解问题
- 规划方法
- 设置工作区
- 用提示实现
- 优化和分析复杂性
- 提交并审查结果
如何使用学习模式
要激活学习模式,请告诉克劳德你想在指导下练习——例如,“让我们在学习模式下练习”或“我想学习两个加提示的和”。一旦激活:
- 叫
get_started加载服务器的使用指南 - 获取问题 与
get_daily_challenge,search_problems,或get_problem - 打开会话 与
start_problem - 询问提示 通过
request_hint而不是直接跳到解决方案 - 实施您的解决方案 在渐进式指导下
- 请求解决方案 仅在最终提示级别之后或您想要时 与最优方法进行比较
狗粮检测
要将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