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 MCPWhat'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 Study 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the burden of behavioral disclosure. 'Přehled' reasonably signals an informational, read-only view, but the description does not state how data is aggregated, whether it is personalized, or what happens when there are no current events. The gap is modest given the low-risk nature of a dashboard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the tool's nature and key content sections without filler. Every element earns its place and no schema details are redundantly repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter dashboard with no output schema, the description sufficiently captures what the tool shows and where the data comes from. It could mention empty-state behavior, but that is not essential for an agent to invoke this simple overview tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and full schema coverage, so no parameter documentation is needed. The description correctly avoids inventing argument details, leaving the no-arguments contract fully determined by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies that the tool returns a dashboard overview with three named content sections sourced from the Student homepage. Although it uses the noun 'Přehled' instead of an explicit verb, the intent is unambiguous and the content is distinguishable from more specific siblings like kalendar or udalosti.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a broad, consolidated summary use case, but it does not explicitly state when to prefer dashboard over alternatives such as deadlines, udalosti, or kalendar. It provides context about the source (titulní stránka) without explaining when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deadlinesB
Blížící se deadliny: odevzdávárny, odpovědníky, zkoušky a události semestru. Výchozí rozsah: dnes až +30 dní.
| Name | Required | Description | Default |
|---|---|---|---|
| do | No | ||
| od | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds the useful default window of today to +30 days and defines the scope, but it does not state whether the operation is read-only, how the od/do parameters interact with the default range, or what happens when parameters are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler, front-loading the core scope and then the default range. It is appropriately sized for a simple listing tool, though a little more parameter guidance would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough to understand the tool's basic purpose and default behavior, especially since an output schema exists to describe return values. However, the absence of param semantics and explicit sibling differentiation leaves noticeable gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two undocumented parameters with 0% coverage, and the description only mentions the default range. This indirectly hints that od and do relate to a custom date range, but it does not explain their format, optionality, or interaction with the default, leaving the agent with insufficient guidance for non-default calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as upcoming deadlines spanning submission boxes, questionnaires, exams, and semester events, and states a default time range. It is distinguishable from sibling tools like zkouskove_terminy or udalosti by its combined scope, though it lacks an explicit verb such as 'list' or 'show'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when a user needs upcoming deadlines, and it communicates the default range. However, it does not mention alternatives or conditions for choosing between this and closely related siblings such as kalendar, rozvrh, or zkouskove_terminy, leaving differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diskuse_prehledA
Přehled diskusních fór (obecná, předmětová, tematická...) s odkazy na fóra.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It implies a read-only listing behavior ('Přehled... s odkazy na fóra'), which is appropriate, but it does not explicitly describe the return structure, whether the links are clickable, or any limitations. The behavioral disclosure is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler. It front-loads the core function ('Přehled diskusních fór') and adds useful specifics (categories and links) without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter overview tool, the description is largely complete: it states the purpose and the output nature (links to forums). It does not detail the exact format of the returned list or how it relates to 'diskuse_vlakno', but no schema or output schema exists to fill that gap, and the tool is simple enough that the description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to add beyond the schema. The baseline of 4 applies here; the mention of 'odkazy na fóra' describes output rather than parameters, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: an overview of discussion forums, with example categories and the notion that it returns links to forums. It is somewhat tautological with the tool name ('diskuse_prehled' = discussion overview), and it does not explicitly contrast with sibling 'diskuse_vlakno', but the purpose is nevertheless clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: an agent would call this when it needs an overview of available discussion forums rather than content of a specific thread. However, there is no explicit guidance on when not to use it or when to prefer a sibling such as 'diskuse_vlakno'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diskuse_vlaknoC
Přečte vlákno diskuse (příspěvky: autor, datum, text). URL z přehledu nebo z kalendáře.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_prispevku | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It correctly conveys this is a read operation ('Přečte') and lists the fields returned, which gives basic transparency. However, it omits important behavioral traits such as the effect of max_prispevku (default 30) on output length, pagination, error behavior, or any limitations. The description is not misleading but is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the core purpose and then adds a useful contextual hint about where URLs come from. Every phrase contributes meaning, and there is no redundant wording. It loses one point because it could have used the available space to mention parameters without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters, no annotations, and no output schema, so the description must carry a heavier load. It fails to explain the max_prispevku parameter, does not describe the return structure beyond listing fields, and gives no sense of error handling or pagination. For an agent to invoke this tool reliably, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain either parameter. The 'url' parameter is inferable from the sentence about URLs from overview/calendar, but 'max_prispevku' is never mentioned, and no details about format, constraints, or default behavior are provided. The description adds essentially no meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Přečte' (reads) and the resource 'vlákno diskuse' (discussion thread), and specifies the content (author, date, text). It distinguishes the tool implicitly from siblings like diskuse_prehled by focusing on a specific thread, but does not explicitly name the sibling or contrast its scope, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by stating the URL comes from an overview or calendar, implying the tool is used when a specific thread URL is available. However, it does not explicitly say when to prefer this over diskuse_prehled or other alternatives, nor does it give any 'when not to use' guidance. The context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
harmonogramB
Harmonogram semestru: zápisy, výuka, zkouškové a další termíny. Bez parametru všechny fakulty, jinak zkratka (např. 'FSS').
| Name | Required | Description | Default |
|---|---|---|---|
| fakulta | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden; it discloses the default scope behavior (all faculties vs. faculty-specific) and enumerates the kinds of dates included. However, it does not mention whether the operation is read-only, what the response structure is, or any limitations. It adds some value beyond the name but leaves important behavioral aspects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is two short clauses, front-loading the tool's content and then the only parameter behavior. Every word contributes; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter tool with no output schema, the description explains what the tool covers and how the faculty filter works. Yet it leaves details ambiguous: what 'další termíny' includes, what the output looks like, and how this differs from kalendar/rozvrh/zkouskove_terminy. More context would help an agent pick it correctly, but it is not severely lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameter; it does so by stating that omitting the parameter returns all faculties and supplying a value filters by faculty abbreviation (e.g., 'FSS'). It clarifies the effect of the parameter and provides a format example, which the schema lacks. No other parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides the semester schedule including enrollments, teaching, exam periods, and other dates, giving a clear resource and content scope. It does not use an explicit verb like 'get' or 'list', but the noun 'Harmonogram' implies retrieval. It partially distinguishes from siblings by enumerating content areas, though it does not name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives parameter usage (no parameter returns all faculties, otherwise a faculty abbreviation) but provides no guidance on when to choose this tool over closely related siblings like kalendar, rozvrh, or zkouskove_terminy. There are no explicit when-not conditions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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í).
| Name | Required | Description | Default |
|---|---|---|---|
| dotaz | Yes | ||
| limit | No | ||
| obdobi | No | ||
| fakulta_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions search (implying read-only) but does not explicitly state side effects, return format, or any limitations. It covers some parameter behavior but not the tool's overall behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and efficiently packs parameter clarifications. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 parameters and no output schema, the description lacks return format, pagination, and full semantics for all parameters. It provides only partial guidance, leaving an agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining 'fakulta_id' (numeric, empty = my faculty) and 'obdobi' (name, e.g., 'podzim 2026', empty = current). However, 'dotaz' and 'limit' are not clarified beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the subject catalog by code, name, period, and provides a link to detail. It is specific about the resource and action, though it does not explicitly contrast with sibling tools like 'predmet_info' or 'moje_predmety'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameter usage (faculty ID empty means my faculty, period format) but gives no guidance on when to use this tool versus alternatives. It does not mention exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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').
| Name | Required | Description | Default |
|---|---|---|---|
| do | No | ||
| od | No | ||
| typy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does state that data cover the currently displayed IS period and explains date and type formats, which is useful. However, it does not explicitly state that the operation is read-only, describe side effects, or indicate how output will be shaped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: content categories come first, followed by data scope and format details. Every sentence contributes useful information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an optional-parameter tool with an output schema, the description covers the main input semantics and data scope. It lacks a clear statement of the relationship between `od`/`do` and the returned period, and it offers no routing guidance relative to sibling tools, leaving some context for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the missing parameter documentation. It meaningfully explains `typy` (comma-separated codes or name parts) and specifies the date format YYYY-MM-DD, which likely applies to `od` and `do`. It does not explicitly define `od`/`do` as a date-range pair, though their names strongly imply this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as a calendar and enumerates the event categories it aggregates (notice board, submission box, questionnaires, semester events, holidays, exams). This gives a clear sense of scope, though there is no explicit verb and no direct contrast with sibling tools like `udalosti`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no guidance on when to use this tool versus alternatives such as `rozvrh`, `deadlines`, or `zkouskove_terminy`. The intended use must be inferred from the name and content list, and no exclusions or precedence rules are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
moje_predmetyA
Zapsané předměty v daném období (kód, název, fakulta). Období např. 'podzim2026', prázdné = aktuální.
| Name | Required | Description | Default |
|---|---|---|---|
| obdobi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the key behavior: what data is returned (code, name, faculty), how the period parameter works, and that an empty value means the current period. For a simple read-only list tool this is adequate, though it omits details like authentication or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the core purpose and return fields, then explains the parameter. Every word earns its place and there is no redundant repetition of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single optional parameter, an output schema, and no nested objects, this description is fully sufficient for an agent to call the tool correctly. It covers what is returned, the parameter format, and the default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameter meaning must come from the description. It does: 'obdobi' is explained with a concrete example ('podzim2026') and the empty-default semantic ('prázdné = aktuální'). This adds meaningful guidance beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists enrolled subjects ('Zapsané předměty') for a given period and specifies the returned fields (code, name, faculty). It is specific enough to distinguish from siblings like moje_znamky or predmet_info, though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: it is for retrieving a user's enrolled courses in a period, with an example period format ('podzim2026') and the default behavior when the parameter is empty. However, it gives no explicit guidance about when to use this tool instead of related siblings such as rozvrh or predmet_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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í.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It explicitly states that the tool is only an overview and does not enroll or unenroll anyone anywhere, which is a valuable side-effect disclosure. It does not mention authorization, data freshness, or result ordering, but for a zero-parameter read-only overview these omissions are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the resource and its content, then adds the crucial no-side-effects clarification in a separate sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parametersholander and no output schema, the description provides sufficient context for an agent to select and invoke the tool correctly. It states the subject area (seminar group overview), enumerates the expected fields, and clarifies that no action with side effects is performed. Nothing essential appears missing for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametersaine, so no parameter documentation is needed. The description instead lists the kind of data returned (subject, group, terms, rooms, associated subjects), which adds useful context. This matches the baseline for tools with no parameters and adds no contradictory or confusing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as the user's seminar groups and enumerates the included data: subject, group, dates/times, rooms, and associated subjects. It does not use an explicit verb like 'list' or 'show,' but 'Pouze přehled' makes the retrieval intent clear. It is distinguishable from siblings like rozvrh and moje_predmety, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when someone wants an overview of their seminar groupsadian, and it explicitly rules out enrollment/unenrollment actions. However, it does not name alternatives or provide explicit when-to-use versus when-not-to-use guidance beyond 'Pouze přehled'. The usage context is mostly inferred rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
moje_znamkyA
Moje známky a hodnocení (předmět, kredity, ukončení, hodnocení, datum). Včetně starších období, pokud je IS zobrazuje.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds one useful behavioral detail: the tool includes older grading periods when the underlying system exposes them. It does not explicitly state that the operation is read-only or describe any side effects, but for a zero-parameter 'my grades' list this is largely inferable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with a parenthetical field list and one worthwhile scope caveat. No words are wasted and the most important meaning is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read/list tool with an output schema, the description is nearly complete: it names the data fields and clarifies historical coverage. It only lacks a small amount of sibling differentiation and explicit read-only confirmation, but these are not necessary to invoke the tool successfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 and there is nothing for the description to compensate for in parameter documentation. The field list in the description gives useful context about what the returned data contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description expands the resource into a concrete list of grade/evaluation data with fields (subject, credits, completion, grade, date) and adds temporal scope (older periods if the IS shows them). It is clear, though it has no explicit action verb and does not explicitly differentiate it from sibling tools such as zkouskove_terminy or moje_predmety.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool rather than its siblings, no alternative names, and no conditions of use. The only context is the note that older periods are included if the IS displays them, which is a data-scope caveat, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
osobaC
Kontakt na osobu (typicky vyučujícího): jméno, e-mail, telefon, pracoviště/studium.
| Name | Required | Description | Default |
|---|---|---|---|
| uco | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It does clarify the output content (name, email, phone, workplace/study) and the typical subject (teacher), but it does not address lookup failure, permissions, or whether this is strictly a read operation. The behavioral disclosure is partial but useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that names the resource and the fields returned. It is front-loaded with the core purpose, though it could have used the same space to briefly define the required parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description gives the expected result fields but omits the meaning of the required 'uco' identifier and any failure/edge-case context. There is no output schema to compensate, so the agent is left without enough information to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'uco', has 0% schema description coverage, and the description does not explain what 'uco' means or how it relates to the person being looked up. Since the description adds no semantic value for the parameter, an agent cannot reliably determine what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (a person, typically a teacher) and the data returned: name, email, phone, and workplace/study. It is distinct from most sibling tools, though it lacks an explicit verb like 'get' or 'look up' and does not directly contrast with related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, nor any exclusions or prerequisites. The intended use is only implied by the phrase 'Kontakt na osobu,' so an agent must infer when this is the right choice among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posta_ctiA
Přečte jednu zprávu (hlavička + tělo + přílohy). ID zprávy ze seznamu; složka volitelně (id).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| slozka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose what is read (header, body, attachments), but it does not explicitly confirm absence of side effects or mention whether reading marks the message as read. The verb 'Přečte' implies a read-only operation, yet some uncertainty remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no redundant wording. Essential purpose and parameter guidance are front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read operation with no output schema and no annotations, the description covers the main points: what is read, where the ID comes from, and the optional folder. Minor gaps like folder ID syntax or error behavior are not critical for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does: 'id' is explained as the message ID from a list, and 'slozka' is described as an optional folder identifier, adding meaning beyond the bare property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb ('Přečte') and a specific resource ('jednu zprávu'), and further specifies scope as header, body, and attachments. It also states the ID comes from a list, which distinguishes this from sibling tools like posta_seznam and posta_slozky.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives actionable usage context: the message ID must come from a list and the folder is optional. It doesn't explicitly name sibling alternatives or state when not to use the tool, but the provided precondition is sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pocet | No | ||
| start | No | ||
| slozka | No | ||
| jen_neprectene | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose folder resolution and pagination behavior, and the verb 'Seznam' implies read-only listing, but it does not explicitly state the absence of side effects, ordering, or any rate/output limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, information-dense sentences with the core purpose front-loaded. There is no filler, and every sentence contributes either output context, parameter semantics, or pagination guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no annotations and no output schema, it covers return fields, folder selection, and pagination reasonably well. However, it misses explicit semantics for two of the four parameters and does not address potential concerns like whether listing affects read/unread state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds real semantics for slozka (id or partial name, empty = inbox) and start (pagination offset), but pocet and jen_neprectene are left unexplained beyond their Czech names and schema defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list messages in a folder, and enumerates the returned fields (id, from, subject, date, size, unread). It does not explicitly name sibling tools or contrast itself with posta_cti/posta_slozky, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: how to specify a folder by id or partial name, that an empty value means the inbox, and that pagination is driven by start. It does not mention alternatives or when not to use the tool, but the context is clear enough for a list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posta_slozkyC
Složky pošty (id, název, počet zpráv).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, whether any data is destroyed, or what side effects may occur. The bare phrase 'mail folders' with field names gives minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase with no wasted words. It is front-loaded with the resource name and lists the expected fields, but it is under-specified as a complete sentence, so it loses one point for lack of action structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description does not explain the tool's action, return behavior, or relationship to sibling tools. An agent would not know that this tool lists mail folders or when to choose it over posta_seznam. The description is insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description has nothing to add beyond the empty schema. The 0-parameter baseline of 4 applies because there is no ambiguity or compensation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Složky pošty (id, název, počet zpráv)' identifies the resource (mail folders) and the data fields, but lacks an explicit action verb like 'list' or 'get'. It is more informative than a tautology, yet the agent must infer the operation from the tool name and sibling context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings such as posta_seznam or posta_cti. The description does not state any use cases, prerequisites, or alternatives, leaving the agent to guess from naming conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poznamkove_blokyB
Poznámkové bloky: body a hodnocení z průběžných aktivit. Volitelný filtr na kód předmětu.
| Name | Required | Description | Default |
|---|---|---|---|
| predmet | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description conveys that the tool concerns points and assessments, but with no annotations it carries the full burden, and it does not state the return shape, user scope, side effects, or any behavioral caveats. It is not misleading, but it is thin for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences convey the resource, the contained data, and the optional filter with no filler. The key content is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-oriented tool this is adequate: purpose and optional filter are present. The gaps are the shape of the returned body/hodnocení data, whether the result is scoped to the current user, and what happens when no filter is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only gives 'predmet' as a string with no description (0% coverage), so the description adds real value by explaining that the filter is optional and is a course code. It does not specify the accepted code format, but for one optional parameter this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a concrete resource and content ('Poznámkové bloky: body a hodnocení z průběžných aktivit') and mentions an optional subject-code filter. It stops short of an explicit verb such as 'list' or 'get', and it does not contrast with sibling tools like moje_znamky, so it is clear rather than fully distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over the many sibling tools (moje_znamky, predmet_info, harmonogram, etc.). The optional filter is mentioned, but no conditions, prerequisites, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predmet_infoC
Detail předmětu: název, vyučující, rozsah, kredity, ukončení, rozvrhové časy, anotace, odkaz na e-learning.
| Name | Required | Description | Default |
|---|---|---|---|
| kod | Yes | ||
| obdobi | No | ||
| fakulta | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It is a read-only operation, but it does not explicitly state this or mention potential limitations such as data privacy, availability, or that it only shows course information. The description lists output fields but not the behavior of the tool itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and lists the key output fields. It is front-loaded with the topic. However, it lacks any usage context, but it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (retrieving course details), the description covers the main output fields but fails to explain the parameters or usage context. Since there is no output schema, the description must be the primary source of information, and it omits how to specify the course (e.g., by code) and the role of 'obdobi' and 'fakulta'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no textual meaning for parameters. The description does not explain the parameters either; 'kod', 'obdobi', and 'fakulta' are not defined, and the description does not mention them at all. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides details of a subject (course), listing the specific attributes (name, teachers, scope, credits, etc.). However, it does not differentiate it from siblings like 'moje_predmety' or 'hledat_predmet', which also relate to subjects, so it loses one point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings such as 'hledat_predmet' or 'rozvrh'. It is a direct information retrieval tool, but the description does not clarify when to choose it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profilB
Osobní stránka: jméno, e-mail, studia, program, forma, stav, plány. Bez parametru = vlastní profil.
| Name | Required | Description | Default |
|---|---|---|---|
| uco | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the data fields returned and the default behavior (own profile without parameter), but it does not mention whether the tool can access other users' profiles, what happens with an invalid or empty 'uco', or any privacy/authorization constraints. The behavior is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the resource and fields, then adds the key behavioral note about the default. It is efficient and easy to parse, though the lack of explicit sibling differentiation costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the main purpose and default behavior. However, it lacks guidance on how to use the 'uco' parameter to view another profile, and it does not clarify the relationship to the sibling 'osoba' tool, leaving some context incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that omitting the parameter yields the own profile, which adds meaning to the optional 'uco' parameter. However, it does not explain the expected format of 'uco' (e.g., numeric string) or what the parameter does when provided, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: it shows a personal page with fields like name, email, studies, program, form, status, and plans. It also distinguishes the no-parameter case as 'own profile', which helps differentiate it from the sibling tool 'osoba' (person lookup). However, it does not explicitly name the sibling alternative, so differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: without a parameter, it returns the caller's own profile; with a 'uco' parameter, it presumably returns another person's profile. This gives some context but does not explicitly state when to use this tool versus 'osoba' or other sibling tools, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozvrhA
Můj rozvrh na dané období (název, začátek, konec, místo). Výchozí rozsah: aktuální týden (Po–Ne).
| Name | Required | Description | Default |
|---|---|---|---|
| do | No | ||
| od | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of explaining behavior. It discloses the default time range and the fields returned, which is useful, but it never explicitly states that this is a read-only retrieval operation or how the od/do filtering behaves exactly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the tool's purpose dash the resource, the period scope, the returned fields, and the default range. There is no filler or redundant repetition of schema data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple schedule lookup, and an output schema exists so return values do not need full documentation. The main gap is the absence of any date format or boundary semantics for od/do, which an agent needs to make a precise period-constrained call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only 'Od' and 'Do' with empty defaults and no descriptions, and the description adds the key semantic that the tool covers a given period and defaults to the current week. However, it does not specify the expected date format, inclusivity, or behavior when only one parameter is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('Můj rozvrh' – the user's schedule) and the information it contains: name, start, end, and place. It is clear about the tool's scope, though it does not explicitly distinguish it from siblings like kalendar or harmonogram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: the schedule can be requested for a specified periodive, and if no period is given, it defaults to the current week (Mon–Sun). It does not name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| zkus_txt | No | ||
| max_znaku | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses important side effects: text vs binary handling, the download destination directory, and the automatic attempt to get a generated .txt version. It does not mention possible truncation or side effects of max_znaku, but the main behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences deliver the main action, return behavior, and a key parameter hint without filler. The most important information is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers return values well because there is no output schema, and it explains the binary save path. However, max_znaku behavior is missing and there are no annotations or output schema details to fill that gap, so the definition is not fully complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains zkus_txt explicitly, and url is implied by 'soubor z IS', but max_znaku is entirely unexplained, including what happens when the limit is reached. This is a meaningful gap for one of the three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action and resource ('Stáhne soubor z IS') and clearly distinguishes two modes: text files returned as text, binary files saved to ISMU_DOWNLOAD_DIR and returning a path. It does not explicitly differentiate from sibling tools like soubory_vypis, but the behavior makes the tool's role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is clear: use this tool when you need to download/read a file from IS and get content or a saved path. It does not mention when not to use it or explicitly name alternatives, but the behavioral rules give enough context for typical selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| kod | Yes | ||
| cesta | No | ||
| obdobi | No | ||
| fakulta | No | ||
| rekurze | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that recursion traverses subfolders with a maximum of 60 pages and that files come with download links, which is useful. However, it does not mention whether the operation is read-only, any auth requirements, or rate limits, beyond the implicit read nature of a listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two sentences to convey the core purpose and key parameter behaviors. It is front-loaded with the main function and adds relevant details efficiently, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters) and lack of output schema, the description is incomplete. It does not specify return format (beyond mentioning links), default behaviors for 'obdobi' and 'fakulta', or error conditions. The lack of parameter explanations and output details leaves an agent with insufficient information to call the tool correctly in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It explains 'cesta' (path) and 'rekurze' (recursion) but leaves 'kod', 'obdobi', and 'fakulta' unexplained. An agent cannot fully understand all input semantics from the description alone, leading to a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Výpis studijních materiálů') and resource (subject materials with folders and download links). It distinguishes itself from sibling tools like 'soubor_cti' by focusing on listing rather than reading a single file, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context (path as subfolder, recursion behavior, page limit) but gives no guidance on when to choose this tool over alternatives. There is no mention of scenarios or exclusions relative to sibling tools like 'soubor_cti' or 'predmet_info'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusA
Ověří přihlášení k IS MUNI a vrátí základní identitu (jméno, učo, vybrané studium/období).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of behavioral disclosure. It conveys a read-only verification action and lists returned identity fields, but it does not state what happens if the user is not logged in, whether any session setup is required, or that the operation has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence that front-loads the action and immediately states the output. There is no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description adequately explains the return value by naming the identity fields. It is slightly incomplete in not describing failure behavior or exact response format, but it gives an agent enough to understand the tool's core purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing for the description to add. The 0-parameter baseline of 4 applies; the mention of 'vybrané studium/období' describes output content rather than input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Czech description states a specific action ('Ověří přihlášení k IS MUNI') and a concrete resource plus result ('základní identitu - jméno, učo, vybrané studium/období'). It is clear and distinct, but it does not explicitly differentiate itself from related identity/session tools like 'profil' or 'osoba'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for checking the current login and obtaining basic identity, but it gives no explicit 'when to use' or 'when not to use' guidance and does not mention alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
udalostiB
Záznamy událostí v ISu (změny zkušebních termínů, bloků, známek, diskusí, vývěsek).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It only names content categories and does not state whether the operation is read-only, what time range or ordering is used, whether results are summaries or full records, or anything about response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with a front-loaded core noun phrase and a parenthetical list that earns its place by clarifying content. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description gives enough domain context for basic selection. However, with no output schema and no annotations, it does not state what the returned records look like or how to interpret them, and 'události' could be misread as calendar events rather than a changelog.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema has nothing to document and the baseline is 4. The description adds useful semantic context by listing which kinds of events are covered, which helps an agent understand what the returned data will contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource—records (záznamy) of events in IS—and enumerates the covered types: changes to exam dates, blocks, grades, discussions, and bulletin boards. It is clear about domain, though it lacks an explicit verb and does not differentiate itself from siblings like kalendar or zkouskove_terminy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The parenthetical list of event types implies it is intended for viewing changes/history, but the description never states when to prefer udalosti over kalendar, rozvrh, or moje_znamky.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyveskaC
Vývěska: důležité a sledované zprávy, pozvánky, inzerce. Typ: '' (vše), 'pozvanky', 'inzerce'.
| Name | Required | Description | Default |
|---|---|---|---|
| typ | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only operation, whether it returns a list or detail view, whether it requires authentication, or how the 'typ' filter behaves (e.g., does '' return everything?). The description adds minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the resource name and purpose. It wastes no words, though it could be more structured by separating the purpose from the parameter explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and only one parameter, the description is too thin. It does not explain what the tool returns, how the filter behaves, or how it relates to sibling tools like 'udalosti' or 'inzerce' (if any). An agent would struggle to know when to call this tool and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain the 'typ' parameter values ('', 'pozvanky', 'inzerce') but does not clarify the exact meaning of each value (e.g., does 'pozvanky' mean invitations only?) or whether the parameter is optional. The description adds some value but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('Vývěska' = notice board) and mentions it contains important messages, invitations, and classifieds. However, it lacks a specific verb like 'list' or 'get', and the typ parameter values are only partially explained ('' for all, 'pozvanky', 'inzerce'), leaving the meaning of the resource somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like 'udalosti' (events), 'posta_seznam' (mail list), or 'diskuse_prehled' (discussion overview). The description implies it is for notices, but does not state when it should be preferred over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zkouskove_terminyA
Vyhlášené zkušební termíny mých předmětů (pouze přehled — nástroj nikoho nikam nepřihlašuje).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden, and it clearly states the key trait: this is an overview only and performs no enrollment. It also scopes the data to announced ('vyhlášené') exam terms, preventing the agent from over-promising.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one compact sentence that front-loads the resource ('Vyhlášené zkušební termíny') and uses a parenthetical to add the critical safety caveat. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing, the description provides sufficient scope and safety context. It does not specify the exact return fields, but with no output schema and low complexity that is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and 100% coverage, so there are no parameter semantics to explain. Per the baseline for a no-parameter tool, the description needs no additional parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('announced exam dates of my courses') and labels it as an overview, so the agent knows it is a read-only listing. It is clearly distinguishable from sibling tools like kalendar or harmonogram by the scope 'mých předmětů' and the 'zkouškové termíny' subject matter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'pouze přehled' and the explicit caveat 'nástroj nikoho nikam nepřihlašuje' tell the agent when this tool is appropriate and that it must not be used for enrollment. It does not name alternative tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
v1.2.0- First observed
dashboard - First observed
deadlines - First observed
diskuse_prehled - First observed
diskuse_vlakno - First observed
harmonogram - First observed
hledat_predmet - First observed
kalendar - First observed
moje_predmety - First observed
moje_seminarni_skupiny - First observed
moje_znamky - First observed
osoba - First observed
posta_cti - First observed
posta_seznam - First observed
posta_slozky - First observed
poznamkove_bloky - First observed
predmet_info - First observed
pripomenuti - First observed
profil - First observed
rozvrh - First observed
soubor_cti - First observed
soubory_vypis - First observed
status - First observed
udalosti - First observed
vyveska - First observed
zkouskove_terminy
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 your Moodle to AI assistants: courses, content, grading and reports from the chat.
Your personal data for AI — Telegram, bank, courses, Zoom & more, scoped to you.
- mcpOAuthcom.keboola
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
GDPR-compliant calendar access for AI assistants: read, create, edit, RSVP. Google, MS 365, Apple.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Canvas LMS to AI assistants, enabling users to list courses and retrieve assignment details through natural language. It features secure multi-institution support with encrypted token storage and a simplified setup process for students.2-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query and manage Moodle LMS data, including assignment deadlines, unread messages, unfinished quizzes, and enrolled courses, using natural language via OpenAI or local LLMs.-
- FlicenseAqualityBmaintenanceConnects AI assistants to METU's Student Affairs Information System using real SSO authentication, enabling retrieval of student info, schedules, transcripts, and announcements through MCP tools.6-