LeetCode MCP Server
An MCP server that provides tools to interact with the LeetCode API, enabling problem fetching, code template generation, and solution execution/submission.
README
LeetCode MCP Server
An MCP-compatible server that exposes a set of tools to interact with the LeetCode API. This allows you to fetch problems, generate code templates, run, and submit solutions programmatically.
Overview
This project provides a simple and effective way to interface with LeetCode's services. It's built using Python and the mcp framework, exposing functionalities as tools that can be easily integrated into other applications or used for automating LeetCode tasks.
Features
- Fetch Problem Details: Get the full description, examples, and constraints for any LeetCode problem.
- Code Template Generation: Generate starter code for any problem in your preferred language.
- Run Code: Test your solution against the example test cases.
- Submit Code: Submit your solution for evaluation against the full test suite.
- Daily Challenge: Fetch the current daily LeetCode challenge.
- Search Problems: Search for problems with various filters like tags, difficulty, and keywords.
Getting Started
Prerequisites
- Python 3.12+
- Docker (for containerized deployment)
- Git
Configuration
To interact with the LeetCode API, you need to provide your LEETCODE_SESSION and LEETCODE_CSRFTOKEN cookies.
- Log in to your LeetCode account in your web browser.
- Open the developer tools (usually by pressing
F12orCtrl+Shift+I). - Go to the Application (or Storage) tab.
- Find the Cookies section and select
https://leetcode.com. - Locate the
LEETCODE_SESSIONandcsrftokencookies and copy their values.
Create a .env file in the root of the project and add your credentials:
# .env
LEETCODE_SESSION=your_leetcode_session_cookie
LEETCODE_CSRFTOKEN=your_leetcode_csrftoken
Local Installation
-
Clone the repository:
git clone https://github.com/AHM215/leetcode-mcp.git cd leetcode-mcp -
Install dependencies:
pip install uv uv pip install -e . -
Run the server:
uv run python run_server.pyThe server will start, and you can interact with it using an MCP client.
Docker Usage
Pull from Docker Hub
You can pull the pre-built Docker image from Docker Hub.
docker pull ahm215/leetcode-mcp-server:latest
Run with Docker
To run the server using Docker, you need to pass your LeetCode credentials as environment variables.
docker run -d \
-p 8000:8000 \
--name leetcode-mcp-server \
-e LEETCODE_SESSION="your_leetcode_session_cookie" \
-e LEETCODE_CSRFTOKEN="your_leetcode_csrftoken" \
ahm215/leetcode-mcp-server:latest
Build from Source
You can also build the Docker image from the source code.
- Clone the repository (if you haven't already).
- Build the image:
docker build -t leetcode-mcp-server . - Run the container as shown in the "Run with Docker" section, using
leetcode-mcp-serveras the image name.
Claude Desktop Usage
If you want to run this server as a tool in a Claude Desktop environment, you can use the following JSON configuration. This defines a tool that runs the Docker container and passes the necessary credentials.
Note: You must replace the placeholder values for --leetcode-session and --csrftoken with your actual LeetCode cookies.
"docker-leetcode-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ahm215/leetcode-mcp-server:v1.0.0",
"--leetcode-session",
"your_leetcode_session_cookie",
"--csrftoken",
"your_leetcode_csrftoken"
]
}
Available Tools (API)
The server exposes the following tools:
fetch_problem_plain_text
Fetches the plain text content of a LeetCode problem given its URL.
- Parameters:
link(str): The full URL of the LeetCode problem.
- Returns: (str) The plain text description of the problem.
generate_template
Generates a language-specific code template for a given LeetCode problem.
- Parameters:
problem_slug(str): The slug of the problem from its URL (e.g., "two-sum").code_lang(str): The language slug (e.g., "python3", "java", "cpp").
- Returns: (str) The code template.
run_code
Executes code against the example test cases for a LeetCode problem.
- Parameters:
problem_slug(str): The slug of the problem.code_lang(str): The language slug.code(str): The code to be executed.
- Returns: (dict) The results of the execution.
submit_code
Submits code for a LeetCode problem for evaluation against the full test suite.
- Parameters:
problem_slug(str): The slug of the problem.code_lang(str): The language slug.code(str): The code to be submitted.
- Returns: (dict) The submission result.
get_daily_challenge
Retrieves today's LeetCode Daily Challenge problem.
- Parameters: None
- Returns: (dict) Details of the daily challenge problem.
get_problem
Retrieves details about a specific LeetCode problem.
- Parameters:
titleSlug(str): The slug of the problem.
- Returns: (dict) Detailed information about the problem.
search_problems
Searches for LeetCode problems based on various filters.
- Parameters:
category(str, optional): The category to search in. Defaults to "all-code-essentials".tags(List[str], optional): A list of tags to filter by.difficulty(str, optional): The difficulty level ("EASY", "MEDIUM", "HARD").searchKeywords(str, optional): Keywords to search for.limit(int, optional): The number of results to return. Defaults to 10.offset(int, optional): The offset for pagination. Defaults to 0.
- Returns: (dict) A list of problems matching the criteria.
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue if you have any suggestions or find any bugs.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.