Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Somtoday (unofficial)

NPM · SOMTODAY-MCP

Unofficial read-only Somtoday parent portal: timetable, homework, grades, assignments, messages

Available components

0 this week 81 Trust /100

Last scanned (17 hours ago)

Scores higher than 69% of npm servers

Category Education and Research

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to barzoj/somtoday-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 9 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2623 tokens (~104/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 25 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 23 Oct 26 66

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/somtoday-mcp@0.3.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo barzoj/somtoday-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/barzoj/somtoday-mcp/.github/workflows/release-please.yml@refs/heads/main
Rekor log index 3415391360
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:131d3253ef52af5c80fbd89338de4cdaeb992157f18d6b22c276a47ec1a57594db69e0bbb9bb3460947f2c12c1eddd945237528197b54bb8e818e4c7c

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 25 exposed · ~2,623 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
absence ~89

Registrations for the school year (or current grading period): unexcused and excused absence, late, removed from class, homework not done, materials missing — counts and every entry with date, lesson and remark — plus active measures (e.g. detention).

NameTypeReqDescription
leerlingId––Numeric leerling id. Required when more than one child is linked.
periodestring–Default SCHOOLJAAR.

No output schema declared.

No examples provided.

announcements ~47

Somtoday-wide announcements (landelijke mededelingen) from the platform itself, such as maintenance notices, with their publication window. Not school news (use news) or personal messages (use messages).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

assignment_detail ~102

One hand-in assignment as the parent portal shows it: instruction text, learning goals, files (fileUrl) and links, hand-in window, status, late flag and group. Submitted files and teacher reactions are only visible to the student in Somtoday, so they are not returned.

NameTypeReqDescription
leerlingId––Numeric leerling id. Required when more than one child is linked.
toekenningId–yestoekenningId from assignments (number or digit string).

No output schema declared.

No examples provided.

assignments ~304

All hand-in assignments with their window, status (AANKOMEND, IN_TE_LEVEREN, IN_AFWACHTING, AKKOORD), teLaat (always a boolean: true only for an open hand-in past its deadline), description, attachments and links. status=open keeps upcoming and to-do ones, and by default hides past-due items where no digital hand-in is expected (inleveringenVerwacht 0, e.g. on paper; count in verborgenZonderInlevering); includeNoHandIn=true keeps them. Near-duplicates (same subject, topic, window and status, e.g. published to two groups) are merged by default, with the other ids in duplicaatToekenningIds; dedupe=false lists them separately. Use toekenningId with assignment_detail. Every item lists bijlagen (fileUrl, readable with download_attachment) and externeMaterialen; empty means the teacher attached nothing (lesmateriaal=true is only a flag, there is no separate material call).

NameTypeReqDescription
dedupeboolean–Merge near-duplicate assignments (same subject, topic, window, status). Default true.
includeNoHandInboolean–With status=open: also show past-due items without a digital hand-in (inleveringenVerwacht 0). Default false.
leerlingId––Numeric leerling id. Required when more than one child is linked.
statusstring–Default all.

No output schema declared.

No examples provided.

auth_status ~67

Whether a Somtoday session is stored, where (keychain or file), and the outcome of the last token renewal. Never returns tokens. Set check=true to renew the token and call the API once.

NameTypeReqDescription
checkboolean–Renew the access token and call GET /account/me once.

No output schema declared.

No examples provided.

children ~54

Linked children with profile (name, student number, class), school data (school, location, mentor(s), year, programme), current placement, and which portal sections the school shows. Use whoami when you only need leerling ids.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

consents ~50

Consents (toestemmingen) as set in the portal: each consent item (e.g. use of photos) with the answer recorded in the portal. Read-only; answers cannot be changed here.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

download_attachment ~73

Read an attachment (fileUrl from homework, assignments, study material or messages). Only https Somtoday file hosts; max 10 MB; returns extracted text for PDF/text/HTML/CSV/JSON, metadata otherwise.

NameTypeReqDescription
urlstringyesfileUrl of an attachment from homework, assignments, study_material or messages.

No output schema declared.

No examples provided.

exam_grades ~111

School-exam dossier (PTA/SE) overview: per subject the SE average, every SE result, tests still to come, and test-type averages. Says so when the child has no exam dossier yet. Use this for exam-year progress and upcoming SE tests; use grades_latest with dossier=examen for only the newest SE results.

NameTypeReqDescription
examenjaarinteger–Exam year; defaults to the latest.
leerlingId––Numeric leerling id. Required when more than one child is linked.

No output schema declared.

No examples provided.

grades ~89

Quick grade summary: the newest progress-dossier results (capped at 30) plus the average per subject. Use grades_latest for more or exam (SE) results, grades_overview for a whole school year, subject_grades for one subject in depth, and exam_grades for the PTA/SE dossier.

NameTypeReqDescription
leerlingId––Numeric leerling id. Required when more than one child is linked.

No output schema declared.

No examples provided.

grades_latest ~154

Newest results first, with subject, column, description, grade, weight, test type, period, date, remarks and resit info. limit defaults to 50 (max 1000, paged). dossier=examen gives school-exam (SE) results. Also the next publication moment when the school uses one. Use this for "what grades came in recently"; use grades for a short summary with averages, subject_grades for all columns of one subject.

NameTypeReqDescription
dossierstring–Default voortgang.
leerlingId––Numeric leerling id. Required when more than one child is linked.
limitinteger–Number of newest results to return. Default 50, max 1000.

No output schema declared.

No examples provided.

grades_overview ~124

The full grade overview (cijferoverzicht) for a school year: every subject with every result per period, report grades, weights and remarks. Defaults to the current placement; schooljaar like 2025/2026 picks another year. Use this for a whole-year report view or earlier years; use subject_grades for one subject, grades_latest for recent results.

NameTypeReqDescription
leerlingId––Numeric leerling id. Required when more than one child is linked.
schooljaarstring–School year name, e.g. "2025/2026".

No output schema declared.

No examples provided.

homework ~195

What to do and learn on which day: every studiewijzer item (lesson, day and week items) for a date range, grouped by day, with description, learning goals, time estimate, test type, teacher note, attachments (file links), external links, hand-in window and status, and the done tick. Also lists hand-in deadlines per day. Defaults to today plus 6 days; at most 42 days. Every item lists bijlagen (fileUrl, readable with download_attachment) and externeMaterialen; empty means the teacher attached nothing (lesmateriaal=true is only a flag, there is no separate material call).

NameTypeReqDescription
datestring–One Amsterdam calendar date.
fromstring–First date of the range. Defaults to today.
leerlingId––Numeric leerling id. Required when more than one child is linked.
tostring–Last date of the range (inclusive).

No output schema declared.

No examples provided.

lessons ~100

Timetable for one Amsterdam date, plus whether that date is a holiday. Each lesson has type (ROOSTERTOETS or EXAMEN marks a test in the timetable) and uitgevallen=true when cancelled. Homework and the test topic per lesson are not here: call homework for the same date.

NameTypeReqDescription
datestring–Amsterdam calendar date. Defaults to tomorrow.
leerlingId––Numeric leerling id. Required when more than one child is linked.

No output schema declared.

No examples provided.

messages ~143

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.

NameTypeReqDescription
conversatieId––Conversation id from a previous messages call; returns that full thread.
limitinteger–Default 25.
ongelezenboolean–Only unread conversations.
zoekstring–Search in subject, sender and preview.

No output schema declared.

No examples provided.

news ~59

News items the school publishes to all parents (nieuwsberichten), newest first, as text, plus the unread count. Use messages for personal conversations and announcements for Somtoday-wide notices from the platform itself.

NameTypeReqDescription
limitinteger–Default 25.

No output schema declared.

No examples provided.

parent_evening ~69

Parent-evening (ouderavond) details: invitation, time slots and chosen teachers. Without id, finds invitations linked in your messages. Read-only; nothing is booked.

NameTypeReqDescription
idstring|number–Parent-evening id from a previous call or invitation; omit to find invitations in messages.

No output schema declared.

No examples provided.

schedule ~180

Timetable for a date range, per day: lessons, tests and other appointments with time, lesson hour, subject, room, teachers, type (e.g. ROOSTERTOETS, EXAMEN, OUDERAVOND), lesson notes, changes and cancellations (wijziging, uitgevallen=true, meldingen with real warnings only; the routine 'Inschrijving in orde.' notice is dropped), attachments, and holidays. Every day has items (empty array on a free day). Defaults to today plus 6 days; at most 42 days.

NameTypeReqDescription
datestring–One Amsterdam calendar date.
fromstring–First date of the range. Defaults to today.
leerlingId––Numeric leerling id. Required when more than one child is linked.
tostring–Last date of the range (inclusive).

No output schema declared.

No examples provided.

school_info ~60

School contact data per child and the school's published information pages. Pass paginaId for one page with its topics and documents. Use teachers for staff and children for mentors.

NameTypeReqDescription
paginaId––Information page id from the page list of a previous school_info call.

No output schema declared.

No examples provided.

signing_document ~94

Read the document (PDF) of one signing request, as the portal's download button does: pass document.id from signing_requests. Returns extracted text (max 10 MB). The document needs your login, so it is not a fileUrl for download_attachment. Usually available once signed; not for requests still to sign, withdrawn or expired.

NameTypeReqDescription
idstring|numberyesSigning request id (document.id from signing_requests).

No output schema declared.

No examples provided.

signing_requests ~59

Digital signing requests (ondertekenverzoeken) waiting for you or done. Each item has document {tool:'signing_document', id, available}: pass id to signing_document to read the (signed) PDF. Read-only; nothing is signed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

study_material ~165

Studiemateriaal per subject: lesson material from the study planner (by date), year attachments by folder (file links), external links, and methods/publisher links (book fund). Without arguments: the subjects that have material, plus personal learning products when the school allows it. vak = name, abbreviation or uuid; all=true fetches every subject. Every item lists bijlagen (fileUrl, readable with download_attachment) and externeMaterialen; empty means the teacher attached nothing (lesmateriaal=true is only a flag, there is no separate material call).

NameTypeReqDescription
allboolean–Fetch material for every subject.
leerlingId––Numeric leerling id. Required when more than one child is linked.
vakstring|number–Subject name, abbreviation or uuid.

No output schema declared.

No examples provided.

subject_grades ~147

Everything for one subject: every result column (tests, assignments, period and report averages, SE averages) with weights and remarks, column definitions (also not-yet-graded ones), and the parts of composite tests. Both progress and exam dossier unless dossier is set. Without vak: the list of subjects. Use this to drill into one subject; use grades_overview for all subjects at once.

NameTypeReqDescription
dossierstring–voortgang = progress dossier, examen = school-exam (SE) dossier. Default both.
leerlingId––Numeric leerling id. Required when more than one child is linked.
vakstring|number–Subject name, abbreviation or uuid.

No output schema declared.

No examples provided.

teachers ~42

Teachers and other staff you can message in Somtoday, with the subjects they teach your child. Use children for the mentor(s) and school_info for general school contact data.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

whoami ~46

Start here: the school label, the numeric leerling ids to pass as leerlingId to other tools, and which parent-portal sections are visible. Use children for full profiles. No tokens.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the Somtoday (unofficial) MCP server?

Somtoday (unofficial) runs locally as an npm package, launched with npx -y somtoday-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · somtoday-mcp

# add to Claude Code
claude mcp add barzoj-somtoday-mcp -- npx -y somtoday-mcp
Common questions

What is the Somtoday (unofficial) MCP server?

Somtoday (unofficial) is an MCP server listed in the public MCP registry as io.github.barzoj/somtoday-mcp. Unofficial read-only Somtoday parent portal: timetable, homework, grades, assignments, messages. This page covers its npm package (somtoday-mcp).

Is the Somtoday (unofficial) MCP server safe to use?

Somtoday (unofficial) scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Somtoday (unofficial) MCP server expose?

Somtoday (unofficial) exposes 25 tools: whoami, lessons, schedule, homework, assignments, and 20 more. Their descriptions and schemas cost roughly 2,623 tokens of context every time the server is loaded.

Is the Somtoday (unofficial) MCP server still maintained?

Somtoday (unofficial) is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Somtoday (unofficial) MCP server under?

Somtoday (unofficial) declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.