Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Leetcode Mcp Server

    An MCP server enabling automated access to LeetCode's problems, solutions, and public data with optional authentication for user-specific features, supporting leetcode.com & leetcode.cn sites.

    64 stars
    TypeScript
    Updated May 31, 2025
    ai
    algorithm
    lc
    leetcode
    llm
    mcp
    mcp-server

    Table of Contents

    • Features
    • Prerequisites
    • Installation
    • Installing via Smithery
    • Manual Installation
    • Usage
    • Visual Studio Code Integration
    • Option 1: Using Environment Variables
    • Option 2: Using Command Line Arguments
    • Available Tools
    • Problems
    • Users
    • Notes
    • Solutions
    • Tool Parameters
    • Problems
    • Users
    • Notes
    • Solutions
    • Available Resources
    • Resource URIs
    • Authentication
    • Response Format
    • License

    Table of Contents

    • Features
    • Prerequisites
    • Installation
    • Installing via Smithery
    • Manual Installation
    • Usage
    • Visual Studio Code Integration
    • Option 1: Using Environment Variables
    • Option 2: Using Command Line Arguments
    • Available Tools
    • Problems
    • Users
    • Notes
    • Solutions
    • Tool Parameters
    • Problems
    • Users
    • Notes
    • Solutions
    • Available Resources
    • Resource URIs
    • Authentication
    • Response Format
    • License

    Documentation

    LeetCode MCP Server

    NPM Version

    GitHub License

    smithery badge

    Chinese Doc

    Stars

    The LeetCode MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with LeetCode APIs, enabling advanced automation and intelligent interaction with LeetCode's programming problems, contests, solutions, and user data.

    Features

    • 🌐 Multi-site Support: Support​ both leetcode.com (Global) and leetcode.cn (China) platforms
    • 📊 Problem Data Retrieval: Obtain detailed problem descriptions, constraints, examples, official editorials, and ​user-submitted solutions
    • 👤 User Data Access: Retrieve user profiles, submission history, and contest performance
    • 🔒 ​Private Data Access: Create and query user notes, track problem-solving progress, and analyze submission details (AC/WA analysis)
    • 🔍 Advanced Search Capabilities: Filter problems by tags, difficulty levels, categories, and keywords
    • 📅 Daily Challenge Access: Easily access daily challenge problems

    Prerequisites

    1. Node.js (v20.x or above)

    2. (Optional) LeetCode session cookie for authenticated API access

    Installation

    Installing via Smithery

    To install leetcode-mcp-server for Claude Desktop automatically via Smithery:

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

    Manual Installation

    bash
    # Install from npm
    npm install @jinzcdev/leetcode-mcp-server -g
    
    # Or run with Global site configuration
    npx -y @jinzcdev/leetcode-mcp-server --site global
    
    # Run with authentication (for accessing private data)
    npx -y @jinzcdev/leetcode-mcp-server --site global --session

    Alternatively, you can clone the repository and run it locally:

    bash
    # Clone the repository
    git clone https://github.com/jinzcdev/leetcode-mcp-server.git
    
    # Navigate to the project directory
    cd leetcode-mcp-server
    
    # Build the project
    npm install && npm run build
    
    # Run the server
    node build/index.js --site global

    Usage

    Visual Studio Code Integration

    Add the following JSON configuration to your User Settings (JSON) file. Access this by pressing Ctrl/Cmd + Shift + P and searching for Preferences: Open User Settings (JSON).

    Option 1: Using Environment Variables

    json
    {
      "mcp": {
        "servers": {
          "leetcode": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "@jinzcdev/leetcode-mcp-server"],
            "env": {
              "LEETCODE_SITE": "global",
              "LEETCODE_SESSION": ""
            }
          }
        }
      }
    }

    Option 2: Using Command Line Arguments

    json
    {
      "mcp": {
        "servers": {
          "leetcode": {
            "type": "stdio",
            "command": "npx",
            "args": [
              "-y",
              "@jinzcdev/leetcode-mcp-server",
              "--site",
              "global",
              "--session",
              ""
            ]
          }
        }
      }
    }

    For LeetCode China site, modify the --site parameter to cn.

    [!TIP]

    The server supports the following optional environment variables:

    - LEETCODE_SITE: LeetCode API endpoint ('global' or 'cn', default: 'global')

    - LEETCODE_SESSION: LeetCode session cookie for authenticated API access (default: empty)

    Priority Note:

    Command-line arguments take precedence over environment variables when both are specified. For example:

    - If LEETCODE_SITE=cn is set but you run leetcode-mcp-server --site global, the server will use global.

    - If LEETCODE_SESSION exists but you provide --session "new_cookie", the command-line session value will be used.

    Available Tools

    Problems

    ToolGlobalCNAuth RequiredDescription
    get_daily_challenge✅✅❌Retrieves today's LeetCode Daily Challenge problem
    get_problem✅✅❌Retrieves details for a specific LeetCode problem
    search_problems✅✅❌Searches for LeetCode problems with multiple filter criteria

    Users

    ToolGlobalCNAuth RequiredDescription
    get_user_profile✅✅❌Retrieves profile information for a LeetCode user
    get_user_contest_ranking✅✅❌Obtains contest ranking statistics for a user
    get_recent_ac_submissions✅✅❌Retrieves a user's recent accepted submissions
    get_recent_submissions✅❌❌Retrieves a user's recent submissions history
    get_user_status✅✅✅Retrieves current user's current status
    get_problem_submission_report✅✅✅Provides detailed submission analysis for a specific problem
    get_problem_progress✅✅✅Retrieves current user's problem-solving progress
    get_all_submissions✅✅✅Retrieves current user's submission history

    Notes

    ToolGlobalCNAuth RequiredDescription
    search_notes❌✅✅Searches for user notes with filtering options
    get_note❌✅✅Retrieves notes for a specific problem by question ID
    create_note❌✅✅Creates a new note for a specific problem
    update_note❌✅✅Updates an existing note with new content

    Solutions

    ToolGlobalCNAuth RequiredDescription
    list_problem_solutions✅✅❌Retrieves a list of community solutions for a specific problem
    get_problem_solution✅✅❌Retrieves the complete content of a specific solution

    Tool Parameters

    Problems

    • get_daily_challenge - Retrieves today's LeetCode Daily Challenge problem with complete details
    • No parameters required
    • get_problem - Retrieves details about a specific LeetCode problem
    • titleSlug: The URL slug/identifier of the problem (string, required)
    • search_problems - Searches for LeetCode problems based on multiple filter criteria
    • category: Problem category filter (string, optional, default: "all-code-essentials")
    • tags: List of topic tags to filter problems by (string[], optional)
    • difficulty: Problem difficulty level filter (enum: "EASY", "MEDIUM", "HARD", optional)
    • searchKeywords: Keywords to search in problem titles and descriptions (string, optional)
    • limit: Maximum number of problems to return (number, optional, default: 10)
    • offset: Number of problems to skip (number, optional)

    Users

    • get_user_profile - Retrieves profile information about a LeetCode user
    • username: LeetCode username (string, required)
    • get_user_contest_ranking - Retrieves a user's contest ranking information
    • username: LeetCode username (string, required)
    • attended: Whether to include only the contests the user has participated in (boolean, optional, default: true)
    • get_recent_submissions - Retrieves a user's recent submissions on LeetCode Global
    • username: LeetCode username (string, required)
    • limit: Maximum number of submissions to return (number, optional, default: 10)
    • get_recent_ac_submissions - Retrieves a user's recent accepted submissions
    • username: LeetCode username (string, required)
    • limit: Maximum number of submissions to return (number, optional, default: 10)
    • get_user_status - Retrieves the current user's status
    • No parameters required
    • get_problem_submission_report - Retrieves detailed information about a specific submission
    • id: The numerical submission ID (number, required)
    • get_problem_progress - Retrieves the current user's problem-solving progress
    • offset: Number of questions to skip (number, optional, default: 0)
    • limit: Maximum number of questions to return (number, optional, default: 100)
    • questionStatus: Filter by question status (enum: "ATTEMPTED", "SOLVED", optional)
    • difficulty: Filter by difficulty levels (string[], optional)
    • get_all_submissions - Retrieves paginated list of user's submissions
    • limit: Maximum number of submissions to return (number, default: 20)
    • offset: Number of submissions to skip (number, default: 0)
    • questionSlug: Optional problem identifier (string, optional)
    • lang: Programming language filter (string, optional, CN only)
    • status: Submission status filter (enum: "AC", "WA", optional, CN only)
    • lastKey: Pagination token for retrieving next page (string, optional, CN only)

    Notes

    • search_notes - Searches for user notes on LeetCode China
    • keyword: Search term to filter notes (string, optional)
    • limit: Maximum number of notes to return (number, optional, default: 10)
    • skip: Number of notes to skip (number, optional, default: 0)
    • orderBy: Sort order for returned notes (enum: "ASCENDING", "DESCENDING", optional, default: "DESCENDING")
    • get_note - Retrieves user notes for a specific LeetCode problem
    • questionId: The question ID of the LeetCode problem (string, required)
    • limit: Maximum number of notes to return (number, optional, default: 10)
    • skip: Number of notes to skip (number, optional, default: 0)
    • create_note - Creates a new note for a specific LeetCode problem
    • questionId: The question ID of the LeetCode problem (string, required)
    • content: The content of the note, supports markdown format (string, required)
    • summary: An optional short summary or title for the note (string, optional)
    • update_note - Updates an existing note with new content or summary
    • noteId: The ID of the note to update (string, required)
    • content: The new content for the note, supports markdown format (string, required)
    • summary: An optional new short summary or title for the note (string, optional)

    Solutions

    • list_problem_solutions - Retrieves a list of community solutions for a specific problem
    • questionSlug: The URL slug/identifier of the problem (string, required)
    • limit: Maximum number of solutions to return (number, optional, default: 10)
    • skip: Number of solutions to skip (number, optional)
    • userInput: Search term to filter solutions (string, optional)
    • tagSlugs: Array of tag identifiers to filter solutions (string[], optional, default: [])
    • orderBy: Sorting criteria for the returned solutions
    • Global: enum: "HOT", "MOST_RECENT", "MOST_VOTES", optional, default: "HOT"
    • CN: enum: "DEFAULT", "MOST_UPVOTE", "HOT", "NEWEST_TO_OLDEST", "OLDEST_TO_NEWEST", optional, default: "DEFAULT"
    • get_problem_solution - Retrieves the complete content of a specific solution
    • topicId: Unique topic ID of the solution (string, required, Global only)
    • slug: Unique slug/identifier of the solution (string, required, CN only)

    Available Resources

    Resource NameGlobalCNAuth RequiredDescription
    problem-categories✅✅❌A list of all problem classification categories
    problem-tags✅✅❌A detailed collection of algorithmic and data structure tags
    problem-langs✅✅❌A complete list of all supported programming languages
    problem-detail✅✅❌Provides details about a specific problem
    problem-solution✅✅❌Provides the complete content of a specific solution

    Resource URIs

    • problem-categories - A list of all problem classification categories
    • URI: categories://problems/all
    • problem-tags - A detailed collection of algorithmic and data structure tags
    • URI: tags://problems/all
    • problem-langs - A complete list of all programming languages supported by LeetCode
    • URI: langs://problems/all
    • problem-detail - Provides details about a specific LeetCode problem
    • URI: problem://{titleSlug}
    • Parameters:
    • titleSlug: Problem identifier as it appears in the LeetCode URL
    • problem-solution - Provides the complete content of a specific solution
    • Global URI: solution://{topicId}
    • Parameters:
    • topicId: Unique topic ID of the solution
    • CN URI: solution://{slug}
    • Parameters:
    • slug: Unique slug/identifier of the solution

    Authentication

    User-specific data access requires LeetCode session authentication:

    1. Log in to LeetCode (Global or China site)

    2. Extract LEETCODE_SESSION cookie from browser developer tools

    3. Configure server with --session flag or LEETCODE_SESSION environment variable

    Response Format

    All tools return JSON-formatted responses with the following structure:

    json
    {
      "content": [
        {
          "type": "text",
          "text": "JSON_DATA_STRING"
        }
      ]
    }

    The JSON_DATA_STRING contains either the requested data or an error message for failed requests.

    License

    This project is licensed under the MIT License.

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • AN

      Anilist Mcp

      TypeScript·
      57
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • AN

      Anilist Mcp

      TypeScript·
      57
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k