Mixed quality across 28 tools. Naming is generally verb-based and action-clear (get_, mark_, download_, etc.), following baseline patterns. Descriptions exist for all tools but many are brief (15-40 chars) and lack specificity about when to use each tool or what makes them distinct. Input schemas are present for all tools with type declarations, but parameter descriptions are sparse or generic. Output schemas are not documented. Error handling is minimal, no guidance on recovery, retry logic, or validation feedback. The server handles school portal integration with moderate complexity, but tool definitions lack the LLM-optimization needed for confident tool selection in multi-tool scenarios.
Debug connection issues and test endpoints
Download an attachment from a news item
Exit exam day mode
Extract account information from user session
Check current authentication cookie status
Search designated schools with filtering options
Retrieve exam one-time password
Fetch events from integrated Google Calendar
Output schemas not documented. LLMs cannot see what fields are returned by tools, preventing optimal chaining and field extraction.
Parameter descriptions are generic or absent. Many parameters lack context about valid values, format requirements, or constraints (e.g., 'calendarType' accepts 'PERSONAL or SCHOOL' but is stated only in description, not as enum).
No enum constraints on enumerated parameters. 'calendarType', 'schoolTypes' accept specific values but are typed as string instead of enums, inviting hallucinated values from LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Fetch learning materials, assignments, and study resources
Fetch main navigation menu structure
Fetch school news and announcements
Get detailed information about a specific news item
Fetch notification messages
Fetch required courses and academic progress
Fetch school schedule and class timetable
Get schedule for a specific date
Fetch schooling information and learning data
Get detailed information about a specific schooling entry
Capture screenshot of student ID card from secure portal
Get count of unread news items
Fetch current user information and profile details
Fetch user interest preferences
Perform server health check and diagnose connectivity
Perform interactive browser-based authentication
Check if a given date is an exam day
Mark a news item as read
Set authentication cookies for API requests
Test calendar API endpoints and verify connectivity
No error guidance or recovery hints. Tool handlers throw generic McpError with brief messages; no indication of retryability, user-fixability, or next steps for LLM.
Tools with side effects (mark_news_as_read, finish_exam_day_mode, set_cookies, interactive_login) lack confirmation or dry-run modes. Agents can accidentally trigger irreversible state changes.
Credentials handling. 'interactive_login' and 'set_cookies' expose auth mechanisms as tools but lack guidance on secure credential injection. Cookies passed as string parameter could leak into logs.
Similar tool names create disambiguation burden. 'get_user_info', 'get_account_info', 'get_user_interests' are not clearly distinguished, LLM must reason about subtle differences.
Brief descriptions under 50 characters. Many tools have 1-2 sentence descriptions that lack context for when to use vs. similar tools (e.g., 'Get count of unread news items' vs. 'Fetch school news and announcements').
No rate limiting or timeout handling documented. Tools making external API calls (news, schedule, calendar) could hang or generate excessive requests without safeguards.
No pagination details in descriptions. Tools with 'limit' and 'offset' parameters lack clarity on default values, max allowed limits, or whether results are sorted/stable.