LeetCode MCP Server

Integrations

  • Provides tools for accessing LeetCode problems, user data, search capabilities, and submission tracking across both leetcode.com and leetcode.cn platforms. Enables retrieval of detailed problem descriptions, user profiles, submission history, and contest performance statistics.

LeetCode MCP Server

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 runtime environment
  2. (Optional) LeetCode session cookie for authenticated API access

Installation

Installing via Smithery

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

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

Manual Installation

# 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 <YOUR_LEETCODE_SESSION_COOKIE>

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

# Clone the repository git clone https://github.com/jinzcdev/leetcode-mcp-server.git # Navigate to the project directory cd leetcode-mcp-server # Build and run the server npm run build && 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
{ "mcp": { "servers": { "leetcode": { "type": "stdio", "command": "npx", "args": ["-y", "@jinzcdev/leetcode-mcp-server"], "env": { "LEETCODE_SITE": "global", "LEETCODE_SESSION": "<YOUR_LEETCODE_SESSION_COOKIE>" } } } } }
Option 2: Using Command Line Arguments
{ "mcp": { "servers": { "leetcode": { "type": "stdio", "command": "npx", "args": [ "-y", "@jinzcdev/leetcode-mcp-server", "--site", "global", "--session", "<YOUR_LEETCODE_SESSION_COOKIE>" ] } } } }

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

Tip

The server supports the following environment variables:

  • LEETCODE_SITE: LeetCode API endpoint ('global' or 'cn')
  • LEETCODE_SESSION: LeetCode session cookie for authenticated API access

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_challengeRetrieves today's LeetCode Daily Challenge problem
get_problemRetrieves details for a specific LeetCode problem
search_problemsSearches for LeetCode problems with multiple filter criteria

Users

ToolGlobalCNAuth RequiredDescription
get_user_profileRetrieves profile information for a LeetCode user
get_user_contest_rankingObtains contest ranking statistics for a user
get_recent_ac_submissionsRetrieves a user's recent accepted submissions
get_recent_submissionsRetrieves a user's recent submissions history
get_user_statusRetrieves current user's current status
get_problem_submission_reportProvides detailed submission analysis for a specific problem
get_problem_progressRetrieves current user's problem-solving progress
get_all_submissionsRetrieves current user's submission history

Notes

ToolGlobalCNAuth RequiredDescription
search_notesSearches for user notes with filtering options
get_noteRetrieves notes for a specific problem by question ID
create_noteCreates a new note for a specific problem
update_noteUpdates an existing note with new content

Solutions

ToolGlobalCNAuth RequiredDescription
list_problem_solutionsRetrieves a list of community solutions for a specific problem
get_problem_solutionRetrieves 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-categoriesA list of all problem classification categories
problem-tagsA detailed collection of algorithmic and data structure tags
problem-langsA complete list of all supported programming languages
problem-detailProvides details about a specific problem
problem-solutionProvides 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:

{ "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.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A Model Context Protocol server that provides integration with LeetCode APIs, enabling automated interaction with programming problems, contests, solutions, and user data across both leetcode.com and leetcode.cn platforms.

  1. Features
    1. Prerequisites
      1. Installation
        1. Installing via Smithery
        2. Manual Installation
      2. Usage
        1. Visual Studio Code Integration
      3. Available Tools
        1. Problems
        2. Users
        3. Notes
        4. Solutions
      4. Tool Parameters
        1. Problems
        2. Users
        3. Notes
        4. Solutions
      5. Available Resources
        1. Resource URIs
          1. Authentication
            1. Response Format
              1. License

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
                  Last updated 2 months ago
                  12
                  Python
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that provides a standardized interface for interacting with Notion's API, enabling users to list databases, create pages, and search across their Notion workspace.
                  Last updated 12 days ago
                  95
                  Python
                  MIT License
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
                  Last updated a month ago
                  46
                  2
                  Python
                  • Linux
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server providing utility tools for development and testing, offering functionalities like personalized greetings, random card drawing, and datetime formatting with an extensible architecture.
                  Last updated 2 days ago
                  19
                  545
                  1
                  TypeScript
                  MIT License
                  • Apple
                  • Linux

                View all related MCP servers

                ID: 4gwka0r9rw