interactive-leetcode-mcp について
interactive-leetcode-mcpは、AIエージェントとLeetCodeの問題に取り組むためのMCPサーバーです。段階的なヒントとローカルテストに加え、問題検索、解答提出、ユーザー進捗の確認機能を備え、現在も開発中です。
主な機能
- 01ガイド付き認証
- 024段階のヒント
- 03問題検索と詳細表示
- 04サンプルテストのローカル実行
- 05解答提出と結果表示
- 06プロフィールと提出履歴
活用シーン
- 01段階的なヒントを使った問題練習
- 02サンプルケースによるローカルコードテスト
- 03解答を提出して実行時間とメモリを確認
- 04解答進捗とコンテスト順位の確認
MCP 対応
LeetCode認証、問題演習、ヒント、ローカルテスト、提出、ユーザーデータ用のMCPツールを公開します。MCPプロンプトが段階的な学習フローを支援します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
24掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Interactive LeetCode MCP
現在、このプロジェクトは積極的に開発中で、完全には動作しない場合があります。
特長
- 🔐 AI による認証ガイド - Claude が一度限りの認証情報の設定を案内します
- 🎓 学習ガイドモード - AI が解答の前にヒントを提示し、学習効果を高めます
- 📝 解答の提出 - コードを提出して、すぐに結果を確認できます
- 💬 対話型ワークフロー - Claude Code と自然なやり取りをしながら練習できます
- 🌍 複数言語に対応 - Java、Python、C++、JavaScript、TypeScript など
- 📊 詳細なフィードバック - 実行時間の統計、メモリ使用量、失敗したテストケース
- 📚 問題データ - 説明、制約、例、公式解説
- 👤 ユーザー追跡 - プロフィールデータ、提出履歴、コンテストランキング
前提条件
- Node.js v20.x 以降
- LeetCode アカウント
- 最新のウェブブラウザー(Chrome、Firefox、Safari、Edge など)
インストール
NPM 経由(推奨)
npm install -g @sperekrestova/interactive-leetcode-mcp
interactive-leetcode-mcp --version
interactive-leetcode-mcp --help
グローバルにインストールせずにパッケージを実行することもできます。
npx -y @sperekrestova/interactive-leetcode-mcp@latest --version
ソースから
git clone https://github.com/SPerekrestova/interactive-leetcode-mcp.git
cd interactive-leetcode-mcp
npm install && npm run build
npm link
クリーンな環境でのスモークテスト
LeetCode の認証情報を使わず、クリーンなディレクトリから公開済みの npm パッケージを検証するには、次のコマンドを使用します。
mkdir leetcode-mcp-smoke
cd leetcode-mcp-smoke
npm init -y
npm install @sperekrestova/interactive-leetcode-mcp
npx --no-install interactive-leetcode-mcp --version
npx --no-install interactive-leetcode-mcp --help
これらのコマンドにより、Node がパッケージをインストールし、CLI バイナリを公開できることを確認できます。実際の MCP サーバーの検証には、stdio 経由で接続し、MCP ハンドシェイクを完了する統合テストを使用してください。
設定
Claude Code と Claude Desktop
このコマンドを CLI で実行できます。
claude mcp add --transport stdio leetcode -- npx -y @sperekrestova/interactive-leetcode-mcp@latest
または、MCP 設定ファイル(~/.config/claude-code/mcp.json)または(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。
{
"mcpServers": {
"leetcode": {
"command": "npx",
"args": ["-y", "@sperekrestova/interactive-leetcode-mcp@latest"]
}
}
}
ローカルビルド
{
"mcpServers": {
"leetcode": {
"command": "node",
"args": ["/path/to/this/project/interactive-leetcode-mcp/build/index.js"]
}
}
}
クイックスタート
1. LeetCode で認証する
You: "Authorize with LeetCode"
Claude: [Opens LeetCode in your browser and guides you through the process]
Claude: "Please log in to your account. Once logged in, I'll walk you through
getting two cookie values we need. First, press F12 to open DevTools..."
You: [Follows Claude's step-by-step guidance]
You: "Here are my cookies: csrftoken is abc123... and LEETCODE_SESSION is xyz789..."
Claude: "✓ Perfect! Your credentials are validated and saved. Welcome back, johndoe!"
2. 問題に取り組む
You: "I want to practice two-sum"
Claude: [Fetches problem and creates working file]
3. 行き詰まったときにサポートを受ける
You: "Give me a hint"
Claude: [Provides contextual guidance based on your code]
4. 解答を提出する
You: "Submit my solution"
Claude: "🎉 Accepted! Runtime: 2ms (beats 95.3%)"
利用可能なツール
はじめに
get_started
- サーバーの使用ガイド、学習の流れ、認証の流れ、提出言語の対応表を返します
- LeetCode の練習セッションを始める際に呼び出してください
認証
start_leetcode_auth
- 認証フローを開始します
- 可能な場合は、LeetCode のログインページをブラウザーで開きます
- AI エージェントが案内するための、構造化された手順を返します
- パラメーターは不要です
save_leetcode_credentials
- LeetCode の認証情報を検証して保存します
- パラメーター:
csrftoken、session(ユーザーが指定する Cookie の値) - 認証情報を確認するため、テスト API 呼び出しを行います
- 今後使用するために認証情報を安全に保存します
check_auth_status
- 認証済みかどうかを確認します
- ユーザー名と認証情報の経過時間を返します
- 認証情報の有効期限が近い可能性がある場合は警告します
- パラメーターは不要です
問題ツール
get_daily_challenge
- 今日のデイリーコーディングチャレンジを取得します
get_problem
- スラッグを指定して、問題の詳細情報を取得します
- パラメーター:
titleSlug(例:"two-sum")
search_problems
- 難易度、タグ、キーワードで問題を検索します
- フィルタリングとページネーションに対応しています
セッションと学習のツール
start_problem
- 問題のチュータリングセッションを開始、または再開します
- パラメーター:
titleSlug、任意のlanguage - 問題固有のヒントおよび解答ツールを使用する前に必須です
request_hint
- アクティブなセッションのヒントレベルを段階的に進めます
- パラメーター:
titleSlug - 最終ヒントレベルに到達すると、コミュニティ解答ツールが利用可能になります
get_session_state
- 現在のヒントレベルとセッションのメタデータを表示します
- パラメーター:
titleSlug
reset_session
- 問題のヒントの進捗をリセットします
- パラメーター:
titleSlug
ローカル実行ツール
runner_doctor
- 対応言語で利用可能なローカルランタイムを報告します
run_local_tests
- ローカルのサブプロセスサンドボックスで、ユーザーのコードをサンプルテストに対して実行します
- パラメーター:
titleSlug、language、code、任意のtimeoutMs
解答ツール
list_problem_solutions
- 問題のコミュニティ解答記事および公式解説記事の一覧を表示します
- パラメーター:
questionSlug、任意のlimit、skip、orderBy、userInput、tagSlugs - セッションが解答を利用できるヒントレベルに達している必要があります
get_problem_solution
- 特定の解答記事を取得します
- パラメーター:
topicId、titleSlug - セッションが解答を利用できるヒントレベルに達している必要があります
提出ツール
submit_solution
- コードを提出し、リアルタイムの結果を取得します
- パラメーター:
problemSlug、code、language - 戻り値:受理ステータス、実行時間、メモリ使用量、または失敗したテストケース
ユーザーツール
get_user_profile
- ユーザープロフィール情報を取得します
get_recent_submissions
- フィルタリング機能付きで提出履歴を取得します
get_recent_ac_submissions
- 最近受理された提出を取得します
get_user_status
- 認証済みユーザーのステータスとプロフィールの概要を取得します
get_problem_submission_report
- 1つの問題の提出レポートを取得します
get_problem_progress
- 問題の解答済み/取り組み中の進捗を取得します
get_all_submissions
- ページ分割された提出履歴を取得します
get_user_contest_ranking
- コンテストの成績とランキングを確認します
学習モード
Interactive LeetCode MCP には、より良い学習体験を実現するため、MCP プロンプトによる AI エージェントのガイダンスが含まれています。
機能
ワークスペースのセットアップ: 学習モードが有効な場合、Claude は次の操作を行います。
{problem-slug}.{extension}という名前のワークスペースファイルを作成します- コードテンプレートをファイルに貼り付けます
- 適切な命名規則(Java のクラス名など)を設定します
学習ガイドモード: 有効な場合、Claude は次のガイドラインに従います。
- 解答を示す前に、段階的なヒント(4段階)を提示します
- アプローチや計算量について、考えを導く質問をします
- 自分で問題を解くよう促します
- 明示的に求められた場合にのみ、完全な解答を提示します
問題解決のワークフロー: 次の一連の流れを通じてガイドします。
- 問題を理解する
- アプローチを計画する
- ワークスペースを設定する
- ヒントを使って実装する
- 最適化し、計算量を分析する
- 提出して結果を確認する
学習モードの使い方
学習モードを有効にするには、ガイダンスを受けながら練習したいと Claude に伝えます。たとえば、「学習モードで練習しましょう」や「ヒントを使って two-sum を学びたいです」と伝えます。有効にしたら、次の手順に従います。
get_startedを呼び出し、サーバーの使用ガイドを読み込みますget_daily_challenge、search_problems、またはget_problemを使って問題を取得しますstart_problemでセッションを開始します- 解答にすぐ飛びつかず、
request_hintでヒントを求めます - 段階的なガイダンスを受けながら解答を実装します
- 最終ヒントレベルに到達した後、または最適なアプローチと比較したいときにのみ、解答を求めます
ドッグフードテスト
ライブの LeetCode トラフィックを使わずに、ブラックボックスの MCP クライアントとして MCP サーバーをテストするには:
npm run dogfood:local
これにより、サーバーをビルドし、stdio 経由で build/index.js を起動し、MCP SDK クライアントで接続し、分離された HOME を使用して、フィクスチャから LeetCode のレスポンスを返し、ユーザーのようなフローで runner_doctor、start_problem、request_hint、run_local_tests、get_session_state を実行します。
ワークフローの全容と、ローカルでの Claude/エージェントによるドッグフードテストに使えるコピー&ペースト用プロンプトについては、DOGFOOD_TESTING.md を参照してください。
トラブルシューティング
「Not authorized」または「Invalid credentials」エラー
- Claude に「LeetCode で認証して」と頼み、新しい認証を開始してください
- Cookie を取得する前に、ブラウザーで LeetCode にログインしていることを確認してください
- Cookie の値をすべてコピーしたことを確認してください(非常に長い場合があります)
- 誤って余分なスペースや文字をコピーしていないか確認してください
「Credentials have expired」
- LeetCode の Cookie は通常、7~14 日で期限切れになります
- もう一度 Claude に「LeetCode で認証して」と頼んでください
- ブラウザーから新しい Cookie を取得する必要があります
DevTools または Cookie が見つからない
- Claude に使用しているブラウザーを伝えてください。Claude がブラウザーに合わせた手順を案内します
- Chrome の場合:F12 キーを押し、「Application」タブをクリックして、「Cookies」を展開します
- Firefox の場合:F12 キーを押し、「Storage」タブをクリックして、「Cookies」を展開します
- Safari の場合:まず開発メニューを有効にして(Preferences → Advanced)、Develop → Show Web Inspector を選択します
誤った値をコピーした
- 名前ではなく、「VALUE」列をコピーしていることを確認してください
- 値は長いランダムな文字列(50 文字以上)であるはずです
- コピーする前に値をダブルクリックして、全体を選択してください
- 不明な場合は、Claude にもう一度手順を案内してもらえます
認証中にブラウザーが開かない
- 問題ありません!https://leetcode.com/accounts/login/ を手動で開いてください
- Claude が引き続き Cookie の取得手順を案内します
「Unsupported language」エラー
- サポートされている言語:java、python、python3、cpp、c++、javascript、js、typescript、ts
提出のタイムアウト
- LeetCode のトラフィックが増加している可能性があります。しばらく待ってから再試行してください
- インターネット接続を確認してください
スキルとプラグイン
このリポジトリには、MCP サーバーを正しく使う方法(セッションの流れ、プロンプトの呼び出し、学習モード、認証など)を Claude(および他の AI エージェント)に教えるエージェントスキルも含まれています。
Claude Code プラグイン
スキルを Claude Code プラグインとして直接インストールします:
/plugin marketplace add SPerekrestova/interactive-leetcode-mcp
/plugin install interactive-leetcode-mcp@interactive-leetcode-mcp
次に、以下のコマンドで練習セッションを開始します:
/interactive-leetcode-mcp:interactive-leetcode-mcp
ClawHub(OpenClaw/Clawbot)
このスキルは、OpenClaw 対応エージェント向けに ClawHub でも公開されています。
謝辞
Leetcode mcp からフォークしました)
ライセンス
MIT © SPerekrestova
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。