Open Archives
REMOTE · MCP.OPENARCHIEVEN.NL · SCANNED AUG 3
MCP server for Open Archives: Dutch genealogical records and historical page transcriptions.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (fair).Partial
- Tool/resource definitions use about 2287 tokens (~99/item across 23 items; 22 tools + 1 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 2% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.openarchieven.nl
claude mcp add --transport http coret-openarchieven-mcp-server https://mcp.openarchieven.nl/
[mcp_servers.coret-openarchieven-mcp-server] url = "https://mcp.openarchieven.nl/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"coret-openarchieven-mcp-server": {
"type": "remote",
"url": "https://mcp.openarchieven.nl/",
"enabled": true
}
}
} openclaw mcp add coret-openarchieven-mcp-server --url https://mcp.openarchieven.nl/ --transport streamable-http
mcp_servers:
coret-openarchieven-mcp-server:
url: "https://mcp.openarchieven.nl/" {
"mcpServers": {
"coret-openarchieven-mcp-server": {
"type": "http",
"url": "https://mcp.openarchieven.nl/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 2 Aug 26 +2
- DNSSEC: unverified → pass ▲ security
- 1 Aug 26 −1
- DNSSEC: pass → unverified ▼ security
- Stability: unverified → 0.03 ▲ functional
- 31 Jul 26 70
First indexed and scored.
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 3 Aug 2026 · Probed https://mcp.openarchieven.nl/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.openarchieven.nl | CN=YR1,O=Let's Encrypt,C=US | 29 Jun 2026 | 27 Sept 2026 | RSA 2048 | SHA256-RSA | 5108eddaea913a08430cc2d23e9001f6b54 |
| SANs: mcp.openarchieven.nl | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
DNSSEC secure
Validation of mcp.openarchieven.nl. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| nl. | present | 17153 | 13 | Verified |
| openarchieven.nl. | present | 54943 | 13 | Verified |
| mcp.openarchieven.nl. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.openarchieven.nl/ | Verified | 200 | |
| http (plaintext) | http://mcp.openarchieven.nl/ | HTTPS enforced | 308 | https://mcp.openarchieven.nl/ |
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.
browse_transcriptions Browse Transcriptions ~158
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).
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
| archive_number | string | — | — |
| lang | string | — | — |
No output schema declared.
No examples provided.
get_archives List Archives ~71
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_births Find Births ~59
Finds birth records
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | — | — |
| eventprovince | string | — | — |
| eventyear | integer | — | — |
| name | string | yes | — |
| number_show | integer | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_births_years_ago Births N Years Ago ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| number_show | integer | — | — |
| years | integer | yes | — |
No output schema declared.
No examples provided.
get_breakdown Breakdown Stats ~206
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
| eventplace | string | — | — |
| eventtype | number | — | — |
| group_by | string | yes | — |
| lang | string | — | — |
| min_count | integer | — | — |
| number_show | integer | — | — |
| sort | string | — | — |
| sourcetype | string | — | — |
| year_end | integer | — | — |
| year_start | integer | — | — |
No output schema declared.
No examples provided.
get_census_data Census Data (1795–1899) ~146
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.
| Name | Type | Req | Description |
|---|---|---|---|
| gg_uri | string | — | — |
| place | string | — | — |
| province | string | — | — |
| richness | number | — | — |
| year | integer | yes | — |
No output schema declared.
No examples provided.
get_comment_stats Comment Stats ~77
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
No output schema declared.
No examples provided.
get_deaths Find Deaths ~51
Finds death records
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | — | — |
| eventyear | integer | — | — |
| name | string | yes | — |
| number_show | integer | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_event_type_stats Event-Type Stats ~79
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
No output schema declared.
No examples provided.
get_family_name_stats Family-Name Stats ~104
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.
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | — | — |
| eventtype | number | — | — |
| eventyearend | integer | — | — |
| eventyearstart | integer | — | — |
| lang | string | — | — |
| number_show | integer | — | — |
No output schema declared.
No examples provided.
get_first_name_stats First-Name Stats ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | yes | — |
| eventyear | integer | yes | — |
| number_show | integer | — | — |
No output schema declared.
No examples provided.
get_historical_weather Historical Weather ~113
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.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | — |
| lang | string | — | — |
| latitude | number | yes | — |
| longitude | number | yes | — |
No output schema declared.
No examples provided.
get_marriages Find Marriages ~67
Finds marriage records of couples (bride or groom)
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | — | — |
| eventyear | integer | — | — |
| name1 | string | yes | — |
| name2 | string | yes | — |
| number_show | integer | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_profession_stats Profession Stats ~90
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.
| Name | Type | Req | Description |
|---|---|---|---|
| eventplace | string | — | — |
| eventyearend | integer | — | — |
| eventyearstart | integer | — | — |
| lang | string | — | — |
| number_show | integer | — | — |
No output schema declared.
No examples provided.
get_record_stats Record Stats ~84
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
No output schema declared.
No examples provided.
get_source_type_stats Source-Type Stats ~80
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
No output schema declared.
No examples provided.
match_record Match Record ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| birthyear | integer | yes | — |
| lang | string | — | — |
| name | string | yes | — |
No output schema declared.
No examples provided.
search_records Search Records ~160
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
| birthplace | string | — | — |
| country_code | string | — | — |
| eventplace | string | — | — |
| lang | string | — | — |
| name | string | yes | — |
| not_archive | number | — | — |
| number_show | integer | — | — |
| relationtype | string | — | — |
| sort | number | — | — |
| sourcetype | string | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
search_transcriptions Search Transcriptions ~168
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archive_code | string | — | — |
| archive_number | string | — | — |
| inventory_number | string | — | — |
| lang | string | — | — |
| number_show | integer | — | — |
| q | string | yes | — |
| start | integer | — | — |
| year_end | integer | — | — |
| year_start | integer | — | — |
No output schema declared.
No examples provided.
show_record Show Record ~117
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archive | string | yes | — |
| identifier | string | yes | — |
| lang | string | — | — |
No output schema declared.
No examples provided.
show_transcription Show Transcription ~64
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
| lang | string | — | — |
No output schema declared.
No examples provided.
view_transcription View Transcription (IIIF deep-zoom) ~134
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 <ISIL>_<archive>_<page>, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| highlight_term | string | — | Optional term to highlight in the transcription text. |
| ids | array | yes | Transcription page identifiers, e.g. ["NL-SdmGA_1504889_11"]. |
No output schema declared.
No examples provided.