IS MUNI MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IS MUNI MCP What's my schedule for tomorrow?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IS MUNI MCP
MCP server pro studenty Masarykovy univerzity — propojí AI agenty (Claude Desktop, Codex, ChatGPT desktop, Claude Code, VS Code, Cursor, …) s Informačním systémem MU, aby pomohli s plánováním studia: rozvrh, deadliny, e-maily, známky, body z bloků, studijní materiály a další.
Nikdy nic nemění. Server pouze čte data (GET + POST jen na povolené čtecí endpointy, typicky AJAX vyhledávání) — neumí odesílat poštu, registrovat předměty, přihlašovat na zkoušky ani jinak cokoliv v IS měnit. Garance je přímo v kódu: klient
client.pynemá metody pro PUT/PATCH/DELETE a POST mimo allowlist odmítne (hlídá to i testtest_read_only_client).
English summary: read-only MCP server for Masaryk University students — connects AI agents to IS MUNI (timetable, deadlines, mail, grades, course materials). Quickstart below is in Czech; commands are the same in any language. See CONTRIBUTING and SECURITY.
Instalace na 1 klik (bez terminálu) 🖱️
Vyberte si svého AI klienta — terminál není potřeba ani v jednom případě:
Klient | Jak na to |
Claude Desktop | Stáhněte |
Codex, ChatGPT desktop, Claude Code, VS Code, Cursor | Stáhněte Setup aplikaci pro svůj systém z Releases, dvojklik — otevře se průvodce v prohlížeči, kde vyplníte učo + heslo a zaškrtáte klienty. Hotovo. (ChatGPT desktop čte stejnou konfiguraci jako Codex — stačí ho po instalaci restartovat.) |
Soubory v Releasu:
IS-MUNI-Setup-macos-arm64.zip— macOS (Apple Silicon; rozbalit, otevřítIS MUNI Setup.app)IS-MUNI-Setup-windows-x64.exe— Windows (stáhnout, dvojklik)is-muni-mcp-linux-x64— Linux (stáhnout, spustit./is-muni-mcp wizard)is-muni-mcp.mcpb— Claude Desktop (dvojklik)
⚠️ Aplikace není placeně podepsaná (to stojí ~2500 Kč/rok), takže macOS při prvním otevření zahlásí neověřeného vývojáře: klikněte pravým tlačítkem → Otevřít → Otevřít. Na Windows SmartScreen podobně: Další informace → Přesto spustit. Kód je open-source — sestavení si můžete ověřit ve workflow, nic si nestahuje z internetu.
Heslo slouží jen k přihlášení a nikam se neukládá; server si drží pouze session. Detaily viz SECURITY.
Tlačítka výše přidají server do VS Code / Cursoru jedním kliknutím
(vyžadují nainstalovaný uvx a předchozí is-muni-mcp login —
jednodušší je Setup aplikace, která umí obojí).
Pak se ptejte třeba: „Co mám příští týden v rozvrhu?“, „Jaké se blíží deadliny?“, „Mám nějaké nepřečtené e-maily?“, „Kolik mám bodů v poznámkových blocích?“
Related MCP server: moodle-mcp
Rychlý start s terminálem (3 kroky)
Pro Claude Code, VS Code, Zed a další klienty. Potřebujete Python 3.10+ a své učo + primární heslo do IS MUNI.
1. Instalace (jednou z možností):
pipx install is-muni-mcp # doporučeno pro běžné uživatele
# nebo: uv tool install is-muni-mcp
# nebo: pip install --user is-muni-mcp2. Přihlášení — zeptá se na učo a heslo, heslo se nikam neukládá:
is-muni-mcp login
is-muni-mcp status # ověření, že přihlášení fungujeSession se uloží do ~/.config/is-muni-mcp/cookie.txt (práva 0600, jen pro vás).
Když časem vyprší (typicky dny až týdny), stačí login zopakovat.
3. Napojení na AI klienta — jedna z možností:
is-muni-mcp setup --client claude-desktop # zapíše konfiguraci za vás
is-muni-mcp setup --client claude-code # přes `claude mcp add`
is-muni-mcp setup --client codex # ~/.codex/config.toml (Codex CLI, IDE extenze i ChatGPT desktop)
is-muni-mcp setup --client vscode # uživatelské mcp.json
is-muni-mcp setup --client cursor # ~/.cursor/mcp.json
# tip: grafický průvodce (i bez terminálových znalostí): is-muni-mcp wizardPak restartujte klienta a ptejte se třeba: „Co mám příští týden v rozvrhu?“, „Jaké se blíží deadliny?“, „Mám nějaké nepřečtené e-maily?“, „Kolik mám bodů v poznámkových blocích?“
Nástroje (25)
Oblast | Nástroje |
Student |
|
Kalendář a výuka |
|
Pošta |
|
Notifikace |
|
Bloky |
|
Soubory |
|
Diskuse a vývěska |
|
Ruční konfigurace klientů
Když nechcete použít setup, přidejte server ručně. Příkaz je vždy is-muni-mcp
(bez argumentů spustí server přes stdio; přihlášení si najde samo v
~/.config/is-muni-mcp/cookie.txt).
Claude Desktop — do claude_desktop_config.json:
{
"mcpServers": {
"is-muni": {
"command": "is-muni-mcp"
}
}
}Claude Code:
claude mcp add is-muni -- is-muni-mcpCodex a ChatGPT desktop — do ~/.codex/config.toml (CLI, IDE extenze
i ChatGPT desktop app sdílí tuto konfiguraci a spouští lokální stdio servery;
po zápisu stačí restartovat aplikaci, stav ukáže /mcp):
[mcp_servers.is-muni]
command = "is-muni-mcp"
startup_timeout_sec = 60Obecné mcp.json (VS Code, Zed, …) — totéž co výše; konfiguraci pro svůj
stroj vytisknete příkazem is-muni-mcp setup --client json
(VS Code: setup --client vscode --print-only, Cursor: ... cursor ...).
ChatGPT desktop app — umí lokální stdio servery přes sdílenou Codex
konfiguraci (viz Codex výše): stačí is-muni-mcp setup --client codex
nebo Setup aplikace a restart ChatGPT. Žádný vzdálený server není potřeba.
ChatGPT web a další klienti bez lokálního stdio — webové ChatGPT umí jen vzdálené MCP servery (URL). Pro tento případ server umí i HTTP transport — musíte ho ale provozovat sami (např. na vlastním VPS) a ChatGPT pak napojit na jeho URL:
is-muni-mcp serve --transport streamable-http --host 127.0.0.1 --port 8000
# URL pro klienta: http://VAS-SERVER:8000/mcp⚠️ HTTP režim vystavuje vaše data z IS komukoliv s přístupem k URL — provozujte ho jen za autentizací / na privátní síti (Tailscale, VPN) a nikdy ne bez zabezpečení na veřejném internetu.
Docker:
docker build -t is-muni-mcp .
docker run -i --rm -v is-muni-config:/config is-muni-mcp login # přihlášení (session zůstane ve volume)
docker run -i --rm -v is-muni-config:/config is-muni-mcp # server přes stdioPřihlášení — detaily a alternativy
is-muni-mcp login— interaktivní přihlášení učem + heslem (doporučeno).is-muni-mcp login --uco 990001— učo předvyplněné, zeptá se jen na heslo.is-muni-mcp login --cookie "__Host-issession=...; __Host-iscreds=..."— nouzová varianta: vložení hotové session z prohlížeče (Vývojářské nástroje → Application → Cookies →https://is.muni.cz).is-muni-mcp logout— smaže uloženou session.Proměnné prostředí (přednost před uloženou session, vhodné pro servery a CI):
ISMU_COOKIE(celý řetězec),ISMU_SESSION+ISMU_CREDS,ISMU_COOKIE_FILE, neboISMU_UCO+ISMU_PASSWORD(automatické přihlášení i obnova expirované session). Vzor viz.env.example.Stažené binární soubory:
ISMU_DOWNLOAD_DIR(výchozí~/.cache/is-muni-mcp).
Vývoj a testy
git clone https://github.com/Destingem/is-muni-mcp.git
cd is-muni-mcp
uv sync --group dev
uv run pytest # fixture testy parserů + test MCP protokolu (offline)
uv run ruff check src tests mcpb packaging && uv run ruff format --check src tests mcpb packaging
ISMU_LIVE_MCP=1 uv run pytest tests/test_mcp.py -q # + živé volání přes protokol (potřebuje přihlášení)Testy běží nad redigovanými vzorky stránek IS
(tests/fixtures/) — žádný network, žádná reálná data.
Detaily viz CONTRIBUTING.
Jak to funguje a limity
Data se čtou přímo ze stránek IS (HTML + vložený JSON kalendáře + oficiální iCal export rozvrhu
format=ical). Žádné neoficiální API není potřeba.Struktura stránek IS se může změnit — když některý nástroj přestane fungovat, většinou stačí upravit příslušný parser v
src/is_muni_mcp/parsers/.Některé agendy IS (např. přepínače období) se doplňují JavaScriptem — server pracuje s aktuálně vybraným obdobím a studiem.
Odpovědníky se čtou jen z kalendáře a výpisu souborů — nástroj záměrně neotvírá testovací rozhraní, aby omylem nezahájil pokus.
Neoficiální projekt — není dílem ani pod záštitou Masarykovy univerzity.
Licence
MIT — viz LICENSE.
Available Tools
25 toolsdashboardA
Přehled 'Co se právě děje / Co vás čeká / Poslední studijní události' z titulní stránky Studenta.
Inputs: no named parameters.
deadlinesB
Blížící se deadliny: odevzdávárny, odpovědníky, zkoušky a události semestru. Výchozí rozsah: dnes až +30 dní.
Inputs: do, od. Returns: result
diskuse_prehledA
Přehled diskusních fór (obecná, předmětová, tematická...) s odkazy na fóra.
Inputs: no named parameters.
diskuse_vlaknoC
Přečte vlákno diskuse (příspěvky: autor, datum, text). URL z přehledu nebo z kalendáře.
Inputs: url (required), max_prispevku.
harmonogramB
Harmonogram semestru: zápisy, výuka, zkouškové a další termíny. Bez parametru všechny fakulty, jinak zkratka (např. 'FSS').
Inputs: fakulta.
hledat_predmetC
Vyhledávání v katalogu předmětů (kód, název, období, odkaz na detail). Fakulta = číselné ID (prázdné = moje fakulta), období = název ('podzim 2026', prázdné = aktuální).
Inputs: dotaz (required), limit, obdobi, fakulta_id.
kalendarB
Kalendář: události z vývěsky, odevzdávárny, odpovědníky, události semestru, svátky, zkoušky. Data pokrývají aktuální zobrazené období v IS. Datum ve formátu RRRR-MM-DD. Typy: čárkou oddělené kódy (5_1,6_1,6_2,6_3,6_4,6_5,8_1) nebo části názvů (např. 'odevzdávárny,zkoušky').
Inputs: do, od, typy. Returns: result
moje_predmetyA
Zapsané předměty v daném období (kód, název, fakulta). Období např. 'podzim2026', prázdné = aktuální.
Inputs: obdobi. Returns: result
moje_seminarni_skupinyA
Moje seminární skupiny (předmět, skupina, termíny, místnosti) + které předměty skupiny mají. Pouze přehled — nástroj nikoho nikam nepřihlašuje ani neodhlásí.
Inputs: no named parameters.
moje_znamkyA
Moje známky a hodnocení (předmět, kredity, ukončení, hodnocení, datum). Včetně starších období, pokud je IS zobrazuje.
Inputs: no named parameters. Returns: result
osobaC
Kontakt na osobu (typicky vyučujícího): jméno, e-mail, telefon, pracoviště/studium.
Inputs: uco (required).
posta_ctiA
Přečte jednu zprávu (hlavička + tělo + přílohy). ID zprávy ze seznamu; složka volitelně (id).
Inputs: id (required), slozka.
posta_seznamA
Seznam zpráv ve složce (id, od, předmět, datum, velikost, nepřečtená). Složka = id nebo část názvu (např. 'Příchozí'), prázdné = příchozí pošta. Stránkování přes start.
Inputs: pocet, start, slozka, jen_neprectene.
posta_slozkyC
Složky pošty (id, název, počet zpráv).
Inputs: no named parameters. Returns: result
poznamkove_blokyB
Poznámkové bloky: body a hodnocení z průběžných aktivit. Volitelný filtr na kód předmětu.
Inputs: predmet.
predmet_infoC
Detail předmětu: název, vyučující, rozsah, kredity, ukončení, rozvrhové časy, anotace, odkaz na e-learning.
Inputs: kod (required), obdobi, fakulta.
profilB
Osobní stránka: jméno, e-mail, studia, program, forma, stav, plány. Bez parametru = vlastní profil.
Inputs: uco.
rozvrhA
Můj rozvrh na dané období (název, začátek, konec, místo). Výchozí rozsah: aktuální týden (Po–Ne).
Inputs: do, od. Returns: result
soubor_ctiA
Stáhne soubor z IS. Textové soubory vrátí jako text; binární uloží do ISMU_DOWNLOAD_DIR a vrátí cestu. Pro prezentace/dokumenty automaticky zkusí i automaticky generovanou .txt verzi (zkus_txt).
Inputs: url (required), zkus_txt, max_znaku.
soubory_vypisC
Výpis studijních materiálů předmětu (složky: um/odp/ode/op + soubory s odkazy ke stažení). Cesta = podsložka (např. 'um/prezentace'). Rekurze=True projde i podsložky (max. 60 stránek).
Inputs: kod (required), cesta, obdobi, fakulta, +1 more.
statusA
Ověří přihlášení k IS MUNI a vrátí základní identitu (jméno, učo, vybrané studium/období).
Inputs: no named parameters.
udalostiB
Záznamy událostí v ISu (změny zkušebních termínů, bloků, známek, diskusí, vývěsek).
Inputs: no named parameters.
vyveskaC
Vývěska: důležité a sledované zprávy, pozvánky, inzerce. Typ: '' (vše), 'pozvanky', 'inzerce'.
Inputs: typ.
zkouskove_terminyA
Vyhlášené zkušební termíny mých předmětů (pouze přehled — nástroj nikoho nikam nepřihlašuje).
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 25 tools
Most tools target distinct areas, but there is noticeable overlap among kalendar, deadlines, pripomenuti, udalosti, and dashboard, all of which can surface similar study-related events or notifications. The descriptions clarify the differences somewhat, but an agent could still easily select the wrong tool for a vague user request.
Names are consistently lowercase and use underscores for compound terms, which gives a rough visual pattern. However, the linguistic order varies (e.g., 'hledat_predmet' vs. 'posta_cti'), and English terms like 'deadlines' and 'dashboard' are mixed into an otherwise Czech naming scheme.
At 25 tools, the set is at the heavy end of the borderline range. Each tool serves a different information-system area, so the count is understandable, but the breadth makes the server feel sprawling rather than tightly scoped.
The tool set covers the main read-only student workflows well: calendar, deadlines, mail, files, discussions, courses, grades, and personal data. Gaps exist but are minor for this read-only purpose, such as no ability to search for people by name or to upload files; write operations appear intentionally excluded.
Maintenance
Related MCP Connectors
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Your personal data for AI — Telegram, bank, courses, Zoom & more, scoped to you.
Your Telegram, WhatsApp, Instagram, mail and calendar in Claude or ChatGPT. Never sends messages.
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1-
- AlicenseAqualityCmaintenanceEnables AI agents to access a student's EPFL Moodle data—deadlines, course files, assignments, forums, and grades—through read-only tools.12MIT
- AlicenseBqualityCmaintenanceConnects AI assistants to the UNED virtual campus (agora.uned.es, Moodle) so students can log in via SSO, sync course materials, and search or read extracted text with page-level citations. It also surfaces deadlines, announcements, grades, classes and calendar events, tracks topic-by-topic progress, generates weekly study plans and exports dates to an .ics calendar.211MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read a student's courses, assignments, exam schedule, weekly course content, and Panopto lecture recordings with timestamped transcripts (transcribing audio when no captions exist). Access is read-only and uses the user's own credentials, which stay local.7MIT