wilma
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WILMA_TENANT | No | Wilma address (https://<school>.inschool.fi) or city/school name. Optional alternative to a saved login. | |
| WILMA_PASSWORD | No | Wilma password. Optional alternative to a saved login. | |
| WILMA_USERNAME | No | Wilma username. Optional alternative to a saved login. | |
| WILMA_TOTP_SECRET | No | Authenticator setup key, if the account uses two-step verification. | |
| WILMAI_CONFIG_PATH | No | Override the saved login config path (default: ~/.config/wilmai/config.json or $XDG_CONFIG_HOME/wilmai/config.json). | |
| WILMAI_NO_UPDATE_CHECK | No | Set to 1 to disable the daily npm update check. | |
| WILMAI_NO_SESSION_CACHE | No | Set to 1 to disable caching the current Wilma session. |
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 |
|---|---|
| wilma_summaryA | Daily briefing per child: today's and the next school day's lessons, upcoming exams (with start times when given), recent homework, lesson notes since the previous school day (teachers' feedback and absences), recent bulletins, and recent and unread messages (ids, unread, replyCount). What Wilma didn't give is listed in unavailable ("news": this Wilma doesn't show this account its bulletins). The best starting point for any question about school. |
| wilma_scheduleC | Lessons for today, the next school day, this week, a specific date, or the next occurrence of a weekday. |
| wilma_homeworkB | Recent homework entries by lesson, newest first. |
| wilma_upcoming_examsB | Upcoming exams with subject, date and topic (what to study). |
| wilma_gradesC | Recent exam grades. |
| wilma_lesson_notesA | Lesson notes (merkinnät) teachers logged: absences, lateness, and feedback such as praise or missing books or homework, with the teacher's own words when given. One day (default today) or the last N days. |
| wilma_lesson_notes_summaryA | Lesson notes counted by kind (e.g. absences for health reasons, unexplained absences, lateness, praise, missing study materials): this school year by default, or from a date. |
| wilma_gradebookC | Completed courses and grades (Suoritukset) by subject, including term and school-year (report card) grades, with completion dates. |
| wilma_list_printoutsA | PDF documents the school offers (Tulosteet), such as report cards or absence reports. Fetch one with wilma_get_printout. |
| wilma_get_printoutA | Fetch one printout PDF so you can read it. Set save=true to also save it to the user's Downloads folder. |
| wilma_list_messagesA | Wilma messages, newest first (subject, sender, date, id). Use wilma_read_message for the full text. |
| wilma_read_messageA | Full text of one Wilma message, including thread replies. |
| wilma_list_newsA | School bulletins (tiedotteet): the newest dated ones, then pinned ones (pinned: true, e.g. the school-year bulletin), and with include_older also older bulletins (archived: true). Use wilma_read_news for the full text and attachments. unavailable: ["news"] means this Wilma doesn't show this account its bulletins, which isn't the same as having none. |
| wilma_read_newsA | Full text of one bulletin plus its linked resources (attachments and links). Fetch a resource with wilma_get_news_attachment. |
| wilma_get_news_attachmentA | Fetch a file linked from a bulletin (e.g. a PDF letter or menu) so you can read it. Returns the file content when it is a file, or 'not_a_file' with the URL when the link is a web page. Set save=true to also save it to the user's Downloads folder. |
| wilma_accountA | Which Wilma logins are connected and which children each one has. Families with children on different Wilmas can connect several (wilma_login adds another). |
| wilma_find_schoolA | Search Finland's Wilma addresses by city or by school or organisation name. Most city schools share their city's Wilma (big cities don't list each school), while many colleges, private schools and small municipalities' schools have their own. Use it to help the user pick their Wilma, e.g. when setting WILMA_TENANT; several can serve one city, so ask which is theirs. |
| wilma_loginA | Open a login page in the user's browser to connect a Wilma account, or add another one (for a child at a school with a different Wilma). The password is entered on that page, never in the chat. |
| wilma_logoutA | End WilmAI's Wilma session, as Wilma's own Log out does. Wilma allows one session per account, so use this when the user wants to use Wilma in their browser or asks to log out. The login stays saved: the next Wilma tool call logs in again, and that ends the user's session in the browser, so don't call other Wilma tools afterwards unless the user asks. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target distinct resources or actions, but wilma_summary intentionally aggregates schedule, exams, homework, notes, news, and messages, so it overlaps with several targeted tools. wilma_gradebook and wilma_grades could also be confused by name, though their descriptions clarify the difference.
All tools use the wilma_ prefix and snake_case, with list/get/read pairs following a predictable pattern. The main minor inconsistency is that several resource tools are noun-only (wilma_schedule, wilma_grades) while others use verbs (wilma_list_messages, wilma_read_message).
At 19 tools, the surface feels heavy for a school portal even though it covers several subdomains such as grades, messages, bulletins, printouts, and authentication. The aggregate wilma_summary and multiple list/read/fetch pairs contribute to the bulk.
The read-only surface is broad and covers schedules, grades, homework, exams, lesson notes, messages, bulletins, and printouts. However, message handling is read-only with no send/reply or mark-read operation, and there are no write or submission workflows, which are notable gaps for a school communication portal.