关于 interactive-leetcode-mcp
interactive-leetcode-mcp 是用于通过 AI Agent 练习 LeetCode 的 MCP 服务。它结合渐进式提示和本地测试,并提供题目查询、解答提交及用户进度工具;项目仍在积极开发中。
主要功能
- 01引导式身份验证
- 02四级渐进提示
- 03题目搜索与详情
- 04本地运行样例测试
- 05提交解答并查看结果
- 06个人资料与提交记录
适用场景
- 01通过分阶段提示练习题目
- 02在本地用样例测试代码
- 03提交解答并查看运行时间与内存
- 04查看解题进度和竞赛排名
MCP 相关
该服务通过 MCP 工具提供 LeetCode 身份验证、题目练习、提示、本地测试、提交和用户数据功能。MCP 提示词支持循序渐进的学习流程。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
24收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Interactive LeetCode MCP
项目目前正在积极开发中,可能无法完美运行
功能
- 🔐 AI 引导认证 - Claude 会引导你完成一次性凭据设置
- 🎓 学习引导模式 - AI 会在提供解决方案前给出提示,帮助你最大限度地提升学习效果
- 📝 提交解决方案 - 提交代码并立即获取结果
- 💬 对话式工作流 - 使用 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 握手的集成测试。
配置
Claude Code 和 Claude Desktop
你可以在命令行中运行此命令
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 Agent 引导你完成认证
- 无需参数
save_leetcode_credentials
- 验证并保存你的 LeetCode 凭据
- 参数:
csrftoken、session(你提供的 Cookie 值) - 发起测试 API 调用以验证凭据
- 安全地保存凭据,以供后续使用
check_auth_status
- 检查你是否已通过认证
- 返回用户名和凭据有效时长
- 如果凭据可能即将过期,会发出警告
- 无需参数
题目工具
get_daily_challenge
- 获取今天的每日编程挑战
get_problem
- 根据 slug 获取题目详细信息
- 参数:
titleSlug(例如,“two-sum”)
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
- 查看竞赛表现和排名
学习模式
Interactive LeetCode MCP 通过 MCP Prompts 提供 AI Agent 指导,带来更好的学习体验。
功能
工作区设置: 启用学习模式后,Claude 将会:
- 创建名为
{problem-slug}.{extension}的工作区文件 - 将代码模板粘贴到文件中
- 设置合适的命名约定(例如,Java 类名)
学习引导模式: 启用后,Claude 将遵循以下指导原则:
- 揭示解答前提供渐进式提示(共 4 个等级)
- 询问有关解题思路和复杂度的引导性问题
- 鼓励独立解决问题
- 仅在明确请求时展示完整解答
题目工作流: 引导你完成整个流程:
- 理解题目
- 规划解题思路
- 设置工作区
- 在提示引导下实现
- 优化并分析复杂度
- 提交并查看结果
如何使用学习模式
如需启用学习模式,请告诉 Claude 你想在指导下练习,例如:“我们用学习模式练习吧”或“我想在提示引导下学习两数之和。”启用后:
- 调用
get_started,加载服务的使用指南 - 使用
get_daily_challenge、search_problems或get_problem获取题目 - 使用
start_problem开启会话 - 通过
request_hint请求提示,而不是直接查看解答 - 在渐进式指导下实现解答
- 仅在达到最后一个提示等级后,或想与最优解法对比时,才请求解答
Dogfood 测试
在没有实时 LeetCode 流量的情况下,将 MCP 服务作为黑盒 MCP 客户端进行测试:
npm run dogfood:local
此命令会构建服务,通过 stdio 启动 build/index.js,使用 MCP SDK 客户端连接,设置隔离的 HOME,通过固定样例提供 LeetCode 响应,并模拟用户流程,依次调用 runner_doctor、start_problem、request_hint、run_local_tests 和 get_session_state。
完整工作流以及用于本地 Claude/Agent dogfood 测试的可复制粘贴提示词,请参阅 DOGFOOD_TESTING.md。
故障排除
“Not authorized” 或 “Invalid credentials” 错误
- 请 Claude“Authorize with LeetCode”,以重新开始身份验证
- 提取 Cookie 前,请确认已在浏览器中登录 LeetCode
- 确认复制了完整的 Cookie 值(可能会很长)
- 检查是否意外复制了多余的空格或字符
“Credentials have expired”
- LeetCode Cookie 通常会在 7-14 天后过期
- 只需再次让 Claude“Authorize with LeetCode”
- 你需要从浏览器中提取新的 Cookie
找不到开发者工具或 Cookie
- 告诉 Claude 你使用的浏览器,Claude 会提供对应浏览器的操作说明
- 在 Chrome 中:按 F12,点击“Application”选项卡,展开“Cookies”
- 在 Firefox 中:按 F12,点击“Storage”选项卡,展开“Cookies”
- 在 Safari 中:先启用“开发者”菜单(“偏好设置” → “高级”),然后选择“开发” → “显示网页检查器”
复制了错误的值
- 确认复制的是“VALUE”列,而不是名称
- 值应为较长的随机字符串(50 个字符以上)
- 双击该值以全选后再复制
- 如果不确定,Claude 可以再次引导你完成此过程
授权期间浏览器未打开
- 没关系!只需手动打开 https://leetcode.com/accounts/login/
- Claude 仍会引导你完成提取 Cookie 的过程
“Unsupported language” 错误
- 支持的语言:java、python、python3、cpp、c++、javascript、js、typescript、ts
提交超时
- LeetCode 可能流量较大,请稍后重试
- 检查你的互联网连接
Skills 与插件
此仓库还附带一项Agent 技能,用于教会 Claude(以及其他 AI Agent)如何正确使用 MCP 服务,包括会话流程、提示词调用、学习模式和身份验证。
Claude Code 插件
直接将此技能安装为 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 / Clawbot)
此技能也发布在 ClawHub,可供兼容 OpenClaw 的 Agent 使用。
致谢
基于 Leetcode mcp) 分叉而来
许可证
MIT © SPerekrestova
链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。