mcpField
I
interactive-leetcode-mcp

interactive-leetcode-mcp

本地服务
github.com/SPerekrestova科研与教育126 周前更新

关于 interactive-leetcode-mcp

interactive-leetcode-mcp 是用于通过 AI Agent 练习 LeetCode 的 MCP 服务。它结合渐进式提示和本地测试,并提供题目查询、解答提交及用户进度工具;项目仍在积极开发中。

主要功能

  1. 01引导式身份验证
  2. 02四级渐进提示
  3. 03题目搜索与详情
  4. 04本地运行样例测试
  5. 05提交解答并查看结果
  6. 06个人资料与提交记录

适用场景

  1. 01通过分阶段提示练习题目
  2. 02在本地用样例测试代码
  3. 03提交解答并查看运行时间与内存
  4. 04查看解题进度和竞赛排名

MCP 相关

该服务通过 MCP 工具提供 LeetCode 身份验证、题目练习、提示、本地测试、提交和用户数据功能。MCP 提示词支持循序渐进的学习流程。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sperekrestova-interactive-leetcode": {
"command": "npx",
"args": [
"-y",
"@sperekrestova/interactive-leetcode-mcp"
]
}
}
}
启动命令npx -y @sperekrestova/interactive-leetcode-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@sperekrestova/interactive-leetcode-mcp3.2.6

工具

24

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Interactive LeetCode MCP

npm version npm downloads GitHub stars MCP Registry GitHub license

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

功能

  • 🔐 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 个等级)
  • 询问有关解题思路和复杂度的引导性问题
  • 鼓励独立解决问题
  • 仅在明确请求时展示完整解答

题目工作流: 引导你完成整个流程:

  1. 理解题目
  2. 规划解题思路
  3. 设置工作区
  4. 在提示引导下实现
  5. 优化并分析复杂度
  6. 提交并查看结果
如何使用学习模式

如需启用学习模式,请告诉 Claude 你想在指导下练习,例如:“我们用学习模式练习吧”或“我想在提示引导下学习两数之和。”启用后:

  1. 调用 get_started,加载服务的使用指南
  2. 使用 get_daily_challenge、search_problems 或 get_problem 获取题目
  3. 使用 start_problem 开启会话
  4. 通过 request_hint 请求提示,而不是直接查看解答
  5. 在渐进式指导下实现解答
  6. 仅在达到最后一个提示等级后,或想与最优解法对比时,才请求解答

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 可以再次引导你完成此过程

授权期间浏览器未打开

“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

链接

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。