peterdewit/mcp-openarchieven
If you are the rightful owner of mcp-openarchieven and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
MCP server for the public JSON API of Open Archives (OpenArchieven.nl), designed to facilitate genealogical research through LLM-friendly tools.
MCP OpenArchieven
MCP server for the public JSON API of Open Archives (OpenArchieven.nl).
This server exposes the OpenArchieven API as Model Context Protocol (MCP) tools so LLM agents (OpenWebUI, MetaMCP, etc.) can:
- Search people and events across linked archives
- Perform exact match lookups (name + birth year)
- Fetch detailed A2A record data
- Retrieve “born N years ago” lists
- Fetch historic census data for Dutch places
- List user comments attached to records
The server is designed to be:
- LLM-friendly – every tool returns both
rawAPI JSON andnormalizeddata - Genealogy-focused – tools and normalization are tailored to genealogical workflows
- Simple to run – one Python file, one Dockerfile, HTTP Streamable MCP
Features
- JSON-only usage of OpenArchieven API (versions 1.0 and 1.1)
- Clean FastMCP integration with
streamable_http_app() - Robust error handling and parameter validation
- Lightweight dependencies:
mcp,requests,uvicorn - Ready to plug into MetaMCP / OpenWebUI
See:
- for API details
- for raw vs normalized formats
- for design and reasoning
Quick Start (Bare Python)
git clone https://github.com/yourname/mcp-openarchieven.git
cd mcp-openarchieven
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn openarchieven_server:app --host 0.0.0.0 --port 8010
The MCP HTTP endpoint will be available at:
http://localhost:8010/mcp
Quick Start (Docker)
Build:
docker build -t mcp-openarchieven .
Run:
docker run -d --name mcp-openarchieven -p 8010:8010 mcp-openarchieven
MCP / MetaMCP Integration
Configure this server as a Streamable HTTP MCP endpoint.
Example MetaMCP source entry:
{
"type": "server",
"id": "openarchieven",
"name": "Open Archieven API",
"endpoint": {
"type": "streamable-http",
"url": "http://mcp-openarchieven:8010/mcp"
}
}
For OpenWebUI + MetaMCP:
- Type:
Streamable HTTP - URL:
http://mcp-openarchieven:8010/mcp
Tools Exposed
All tools return:
status:"ok"or"error"- On success:
raw: original API JSONnormalized: simplified, LLM-oriented structure
Tools:
search_people– search people/events across archivessearch_people_all– same, but fetch all pagesmatch_person– exact match by name + birth yearget_record_details– detailed A2A record (persons, event, source)get_births_years_ago– list of people born N years agoget_census_data– census data for place/municipalitylist_comments– user comments on records
Details for each tool are documented in docs/ENDPOINTS.md and docs/NORMALIZATION.md.
Typical Genealogy Workflow
- Start with
search_peopleusing a name (and possibly place/year filters). - Inspect
normalized.peopleto select promising candidates. - For a chosen record, call
get_record_detailswitharchiveandidentifier. - Compare persons and events with your genealogy memory.
- Optionally call
get_census_datato give historical context for a place and year. - Use
list_commentsto see whether other researchers added useful notes.
License
MIT License. See .