Skip to main content
Glama

moodle_login

Authenticate to Moodle via university SSO and MFA, then save a web-service token so other tools can read course materials and download lecture slides.

Instructions

Sign in to Moodle. Opens a Chrome window on the user's Mac at the university sign-in page; the user completes SSO + MFA there and a web-service token is saved for the other tools. Tries a silent refresh first, so it often finishes without any window.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses a visible side effect (a Chrome window opens on the user's Mac), required human action (SSO + MFA), the persistent artifact (a saved token), and the non-obvious silent-refresh path. It omits failure/timeout behavior and any statement about what the caller sees on abort, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences that front-load the core action and then layer in the mechanism, user action, and silent-refresh optimization. Every clause earns its place; there is no filler or restated name/title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an interactive auth tool with no annotations and no output schema, the description covers the essentials: what opens, who acts, and what persists for downstream tools. The remaining gaps are the undocumented timeout parameter and unstated failure modes, which are modest against how much flow context is already given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter timeout_seconds has 0% schema description coverage, and the description never mentions a timeout or its default of 300 seconds, so neither source explains what the value controls. The description compensates with valuable narrative about the login flow but adds nothing about the one parameter's meaning or units.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Sign in to Moodle') and immediately explains the mechanism: a Chrome window at the university sign-in page, SSO + MFA, and a saved web-service token. This clearly distinguishes it from siblings like moodle_status, moodle_courses, and moodle_sync, which operate on data rather than establishing the session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the prerequisite relationship explicit: a token 'is saved for the other tools,' so an agent can infer this must be called before authenticated siblings. It also clarifies that a silent refresh means the tool 'often finishes without any window,' which frames the expected flow. It stops short of saying what to do when other tools fail due to auth, so it's clear context but not explicit when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.