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.

139
Stars
22
Forks
TypeScript
Language
8/23/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/jinzcdev/leetcode-mcp-server

Getting Started

Guides for using skills like leetcode-mcp-server.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

LeetCode MCP Server

NPM Version Chinese Doc NPM Downloads GitHub License LeetCode MCP Server on Glama 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
  • 🔌 Dual Transport Modes: Run as a stdio process (default) or as a Streamable HTTP server for web-based integrations
  • 📊 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

# Install from npm
npm install @jinzcdev/leetcode-mcp-server -g

# Run with Global site configuration (stdio transport, default)
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>

# Run as a Streamable HTTP server
npx -y @jinzcdev/leetcode-mcp-server --transport http --port 3000 --site global

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 the project
npm install && npm run build

# Run the server (stdio transport)
node build/index.js --site global

# Or run as a Streamable HTTP server
node build/index.js --transport http --port 3000 --site global

Usage

The server supports two transport modes:

TransportDescription
stdio (default)Standard input/output transport for local MCP clients
httpStreamable HTTP transport for web-based integrations and remote access

Command-Line Options

OptionAliasDefaultDescription
--site-sglobalLeetCode API site: global (leetcode.com) or cn (leetcode.cn)
--session-cLeetCode session cookie for authenticated requests
--transport-tstdioTransport mode: stdio or http
--port3000HTTP server port (Streamable HTTP only)
--host127.0.0.1HTTP server host (Streamable HTTP only)
--endpoint/mcpHTTP endpoint path (Streamable HTTP only)

MCP Client Configuration (stdio)

Add the following server entry to your MCP client configuration file:

Option 1: Using Environment Variables

{
  "mcpServers": {
    "leetcode": {
      "command": "npx",
      "args": ["-y", "@jinzcdev/leetcode-mcp-server"],
      "env": {
        "LEETCODE_SITE": "global",
        "LEETCODE_SESSION": "<YOUR_LEETCODE_SESSION_COOKIE>"
      }
    }
  }
}

Option 2: Using Command Line Arguments

{
  "mcpServers": {
    "leetcode": {
      "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.

[!NOTE]

The exact configuration file location and JSON structure may vary by MCP client. Some clients use an mcp.servers wrapper or a type field — refer to your client's documentation and adapt the example accordingly.

MCP Client Configuration (Streamable HTTP)

First, start the server in HTTP mode:

npx -y @jinzcdev/leetcode-mcp-server --transport http --port 3000 --site global

Then connect your MCP client to the running server:

{
  "mcpServers": {
    "leetcode": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

To use authenticated endpoints, pass the session cookie when starting the server:

npx -y @jinzcdev/leetcode-mcp-server --transport http --port 3000 --site global --session <YOUR_LEETCODE_SESSION_COOKIE>

[!NOTE] Some MCP clients use "type": "http" or "type": "streamableHttp" alongside the url field. Refer to your client's documentation for the exact HTTP transport configuration format.

[!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)
  • LEETCODE_TRANSPORT: Transport mode (stdio or http, default: stdio)
  • LEETCODE_HTTP_PORT: HTTP server port when using Streamable HTTP (default: 3000)
  • LEETCODE_HTTP_HOST: HTTP server host when using Streamable HTTP (default: 127.0.0.1)
  • LEETCODE_HTTP_ENDPOINT: HTTP endpoint path when using Streamable HTTP (default: /mcp)

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

Submissions

ToolGlobalCNAuth RequiredDescription
run_codeRuns code for a problem and polls /check/ until finished
submit_solutionSubmits code for a problem and polls /check/ until finished

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)

Submissions

  • run_code - Runs code for a specific problem and waits until finished (requires authentication)

    • titleSlug: The URL slug/identifier of the problem (string, required)
    • lang: Programming language (string enum, required)
    • typedCode: Source code to run (string, required)
    • dataInput: Custom input to run (string, optional)
    • timeoutMs: Polling timeout in milliseconds (number, optional, default: 120000)
    • pollIntervalMs: Polling interval in milliseconds (number, optional, default: 1500)
  • submit_solution - Submits code for a specific problem and waits until finished (requires authentication)

    • titleSlug: The URL slug/identifier of the problem (string, required)
    • lang: Programming language (string enum, required)
    • typedCode: Source code to submit (string, required)
    • timeoutMs: Polling timeout in milliseconds (number, optional, default: 120000)
    • pollIntervalMs: Polling interval in milliseconds (number, optional, default: 1500)

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.

Frequently Asked Questions

What is leetcode-mcp-server?

leetcode-mcp-server is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by jinzcdev. 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. It has 139 GitHub stars.

Is leetcode-mcp-server safe to use?

leetcode-mcp-server returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.

How do I install leetcode-mcp-server?

Clone the repository with "git clone https://github.com/jinzcdev/leetcode-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is leetcode-mcp-server written in?

leetcode-mcp-server is primarily written in TypeScript. It is open-source under jinzcdev on GitHub, so you can review or fork the full source.

Are there alternatives to leetcode-mcp-server?

Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh leetcode-mcp-server against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

Scrapling

by D4Vinci

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

75,9137,581Python
MCP Servers
View details

TrendRadar

by sansan0

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

61,65224,883Python
MCP Servers
View details

context7

by upstash

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

61,0602,938TypeScript
MCP Servers
View details

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

39,9393,219C
MCP Servers
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details