Wilma MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WILMA_BASE_URL | Yes | Your school's Wilma URL (e.g., https://yourschool.inschool.fi) | |
| WILMA_PASSWORD | Yes | Your Wilma password | |
| WILMA_USERNAME | Yes | Your Wilma username |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_scheduleA | Get the school schedule for a specific date. |
| get_week_scheduleA | Get the school schedule for a full week. |
| get_messagesA | Get list of messages from a folder. |
| get_messageA | Read a specific message with full content. |
| set_message_readA | Mark a message as read. Wilma automatically marks messages as read when viewed. This tool explicitly triggers that by viewing the message. Note: Wilma does not support marking messages as unread. |
| get_recipientsA | Get list of available message recipients (teachers, staff). Returns: List of recipients with their IDs and roles. |
| send_messageC | Send a message to a teacher or staff member. |
| reply_to_messageA | Reply to a message. This is the preferred way to reply to messages since it handles recipient resolution automatically via Wilma's reply form, without needing to look up recipient IDs separately. |
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 8 tools
Most tools are clearly distinct: schedule vs message tools, single vs list retrieval. However, get_message and set_message_read overlap since viewing a message marks it as read, potentially confusing agents. send_message and reply_to_message are also somewhat related but the reply tool has a clear differentiator.
Tool names follow a consistent verb_noun pattern with clear prefixes: get_ for read operations, set_ for state change, send_ and reply_ for message creation. All names are lowercase with underscores and readable.
8 tools is an appropriate size for a school communication platform covering schedules and messaging. Each tool earns its place, and the count is within the typical 3-15 range without feeling bloated or sparse.
The messaging domain covers core operations: list, get, send, reply, mark read, and recipient lookup. Schedule domain provides get by day and week. Minor gaps exist like message deletion or archiving, but these are not essential for the stated purpose.