LeetCode MCP サーバー
LeetCode MCP サーバーは、LeetCode API とのシームレスな統合を提供するモデル コンテキスト プロトコル (MCP)サーバーであり、LeetCode のプログラミング問題、コンテスト、ソリューション、およびユーザー データとの高度な自動化とインテリジェントな対話を可能にします。
特徴
- 🌐マルチサイトサポート:leetcode.com(グローバル)とleetcode.cn(中国)の両方のプラットフォームをサポート
- 📊問題データの取得:詳細な問題の説明、制約、例、公式の論説、ユーザーが投稿した解決策を取得します。
- 👤ユーザーデータアクセス:ユーザープロフィール、提出履歴、コンテストパフォーマンスを取得します
- 🔒プライベートデータアクセス:ユーザーノートの作成とクエリ、問題解決の進捗状況の追跡、提出内容の分析(AC/WA分析)
- 🔍高度な検索機能: タグ、難易度、カテゴリ、キーワードで問題をフィルタリング
- 📅デイリーチャレンジアクセス:デイリーチャレンジ問題に簡単にアクセスできます
前提条件
- Node.js ランタイム環境
- (オプション) 認証された API アクセス用の LeetCode セッション Cookie
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の leetcode-mcp-server を自動的にインストールするには:
手動インストール
あるいは、リポジトリをクローンしてローカルで実行することもできます。
使用法
Visual Studio Code 統合
ユーザー設定(JSON)ファイルに以下のJSON設定を追加します。Ctrl Ctrl/Cmd + Shift + P
を押してPreferences: Open User Settings (JSON)
を検索し、アクセスしてください。
オプション1: 環境変数を使用する
オプション2: コマンドライン引数の使用
LeetCode China サイトの場合は、 --site
パラメータをcn
に変更します。
[!ヒント]
サーバーは次の環境変数をサポートしています。
LEETCODE_SITE
: LeetCode APIエンドポイント('global'または'cn')LEETCODE_SESSION
: 認証された API アクセス用の LeetCode セッション Cookie優先度に関する注意: コマンドライン引数と環境変数の両方が指定されている場合、コマンドライン引数が環境変数よりも優先されます。例:
LEETCODE_SITE=cn
が設定されているが、leetcode-mcp-server --site global
を実行すると、サーバーはglobal
を使用します。LEETCODE_SESSION
が存在するが、--session "new_cookie"
を指定すると、コマンドラインセッション値が使用されます。
利用可能なツール
問題
道具 | グローバル | CN | 認証が必要です | 説明 |
---|---|---|---|---|
毎日のチャレンジ | ✅ | ✅ | ❌ | 今日のLeetCodeデイリーチャレンジ問題を取得します |
問題を取得する | ✅ | ✅ | ❌ | 特定の LeetCode 問題の詳細を取得します |
検索の問題 | ✅ | ✅ | ❌ | 複数のフィルター条件でLeetCodeの問題を検索します |
ユーザー
道具 | グローバル | CN | 認証が必要です | 説明 |
---|---|---|---|---|
ユーザープロファイルを取得する | ✅ | ✅ | ❌ | LeetCodeユーザーのプロフィール情報を取得します |
get_user_contest_ranking | ✅ | ✅ | ❌ | ユーザーのコンテストランキング統計を取得します |
最近のACサブミッションを取得する | ✅ | ✅ | ❌ | ユーザーの最近承認された提出物を取得します |
最近の投稿を取得する | ✅ | ❌ | ❌ | ユーザーの最近の投稿履歴を取得します |
get_user_status | ✅ | ✅ | ✅ | 現在のユーザーの現在のステータスを取得します |
問題報告を取得する | ✅ | ✅ | ✅ | 特定の問題に対する詳細な提出分析を提供します |
問題の進行状況を取得する | ✅ | ✅ | ✅ | 現在のユーザーの問題解決の進捗状況を取得します |
すべての提出物を取得する | ✅ | ✅ | ✅ | 現在のユーザーの送信履歴を取得します |
注記
道具 | グローバル | CN | 認証が必要です | 説明 |
---|---|---|---|---|
検索ノート | ❌ | ✅ | ✅ | フィルタリングオプションを使用してユーザーノートを検索します |
メモを取得する | ❌ | ✅ | ✅ | 質問IDで特定の問題のメモを取得します |
ノートを作成 | ❌ | ✅ | ✅ | 特定の問題に対する新しいメモを作成します |
更新ノート | ❌ | ✅ | ✅ | 既存のメモを新しいコンテンツで更新します |
ソリューション
道具 | グローバル | CN | 認証が必要です | 説明 |
---|---|---|---|---|
問題解決策のリスト | ✅ | ✅ | ❌ | 特定の問題に対するコミュニティソリューションのリストを取得します |
問題の解決策を取得する | ✅ | ✅ | ❌ | 特定のソリューションの完全なコンテンツを取得します |
ツールパラメータ
問題
- get_daily_challenge - 今日の LeetCode デイリーチャレンジの問題を完全な詳細とともに取得します
- パラメータは必要ありません
- get_problem - 特定の LeetCode 問題の詳細を取得します
titleSlug
: 問題のURLスラッグ/識別子(文字列、必須)
- search_problems - 複数のフィルター条件に基づいて LeetCode の問題を検索します
category
: 問題カテゴリフィルター (文字列、オプション、デフォルト: "all-code-essentials")tags
: 問題をフィルタリングするためのトピックタグのリスト(文字列[]、オプション)difficulty
: 問題の難易度フィルター (列挙型: "EASY", "MEDIUM", "HARD"、オプション)searchKeywords
: 問題のタイトルと説明で検索するキーワード(文字列、オプション)limit
: 返される問題の最大数(数値、オプション、デフォルト: 10)offset
: スキップする問題の数(数値、オプション)
ユーザー
- get_user_profile - LeetCodeユーザーのプロフィール情報を取得します
username
: LeetCode ユーザー名 (文字列、必須)
- get_user_contest_ranking - ユーザーのコンテストランキング情報を取得します
username
: LeetCode ユーザー名 (文字列、必須)attended
: ユーザーが参加したコンテストのみを含めるかどうか(ブール値、オプション、デフォルト: true)
- get_recent_submissions - LeetCode Global におけるユーザーの最近の投稿を取得します
username
: LeetCode ユーザー名 (文字列、必須)limit
: 返される送信の最大数(数値、オプション、デフォルト: 10)
- get_recent_ac_submissions - ユーザーの最近承認された提出物を取得します
username
: LeetCode ユーザー名 (文字列、必須)limit
: 返される送信の最大数(数値、オプション、デフォルト: 10)
- get_user_status - 現在のユーザーのステータスを取得します
- パラメータは必要ありません
- get_problem_submission_report - 特定の提出に関する詳細情報を取得します
id
: 数値の提出ID(数値、必須)
- get_problem_progress - 現在のユーザーの問題解決の進捗状況を取得します
offset
: スキップする質問の数(数値、オプション、デフォルト: 0)limit
: 返される質問の最大数(数値、オプション、デフォルト: 100)questionStatus
: 質問のステータスでフィルタリングします(列挙型: "ATTEMPTED"、"SOLVED"、オプション)difficulty
: 難易度レベルでフィルタリングする(文字列[]、オプション)
- get_all_submissions - ユーザーの投稿のページ区切りリストを取得します
limit
: 返される送信の最大数(数値、デフォルト: 20)offset
: スキップする送信数(数値、デフォルト: 0)questionSlug
: オプションの問題識別子(文字列、オプション)lang
: プログラミング言語フィルター(文字列、オプション、CNのみ)status
: 送信ステータスフィルター (列挙型: "AC", "WA"、オプション、CN のみ)lastKey
: 次のページを取得するためのページネーショントークン(文字列、オプション、CNのみ)
注記
- search_notes - LeetCode China のユーザーノートを検索します
keyword
: ノートをフィルタリングするための検索語(文字列、オプション)limit
: 返されるノートの最大数(数値、オプション、デフォルト: 10)skip
: スキップする音符の数(数値、オプション、デフォルト: 0)orderBy
: 返されるメモの並べ替え順序 (列挙型: "ASCENDING"、"DESCENDING"、オプション、デフォルト: "DESCENDING")
- get_note - 特定の LeetCode 問題に関するユーザーメモを取得します
questionId
: LeetCode問題の質問ID(文字列、必須)limit
: 返されるノートの最大数(数値、オプション、デフォルト: 10)skip
: スキップする音符の数(数値、オプション、デフォルト: 0)
- create_note - 特定の LeetCode 問題に対する新しいメモを作成します
questionId
: LeetCode問題の質問ID(文字列、必須)content
: ノートの内容。マークダウン形式をサポートします(文字列、必須)summary
: メモの短い要約またはタイトル(文字列、オプション)
- update_note - 既存のノートを新しいコンテンツまたは要約で更新します
noteId
: 更新するノートのID(文字列、必須)content
: ノートの新しいコンテンツ。マークダウン形式をサポートします(文字列、必須)summary
: ノートの新しい短い要約またはタイトル(文字列、オプション)
ソリューション
- list_problem_solutions - 特定の問題に対するコミュニティソリューションのリストを取得します
questionSlug
: 問題のURLスラッグ/識別子(文字列、必須)limit
: 返されるソリューションの最大数(数値、オプション、デフォルト: 10)skip
: スキップするソリューションの数(数値、オプション)userInput
: ソリューションをフィルタリングするための検索語句(文字列、オプション)tagSlugs
: ソリューションをフィルタリングするためのタグ識別子の配列(文字列[]、オプション、デフォルト: [])orderBy
: 返されるソリューションの並べ替え基準- グローバル: 列挙型: "HOT"、"MOST_RECENT"、"MOST_VOTES"、オプション、デフォルト: "HOT"
- CN: 列挙型: "DEFAULT"、"MOST_UPVOTE"、"HOT"、"NEWEST_TO_OLDEST"、"OLDEST_TO_NEWEST"、オプション、デフォルト: "DEFAULT"
- get_problem_solution - 特定のソリューションの完全なコンテンツを取得します
topicId
: ソリューションの一意のトピックID(文字列、必須、グローバルのみ)slug
: ソリューションの一意のスラッグ/識別子(文字列、必須、CNのみ)
利用可能なリソース
リソース名 | グローバル | CN | 認証が必要です | 説明 |
---|---|---|---|---|
問題カテゴリ | ✅ | ✅ | ❌ | すべての問題分類カテゴリのリスト |
問題タグ | ✅ | ✅ | ❌ | アルゴリズムとデータ構造のタグの詳細なコレクション |
問題言語 | ✅ | ✅ | ❌ | サポートされているすべてのプログラミング言語の完全なリスト |
問題の詳細 | ✅ | ✅ | ❌ | 特定の問題に関する詳細を提供します |
問題解決 | ✅ | ✅ | ❌ | 特定のソリューションの完全なコンテンツを提供します |
リソースURI
- 問題カテゴリ- すべての問題分類カテゴリのリスト
- URI:
categories://problems/all
- URI:
- 問題タグ- アルゴリズムとデータ構造のタグの詳細なコレクション
- URI:
tags://problems/all
- URI:
- problem-langs - LeetCode でサポートされているすべてのプログラミング言語の完全なリスト
- URI:
langs://problems/all
- URI:
- 問題の詳細- 特定の LeetCode 問題に関する詳細を提供します
- URI:
problem://{titleSlug}
- パラメータ:
titleSlug
: LeetCode URL に表示される問題識別子
- URI:
- 問題-解決策- 特定の解決策の完全な内容を提供します
- グローバルURI:
solution://{topicId}
- パラメータ:
topicId
: ソリューションの一意のトピックID
- パラメータ:
- CN URI:
solution://{slug}
- パラメータ:
slug
: ソリューションの一意のスラッグ/識別子
- パラメータ:
- グローバルURI:
認証
ユーザー固有のデータ アクセスには、LeetCode セッション認証が必要です。
- LeetCodeにログイン(グローバルサイトまたは中国サイト)
- ブラウザ開発者ツールから
LEETCODE_SESSION
Cookieを抽出する --session
フラグまたはLEETCODE_SESSION
環境変数を使用してサーバーを構成する
応答フォーマット
すべてのツールは、次の構造の JSON 形式の応答を返します。
JSON_DATA_STRING
には、要求されたデータまたは失敗した要求のエラー メッセージのいずれかが含まれます。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。
You must be authenticated.
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.
LeetCode API との統合を提供し、leetcode.com と leetcode.cn プラットフォームの両方でプログラミングの問題、コンテスト、ソリューション、ユーザー データとの自動的な対話を可能にするモデル コンテキスト プロトコル サーバーです。
Related MCP Servers
- -securityFlicense-qualityServer that enhances the capabilities of the Cline coding agent. It provides intelligent code suggestions, reduces hallucinations, and documents the knowledge base by leveraging your project's documentation and detecting the technologies used in your codebase.Last updated -10JavaScript
- AsecurityAlicenseAqualityA 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 -12PythonMIT License
- -securityAlicense-qualityA 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 -95PythonMIT License
- -securityFlicense-qualityA 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 -462Python