iServ MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
iServ MCP
Unofficial, standalone Model Context Protocol server for iServ school portals. It retrieves parent letters, their full text and attachments, and can explicitly mark letters as read. Timetable tools from the HAiServ client are included as well.
This project is not affiliated with or endorsed by IServ GmbH. iServ instances can differ; test against your school installation before relying on it.
MCP tools
Tool | Purpose | Writes to iServ? |
| List parent letters and unread state | No |
| Read full text, metadata and attachment names | No |
| Save all attachments locally | No |
| Mark a letter as read; requires | Yes |
| List children available for guardian sick notes | No |
| Preview or submit a per-child sick note; requires | Yes |
| Read the current or next timetable week | No |
| Read one timetable day | No |
A single attachment is limited to 25 MiB. Downloads are accepted only from the
configured HTTPS origin and below /iserv/. Directories use mode 0700; files
use 0600.
Related MCP server: Vigilo MCP Server
Install
Python 3.11 or newer is required.
Quickest way, without cloning (needs uv):
uvx --from git+https://github.com/chenning42/iserv-mcp iserv-mcpOr from a checkout:
git clone https://github.com/chenning42/iserv-mcp.git
cd iserv-mcp
python -m venv .venv
.venv/bin/pip install .For development and tests:
.venv/bin/pip install -e '.[test]'
.venv/bin/pytestCredentials
Copy the included example to your private configuration directory:
mkdir -p ~/.config/iserv-mcp
cp credentials.example.json ~/.config/iserv-mcp/credentials.json
chmod 600 ~/.config/iserv-mcp/credentials.jsonThen edit ~/.config/iserv-mcp/credentials.json:
{
"url": "https://school.example/iserv/",
"username": "your-username",
"password": "your-password"
}The launcher rejects credential files readable by group or others. Passwords, session cookies and response bodies are not intentionally logged. Never commit the credential file.
Run
After installation:
iserv-mcpOr directly from a checkout:
.venv/bin/python -m iserv_mcpOptional flags:
--credentials PATH use another mode-0600 credential file
--download-dir PATH choose where attachments are storedThe default download directory is
~/.local/share/iserv-mcp/attachments.
Other MCP clients (Claude Desktop, Cursor, ...)
{
"mcpServers": {
"iserv": {
"command": "uvx",
"args": ["--from", "git+https://github.com/chenning42/iserv-mcp", "iserv-mcp"]
}
}
}Credentials are read from ~/.config/iserv-mcp/credentials.json (see above).
Hermes configuration
Hermes can launch the installed stdio server directly:
mcp_servers:
iserv:
command: "/absolute/path/to/iserv-mcp/.venv/bin/iserv-mcp"
args: []
timeout: 120
connect_timeout: 30
sampling:
enabled: falseRestart Hermes after changing config.yaml. Tools are registered with names
such as mcp_iserv_get_parentletters.
For multiple agents or hosts, install the package separately on each host and create a separate local credential file there. This avoids exposing the MCP server or credentials over the LAN. A shared HTTP deployment would need its own authentication and is therefore deliberately not the default.
Design notes
Authentication uses a normal iServ web session and automatically renews an expired session for supported requests.
Reading a letter does not automatically mark it as read.
mark_parentletter_readis separated from read tools and requires an explicit confirmation argument.Attachments remain on the MCP host and are never uploaded automatically.
Sick notes use the verified DieSchulApp guardian API. The server validates the selected child against the live guardian child list and defaults to preview-only.
Attribution and license
Parts of the iServ client and parsers are derived from
HAiServ by jjoswig. See NOTICE.
The project is licensed under the MIT License; see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read Papershift absences, vacation, time tracking and shifts; request and review absences.
Read and send iCloud Mail, manage iCloud Calendar. Needs an approved account at icloud.mcp.visin.ch.
Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes.
Read hours, absences and projects; start timers, add entries, approve leave in TimeTac.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables accessing IServ school platform features such as timetable, exercises, messenger, and more via natural language, without exposing credentials to agents.1MIT
- AlicenseCqualityCmaintenanceEnables an agent to read and act on a Norwegian school parent portal through its unofficial API, covering message threads and attachments, timetables, absences, consent forms, news and scheduling events. Tokens are stored locally, and raw GET tools allow further endpoint exploration.122MIT
- AlicenseAqualityCmaintenanceEnables reading study data and downloading documents from HISinOne campus portals using the signed-in account.91MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying the IFSC SIGAA student portal to retrieve a student's profile, classes, schedules, grades, attendance, assignments, exams, news, and academic documents, and also provides access to the IFSC Moodle for courses, materials, deadlines, grades, forums, and messaging. Includes session management with browser-based login or pasted cookie, and confirmation-gated submission of assignments and forms.MIT