logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ww2-dutch-archives-gateway

Integration module for querying the Oorlogsbronnen historical repository, providing programmatic access to digitized records, visual media, and primary source documents pertaining to the Netherlands during the Second World War (1940-1945).

Author

MCP Server

r-huijts

MIT License

Quick Info

GitHub GitHub Stars 11
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

museumartsearchmuseum databasesart collectionsheritage museum

WWII Dutch Archives Gateway MCP Endpoint

This Model Context Protocol (MCP) service establishes an intelligent interface for interacting with the extensive Oorlogsbronnen (War Sources) digital collection. It empowers AI agents to conduct detailed, natural-language-based investigations into Dutch historical materials from the 1940-1945 conflict period.

Illustrative AI Interaction Scenarios

Users can prompt their AI assistants with inquiries such as these to navigate Dutch WWII history:

  • **"Detail the events surrounding the Rotterdam aerial bombardment in May 1940."
  • **"Summarize documented facts regarding Anne Frank's clandestine existence based on official records."
  • **"Retrieve imagery illustrating the harsh conditions of the Dutch Hongerwinter spanning 1944-1945."
  • **"Ascertain if any familial records indicate incarceration at Camp Vught during the hostilities."
  • **"As I plan a visit to Arnhem, suggest historically significant sites connected to Operation Market Garden."
  • **"Investigate documentation on clandestine resistance efforts within the province of Utrecht under Nazi governance."
  • **"Describe the quotidian existence for Jewish inhabitants in Amsterdam prior to organized deportations."
  • **"Present firsthand testimonies from individuals observing the Netherlands' liberation throughout 1945."
  • **"What archival evidence exists concerning minors sheltered by Dutch families during the conflict?"
  • **"I am conducting research on the wartime impact on Dutch civil engineering. Locate primary sources concerning the rebuilding of essential transit infrastructure like viaducts and rail lines."

Core Capabilities

  • 🔍 Semantic querying across the entire Oorlogsbronnen repository via plain language input
  • 🏷️ Granular refinement of search results based on asset categorization (e.g., biography, photograph, documentation)
  • 📊 Adjustable parameter control for limiting result set size
  • 🤖 Output formatted specifically for machine consumption (JSON) to facilitate downstream analysis

Deployment Instructions

You may deploy this service endpoint using two distinct methodologies:

1. NPX Installation via Claude Desktop

Modify your local Claude configuration file (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ww2-dutch-gateway": {
      "command": "npx",
      "args": [
        "-y",
        "oorlogsbronnen-mcp"
      ]
    }
  }
}

Apply these modifications by restarting the Claude Desktop application.

2. Deployment from Source Code

  1. Clone the repository:
git clone https://github.com/r-huijts/oorlogsbronnen-mcp.git
cd oorlogsbronnen-mcp
  1. Install necessary dependencies:
npm install
  1. Compile the project assets:
npm run build
  1. Configure the Claude Desktop client by updating ~/Library/Application Support/Claude/claude_desktop_config.json to point to the compiled executable:
{
  "mcpServers": {
    "ww2-dutch-gateway": {
      "command": "node",
      "args": [
        "/absolute/path/to/oorlogsbronnen-mcp/dist/mcp-server.js"
      ]
    }
  }
}

Ensure you substitute /absolute/path/to/oorlogsbronnen-mcp with the actual directory where you cloned and built the project.

Operational Examples

The MCP service interprets conversational requests to facilitate archival exploration. Examples of invocations for Claude include:

Fundamental Inquiries

  • "Invoke search_ww2_nl_archives to retrieve materials concerning the organized resistance within Amsterdam."
  • "Query the Dutch WW2 historical collection for data pertaining to Jewish displaced persons in the year 1942."
  • "Examine the Netherlands war documentation set for official reports on Allied aerial bombardment missions."

Content Type Segmentation

  • "Use search_ww2_nl_archives to display photographic evidence of Rotterdam's liberation celebrations."
  • "Discover personal narratives within the Dutch WW2 records detailing life inside internment facilities."
  • "Scan the Netherlands conflict archives for published newspaper reports addressing rationing and scarcity."

Highly Specific Lookups

  • "Search the Dutch WW2 documentation repositories for records detailing Anne Frank's residency in Amsterdam."
  • "Execute search_ww2_nl_archives to locate primary sources regarding the nationwide work stoppage of February 1941."
  • "Investigate the Netherlands war documentation for information pertaining to the airborne assault known as Operation Market Garden."

Research Case Studies

  1. Genealogical Tracing: Use search_ww2_nl_archives to find any records or documents about the Rosenberg family in Amsterdam between 1940-1945

  2. Regional Focus: Search the Dutch WW2 archives for photographs and documents about daily life in Utrecht during the occupation

  3. Military Context: Use search_ww2_nl_archives to find firsthand accounts and official reports about the Battle of the Scheldt

Advanced Parameterization

Complex searches can be constructed by synthesizing multiple constraints:

Search the Netherlands WW2 archives for photographs and personal accounts of the Dutch famine in 1944-1945, limit to 20 results

Tool Interface Specification

The service exposes a single, powerful MCP function:

search_ww2_nl_archives

This function is designed for comprehensive querying of the Oorlogsbronnen database, enabling retrieval of WWII-era Dutch documents, imagery, eyewitness testimony, and other archival assets from the 1940-1945 timeframe.

Appropriate Use Cases: - Locating information regarding specific wartime occurrences within the Dutch territories - Retrieving data indexed by individuals, geographic locations, or institutional bodies during the conflict - Identifying visual media or textual documents tied to precise temporal or spatial parameters - Assisting in personal or familial historical reconstruction related to WWII - Sourcing primary evidence related to Dutch resistance movements, wartime administration, or liberation events - Investigating materials concerning the persecution of Jewish populations during the Holocaust - Discovering records pertaining to military engagements that transpired on Dutch soil

Parameters: - query (Mandatory): - Type: String - Description: The fundamental search string or descriptive clause submitted to the archive index. - Content suitability: Names, specific locations, chronological markers, known events, or descriptive keywords. - Illustrative inputs: - "Anne Frank" - "Rotterdam bombing 1940" - "Dutch resistance Amsterdam" - "Jewish deportation Westerbork" - "Operation Market Garden"

  • type (Optional):
  • Type: String
  • Description: Mechanism to restrict results to a particular content classification.
  • Permitted Classifications:
    • "person": Records related to individual biographies
    • "photo": Still photographic images
    • "article": Written reports, essays, and digital documents
    • "video": Moving visual recordings
    • "object": Physical artifacts and museum pieces
    • "location": Geographic entries and spatial data
    • "book": Published monographs, memoirs, and scholarly works
  • Usage context: Employ when the desired output format is known (e.g., seeking only photos).
  • Default behavior: All content types are included.

  • count (Optional):

  • Type: Number
  • Description: Specifies the maximum quantity of items to be returned in the response payload.
  • Minimum Constraint: 1
  • Maximum Constraint: 100
  • Default Value: 10
  • Rationale for use: To manage the scope of the returned data set.
  • Caveat: Higher counts may increase processing latency.

Output Schema (JSON):

{
  "results": [
    {
      "id": string,          // System-assigned unique identifier
      "title": string,       // Item designation or title
      "type": string,        // Asset category (person, photo, etc.)
      "description": string, // Detailed summary, if metadata is present
      "url": string         // Direct hyperlink to the asset within Oorlogsbronnen
    }
  ]
}

Execution Examples & Corresponding Tool Calls:

  1. Primary Event Search:
{
  query: "February Strike 1941",
  type: "article",
  count: 5
}
  1. Biographical Data Retrieval:
{
  query: "Rosenberg family Amsterdam Jewish",
  type: "person",
  count: 20
}
  1. Image Catalog Search:
{
  query: "liberation celebrations Amsterdam Dam Square 1945",
  type: "photo",
  count: 15
}

Error Diagnostics: - An error will be propagated if: - The input query is null or contains prohibited characters - The specified type parameter does not match any valid classification - The count value falls outside the acceptable range [1, 100] - The remote archive API endpoint is temporarily unreachable - Query rate limits imposed by the service have been triggered

Recommended Practices: 1. Initiate searches broadly, then refine the scope using specific descriptors. 2. Integrate geographic identifiers to localize investigative efforts. 3. Include precise temporal data when targeting known historical occurrences. 4. Combine personal names with locations for effective family history tracing. 5. Leverage the type filter to concentrate on preferred data formats (e.g., documents vs. visuals).

Collaboration

We welcome contributions! Please direct any improvements or fixes via a formal Pull Request.

Licensing

This software is distributed under the terms of the MIT License (refer to the LICENSE file for full disclosure).

Acknowledgements

  • Appreciation extended to Oorlogsbronnen for granting access to their invaluable historical collection
  • Gratitude towards the Model Context Protocol community for facilitating this advanced AI-data linkage

See Also

`