uniboh
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VIRTUALE_COOKIES | No | Cookie header for authenticated Virtuale tools (e.g. MoodleSession=...). | |
| VIRTUALE_SESSKEY | No | Moodle sesskey for authenticated Virtuale tools. | |
| ALMAESAMI_COOKIES | No | Cookie header with an authenticated JSESSIONID for AlmaEsami. | |
| VIRTUALE_BASE_URL | No | Moodle base URL (default: https://virtuale.unibo.it). | https://virtuale.unibo.it |
| ALMAESAMI_BASE_URL | No | AlmaEsami base URL (default: https://almaesami.unibo.it). | https://almaesami.unibo.it |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| virtuale_login_with_passwordB | Attempts Moodle form login, then stores cookies and sesskey server-side and returns a session_id. |
| virtuale_bootstrap_sessionC | Creates a server-side session from an existing sesskey and cookie header. |
| virtuale_get_env_sessionA | Mints (or reuses) a session_id backed by the server's VIRTUALE_SESSKEY + VIRTUALE_COOKIES env vars. The sesskey/cookies are never returned — only an opaque session_id, so credentials configured in the MCP host's environment never pass through the model's context. |
| unibo_browser_loginA | Drives a real (headless) Chromium browser through the ADFS SSO login using EMAIL + PASSWORD from the server environment, then — reusing the same shared idp.unibo.it session — completes the AlmaEsami and RPS SAML handshakes too, storing one session and returning an opaque session_id that works with the virtuale_*, almaesami_*, and rps_* tools. The password/sesskey/cookies never pass through the model's context. Each service is best-effort: the result reports per-service success. Only works for accounts without interactive MFA (use the *_bootstrap_session tools for MFA accounts). Mints once and reuses the session on later calls unless force_relogin is set. |
| virtuale_browser_loginA | Deprecated alias for unibo_browser_login. Drives a headless Chromium through ADFS SSO with EMAIL/PASSWORD and returns an opaque session_id (now covering AlmaEsami and RPS too). Prefer unibo_browser_login. |
| virtuale_get_session_infoB | Shows stored login metadata and optionally returns cookie header string. |
| virtuale_logout_sessionA | Removes one stored authenticated session from server memory. |
| virtuale_health_checkA | Runs a safe no-login Moodle AJAX call to validate base connectivity. |
| unibo_calendar_resolve_timetable_urlB | Resolves the corsi.unibo.it timetable URL from a unibo.it course page URL. |
| unibo_calendar_list_curriculaB | Lists available curricula for a timetable URL. |
| unibo_calendar_list_teachingsB | Parses timetable page HTML and returns lecture/teaching IDs for filtering. |
| unibo_calendar_get_eventsA | Fetches raw timetable events from @@orario_reale_json with optional teaching-code filtering. |
| unibo_calendar_get_icsB | Fetches timetable events and returns an ICS calendar string. |
| virtuale_get_enrolled_coursesD | Calls local_uniboapi_get_enrolled_courses_unibo for the authenticated user. |
| virtuale_get_course_stateC | Calls core_courseformat_get_state and parses the returned JSON string state model. |
| virtuale_list_course_filesA | Lists the downloadable files/resources of a Virtuale course, grouped by section (cmid, name, modname, url), derived from core_courseformat_get_state. A slim, token-friendly view of the course contents (not the full state blob); pass a cmid to virtuale_get_resource to fetch a file's content. Read-only. |
| virtuale_get_panopto_contentC | Calls block_panopto_get_content for a course. |
| virtuale_quiz_list_course_quizzesA | Lists quiz activities on a course page, with the course-module id (cmid) needed by the other quiz tools. |
| virtuale_quiz_list_attemptsA | Reads a quiz activity page and returns the student's attempt summaries (status, dates, marks, grade) plus a review URL/attempt id for each finished attempt. Read-only. |
| virtuale_quiz_get_attempt_reviewA | Reads the review page of one of the student's own finished quiz attempts: each question's text, answer options, the student's selection, correctness, and feedback. Only works for attempts Moodle already allows the student to review (finished, review permitted by the quiz settings) — it does not start, resume, or answer a live attempt. |
| virtuale_get_resourceA | Fetches a Virtuale file/resource by cmid (builds /mod/resource/view.php?id=) or an explicit url, following the redirect to the protected pluginfile.php content with the authenticated MoodleSession cookie. Always returns metadata (final URL, content-type, size, filename). If save_to (an absolute file path) is given, streams the file to disk and returns the path + byte size. Otherwise returns text inline for text-like files (text/JSON/XML/HTML) and extracts + returns the text of PDFs; very long text is truncated (pass save_to for the full file). Read-only. |
| almaesami_bootstrap_sessionB | Creates a server-side session from an existing almaesami cookie header (JSESSIONID cookie header for almaesami.unibo.it). Returns an opaque session_id; the cookie is never echoed back. |
| almaesami_get_env_sessionA | Mints (or reuses) a session_id backed by the server's ALMAESAMI_COOKIES env var. The cookie is never returned — only an opaque session_id. |
| almaesami_get_exam_planA | Reads the authenticated student's AlmaEsami exam plan (Riepilogo Esami): activities, CFU, status, and whether each is bookable. Read-only; does not book exams. |
| almaesami_get_exam_historyA | Reads the authenticated student's AlmaEsami exam history (Cronologia): appello date, activity, examiner, type/mode, and status. Read-only. |
| almaesami_get_messagesA | Reads the authenticated student's AlmaEsami messages (subject, sender, received date, related appello). Read-only; does not delete messages. |
| almaesami_list_appelliA | Lists the student's upcoming AlmaEsami appelli (bookable exam sessions): date/time, activity, examiner, type/mode, and enrollment window — to answer "when can I sit exam X". Read-only: it never books. NOTE: the underlying endpoint/grid is UNVERIFIED (it lives behind SSO and could not be confirmed live); the result carries |
| rps_bootstrap_sessionA | Creates a server-side session from an existing rps cookie header (PHPSESSID cookie header for rps.unibo.it). Returns an opaque session_id; the cookie is never echoed back. |
| rps_get_env_sessionA | Mints (or reuses) a session_id backed by the server's RPS_COOKIES env var. The cookie is never returned — only an opaque session_id. |
| rps_get_attendance_recordsB | Reads the authenticated student's RPS attendance records (Rilevazioni): date, subject, lecturer, and lesson duration for each recorded presence. Read-only. |
| rps_get_registerB | Reads the authenticated student's RPS attendance register (Registro): per-subject hours attended and attendance percentage. Read-only. |
| sol_bootstrap_sessionA | Creates a server-side session from an existing sol cookie header (JSESSIONID cookie header for studenti.unibo.it). Returns an opaque session_id; the cookie is never echoed back. |
| sol_get_env_sessionA | Mints (or reuses) a session_id backed by the server's SOL_COOKIES env var. The cookie is never returned — only an opaque session_id. |
| sol_get_careerA | Reads the authenticated student's Studenti Online (studenti.unibo.it) home page into a career summary: greeting/identity, enrolled course of study, and in-progress requests. Read-only; never submits requests or payments. NOTE: parsed from a single logged-in capture — selectors are best-effort and individual fields degrade to empty rather than failing. |
| sol_get_servicesA | Lists the Studenti Online service tiles available to the student (name, link, description) — e.g. fees/payments, enrolments, certificates — so a caller can discover what the portal exposes. Read-only; it lists links, it does not act on them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/gattaa/uniboh'
If you have feedback or need assistance with the MCP directory API, please join our Discord server