使用说明

项目简介

LeetCode MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,它专注于将 LeetCode 平台的功能和数据以结构化的方式提供给大型语言模型(LLM)客户端。通过这个服务器,LLM 客户端可以方便地获取 LeetCode 的题目信息、用户数据、比赛情况以及题解文章等资源,并能调用预设的工具来执行特定的 LeetCode 相关操作。

主要功能点

  • 多平台支持: 同时支持 leetcode.com 和 leetcode.cn 两个站点。
  • 题目数据检索: 获取详细的 LeetCode 题目描述、约束、示例和解题思路。
  • 用户数据访问: 检索 LeetCode 用户个人资料、提交历史和比赛表现。
  • 高级搜索功能: 支持按标签、难度级别和类别筛选题目。
  • 每日挑战追踪: 轻松访问每日 LeetCode 挑战题目。
  • 题解文章: 获取 LeetCode 社区中针对特定问题的题解文章内容。

安装步骤

方法一:通过 Smithery 自动安装 (推荐 Claude Desktop 用户)

如果您的客户端是 Claude Desktop,可以使用 Smithery 命令行工具自动安装:

npx -y @smithery/cli install @jinzcdev/leetcode-mcp-server --client claude

方法二:手动安装

  1. 安装 Node.js: 确保您的环境中已安装 Node.js 运行时环境。
  2. 通过 npm 安装: 运行以下命令全局安装 'leetcode-mcp-server':
npm install @jinzcdev/leetcode-mcp-server -g

或者,您可以使用 'npx' 直接运行,无需全局安装:

npx -y @jinzcdev/leetcode-mcp-server --site global

要访问需要身份验证的功能(例如,用户提交记录),您需要提供 LeetCode 会话 Cookie:

npx -y @jinzcdev/leetcode-mcp-server --site global --session <YOUR_LEETCODE_SESSION_COOKIE>

方法三:从 GitHub 克隆并本地运行

  1. 克隆仓库:
git clone https://github.com/jinzcdev/leetcode-mcp-server.git
  1. 进入项目目录:
cd leetcode-mcp-server
  1. 构建并运行服务器:
npm run build && node build/index.js --site global

服务器配置

MCP 客户端需要配置连接到 LeetCode MCP Server 的命令。以下是 Visual Studio Code 客户端的 JSON 配置示例,您可以将其添加到 VS Code 的用户设置 (settings.json) 中:

{
  "mcp": {
    "servers": {
      "leetcode": {
        "type": "stdio",
        "command": "npx",
        "args": [
          "-y",
          "@jinzcdev/leetcode-mcp-server",
          "--site",
          "global"
          // "--session", "<YOUR_LEETCODE_SESSION_COOKIE>" // 如果需要访问认证功能,请取消注释并替换为您的 LeetCode 会话 Cookie
        ]
      }
    }
  }
}

配置参数说明:

  • server name: 'leetcode' (服务器名称,可以自定义)
  • type: 'stdio' (指定使用标准输入输出流进行通信)
  • command: 'npx' (Node.js 包执行器,用于运行 npm 包)
  • args: 启动服务器的参数列表
    • '-y': 'npx' 参数,自动确认执行
    • '@jinzcdev/leetcode-mcp-server': 要执行的 npm 包名称,即 LeetCode MCP Server
    • '--site': 指定 LeetCode 站点,'global' 代表 leetcode.com,'cn' 代表 leetcode.cn,默认为 'global'
    • '--session': (可选) LeetCode 会话 Cookie,用于身份验证,如果需要访问用户相关的私有数据(如提交记录),则需要配置此参数,请替换 '<YOUR_LEETCODE_SESSION_COOKIE>' 为您自己的 Cookie 值。获取 Cookie 的方法通常是在登录 LeetCode 后,在浏览器开发者工具中找到名为 'LEETCODE_SESSION' 或 'csrftoken' 的 Cookie 值。

注意:

  • 如果您要连接到 LeetCode 中国版站点 (leetcode.cn),请将 '--site' 参数的值改为 'cn'。
  • 如果您需要使用需要身份验证的功能,请取消注释 '"--session", "<YOUR_LEETCODE_SESSION_COOKIE>"' 并在 '<YOUR_LEETCODE_SESSION_COOKIE>' 处填入您从浏览器获取的 LeetCode 会话 Cookie。

基本使用方法

配置完成后,您的 MCP 客户端(例如 VS Code)应该能够连接到 LeetCode MCP Server。您可以使用客户端提供的界面或命令来调用服务器提供的 工具 (Tools) 和访问 资源 (Resources)

工具 (Tools) 允许您执行特定的 LeetCode 操作,例如:

  • 'leetcode_daily_challenge': 获取今日 LeetCode 每日挑战题目。
  • 'leetcode_problem': 获取指定题目的详细信息,例如 'leetcode_problem titleSlug:two-sum'。
  • 'leetcode_search_problems': 搜索 LeetCode 题目,可以根据分类、标签、难度等条件进行筛选。
  • 'leetcode_user_profile': 获取 LeetCode 用户个人资料,例如 'leetcode_user_profile username:jinzcdev'。

资源 (Resources) 允许您通过 URI 访问 LeetCode 的静态数据,例如:

  • 'leetcode://problems/categories/all': 获取所有题目分类。
  • 'leetcode://problems/tags/all': 获取所有题目标签。
  • 'leetcode://problems/langs/all': 获取所有支持的编程语言。
  • 'leetcode://solutions/{topicId}' 或 'leetcode://solutions/{slug}': 获取题解文章内容。

具体工具和资源的使用方法和参数,请参考仓库的 README.md 文档中 ToolsResources 章节的详细说明。

信息

分类

开发者工具