DAMI Robot MCP Server
This server provides a read-only interface for teachers to query Moodle student data via the DAMI Robot API, secured by strict speaker authorization and context isolation. It supports no write or administrative actions.
Test Connection: Verify connectivity to the DAMI Moodle Robot API without requiring speaker authorization.
Find Student: Locate a student by name, email, user ID, and optionally filter by course/group; supports disambiguating duplicate names.
Get Student Summary: Retrieve an overview of a student's academic status, including attendance, missing homework, suspension status, latest scores, and DAMI level/EXP.
Get Student Attendance: Fetch attendance records, including absences, lateness, warnings, and recent attendance history.
Get Missing Homework: List missing or incomplete online assignments.
Get Student Suspend Status: Check whether a student is suspended, locked, on hold, or at risk of being locked.
Get Student DAMI Status: View diligence points, study hours, streak, EXP, level, energy, and ranking.
Get Student Latest Scores: Get recent section scores (e.g., Listening/Reading, Speaking, Writing), including strengths and weaknesses.
Get Student Fulltest History: View full test/LR performance history, recent tests, and score trends.
Get Student Goal Status: Show target score, exam date, progress toward the goal, and whether it has been achieved.
Get Course Risk Students: Identify at-risk students in a course/group based on missing homework, low diligence, or potential suspension.
Provides tools to query student data from Moodle, including summaries, attendance, homework, status, and risk analysis via the local_damirobot_api plugin.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DAMI Robot MCP Servercheck attendance for student 42"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DAMI Moodle Robot MCP Server v0.2.2
Zero-dependency MCP STDIO server for Xiaozhi/imcp. This version does not use @modelcontextprotocol/sdk, so it is lighter and easier for hosted MCP gateways to run from GitHub with npx.
imcp Manual STDIO configuration
Mode: STDIO
Command: npx
Arguments:
-y
--package
github:trantuandat0305/damirobot-mcp-server
damirobot-mcp-serverIf the gateway still cannot load schemas, try the shorter argument form:
-y
github:trantuandat0305/damirobot-mcp-serverEnvironment variables:
VOICE=1
MOODLE_BASE_URL=https://elearning.anhngumsmy.com
DEFAULT_COURSEID=4
MOODLE_API_TOKEN=PUT_YOUR_TOKEN_HERE
REQUEST_TIMEOUT_MS=15000
MOODLE_TOOL_ENDPOINT=https://elearning.anhngumsmy.com/local/damirobot_api/api/tool.php
# Optional stricter whitelist.
# Leave empty to allow any non-empty speakerId produced by Xiaozhi voiceprint recognition.
# Example: ALLOWED_SPEAKER_IDS=id_1,id_2
ALLOWED_SPEAKER_IDS=Related MCP server: Moodle MCP Server
Speaker authorization gate
All student-data tools are mandatory fail-closed before Moodle is called.
Missing/null/invalid
speakerId: denied.Sentinel values such as
null,undefined,unknown,anonymous,guest,none: denied.speakerIdmust come from Xiaozhi top-levelparams.speakerId;_meta.speakerIdis accepted as fallback.arguments.speakerIdis deliberately ignored, so the LLM/tool arguments cannot grant access to themselves.When
ALLOWED_SPEAKER_IDSis empty, any valid Xiaozhi-recognizedspeakerIdis accepted. This supports adding a new registered speaker without firmware changes or MCP code changes.When
ALLOWED_SPEAKER_IDSis configured, only exact IDs in that list are accepted.test_connectionremains available without speaker recognition because it exposes no student data.There is no environment-variable bypass for the student-data guard.
Context isolation
The MCP server tracks the current recognized speaker so follow-up questions can work safely.
Same authorized
speakerId: student follow-up context may be reused.Different authorized
speakerId: student/course/group follow-up context is cleared before the next data call.Missing/denied speaker: all speaker-bound context is cleared.
This prevents a later speaker from inheriting the previous speaker's selected student.
Tests
npm run check
npm testThe regression suite verifies fail-closed behavior, argument spoof rejection, malformed speaker IDs, optional explicit allowlists, speaker-switch context isolation, same-speaker follow-up context, and the non-sensitive test_connection exception.
GitHub Actions runs these checks on pushes and pull requests to main.
Tools
test_connectionfind_studentget_student_summaryget_student_attendanceget_missing_homeworkget_student_suspend_statusget_student_dami_statusget_student_latest_scoresget_student_goal_statusget_student_fulltest_historyget_course_risk_students
Safety
Student-data tools require an authorized Xiaozhi speaker identity.
Read-only: only calls the Moodle DAMI Robot API.
Does not write, update, delete, suspend, check-in, or feed DAMI.
No token is stored in code. Put token only in environment variables.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.24MIT
- Alicense-qualityDmaintenanceEnables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.24MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.104MIT
- FlicenseAqualityCmaintenanceEnables read-only querying of Moodle as a student, including courses, assignments, grades, forums, and files, using a personal web services token.11
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/trantuandat0305/damirobot-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server