Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Unofficial read-only Somtoday parent portal: timetable, homework, grades, assignments, messages
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"somtoday": {
"command": "npx",
"args": [
"-y",
"somtoday-mcp"
]
}
}
}Run this in your terminal
claude mcp add somtoday -- npx -y somtoday-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"somtoday": {
"command": "npx",
"args": [
"-y",
"somtoday-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"somtoday": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"somtoday-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account barzoj, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.1) reached the registry 16 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, alalanet — check before you pay
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Check packages, MCP servers and x402 endpoints before agents install or pay. Signed.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Read-only MCP server for the Somtoday parent portal. It lets an AI assistant such as Cursor or Claude Desktop look up your child's timetable, homework, and grades from your own parent account.
It runs locally on your computer over stdio. Nothing is sent anywhere except to Somtoday itself.
Disclaimer. This is an unofficial community project. It is not affiliated with, endorsed by, or supported by Somtoday or Topicus. It works by interoperating with the undocumented internal web API that the official parent portal uses, so it may stop working or behave differently at any time without notice. It is intended for use with your own account, only reads data, and is provided as-is, without warranty of any kind (see LICENSE); use it at your own risk and in line with Somtoday's terms of use. "Somtoday" and "Topicus" are trademarks of their respective owners and are used here only to describe what the software works with.
| Tool | What you get |
|---|---|
whoami | Your school label, the linked children with their numeric ids, and which portal sections are visible to you. |
lessons | The timetable for one day, and whether that day is a school holiday. Each lesson has type (ROOSTERTOETS/EXAMEN = test) and uitgevallen when cancelled; homework and test topics come from homework for the same date. |
homework | What to do and learn on which day: every study-planner item for a date range (default today + 6 days, max 42), grouped by day, with description, learning goals, time estimate, test type, attachments (links), external links, hand-in window/status and the done tick. |
grades | The most recent results (up to 30) and averages per subject. |
assignments | All hand-in assignments with window, status (upcoming, to do, waiting for review, approved), late flag, description, attachments and links. status=open keeps the ones still to do. |
assignment_detail | One assignment as the parent portal shows it: instruction, files, links, hand-in window and status. Submitted files and teacher reactions are only visible in the student's own session. |
study_material | Study material per subject: lesson material from the planner by date, year attachments by folder (file links), external links, and methods/publisher links. No arguments lists the subjects; vak picks one; all=true fetches every subject. |
schedule | Timetable for a date range (default today + 6 days, max 42): time, lesson hour, subject, room, teachers, type (test, exam, parent evening …), lesson notes, changes and cancellations, attachments, holidays. |
grades_latest | Newest results first with subject, column, description, grade, weight, test type, period, date, remarks and resits; limit (default 50, max 1000) and dossier=examen for SE results. |
grades_overview | Full grade overview for a school year: every subject, every result per period, report grades, weights and remarks. schooljaar picks an earlier year. |
subject_grades | Everything for one subject: every result column with weights and remarks, column definitions (also not yet graded), composite-test parts, for the progress and exam dossier. No vak lists the subjects. |
exam_grades | School-exam dossier (PTA/SE): per subject the SE average, every SE result, tests still to come and test-type averages. |
absence | Absence and registrations for the school year or grading period (absent, late, removed, homework/materials not in order) with counts and entries, plus active measures. |
messages | Messages, read-only: newest conversations (subject, sender, date, unread, preview; zoek/ongelezen filters) or one full thread with conversatieId. Never marks anything as read. |
news | School news items (newest first, as text) and the unread count. |
announcements | Somtoday-wide announcements shown in the portal. |
children | Linked children with profile, class, school data (mentors, year, programme), current placement and visible portal sections. |
school_info | School contact data and the school's information pages; paginaId opens one page. |
teachers | Staff you can message, with the subjects they teach your child. |
signing_requests | Digital signing requests (read-only; nothing is signed). Each item has document: {tool: "signing_document", id, available}. |
signing_document | The (signed) PDF of one signing request, as the portal's download button: pass document.id; returns extracted text, max 10 MB. Fetched with your login token, so it is not a fileUrl for download_attachment. |
parent_evening | Parent-evening details (slots, teachers); finds invitations in your messages (read-only; nothing is booked). |
consents | Consents such as use of photos, as set in the portal (read-only). |
download_attachment | Read an attachment by fileUrl: https Somtoday hosts only (extend with SOMTODAY_MCP_ATTACHMENT_HOSTS), max 10 MB, no token sent; text from PDF/text/HTML/CSV/JSON. |
auth_status | Whether a session is stored, where, and how the last token renewal went. Never returns tokens. |
lessons takes an optional date (YYYY-MM-DD, Europe/Amsterdam) and defaults to tomorrow. Range tools take date, or from/to.leerlingId (the numeric id from whoami).assignments with status=open hides past-due items that expect no digital hand-in (inleveringenVerwacht: 0, e.g. handed in on paper) and reports the count in verborgenZonderInlevering; pass includeNoHandIn=true to see them.assignments merges near-duplicates (same subject, topic, hand-in window and status, e.g. one assignment published to two groups) into one item with the other ids in duplicaatToekenningIds; pass dedupe=false to list them separately.Not included: anything that changes data, such as sending messages, reporting absence, booking parent-evening slots, signing requests, or uploading hand-ins.
GET requests. Nothing is written, submitted, or marked as read.Timetables, homework, and grades are personal data about children. Keep the output on your own devices, use only accounts you are entitled to use, and do not share or republish it. Under the GDPR you are responsible for what you do with data you export.
Requires Node.js 22 or newer (the PDF text extraction used by download_attachment and signing_document does not run on Node 20).
Published on npm as somtoday-mcp, with provenance from this repository's release workflow.
npx -y somtoday-mcp # start the MCP server (used by your MCP client)
npx -y somtoday-mcp login # sign in, once, in a terminal
Login opens a normal browser window. When Google Chrome (or else Microsoft Edge) is installed, that browser is used, with a fresh temporary profile that is deleted afterwards; it passes Somtoday's Cloudflare "Verify you are human" check more reliably. Only without C
Only the beginning is shown; read the rest in the repo