Skip to main content
Glama

Что изменилось с прошлого раза

hse_changes
Read-onlyIdempotent

Track changes across HSE deadlines, schedule, inbox, claims, and optional grades by returning only new, moved, or overdue items since the last snapshot.

Instructions

Снимает текущее состояние дедлайнов, расписания, входящего и заявок (по явной просьбе — оценок) и возвращает ТОЛЬКО изменения с прошлого снимка: новое, изменено, пропало, перенесено, просрочено. Для «что есть сейчас» используйте my_today/my_week/my_deadlines. Первый вызов по источнику создаёт базу без событий (status: baseline). События не теряются, если ответ не дошёл: курсор двигается только явным подтверждением — передайте ackSeq из ответа в параметр ack следующего вызова; без ack те же события вернутся снова. Если persisted: false (запись на диск не удалась), у ответа нет ackSeq (null), у событий нет seq, и события повторятся в следующем вызове — подтверждать нечего. В ответе не более 200 событий: если omitted > 0, ответ усечён — передайте ackSeq ответа в ack и вызовите тул снова, чтобы получить остальное; усечённый ответ не считайте полным. Тул только ЧИТАЕТ системы ВШЭ и пишет лишь локальную базу снимков. «Пропало из календаря» не означает «сдано». Область grades дорогая (страница на курс, десятки секунд) и берёт оценки только из журнала LMS. Возвращает JSON: changes, scopes (статус по областям), sources (статус каждого источника; отказ одного не роняет вызов), ackSeq, omitted, gap, persisted, warnings.

Input Schema

NameRequiredDescriptionDefault
ackNoПередавайте ТОЛЬКО ackSeq из последнего ответа hse_changes (число; null не нужен — просто опустите параметр, если ackSeq был null). seq отдельного события подтверждением НЕ является. События до ackSeq считаются полученными и больше не возвращаются.
freshNotrue — игнорировать кэш (иначе принимаются данные не старше 60 с).
sinceNoЖурнал за период ("7d", "12h" или дата ISO) вместо неподтверждённого; since сам курсор не двигает (ack в том же вызове двигает).
scopesNoОбласти; по умолчанию deadlines, schedule, inbox, claims (без grades).
coursesNoФильтр курсов для grades: число — id курса, строка — часть названия.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Well beyond the annotations: baseline-on-first-call with no events, the cursor moving only on explicit ack, unchanged event replay without ack, the persisted:false degradation path with null ackSeq/seq, a hard 200-event cap where omitted > 0 means truncation, per-source failure isolation, and the caveat that 'gone from the calendar' is not 'submitted'. The readOnlyHint is also correctly qualified: it reads HSE systems and writes only a local snapshot DB.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but information-dense: the ack / persisted / truncation rules each matter and the purpose plus the alternatives come first. The dense dash-separated clauses and the operations-critical ack rules buried mid-paragraph keep it from being a 5 on structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description enumerates the return fields (changes, scopes, sources, ackSeq, omitted, gap, persisted, warnings), defines the semantics of each state (baseline, truncated, failed persistence, source refusal), and leaves nothing an agent needs in order to interpret or re-call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it reinforces that ack must be ackSeq from the last response (not an event seq), explains the baseline/persisted:false cases in which ackSeq is absent, and conveys that grades is the expensive scope and only spans the LMS journal. It does not revisit since, fresh or courses, which the schema carries adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: it snapshots deadlines, schedule, inbox and claims and returns only deltas (new/changed/disappeared/moved/overdue). The delta framing, plus the explicit contrast with my_today/my_week/my_deadlines, makes it unmistakable next to its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the alternatives for the 'what is there now' case and the condition that selects them, marks grades as an opt-in scope with an explicit cost warning (a page per course, tens of seconds), and prescribes the ack loop after truncation or a failed write. When-to-use, when-not-to-use and alternatives are all present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.