Luogu MCP Server
Search Luogu problems, fetch statements, explore problem sets and get practice recommendations.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http luogu-mcp-server 'https://luogu-mcp-server.lantangtang54.workers.dev/mcp'
{
"mcpServers": {
"luogu-mcp-server": {
"type": "http",
"url": "https://luogu-mcp-server.lantangtang54.workers.dev/mcp"
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
Luogu MCP Server | 洛谷 MCP Server
A small MCP server for searching Luogu problems, reading statements and training sets, and finding related practice. It can run locally through npm or as a hosted Streamable HTTP server.
Quick Start
Use the hosted read-only server without installing anything:
{
"mcpServers": {
"luogu": {
"url": "https://luogu-mcp.ksrnyx.top/mcp"
}
}
}
To keep the server on your machine, use the published luogu-mcp-server package:
{
"mcpServers": {
"luogu": {
"command": "npx",
"args": ["-y", "luogu-mcp-server"]
}
}
}
Then ask:
Search Luogu for five beginner binary-tree problems.
Fetch Luogu P1305 with its statement and samples.
Find related practice for traversal-order confusion.
Tools
| 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. Supports `type: "all" | "official" | "select"` because Luogu's current official-list endpoint only exposes the public official index, while selected user-shared sets support keyword search. |
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.
Availability
- Hosted MCP:
https://luogu-mcp.ksrnyx.top/mcp - Health:
https://luogu-mcp.ksrnyx.top/health - Official MCP Registry:
io.github.Kaiserunix/luogu-mcp-server, described byserver.json
Other Ways To Run
From source:
git clone https://github.com/kaiserunix/luogu-mcp-server.git
cd luogu-mcp-server
cmd /c npm install
cmd /c npm run build
Use node directly from a source checkout:
{
"mcpServers": {
"luogu": {
"command": "node",
"args": [
"C:\\path\\to\\luogu-mcp-server\\dist\\index.js"
],
"cwd": "C:\\path\\to\\luogu-mcp-server"
}
}
}
Example Calls
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
}
Search training/problem sets:
{
"keyword": "网络流",
"type": "select",
"limit": 5
}
type: "all" is the default. It combines title-filtered official sets with selected user-shared set search. Use type: "official" for the public official index, or type: "select" for selected user-shared sets.
Luogu Route Parity
This project mirrors the useful shape of richer LeetCode MCP servers while respecting what Luogu exposes publicly:
- Available now: problem search, problem fetch, URL/id/title resolution, related problem discovery, training set search/fetch, public user profile fetch.
- Auth-required in live probes: recent submissions, public solution pages, and discussion pages.
- Planned but intentionally not enabled: solution submission/run-code tools. Those require authenticated session handling and explicit write-tool safety gates.
Development
cmd /c npm test
cmd /c npm run build
Cloudflare Worker Deployment
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.
Notes
- Luogu endpoints used here are content-only web endpoints, not a formal stability contract.
- The server keeps outputs compact and structured for model context control.
- Browser automation is intentionally not the default path. A Playwright fallback can be added later for pages that cannot be read through lightweight HTTP.
- For broad topic discovery, Luogu training-set search is often cleaner than raw problem title search; raw keyword search follows Luogu's website ordering and can include title-level noise.
Questions fréquentes
Qu'est-ce que Luogu MCP Server ?
Search Luogu problems, fetch statements, explore problem sets and get practice recommendations.
Comment installer Luogu MCP Server ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http luogu-mcp-server 'https://luogu-mcp-server.lantangtang54.workers.dev/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Luogu MCP Server ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
Luogu MCP Server est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient Luogu MCP Server ?
Il est publié par Kaiserunix. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.