The most complete Python wrapper for the Hungarian Neptun university system API
14 tools with consistent naming (verb_noun pattern) and descriptions present. All tools are READ_ONLY, reducing risk. However, most parameter descriptions are minimal or absent. Input schemas exist but lack detail, many parameters have only type and description fields, no constraints (enums, ranges, patterns). Output schemas are not documented; responses are JSON strings without declared structure. Error handling is minimal, no recovery guidance or categorization. Credential redaction logic is thorough (SENSITIVE_KEYS, JWT/URL scrubbing) but not exposed as tool-level security documentation.
Get the grade for every subject across all terms (full transcript). Includes midterm marks and recognised/transfer grades that the dedicated results endpoints omit. Each item has term, subjectCode, subjectName, credit, requirementType, grade (1-5 or null), gradeName, and passed.
Get completable subjects for a curriculum. If curriculum_id is omitted, uses the student's first curriculum template.
Get dashboard summary: term averages (GPA), credit progress, and unread message count.
Get exam results for a term. Use get_exam_results_terms() first for term IDs.
Get the list of terms that have exam results (with their IDs).
Get available exams for a subject in a term.
No output schemas documented. Tools return JSON strings without declared field structure. LLMs cannot plan downstream calls or extract specific fields reliably.
Parameter descriptions are minimal or absent. E.g., 'term_id' and 'subject_id' lack format/constraint guidance. LLMs cannot validate inputs before calling.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Read a specific message thread by ID (its posts).
Get received messages (paginated).
Get current session info: neptun code, session timeout, days until password expiry. Returns only non-sensitive fields — never the Bearer/access token.
Get the result/grade for one subject by its subject ID (resultValue, resultName, passed).
Get subjects taken in a specific term. Use get_taken_subjects_terms() first to get term IDs.
Get list of available terms (semesters) with their IDs.
Get GPA and credit index for each semester.
Get count of unread messages.
No error handling or recovery guidance. Tools return raw API responses or exceptions without actionable next steps for LLMs.
Pagination parameters (first_row, last_row) in get_received_messages lack constraints. No documented limit, default, or total count in response.
Tool descriptions do not explain when to call discovery tools (e.g., 'call get_taken_subjects_terms() first'). Dependency hints are present but not formalized.