oo

oorlogsbronnen-mcp

Oorlogsbronnen (War Sources) API integration for accessing historical WWII records, photographs, and documents from the Netherlands (1940-1945)

#WWII# Netherlands# historical records
Publisheroorlogsbronnen-mcp
Submitted date4/13/2025

Unlocking Dutch WWII History: An AI-Powered Interface to the Oorlogsbronnen Archive

This document introduces an innovative Model Context Protocol (MCP) server designed to provide AI-driven access to the Oorlogsbronnen (War Sources) database, a comprehensive repository of Dutch World War II history. This server empowers users to interact with historical archives through natural language, opening new avenues for research, education, and personal discovery.

Explore History Through Natural Language

Imagine asking your AI assistant questions like these and receiving insightful answers based on authentic historical records:

  • "Detail the events surrounding the bombing of Rotterdam in May 1940."
  • "Based on historical records, describe Anne Frank's life while in hiding."
  • "Display photographs depicting the Dutch Hunger Winter of 1944-1945."
  • "Are there any records indicating that my ancestors were imprisoned in Camp Vught during the war?"
  • "I plan to visit Arnhem next week. Which historical sites related to Operation Market Garden should I prioritize?"
  • "Uncover information regarding resistance activities in Utrecht during the Nazi occupation."
  • "What was the daily experience for Jewish families in Amsterdam before the deportations commenced?"
  • "Present firsthand accounts from individuals who witnessed the liberation of the Netherlands in 1945."
  • "What documentation exists concerning children sheltered by Dutch families during the war?"
  • "I am researching the impact of WWII on Dutch infrastructure. Can you locate documents pertaining to the reconstruction of bridges and railways?"

This MCP server makes these types of interactions possible.

Key Features

  • Natural Language Search: Effortlessly query the Oorlogsbronnen database using intuitive natural language.
  • Content Type Filtering: Refine your search by specifying the type of content you're interested in (e.g., person, photo, article).
  • Result Control: Precisely manage the number of results returned to suit your research needs.
  • AI-Friendly JSON Responses: Receive structured JSON data optimized for seamless integration with AI applications.

Installation Guide

Choose one of the following installation methods:

1. Installation via Claude Desktop and NPX

This method offers a streamlined setup using the NPX package manager and Claude Desktop.

  1. Modify Claude Configuration: Update your Claude configuration file (~/Library/Application Support/Claude/claude_desktop_config.json) with the following JSON snippet:

    { "mcpServers": { "oorlogsbronnen-server": { "command": "npx", "args": [ "-y", "oorlogsbronnen-mcp" ] } } }
  2. Restart Claude Desktop: Ensure the changes take effect by restarting Claude Desktop.

2. Installation from Source

This method provides greater control over the installation process.

  1. Clone the Repository: Clone the project repository to your local machine:

    git clone https://github.com/r-huijts/oorlogsbronnen-mcp.git cd oorlogsbronnen-mcp
  2. Install Dependencies: Install the necessary project dependencies using npm:

    npm install
  3. Build the Project: Build the project to generate the distribution files:

    npm run build
  4. Configure Claude Desktop: Update your Claude configuration file (~/Library/Application Support/Claude/claude_desktop_config.json) with the following JSON snippet, replacing /absolute/path/to/oorlogsbronnen-mcp with the actual path to your installation directory:

    { "mcpServers": { "oorlogsbronnen-server": { "command": "node", "args": [ "/absolute/path/to/oorlogsbronnen-mcp/dist/mcp-server.js" ] } } }

Usage Examples: Interacting with the Archive

The MCP server is designed to understand natural language queries, enabling you to explore the World War II archives with ease. Here are some example queries you can use with Claude:

Basic Searches

  • "Use search_ww2_nl_archives to find documents about the resistance movement in Amsterdam."
  • "Search the Dutch WW2 archives for information about Jewish refugees in 1942."
  • "Look through the Netherlands war archives for records of Allied bombing raids."

Filtering by Type

  • "Use search_ww2_nl_archives to show me photographs of the liberation of Rotterdam."
  • "Find personal accounts in the Dutch WW2 archives about life in concentration camps."
  • "Search the Netherlands war archives for newspaper articles about food shortages."

Specific Queries

  • "Search the Dutch WW2 archives for documents about Anne Frank's time in Amsterdam."
  • "Use search_ww2_nl_archives to find records of the February Strike of 1941."
  • "Look through the Netherlands war archives for information about Operation Market Garden."

Research Examples

  1. Personal History Research:

    Use search_ww2_nl_archives to find any records or documents about the Rosenberg family in Amsterdam between 1940-1945
    
  2. Local History:

    Search the Dutch WW2 archives for photographs and documents about daily life in Utrecht during the occupation
    
  3. Military Operations:

    Use search_ww2_nl_archives to find firsthand accounts and official reports about the Battle of the Scheldt
    

Advanced Usage

Combine different search criteria for more refined results:

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

API Reference: search_ww2_nl_archives Tool

The server exposes a single, powerful MCP tool: search_ww2_nl_archives.

Purpose: This tool provides access to the Oorlogsbronnen database, allowing users to retrieve World War II-related content from the Netherlands. It can locate historical documents, photographs, personal accounts, and other archival materials from the 1940-1945 period.

Use Cases:

  • Searching for specific historical events during WWII in the Netherlands.
  • Finding information about people, places, or organizations during the war.
  • Locating photographs or documents from specific time periods or locations.
  • Researching personal or family history related to WWII.
  • Finding primary sources about the Dutch resistance, occupation, or liberation.
  • Discovering materials about Jewish life and persecution during the war.
  • Researching military operations that took place in the Netherlands.

Parameters:

  • query (required):

    • Type: string
    • Description: The primary search term or phrase.
    • Examples: "Anne Frank", "Rotterdam bombing 1940", "Dutch resistance Amsterdam", "Jewish deportation Westerbork", "Operation Market Garden".
  • type (optional):

    • Type: string
    • Description: Filter results by content type.
    • Available types: "person", "photo", "article", "video", "object", "location".
    • Default: All types included.
  • count (optional):

    • Type: number
    • Description: The number of results to return.
    • Minimum: 1
    • Maximum: 100
    • Default: 10

Response Format:

{ "results": [ { "id": string, // Unique identifier for the record "title": string, // Title or name of the item "type": string, // Content type (person, photo, article, etc.) "description": string, // Detailed description (if available) "url": string // Direct link to view the item on Oorlogsbronnen } ] }

Example Queries and Tool Calls:

  1. Basic Historical Search:

    { query: "February Strike 1941", type: "article", count: 5 }
  2. Person Research:

    { query: "Rosenberg family Amsterdam Jewish", type: "person", count: 20 }
  3. Photo Collection Search:

    { query: "liberation celebrations Amsterdam Dam Square 1945", type: "photo", count: 15 }

Error Handling:

The tool will return an error message if:

  • The query is empty or contains invalid characters.
  • The specified type is not supported.
  • The count is outside the valid range (1-100).
  • The API is temporarily unavailable.
  • Rate limits are exceeded.

Best Practices:

  • Start with broader searches and narrow down with specific terms.
  • Use location names to focus on specific areas.
  • Include dates when searching for specific events.
  • Combine person names with locations for family research.
  • Use type filtering to focus on specific kinds of historical materials.

Contributing

We welcome contributions to this project! Please submit a Pull Request with your proposed changes.

Acknowledgments

We extend our gratitude to:

  • Oorlogsbronnen for providing access to their invaluable historical archives.
  • The Model Context Protocol (MCP) community for enabling AI-powered interactions.

Visit More

View All