mcp-mercatorum
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MERCATORUM_HOME | No | Cartella dati privata (sessione, catture di debug) | vedi tabella sessione |
| MERCATORUM_TOOLS | No | `core` nasconde i tool avanzati | all |
| MERCATORUM_BASE_URL | No | URL del portale | portale corsi |
| MERCATORUM_HEADLESS | No | `false` per vedere il browser (debug) | true |
| MERCATORUM_LOG_LEVEL | No | `debug` · `info` · `warn` · `error` · `silent` (su stderr) | info |
| MERCATORUM_WORKSPACE | No | Radice dei download; nulla viene scritto fuori | cartella corrente |
| MERCATORUM_CONCURRENCY | No | Richieste parallele (max 16) | 4 |
| MERCATORUM_ALLOWED_HOSTS | No | Host extra raggiungibili dai tool, separati da virgola | |
| MERCATORUM_BROWSER_CHANNEL | No | `chrome` / `msedge` per usare un browser installato |
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
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statusA | Check whether the saved platform session is valid and when the access token expires. Returns no personal data. |
| list_coursesA | List the student's enrolled courses: code, title, CFU and progress (null if not started). |
| list_lessonsA | List the lessons of a course with teacher, progress, video paragraphs and whether a PDF handout exists. Set compact=false for objectives and media URLs. |
| get_lessonA | Full details of one lesson: objectives, teacher, paragraphs with duration and progress, handout URL, self-test, and watchUrl, the link to watch it on the platform. |
| get_transcriptA | Text of a lesson (from the video subtitles) as Markdown, with objectives and one section per paragraph. Use it to study, summarize or quiz on a lesson without downloading anything. |
| course_progressA | What is left to watch (remaining video time, unfinished lessons and paragraphs) and which self-assessment tests are still open, from the progress reported by the platform. Without |
| sync_courseA | Download every PDF handout and lesson transcript of a course into /risorse/ inside the workspace, plus indice.md and corso.json. Existing files are kept unless force=true. |
| open_pageA | Advanced: open a platform URL with the student session and return its text, links, iframes and the JSON API calls it made. Tracking requests are blocked and listed in blockedRequests. |
| clickA | Advanced: click an element of the page opened with open_page (by visible text or CSS selector) and return the new snapshot. Useful to expand sections of the web app. |
| api_getA | Advanced: GET a platform endpoint (discovered with open_page) with the session cookies and auth headers. Optionally save the body to a file in the workspace. |
| downloadB | Download a file (PDF, slides…) from a direct platform URL with the student session into the workspace. |
| download_by_clickA | Download a file started by clicking an element of the current page (download buttons without a direct link). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| studia_lezione | Spiegazione guidata di una lezione a partire dalla trascrizione, con domande di verifica. |
| simula_esame | Simulazione d'esame (orale o scritto) sulle lezioni di un corso. |
| piano_di_studio | Pianifica la visione delle lezioni mancanti e il ripasso in base al tempo disponibile. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools have clearly distinct roles: listing (list_courses/list_lessons), detail retrieval (get_lesson/get_transcript), progress (course_progress), and bulk sync (sync_course) are easy to tell apart. The only genuine overlaps are download vs download_by_click (direct URL vs click-triggered) and api_get vs open_page (endpoint fetch vs full page snapshot), which descriptions clarify but still require reading carefully.
All names use snake_case, which is good, but the verb_noun convention is only partly followed: list_courses, get_lesson, sync_course, open_page, download_by_click fit it, while status, course_progress, download, click and api_get do not. The set is readable but the pattern is mixed rather than predictable.
Twelve tools is a reasonable size for a university platform client: core study tools plus a small set of advanced escape hatches. There is mild redundancy (two download variants, two low-level fetch tools) that could be trimmed, but nothing feels padded.
Coverage of the study domain is strong: courses, lessons, transcripts, handouts, downloads, progress tracking, offline sync, plus browser/API fallbacks for undiscovered features. Minor gaps remain, e.g. no tool to take or submit the self-assessment tests that course_progress references, and no search across courses/lessons.