protogrid

Search / io.github.coret/openarchieven-mcp-server

Open Archives

R0· no sign-in

MCP server for Open Archives: Dutch genealogical records and historical page transcriptions.

v1.1.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust94of 100
Uptime, 30 days100%
Latency p50354 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "openarchieven-mcp-server": {
      "type": "http",
      "url": "https://mcp.openarchieven.nl/"
    }
  }
}
claude mcp add --transport http openarchieven-mcp-server https://mcp.openarchieven.nl/
[mcp_servers.openarchieven-mcp-server]
url = "https://mcp.openarchieven.nl/"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "openarchieven-mcp-server": {
      "type": "remote",
      "url": "https://mcp.openarchieven.nl/",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "openarchieven-mcp-server": {
      "type": "http",
      "url": "https://mcp.openarchieven.nl/"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=openarchieven-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm9wZW5hcmNoaWV2ZW4ubmwvIn0%3D"
}
{
  "servers": {
    "openarchieven-mcp-server": {
      "type": "http",
      "url": "https://mcp.openarchieven.nl/"
    }
  }
}
{
  "mcpServers": {
    "openarchieven-mcp-server": {
      "httpUrl": "https://mcp.openarchieven.nl/"
    }
  }
}
extensions:
  "openarchieven-mcp-server":
    enabled: true
    name: "openarchieven-mcp-server"
    type: streamable_http
    uri: "https://mcp.openarchieven.nl/"
    timeout: 300

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • warn
    tools.descriptions2 of 22 tools have a description under 20 characters
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations22 of 22 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: match_record (idempotentHint); show_record (idempotentHint); get_births_years_ago (idempotentHint); …
  • pass
    tools.token_costabout 3,898 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

22 tools, about 3,898 tokens to load them all · tool set 6f3c34355d56 · checked 2026-10-20 14:54 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance90
liveness100
freshness85
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-81d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.openarchieven.nl/ streamable-httpnoneyes100%354 ms2025-11-252026-10-20

Tools (22)

browse_transcriptionsread-onlyBrowse 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).
get_archivesread-onlyList 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.
get_birthsread-onlyFinds birth records
get_births_years_agoread-onlyList 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.
get_breakdownread-onlyCross-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.
get_census_dataread-onlyDutch 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.
get_comment_statsread-onlyComment 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`.
get_deathsread-onlyFinds death records
get_event_type_statsread-onlyRecord 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`.
get_family_name_statsread-onlyFamily 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.
get_first_name_statsread-onlyFirst 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.
get_historical_weatherread-onlyHistorical 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.
get_marriagesread-onlyFinds marriage records of couples (bride or groom)
get_profession_statsread-onlyProfession 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.
get_record_statsread-onlyRecord 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`.
get_source_type_statsread-onlyRecord 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`.
match_recordread-onlyMatch 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.
search_recordsread-onlySearch 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`.
search_transcriptionsread-onlyFull-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.
show_recordread-onlyShow 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.
show_transcriptionread-onlyRetrieve 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.
view_transcriptionread-onlyOpen 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.coret/openarchieven-mcp-server",
  "title": "Open Archives",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.openarchieven.nl/",
      "type": "streamable-http"
    }
  ],
  "version": "1.1.1",
  "repository": {
    "url": "https://github.com/coret/openarchieven-mcp-server",
    "source": "github"
  },
  "websiteUrl": "https://www.openarchieven.nl",
  "description": "MCP server for Open Archives: Dutch genealogical records and historical page transcriptions."
}