mcpField
L
LeetCode Crawler

LeetCode Crawler

ローカル
github.com/louisfghbvcブラウザ自動化428 週間前に更新

LeetCode Crawler について

LeetCode Crawlerは、企業タグ付きの面接ディスカッションを収集し、投稿を分類・重複排除します。Claude AIによる面接情報の構造化抽出にも対応し、CLI、CSV出力、MCPツールを提供します。

主な機能

  1. 01企業タグでディスカッションを収集
  2. 02投稿の分類と重複排除
  3. 03期間とカテゴリで絞り込み
  4. 04Claude AIで面接情報を抽出
  5. 05結果をCSVに保存
  6. 064種類のMCPツールを提供

活用シーン

  1. 01対象企業の面接報告を確認
  2. 02頻出するLeetCode問題を特定
  3. 03スレッドの取得やキャッシュの更新

MCP 対応

MCPサーバーはstdioで4種類のツールを公開し、キャッシュ検索、頻出問題の集計、スレッド取得、キャッシュ更新を行います。Claude DesktopとClaude Codeでの利用を想定しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LeetCode ディスカッション クローラー + MCP サーバー

LeetCode の面接ディスカッションフォーラムをクロールし、Claude AI で構造化された情報を抽出して、Claude Desktop と Claude Code 向けの MCP(Model Context Protocol)サーバーとしてデータを公開します。

機能

  • 企業タグ(google、meta、amazon など)で絞り込んだ LeetCode ディスカッションフォーラムをクロールします
  • 投稿を種類別に分類します(leetcode、discuss_link、discussion)
  • 複数ページにわたるディスカッションを投稿タイトルと企業ごとにグループ化し、重複を排除します
  • 必要に応じて、AI で抽出した項目を投稿に追加します:problem_name、leetcode_url、 interview_stage、difficulty、reported_outcome
  • CSV に保存します(企業ごとのキャッシュ、または月次の出力)
  • Claude Desktop/Claude Code で利用できるよう、stdio MCP トランスポート経由で 4 つのツールを公開します

インストール

git clone https://github.com/louisfghbvc/mcp-leetcode-crawler.git
cd mcp-leetcode-crawler
pip install -r requirements.txt

使い方

CLI
# Crawl 10 pages of Google interview discussions
python cli.py --company google --pages 10

# Filter to posts from the last 30 days
python cli.py --company google --pages 10 --since 30d

# Crawl and enrich with AI extraction (requires ANTHROPIC_API_KEY)
python cli.py --company google --pages 10 --enrich

# Other companies
python cli.py --company meta --pages 5 --since 7d

利用可能な CLI オプション:

  • --company:企業タグ(デフォルト:google)
  • --pages:クロールするページ数。1 ページあたり 15 件の投稿(デフォルト:10)
  • --output:出力 CSV のパス(デフォルト:leetcode_interview_questions.csv)
  • --output-dir:月次 CSV の出力先ディレクトリ(デフォルト:output)
  • --since:対象期間のフィルター — Nd(日)または Nw(週)、例:--since 14d
  • --enrich:各投稿から AI で構造化された項目を抽出します(ANTHROPIC_API_KEY が必要です)
  • --verbose:デバッグログを出力します
  • --category:ディスカッションのカテゴリ(デフォルト:interview-question)
MCP サーバー

Claude Desktop または Claude Code に登録します:

# Run directly
python mcp_server.py

# Or register with Claude Desktop
mcp install mcp_server.py

サーバーは 4 つのツールを公開します:

ツール説明
search_discussions(company, days)キャッシュされた投稿を企業と期間で絞り込みます
get_hot_problems(company, limit)ディスカッションの頻度順に並べた LeetCode 問題の上位一覧を取得します
get_thread(post_id)単一スレッドをリアルタイムで取得します(キャッシュなし)
refresh(company, num_pages, days, enrich)クロールしてディスク上のキャッシュを再構築します

キャッシュは ./cache/{company}_questions.csv に保存されます。search_discussions または get_hot_problems を使う前に、refresh を一度実行してデータを格納してください。

AI による情報の追加

--enrich(CLI)または enrich=True(MCP の refresh)を使用すると、各投稿に 5 つの項目が追加されます:

項目値
problem_nameLeetCode の問題名、または null
leetcode_url問題の完全な URL、または null
interview_stagephone screen / online assessment / onsite / final round / null
difficultyeasy / medium / hard / null
reported_outcomepassed / failed / no mention / null(null は抽出に失敗したことを示し、再試行されます)

費用:claude-haiku-4-5-20251001 を使用した場合、投稿 1 件あたり約 $0.001 です。すでに情報が追加されている投稿は、再実行時にスキップされます。

プロジェクト構成

mcp-leetcode-crawler/
├── crawler.py          # Core crawler: fetch, deduplicate, filter, classify posts
├── extractor.py        # AI extraction layer: Claude Haiku → structured fields
├── mcp_server.py       # MCP server: 4 tools over stdio transport
├── cli.py              # Command-line interface
├── requirements.txt    # Python dependencies
├── test_crawler.py     # Crawler unit tests
├── test_mcp_server.py  # MCP server unit tests (22 tests)
├── test_extractor.py   # Extractor unit tests (12 tests)
├── test_cli.py         # CLI integration tests (2 tests)
└── cache/              # Per-company CSV cache (git-ignored)

要件

  • Python 3.12+
  • ANTHROPIC_API_KEY 環境変数(--enrich を使う場合のみ)

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。