mcpField
L
Luogu MCP Server

Luogu MCP Server

リモート
github.com/Kaiserunix科学・教育310 週間前に更新
リポジトリ

Luogu MCP Server について

プログラミング学習者向けの読み取り専用 Luogu MCP サーバーです。問題やトレーニングセットの検索、問題文の取得、関連練習の発見に対応します。

主な機能

  1. 01トピックやキーワードで問題を検索
  2. 02問題文、サンプル、タグ、難易度を取得
  3. 03URL、ID、タイトルから問題を特定
  4. 04関連問題やトピック別練習を検索
  5. 05トレーニングセットを検索・取得
  6. 06公開ユーザープロフィールを取得

活用シーン

  1. 01アルゴリズムの入門問題を探す
  2. 02問題文とサンプルケースを確認
  3. 03学習上の課題に関連する練習を探す

MCP 対応

読み取り専用の Luogu 検索、問題、トレーニングセット、推薦、公開プロフィールのツールを MCP クライアントに提供します。ローカルの stdio またはホスト型 Streamable HTTP サーバーとして実行できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://luogu-mcp-server.lantangtang54.workers.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

Luogu MCP サーバー | 洛谷 MCP Server

中国語ドキュメント

Luogu の問題の検索、問題文や問題集の閲覧、関連する練習問題の検索ができる、小規模な MCP サーバーです。npm 経由でローカル実行することも、ホスト型の Streamable HTTP サーバーとして実行することもできます。

クイックスタート

インストール不要のホスト型読み取り専用サーバーを使用します。

{
  "mcpServers": {
    "luogu": {
      "url": "https://luogu-mcp.ksrnyx.top/mcp"
    }
  }
}

サーバーをお使いのマシンで実行するには、公開されている luogu-mcp-server パッケージを使用します。

{
  "mcpServers": {
    "luogu": {
      "command": "npx",
      "args": ["-y", "luogu-mcp-server"]
    }
  }
}

続いて、次のように尋ねます。

Search Luogu for five beginner binary-tree problems.
Fetch Luogu P1305 with its statement and samples.
Find related practice for traversal-order confusion.

ツール

ツール用途
luogu_search_problemsキーワード、トピック、タイトルの一部、問題 ID、任意の Luogu タグ ID で Luogu の問題を検索します。
luogu_fetch_problempid を指定して Luogu の問題を 1 つ取得し、問題文、形式、サンプル、タグ、難易度、URL を返します。
luogu_resolve_problemLuogu の URL、問題 ID、またはタイトルの一部を特定し、問題を取得します。
luogu_find_related_problemsトピックや課題に基づくおすすめと、リアルタイムのキーワード検索を組み合わせて、関連する練習問題を見つけます。
luogu_list_algorithm_topics標準的なアルゴリズムトピック、別名、既知のタグ ID を一覧表示します。
luogu_find_topic_problems別名、タグ ID、重複排除、照合理由を使って、トピックに関連する練習問題を見つけます。
luogu_search_problem_setsキーワードで Luogu の問題集を検索します。Luogu の現在の公式リスト用エンドポイントでは公開されている公式インデックスのみが提供される一方、ユーザーが共有した厳選問題集はキーワード検索に対応しているため、`type: "all"
luogu_fetch_problem_setLuogu の問題集を 1 つ取得し、ID で問題の概要を返します。
luogu_recommend_problemsトピックまたは学習者の課題に基づいて、おすすめ問題を返します。
luogu_get_user_profileuid を指定して、Luogu の公開ユーザープロフィール情報を取得します。
luogu_get_capabilitiesLeetCode 形式のルート機能について、利用可能、認証必須、または予定のいずれかを報告します。

すべてのツールは読み取り専用です。

利用方法

  • ホスト型 MCP:https://luogu-mcp.ksrnyx.top/mcp
  • ヘルスチェック:https://luogu-mcp.ksrnyx.top/health
  • 公式 MCP Registry:io.github.Kaiserunix/luogu-mcp-server。server.json で説明されています。

その他の実行方法

ソースから実行する場合:

git clone https://github.com/kaiserunix/luogu-mcp-server.git
cd luogu-mcp-server
cmd /c npm install
cmd /c npm run build

ソースチェックアウトから node を直接使用します。

{
  "mcpServers": {
    "luogu": {
      "command": "node",
      "args": [
        "C:\\path\\to\\luogu-mcp-server\\dist\\index.js"
      ],
      "cwd": "C:\\path\\to\\luogu-mcp-server"
    }
  }
}

呼び出し例

問題を検索します。

{
  "keyword": "二叉树",
  "page": 1,
  "limit": 5
}

Luogu のタグで絞り込んで問題を検索します。

{
  "keyword": "二叉树",
  "tagIds": [11],
  "limit": 5
}

問題を取得します。

{
  "pid": "P1305",
  "maxStatementChars": 5000
}

課題に基づいておすすめを取得します。

{
  "topic": "binary_tree",
  "painPoint": "traversal_order_confusion",
  "limit": 3
}

貼り付けた URL から問題を特定します。

{
  "query": "https://www.luogu.com.cn/problem/P1305",
  "maxStatementChars": 5000
}

関連する練習問題を見つけます。

{
  "topic": "binary_tree",
  "painPoint": "traversal_order_confusion",
  "query": "二叉树 遍历",
  "limit": 5
}

別名の展開を利用して、トピックに関連する練習問題を見つけます。

{
  "topic": "Treap",
  "limit": 5,
  "excludeProblemIds": ["P3369"]
}

公開ユーザープロフィールを取得します。

{
  "uid": 1
}

問題集を検索します。

{
  "keyword": "网络流",
  "type": "select",
  "limit": 5
}

type: "all" がデフォルトです。タイトルで絞り込んだ公式問題集と、ユーザーが共有した厳選問題集の検索を組み合わせます。公開されている公式インデックスには type: "official"、ユーザーが共有した厳選問題集には type: "select" を使用します。

Luogu のルートとの対応

このプロジェクトは、Luogu が公開している情報の範囲を尊重しながら、より高機能な LeetCode MCP サーバーの便利な機能を取り入れています。

  • 現在利用可能:問題の検索、問題の取得、URL/ID/タイトルによる特定、関連問題の検索、問題集の検索と取得、公開ユーザープロフィールの取得。
  • 実環境での確認には認証が必要:最近の提出、公開解説ページ、ディスカッションページ。
  • 今後の予定だが、意図的に未提供:解答の提出/コード実行ツール。これらには、認証済みセッションの処理と、書き込みツールに対する明示的な安全対策が必要です。

開発

cmd /c npm test
cmd /c npm run build

Cloudflare Worker のデプロイ

このパッケージには、Cloudflare Workers 用のステートレスな Streamable HTTP MCP エントリーポイントも含まれています。

cmd /c npm test
cmd /c npm run smoke:cf
cmd /c npx wrangler login
cmd /c npm run deploy:cf:dry
cmd /c npm run deploy:cf

Worker は /mcp で同じ読み取り専用ツールを公開し、/ または /health にヘルスエンドポイントを提供します。

{
  "mcpServers": {
    "luogu": {
      "url": "https://<your-worker-name>.<your-workers-subdomain>.workers.dev/mcp"
    }
  }
}

デプロイ済みの Worker を確認します。

cmd /c npm run smoke:cf -- https://<your-worker-name>.<your-workers-subdomain>.workers.dev

プライベートなデプロイでは、wrangler secret put を使用して LUOGU_MCP_TOKEN を設定し、対応している場合は Authorization: Bearer <token> ヘッダーを送信するよう MCP クライアントを設定してください。ブラウザーからの Origin リクエストはデフォルトで拒否されます。ブラウザーからのアクセスが必要な場合は、LUOGU_MCP_ALLOWED_ORIGINS にカンマ区切りのオリジン一覧を設定してください。

リリース前の確認項目全体については、docs/cloudflare-deployment.md を参照してください。

Luogu の現在のウェブサイト応答に対する広範なライブチェックを実行します。

cmd /c npm run smoke:live

ライブスモークテストでは、実際の stdio クライアントを通じて MCP サーバーを起動し、問題の取得、問題の検索、トレーニングの検索、トレーニングの取得、URL/ID の解決、関連するおすすめ、公的一般ユーザープロフィール、ルート機能を Luogu のコンテンツ専用ページの応答と比較します。Luogu のネットワーク接続と現在のサイトの動作に依存するため、ユニットテストとは意図的に分けています。

100 トピックのアルゴリズム網羅性スモークテストを実行します。

cmd /c npm run smoke:topics

トピックのスモークテストでは、実際の MCP サーバーを起動し、上位レベルのトピック検索とトレーニングセット検索を通じて 100 のアルゴリズムカテゴリを調べます。98 件未満のトピック検索しか Luogu の結果を返さない場合、テストは失敗します。

カタログ内の各トピックから代表的な問題を 1 件ずつダウンロードし、ローカルの無視対象フォルダーに保存します。

cmd /c npm run download:topics

モデルに MCP ツールを選ばせ、その呼び出しをローカルの stdio MCP サーバー経由で実行する MiMo エージェントループをテストします。

cmd /c npm run smoke:mimo

smoke:mimo は、このマシンでは環境変数から MIMO_API_KEY を読み込むか、C:\Users\qwerf\.continue\.env から読み込みます。

注意事項

  • ここで使用している Luogu のエンドポイントは、コンテンツ専用のウェブエンドポイントであり、正式な安定性保証の対象ではありません。
  • サーバーは、モデルコンテキストを制御できるよう、出力を簡潔で構造化された形式に保ちます。
  • ブラウザー自動化は、意図的にデフォルトの方法としていません。軽量な HTTP で読み取れないページには、後から Playwright のフォールバックを追加できます。
  • 幅広いトピックを見つける場合、生の問題タイトル検索よりも Luogu のトレーニングセット検索のほうが、多くの場合、結果を絞り込みやすくなります。生のキーワード検索は Luogu のウェブサイトの表示順に従い、タイトルレベルのノイズが含まれることがあります。

コメント

MCP は初めてですか?

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

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