Kerbside F1
Free Formula 1 stats: standings, title maths, teammate battles and records, each linked to source.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Moodle LMS for LLM agents — courses, assignments, files, submissions in one static binary.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
MOODLE_URL, MOODLE_TOKENค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ผู้ทำยังไม่ได้ใส่วิธีติดตั้งใน registry ให้ดู README ของผู้ทำด้านล่าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub G36maid ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: MOODLE_URL, MOODLE_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.1) เข้า registry 20 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Rust ในเครื่องด้วย
ในหมวดเดียวกันมี Kerbside F1, Open Food Facts MCP, Modrinth MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Free Formula 1 stats: standings, title maths, teammate battles and records, each linked to source.
MCP server for Open Food Facts product, ingredient, allergen, and nutrition lookup.
Search Minecraft mods on Modrinth, filter by loader/game version, browse versions.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
English | 繁體中文 | 简体中文 | 日本語 | Español | Deutsch | Português | Français
A Model Context Protocol server that lets LLM agents use a real Moodle LMS — read courses, fetch assignment PDFs, write code, upload and submit — through a single static binary.
mcp-name: io.github.G36maid/moodle-mcp
Built in Rust on the official MCP SDK (rmcp). Verified live against Moodle 3.7, 4.5 and 5.2; designed for 3.7 → 5.x.
A generic chatbot has no way into your Moodle, so every study task stays manual — five browser tabs to answer *"what's due this week?"*, PDFs re-uploaded by hand, forums and grades copy-pasted one page at a time.
moodle-mcp signs the agent in as you. 20 typed tools cover the full student journey, and the agent chains them by itself — without ever opening a browser:
Needs a Moodle 3.7 → 5.x account on a site that allows the mobile-app web service (most do — see prerequisites).
# 1. Install
cargo install moodle-mcp # or a prebuilt binary / one-click .mcpb — no Rust needed
moodle-mcp auth
claude mcp add moodle \ --env MOODLE_URL=https://moodle.example.com \ --env MOODLE_TOKEN=your-token \ -- /path/to/moodle-mcp
Or paste this into your agent and let it do every step (it will open moodle-mcp auth in its terminal — type your school credentials there):
Set up moodle-mcp (github.com/G36maid/moodle-mcp): read docs/src/installation.md
and docs/src/configuration.md from the repo's main branch first. Then install the binary for my platform, run moodle-mcp auth in the terminal so I can type my school credentials when it prompts, and register the server in your own MCP config using the snippet for your harness. Never store or repeat my credentials; ask before anything global.
Prebuilt binaries, SSO login, config snippets for every client, and the full environment-variable reference: Installation · Getting Started · Configuration
All of these work with no further setup — the agent discovers the tools from their descriptions and chains them itself:
| You say | The agent chains |
|---|---|
| *"Finish my Information Security HW1: read the assignment brief and the attached PDF, work through the problems, and submit a draft."* | get_assignment (brief + attachments) → fetch_file (PDF → markdown, math included) → solves it → writes the answer file → upload_file → submit_assignment → get_assignment (verify submitted ✓) |
| *"Based on upcoming deadlines and course materials, build me a complete study plan for the next two weeks."* | get_schedule (all deadlines) → get_course_overview per course → day-by-day plan balanced against due dates |
| *"I missed what happened in Data Communication this week — catch me up, including the announcements forum."* | get_notifications + get_forum_discussions → get_discussion_posts → synthesized weekly digest |
| *"Prep me for the Software Engineering quiz: what did the teacher post about it?"* | get_course_overview (quiz entry) → get_assignment (requirements) → related forum threads |
The tools mirror how you navigate Moodle — each level's output embeds the IDs for the next:
flowchart TD
Q["💬 prompt (intent only)"] --> LC["list_courses(search?) find the course"] LC --> OV["get_course_overview(course_id) markdown map: sections · files · assignments · quizzes · forums · grades"] OV --> FD["get_forum_discussions(forum_id) → get_discussion_posts(discussion_id)"] OV --> AS["get_assignment(assignment_id) brief · attachments · submission · grade"] AS --> FF["fetch_file(url) assignment PDF → readable markdown"] FF --> WK["agent works: answers · code · report on disk"] WK --> UP["upload_file(path, filename) solution → draft area → item_id"] UP --> SB["submit_assignment(assignment_id, item_id?, finalize?) save draft or turn in"] SB --> VF["get_assignment verify: submitted ✓ files ✓"] OV --> SC["get_schedule(time window) deadlines → study plan"] OV --> GR["get_grades(course_id) graded items + feedback"]
Everything the dedicated tools don't cover is reachable through the call_ws_function + list_ws_functions escape hatch — full coverage of the ~350 functions a typical token can call (20 + 2 = 22 in total; the escape hatch is opt-in via MOODLE_ENABLE_WS_FUNCTION=true).
Full documentation lives at [moodle.ntnu.cc/docs](https://moodle.ntnu.cc/docs/) (mdBook — mdbook serve docs to read locally):
| Page | Contents |
|---|---|
| Getting Started | from zero to the first prompt; no MCP experience assumed |
| Installation | prebuilt binaries, cargo, from source |
| Configuration | every environment variable; config snippets for Claude Code, Codex, OpenCode, and pi |
| Tools | the full 22-tool reference and the ID flow between them |
| Security & Authentication | token lifecycle, transport and write safety |
| Changelog | release notes, version by version |
| Development | architecture tour, tests, release process |
| About | what moodle-mcp, MCP, and Moodle are |
cargo test # unit + wiremock integration + MCP protocol tests
cargo clippy --all-targets cargo fmt -- --check cargo build --release
Project documentation lives in docs/ — mdBook, formatted with Prettier (see docs/README.md); preview with mdbook serve docs.
The landing page lives in site/ — Astro 7 + TypeScript (cd site && npm install && npm run dev, build with npm run build).
Use HTTPS — the token travels with every request. It never appears in tool output or errors, is only injected into same-site Moodle URLs, and write tools confirm with you before they act. Full details: Security & Authentication.
MIT — see LICENSE.