在停更的两周里,我开发了开源项目 LeetCode MCP Server,通过结合大模型能力与 LeetCode API,帮助用户分析代码错误、修复 Bug 并生成题目笔记,提升刷题效率。
本期目标:利用 LeetCode MCP Server 分析错题并生成笔记
试一试 LeetCode MCP Server
本文使用 Cherry Studio 客户端演示如何调用 LeetCode MCP Server。Cherry Studio 的配置方式可以参考我之前的文章中最后一节:MCP 实战系列(Day 2)- 动手搓个文件系统 MCP 服务器。
1. 添加 MCP 配置
在 Cherry Studio 的 MCP 服务器中添加 LeetCode MCP Server 的配置,注意环境变量 LEETCODE_SITE
需设置为 global
(全球站)或 cn
(中国站)。
配置成功并启动,可以看到可用的工具列表:
2. 给模型答题错误的提交记录
找一个多年前答题错误的一次提交记录,并要求模型 分析错误原因并指出错误的代码行,如下:
可以看到,模型识别出提交链接中的提交 ID 并自动调用 get_problem_submission_report
工具获得了提交的详细信息,包括错误信息和测试用例。接着,模型分析了错误原因,并指出了代码中的问题行。
3. 重新提交代码
模型根据分析结果,给出了修复后的代码,重新提交到 LeetCode,发现可以通过了。
4. 生成题目笔记
最后,我要求模型 帮我创建这道题的错误笔记。可以看到模型自动调用了 get_problem
和 create_note
工具,获取了题目的详细信息,并生成了一份结构化的题目笔记,在官网上预览一下:
LeetCode MCP 的工具列表
除了上述示例中使用的工具,LeetCode MCP Server 还封装了其他常用的 LeetCode API,方便大模型进行调用。以下是工具列表:
题目工具
get_daily_challenge
: 获取今天的每日挑战题get_problem
: 获取特定题目的详细信息search_problems
: 使用多种过滤条件搜索题目
用户工具
get_user_profile
: 获取用户的简介信息get_user_contest_ranking
: 获取用户的竞赛排名统计get_recent_ac_submissions
: 获取用户近期通过的提交get_user_status
: 获取用户的当前状态get_problem_submission_report
: 提供详细的提交分析get_problem_progress
: 获取用户的答题进度get_all_submissions
: 获取用户的全部提交记录
笔记工具 (仅中国站支持)
search_notes
: 使用过滤选项搜索用户笔记get_note
: 通过题目 ID 获取特定题目的笔记create_note
: 为特定题目创建新笔记update_note
: 使用新内容更新现有笔记
题解工具
list_problem_solutions
: 获取特定题目的社区题解文章列表get_problem_solution
: 获取特定题解文章的完整内容
如何开始使用?
LeetCode MCP Server 的本地运行配置如下:
{
"mcp": {
"servers": {
"leetcode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@jinzcdev/leetcode-mcp-server"],
"env": {
"LEETCODE_SITE": "cn",
"LEETCODE_SESSION": "<YOUR_LEETCODE_SESSION_COOKIE>"
}
}
}
}
}
可将上述配置添加到 Claude Desktop、Cline 和 VS Code 等 MCP 客户端中(注意细微的配置差别)。
除了本地化运行,也可以使用第三方的 MCP 托管服务器。本服务已经托管在以下几个平台:
- 魔搭社区提供的国内最大的 MCP 广场:MCP - LeetCode(力扣)
- Smithery 平台:LeetCode MCP Server | Smithery
- Glama 社区:LeetCode MCP Server
注:魔搭平台未检查到 LeetCode MCP Server 支持的多站点和 Session 配置选项,导致线上托管的版本只支持中国站,且不支持
LEETCODE_SESSION
配置,后续会反馈更新。
总结
本期介绍了如何通过 LeetCode MCP Server 来分析错题并生成笔记。近期 MCP 生态发展迅速,想趁热开发一些实用的 MCP 工具,但是发现许多工具社区都已提供,如果读者有一些不错的想法,欢迎在评论区留言。更欢迎 收藏、点赞、转发,给我更新下去的动力。