loading…
Search for a command to run...
loading…
A read-only MCP server for discovering and fetching Luogu problems, training sets, and user profiles.
A read-only MCP server for discovering and fetching Luogu problems, training sets, and user profiles.
A small stdio MCP server for Luogu problem discovery. It exposes a LeetCode-MCP-style Luogu route for problem search, problem fetch, URL/id resolution, related practice discovery, training set search, training set fetch, public user profiles, and explicit capability reporting.
This server is designed for AI tutoring and practice agents. The model can find a problem by topic, fetch the exact statement and samples, or ask for a bounded recommendation from a known topic or student pain point.
| Tool | Purpose |
|---|---|
luogu_search_problems |
Search Luogu problems by keyword, topic, title fragment, problem id, and optional Luogu tag ids. |
luogu_fetch_problem |
Fetch one Luogu problem statement, formats, samples, tags, difficulty, and URL by pid. |
luogu_resolve_problem |
Resolve a Luogu URL, problem id, or title fragment, then fetch the problem. |
luogu_find_related_problems |
Mix topic/pain-point recommendations with live keyword search to find related practice. |
luogu_list_algorithm_topics |
List canonical algorithm topics, aliases, and known tag ids. |
luogu_find_topic_problems |
Find topic practice problems using aliases, tag ids, deduplication, and match reasons. |
luogu_search_problem_sets |
Search Luogu training/problem sets by keyword. |
luogu_fetch_problem_set |
Fetch one Luogu training/problem set and problem summaries by id. |
luogu_recommend_problems |
Return seed recommendations from a topic or student pain point. |
luogu_get_user_profile |
Fetch public Luogu user profile data by uid. |
luogu_get_capabilities |
Report which LeetCode-style route features are available, auth-required, or planned. |
All tools are read-only.
git clone https://github.com/kaiserunix/luogu-mcp-server.git
cd luogu-mcp-server
cmd /c npm install
cmd /c npm run build
The package is published on npm as luogu-mcp-server.
npx -y luogu-mcp-server
For stdio MCP clients, use:
{
"mcpServers": {
"luogu": {
"command": "npx",
"args": ["-y", "luogu-mcp-server"]
}
}
}
Use node directly as the stdio command:
{
"mcpServers": {
"luogu": {
"command": "node",
"args": [
"C:\\Users\\qwerf\\Desktop\\luogu-mcp-server\\dist\\index.js"
],
"cwd": "C:\\Users\\qwerf\\Desktop\\luogu-mcp-server"
}
}
}
A public read-only Streamable HTTP deployment is available at:
https://luogu-mcp-server.lantangtang54.workers.dev/healthhttps://luogu-mcp-server.lantangtang54.workers.dev/mcpFor Streamable HTTP MCP clients, use:
{
"mcpServers": {
"luogu": {
"url": "https://luogu-mcp-server.lantangtang54.workers.dev/mcp"
}
}
}
Search problems:
{
"keyword": "二叉树",
"page": 1,
"limit": 5
}
Search problems with a Luogu tag filter:
{
"keyword": "二叉树",
"tagIds": [11],
"limit": 5
}
Fetch a problem:
{
"pid": "P1305",
"maxStatementChars": 5000
}
Recommend from a pain point:
{
"topic": "binary_tree",
"painPoint": "traversal_order_confusion",
"limit": 3
}
Resolve a pasted URL:
{
"query": "https://www.luogu.com.cn/problem/P1305",
"maxStatementChars": 5000
}
Find related practice:
{
"topic": "binary_tree",
"painPoint": "traversal_order_confusion",
"query": "二叉树 遍历",
"limit": 5
}
Find topic practice with alias expansion:
{
"topic": "Treap",
"limit": 5,
"excludeProblemIds": ["P3369"]
}
Fetch a public user profile:
{
"uid": 1
}
This project mirrors the useful shape of richer LeetCode MCP servers while respecting what Luogu exposes publicly:
cmd /c npm test
cmd /c npm run build
This package also includes a stateless Streamable HTTP MCP entrypoint for Cloudflare Workers.
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
The Worker exposes the same read-only tools at /mcp, with a health endpoint at / or /health.
{
"mcpServers": {
"luogu": {
"url": "https://<your-worker-name>.<your-workers-subdomain>.workers.dev/mcp"
}
}
}
Verify a deployed Worker:
cmd /c npm run smoke:cf -- https://<your-worker-name>.<your-workers-subdomain>.workers.dev
For private deployments, set LUOGU_MCP_TOKEN with wrangler secret put and configure your MCP client to send an Authorization: Bearer <token> header where supported. Browser Origin requests are rejected by default; set LUOGU_MCP_ALLOWED_ORIGINS to a comma-separated origin list if browser access is needed.
See docs/cloudflare-deployment.md for the full release checklist.
Run broad live checks against Luogu's current website responses:
cmd /c npm run smoke:live
The live smoke starts the MCP server through a real stdio client, then compares problem fetches, problem searches, training searches, training fetches, URL/id resolution, related recommendations, public user profiles, and route capabilities against Luogu content-only page responses. It is intentionally separate from unit tests because it depends on Luogu network availability and current site behavior.
Run the 100-topic algorithm coverage smoke:
cmd /c npm run smoke:topics
The topic smoke starts the real MCP server and probes 100 algorithm categories across high-level topic search and training-set search. It fails if fewer than 98 topic searches return Luogu results.
Download one representative problem per catalog topic into a local ignored folder:
cmd /c npm run download:topics
Test a MiMo agent loop that asks the model to choose MCP tools, then executes those calls through the local stdio MCP server:
cmd /c npm run smoke:mimo
smoke:mimo reads MIMO_API_KEY from the environment, or from C:\Users\qwerf\.continue\.env on this machine.
Выполни в терминале:
claude mcp add luogu-mcp-server -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.