Open Archives
Server Details
MCP server for Open Archives: Dutch genealogical records and historical page transcriptions.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- coret/openarchieven-mcp-server
- GitHub Stars
- 4
- Server Listing
- Open Archives MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes, e.g., browse/search/show/view transcriptions are well differentiated. The stats tools (get_event_type_stats vs get_source_type_stats vs get_record_stats) are similar in structure but each targets a unique dimension, and names make the distinction clear.
All tools use snake_case and are descriptive, but they mix verb prefixes: browse, get, match, search, show, view. This is not fully consistent, though each verb aligns with the action. Some names like get_births_years_ago are less patterned than others.
With 22 tools, the set is on the heavier side but justifiably covers diverse features: genealogical records, transcriptions, statistics, weather, census, and archives. It borders on too many, but the scope is broad enough to support them.
The domain of genealogical archives is well covered with search, show, browse, stats, and matching tools. Minor gaps exist (e.g., no explicit user comment tools beyond stats, no direct archive detail endpoint separate from list), but core workflows are supported.
Available Tools
22 toolsbrowse_transcriptionsBrowse TranscriptionsARead-onlyInspect
Browse transcriptions hierarchically
Returns a hierarchical browse of available page transcriptions. Mirrors /transcripties/lijst/. Three modes, depending on the supplied filters: * No filter — top-level list of source archives ordered by total transcription count (descending). * archive_code — list of all archive numbers (archieftoegangen) within that archive, ordered by archive number. * archive_code + archive_number — list of all inventories within that archive number, ordered by inventory number. The order of items is fixed and cannot be overridden. Results are always returned in full (no paging).
Inputs: lang, archive_code, archive_number.
get_archivesList ArchivesARead-onlyInspect
List all archives with statistics
Returns an array of all participating archives including their archive code (used in other API calls), name, homepage URL, Twitter handle, ISIL code and search URL on Open Archives. Note: version 1.1 adds ISIL codes and removes defunct ArchiefWiki links.
Inputs: no named parameters.
get_birthsFind BirthsCRead-onlyInspect
Finds birth records
Inputs: name (required), start, eventyear, eventplace, +2 more.
get_births_years_agoBirths N Years AgoARead-onlyInspect
List births that occurred a specified number of years ago
Returns a list of birth records for people born exactly the specified number of years ago from today. Note: version 1.1 uses archive_code instead of archive and includes the archive name and record URL.
Inputs: years (required), number_show.
get_breakdownBreakdown StatsARead-onlyInspect
Cross-tabulation aggregation grouped by one dimension
Returns record counts filtered by any combination of archive, source type, event type, event place and year range, grouped by ONE chosen dimension (archive, sourcetype, eventtype, place or year). Use this endpoint to answer questions such as "how many Bidprentjes per archive?" or "how many marriages per year in Amsterdam?". The response includes the total filtered record count, the total number of distinct groups (capped at 750) and the top-N groups according to the chosen sort.
Inputs: group_by (required), lang, sort, year_end, +7 more.
get_census_dataCensus Data (1795–1899)ARead-onlyInspect
Dutch census data for a place and year
Retrieves census data for a Dutch place or municipality for the census year nearest to the specified year. Available census years: 1795, 1830, 1840, 1849, 1859, 1869, 1879, 1889, 1899. Data sources: Volkstellingen.nl (DANS) and Gemeentegeschiedenis.nl. Either place or gg_uri must be provided.
Inputs: year (required), place, gg_uri, province, +1 more.
get_comment_statsComment StatsARead-onlyInspect
Comment count statistics
Returns the total number of validated comments made on records. When no archive_code is provided, the global total is returned. When an archive code is provided, the count for that archive is returned. Note: version 1.1 uses archive_code instead of archive.
Inputs: archive_code.
get_deathsFind DeathsCRead-onlyInspect
Finds death records
Inputs: name (required), start, eventyear, eventplace, +1 more.
get_event_type_statsEvent-Type StatsARead-onlyInspect
Record count statistics per event type
Returns statistics about event types. Without an archive_code all event types across the entire dataset are returned with total counts. With an archive_code, only event types for that archive are returned. Note: version 1.1 uses archive_code instead of archive.
Inputs: archive_code.
get_family_name_statsFamily-Name StatsBRead-onlyInspect
Family name frequency statistics
Returns the number of times family names appear in events for the selected source types, place and period. Results are ordered by frequency. Open Archives uses this endpoint to power its family name frequency visualisation.
Inputs: lang, eventtype, eventplace, number_show, +2 more.
get_first_name_statsFirst-Name StatsARead-onlyInspect
First name frequency statistics for a given place and year
Returns the top-X list of first names in the specified place and year. When a person has multiple forenames, only the first is counted. Currently only Amsterdam is available as a place.
Inputs: eventyear (required), eventplace (required), number_show.
get_historical_weatherHistorical WeatherARead-onlyInspect
Historical weather measurements for a date and location
Returns historical weather measurements from the nearest Dutch weather station for the specified date and coordinates. Data sources are the Royal Netherlands Meteorological Institute (KNMI): measurements 1701–1905 and 1901–2014. Note: this endpoint exposes several types of historical datasets, so measurement types and units can vary between records.
Inputs: date (required), latitude (required), longitude (required), lang.
get_marriagesFind MarriagesCRead-onlyInspect
Finds marriage records of couples (bride or groom)
Inputs: name1 (required), name2 (required), start, eventyear, +2 more.
get_profession_statsProfession StatsARead-onlyInspect
Profession frequency statistics
Returns the number of times professions appear in records for the selected period and place. Results are ordered by frequency. Open Archives uses this endpoint to power its profession frequency visualisation.
Inputs: lang, eventplace, number_show, eventyearend, +1 more.
get_record_statsRecord StatsARead-onlyInspect
Record count statistics per archive
Returns record count statistics. When no archive is specified, all archives are listed with their total number of records. When an archive code is specified, the source types available for that archive are returned with their individual record counts. Note: version 1.1 uses archive_code instead of archive.
Inputs: archive_code.
get_source_type_statsSource-Type StatsARead-onlyInspect
Record count statistics per source type
Returns statistics about source types. Without an archive_code all source types across the entire dataset are returned with total record counts. With an archive_code, only source types for that archive are returned. Note: version 1.1 uses archive_code instead of archive.
Inputs: archive_code.
match_recordMatch RecordARead-onlyInspect
Match a person to birth and death records
Searches the genealogical dataset by exact name and birth year and returns the Open Archives URIs of birth records, death records and registrations in which the person is mentioned.
Inputs: name (required), birthyear (required), lang.
search_recordsSearch RecordsBRead-onlyInspect
Search genealogical records
Searches the genealogical dataset and returns found persons and records. Supports filtering by archive, source type, event place, birth place, relation type and country. Results are pageable and sortable. Note: version 1.1 uses archive_code instead of archive.
Inputs: name (required), lang, sort, start, +8 more.
search_transcriptionsSearch TranscriptionsARead-onlyInspect
Full-text search across page transcriptions
Performs a full-text search across the page transcriptions of historical documents indexed by Open Archives. Mirrors the search UI at /transcripties/zoek.php. Results are ordered by Elasticsearch relevance (the order is fixed and cannot be overridden) and are returned paginated. Each match includes a source citation, page identifier and up to five highlighted text fragments. The set of facets returned depends on the supplied filters.
Inputs: q (required), lang, start, year_end, +5 more.
show_recordShow RecordARead-onlyInspect
Show a single genealogical record
Returns one specific genealogical record in JSON format (UTF-8). The response conforms to the Archive 2 All (A2A) model. Also available as XML, GEDCOM, Turtle (TTL) and N-Triples (NT) by changing the file extension in the URL. Note: version 1.1 features improved JSON/XML output and adds N-Triples and Turtle formats.
Inputs: archive (required), identifier (required), lang.
show_transcriptionShow TranscriptionARead-onlyInspect
Retrieve a single transcription
Returns the full transcript of a single page along with its source citation. Mirrors /transcripties/toon/<id>. AI-generated summaries are deliberately not returned by this endpoint.
Inputs: id (required), lang.
view_transcriptionView Transcription (IIIF deep-zoom)ARead-onlyInspect
Open one or more transcribed document pages in an interactive deep-zoom viewer with the transcription text alongside. Pass page identifiers returned by search_transcriptions / browse_transcriptions (form , e.g. NL-SdmGA_1504889_11). Optionally highlight a term in the transcript. Hosts without MCP Apps support receive a text summary plus inline preview images.
Inputs: ids (required), highlight_term.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
MCP server for Gramps genealogy via the Gramps Web API: CRUD, search, merge, timelines, DNA.
Netherlands Open Data (data.overheid.nl/data) CKAN MCP.
KVK Handelsregister AI Connect: hosted MCP server for the Dutch business register.
MCP server for US nursing facility search and ownership lookup (NursingHomeDatabase).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server to interact with Cleyrop work data: browse, search, read file content, and manage files/folders.-
- AlicenseAqualityDmaintenanceMCP server for searching and retrieving full-text pages from the Library of Congress, including newspapers, books, and manuscripts, via the loc.gov API.3Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for the Internet Archive's Wayback Machine. Search archived snapshots, extract page text from a specific date, track how a site has changed over time, check if broken links are recoverable, and perform research across Internet Archive collections.621 PyPI3MIT
- AlicenseBqualityDmaintenanceAn unofficial MCP server providing access to Dutch government open data from data.overheid.nl, CBS statistics, and KVK business registry. Enables natural language queries for discovering datasets, inspecting metadata, and querying data without API keys or authentication.14MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.