MCP Server

The Dutch Directory

io.github.steffanricardo/the-dutch-directory
Education Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Indexes Dutch education providers, tutors, schools, exams, and learning resources and creates study, relocation, and exam plans.

tdd_abroad
Learn Dutch abroad
Dutch courses, university Dutch departments, CNaVT exam centres and Dutch schools for children near a capital city (within 40 km), with the nearest option when nothing is local. Also says where the basic civic integration exam abroad (inburgering, level A1) is taken for a country: the Dutch embassy or consulate, or the country to go to when it is not held there (capital.civic_exam). Pass a capital (e.g. Tokyo) or an ISO country code (e.g. JP). With no arguments, lists the capitals that have a local option. Use it when someone lives outside the Netherlands and Belgium or asks about Dutch classes, the CNaVT exam, the civic integration exam abroad or a Dutch school in another country.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'capital': {'type': 'string', 'maxLength': 80, 'minLength': 2}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2}}, 'additionalProperties': False}
tdd_city_gaps
City coverage gaps
Which provider types a Dutch or Flemish city lacks in the index, for example no university course. Use it to explain when to look online or in a nearby city.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['city'], 'properties': {'city': {'type': 'string', 'maxLength': 80, 'minLength': 2}}, 'additionalProperties': False}
tdd_compare
Compare two options
Side-by-side comparison of two schools, apps or tutors by slug, with a plain-language verdict. Use it after a search or shortlist when someone is choosing between two.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'b': {'type': 'string', 'maxLength': 120, 'minLength': 1}}, 'additionalProperties': False}
tdd_conflict_ledger
Dutch Fluency disclosure policy
The public policy for when Dutch Fluency products appear in results and how independent alternatives are guaranteed. Use it when someone asks whether the directory is independent.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
tdd_death_watch
Listing data health
Data-quality signals in the index: stub names and missing prices or lesson counts. Scrape health, not claims about providers. Use it only for maintenance or data questions.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
tdd_employer_budget
Estimate an employer training budget
Planning ranges (not a quote) for Dutch training for a team, from headcount, months, track and cities. Use it for HR or employer questions about cost.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['headcount'], 'properties': {'track': {'enum': ['survival', 'workplace', 'exam'], 'type': 'string'}, 'cities': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20}, 'months': {'type': 'integer', 'maximum': 36, 'minimum': 1}, 'headcount': {'type': 'integer', 'maximum': 5000, 'minimum': 1}}, 'additionalProperties': False}
tdd_evidence_pack
Study plan evidence pack
A shareable, independent study plan (name, city, goal, weeks) that a learner can show an employer or attach to paperwork. Not legal advice.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'goal': {'type': 'string', 'maxLength': 80}, 'name': {'type': 'string', 'maxLength': 120}, 'weeks': {'type': 'integer', 'maximum': 104, 'minimum': 1}}, 'additionalProperties': False}
tdd_graph
Learning graph snapshot
Snapshot of the Dutch Learning Graph: providers, exams and goals and how they connect. slim=true returns counts and types only. Use it for data or research tasks, not for recommendations.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'slim': {'type': 'boolean'}}, 'additionalProperties': False}
tdd_meta
Directory overview
What The Dutch Directory covers: listing counts by type, the Verified Pro count, doctrine and endpoint URLs. Call it when you need to know the scope of the directory before searching.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
tdd_move_plan
Plan back from a deadline
Works backward from an arrival, inburgering or exam date to what to start when: courses, exam booking and tutor hours. Use it when someone has a fixed date.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['arrive_or_exam_date'], 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'goal': {'type': 'string', 'maxLength': 80}, 'arrive_or_exam_date': {'type': 'string', 'maxLength': 32, 'minLength': 8}}, 'additionalProperties': False}
tdd_path
Build a study path
A week-by-week study path that points to real courses, tutors, apps and trials for a city, goal, current level, weekly hours and deadline. Use it when someone asks how to get from one level to another or how to prepare for an exam. Not a progress tracker; practice links to Dutch Fluency always come with alternatives.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'goal': {'type': 'string', 'maxLength': 80}, 'level': {'type': 'string', 'maxLength': 8}, 'hours_per_week': {'type': 'number', 'maximum': 40, 'minimum': 1}, 'move_or_exam_date': {'type': 'string', 'maxLength': 32}}, 'additionalProperties': False}
tdd_search
Search schools, apps, exams and tutors
Search every way to learn Dutch: schools, universities, apps, podcasts, exams and online tutors. Use it when someone asks where or how to learn Dutch. Filters: city (Dutch or Flemish, e.g. Utrecht, Den Haag, Antwerpen), type, goal (e.g. inburgering, NT2, business, conversation), cefr, online, verified_pro, platform, kind. Each result has directory_url and primary_url to cite.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'maxLength': 200}, 'cefr': {'type': 'string', 'maxLength': 4}, 'city': {'type': 'string', 'maxLength': 80}, 'goal': {'type': 'string', 'maxLength': 80}, 'kind': {'enum': ['all', 'provider', 'tutor'], 'type': 'string'}, 'type': {'type': 'string', 'maxLength': 40}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'online': {'type': 'boolean'}, 'platform': {'enum': ['italki', 'preply', 'verbling', 'languatalk', 'verbalplanet', 'classgap', 'superprof'], 'type': 'string'}, 'verified_pro': {'type': 'boolean'}}, 'additionalProperties': False}
tdd_shortlist
Recommend a shortlist
A short list of the best-fit options for a city and goal, ranked by editorial fit score (not paid). Use it when someone wants a few recommendations rather than every option. A Dutch Fluency item always comes with independent alternatives.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'maxLength': 80}, 'goal': {'type': 'string', 'maxLength': 80}, 'kind': {'enum': ['all', 'provider', 'tutor'], 'type': 'string'}, 'type': {'type': 'string', 'maxLength': 40}, 'limit': {'type': 'integer', 'maximum': 12, 'minimum': 3}, 'verified_pro': {'type': 'boolean'}}, 'additionalProperties': False}
tdd_stats
Market statistics
Live market numbers: listing counts by type, Verified Pro rates and median tutor prices. Use it for questions about the Dutch-learning market as a whole.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
tdd_tutors
Find online Dutch tutors
Online Dutch tutors from italki, Preply, Verbling, LanguaTalk, Verbalplanet, Classgap and Superprof, Verified Pros (3,000+ lessons and a 4.9+ rating) first. Use it for private lessons, conversation practice or a tutor on a schedule; filter by platform or free text.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'maxLength': 200}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'maximum': 500, 'minimum': 0}, 'platform': {'enum': ['italki', 'preply', 'verbling', 'languatalk', 'verbalplanet', 'classgap', 'superprof'], 'type': 'string'}, 'verified_pro': {'type': 'boolean'}}, 'additionalProperties': False}
Added
tdd_abroad
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_evidence_pack
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_conflict_ledger
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_death_watch
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_city_gaps
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_employer_budget
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_move_plan
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_graph
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_stats
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_path
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_compare
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_tutors
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_shortlist
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_search
Oct. 1, 2026, 2:50 a.m.
Changed
tdd_meta
Oct. 1, 2026, 2:50 a.m.
Added
tdd_evidence_pack
Sept. 17, 2026, 12:52 p.m.
Added
tdd_conflict_ledger
Sept. 17, 2026, 12:52 p.m.
Added
tdd_death_watch
Sept. 17, 2026, 12:52 p.m.
Added
tdd_city_gaps
Sept. 17, 2026, 12:52 p.m.
Added
tdd_employer_budget
Sept. 17, 2026, 12:52 p.m.
Added
tdd_move_plan
Sept. 17, 2026, 12:52 p.m.
Added
tdd_graph
Sept. 17, 2026, 12:52 p.m.
Added
tdd_stats
Sept. 17, 2026, 12:52 p.m.
Added
tdd_path
Sept. 17, 2026, 12:52 p.m.
Added
tdd_compare
Sept. 17, 2026, 12:52 p.m.
Added
tdd_tutors
Sept. 17, 2026, 12:52 p.m.
Added
tdd_shortlist
Sept. 17, 2026, 12:52 p.m.
Added
tdd_search
Sept. 17, 2026, 12:52 p.m.
Added
tdd_meta
Sept. 17, 2026, 12:52 p.m.