How to Use the Moodle MCP in Mastra AI
Build resilient Moodle workflows in Mastra AI with automatic retries and conditional branching for academic tasks.
Works with every AI agent you already use
…and any MCP-compatible client
Connect Moodle MCP to Mastra AI
Create your Vinkius account to connect Moodle to Mastra AI and route execution through our secure gateway. The platform manages server hosting, runtime updates, and security layers. Configuration requires no manual server provisioning.
Automated Course Management Workflows
Use `get_courses` and `get_course_quizzes` to build conditional logic in your agents. If a quiz is missing, Mastra can trigger a follow-up task automatically. Define your workflow steps to handle API failures with built-in retries. This ensures your agent maintains state even when the Moodle instance is under heavy load.
Conditional Student Intervention Logic
Trigger `send_message` based on data retrieved from `get_course_completion`. Your Mastra agent evaluates student status and decides whether to intervene. This keeps your communication logic centralized. You define the thresholds, and the agent executes the message only when specific academic conditions are met.
Reliable Academic Data Retrieval
Execute `get_course_workshops` and `get_course_assignments` within your agent workflows. Mastra tracks every step, providing logs for every tool execution. You avoid manual data entry by letting the agent sync Moodle records with your internal databases. The workflow engine keeps everything running on schedule.
Set up Moodle MCP in Mastra AI
Prerequisites
- Node.js 18+ and a TypeScript project
-
@mastra/mcp+@mastra/corepackages - Active Vinkius subscription with a valid endpoint token
- 1
Install dependencies
Run
npm install @mastra/mcp @mastra/coreplus your preferred model provider (e.g.@ai-sdk/openai). - 2
Configure the MCPClient
Create an
MCPClientwith your Vinkius endpoint as aURLobject. Replace[YOUR_TOKEN_HERE]with your token from cloud.vinkius.com. - 3
Discover and inject tools
Call
mcpClient.listTools()and spread the result into your agent'stoolsobject. All Moodle tools become native Mastra tools. - 4
Run with any model
Swap
openai("gpt-4o")for any AI SDK-compatible provider. Callagent.generate()and the agent routes tool calls through MCP automatically.
import { MCPClient } from "@mastra/mcp";
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
const mcpClient = new MCPClient({
id: "moodle-mcp-client",
servers: {
"moodle-mcp": {
url: new URL(
"https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
),
},
},
});
const agent = new Agent({
name: "Moodle Agent",
model: openai("gpt-4o"),
instructions: "You have access to Moodle tools.",
tools: {
...(await mcpClient.listTools()),
},
});
const result = await agent.generate(
"List recent Moodle transactions"
);
console.log(result.text); Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Moodle. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
Why Choose Vinkius
Vinkius connects your tools to AI with real-time monitoring and automatic cost savings — all from one dashboard.
Real-time monitoring
Live
visibility into every interaction
Connect your favorite tools to your AI and see exactly what's happening — every request, every response, in real time.
Built-in savings
60%
lower AI costs
Vinkius compresses data between your apps and your AI automatically. Lower bills every month — no configuration required.
Single dashboard
One
place for every integration
Every tool your AI connects to, managed from a single screen. One account, complete control.
Common questions about Moodle MCP in Mastra AI
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
Start using the Moodle MCP today
We host it, we monitor it, we maintain it. You just paste one token.