Skip to main content
Glama

Messages

messages
Read-onlyIdempotent

Read Somtoday personal school conversations without marking them read: list newest threads, filter by search or unread, and fetch full thread details with attachments.

Instructions

Somtoday messages (berichten), read-only: newest conversations with subject, sender, date, unread flag and a preview; filter with zoek or ongelezen. Pass conversatieId for the full thread (text, sender, recipients, attachments). Never marks anything as read. Use this for personal messages from teachers and the school; school-wide news is in news, Somtoday-wide notices in announcements.

Input Schema

NameRequiredDescriptionDefault
zoekNoSearch in subject, sender and preview.
limitNoDefault 25.
ongelezenNoOnly unread conversations.
conversatieIdNoConversation id from a previous messages call; returns that full thread.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, but the description adds a genuinely useful guarantee not in annotations: 'Never marks anything as read', which is the key worry for a read of unread messages. It also states ordering ('newest conversations') and what the thread view contains. It stops short of pagination or auth behavior, so not a 5.

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?

Dense but front-loaded: the read-only purpose and returned fields come first, then filters, then thread mode, then sibling routing. Every clause carries information, though the final sentence is long enough that parallel structure would aid scanning.

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?

No output schema exists, and the description compensates by listing both the list-view fields and the thread-view contents (text, sender, recipients, attachments). With zero required parameters and all filters explained, an agent has everything needed to call it 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 baseline is 3; the description still adds meaning by clarifying that zoek/ongelezen are filters over the listing and that conversatieId comes 'from a previous messages call' and switches to full-thread mode, which is a workflow detail the schema alone doesn't convey.

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?

States the specific verb and resource ('Somtoday messages (berichten), read-only') and enumerates the returned fields (subject, sender, date, unread flag, preview), plus the thread-expansion mode. It explicitly differentiates from siblings news and announcements, so an agent can pick it without opening the schema.

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?

Gives explicit routing: use this for personal messages from teachers/school, school-wide news goes to news, Somtoday-wide notices to announcements. It also tells the agent how to escalate from list to thread ('Pass conversatieId for the full thread') and how to filter (zoek, ongelezen).

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