# Europeana MCP

> Europeana lets your AI agent search millions of cultural artifacts, artworks, books, and historical records from thousands of European museums and libraries. Use complex filters to find items matching multiple criteria or gather structured metadata on people and places linked to the archives.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** cultural-heritage, digital-library, museum-data, metadata-search, archives

## Description

Instead of visiting dozens of individual museum websites and manually cross-referencing dates and names, your agent connects directly to Europeana's massive collection. You can ask it detailed questions—like finding all illuminated manuscripts from 15th-century France linked to a specific noble family. It handles the complex search and data retrieval across thousands of European institutions. If you need structured data for analysis or large-scale research, this MCP offers professional metadata harvesting capabilities. This makes Europeana available in your workflow through Vinkius, connecting it instantly to any AI client you use.

## Tools

### get_entity
Retrieves background information about people, places, or topics associated with a record.

### oaipmh_request
Downloads large sets of raw, structured metadata in XML format for bulk data analysis.

### get_record
Fetches all specific technical and descriptive metadata for one cultural heritage object ID.

### search_records
Searches the Europeana database using keywords and logical filters to find relevant items across all collections.

## Prompt Examples

**Prompt:** 
```
Search Europeana for records related to 'Vermeer' and 'Delft'.
```

**Response:** 
```
I found several records. Notable items include 'View of Delft' and 'The Little Street'. Would you like the detailed metadata for any of these specific records?
```

**Prompt:** 
```
Get the full record details for collection 9200365 and record BibliographicResource_1000055440343.
```

**Response:** 
```
Fetching record details... This is a bibliographic resource from the National Library of France. It includes descriptions in multiple languages and links to the digital object. Would you like to see the full metadata profile?
```

**Prompt:** 
```
Retrieve information about the entity 'Leonardo da Vinci' using the entity tool.
```

**Response:** 
```
I've retrieved the entity data for Leonardo da Vinci. It includes his biographical dates, professional roles (painter, engineer, scientist), and links to related records in the Europeana database.
```

## Capabilities

### Find items using complex criteria
Search the entire database for cultural objects by combining multiple keywords or applying specific filters.

### Extract full object details
Retrieve all technical and descriptive metadata associated with a single, known artifact ID.

### Map linked people and places
Discover contextual information about individuals, locations, or topics related to the records you find.

### Bulk download structured data
Download large amounts of raw metadata in XML format for systematic analysis.

## Use Cases

### A historian needs to trace a figure's influence
The agent finds the entity for 'Christopher Columbus.' It then uses `get_entity` to list related records, and subsequently uses `search_records` to filter those results down to only items published in the Caribbean region.

### A student needs a bibliography of all 19th-century French poetry
The agent executes a broad search using `search_records`, applying boolean filters like 'France' AND 'Poetry' AND (1800-1900). It then provides the list of IDs for the student to review.

### A developer needs raw data on all Roman artifacts
The agent triggers `oaipmh_request` with specific parameters, returning a massive XML file that the developer can ingest directly into their application's database schema.

## Benefits

- Don't manually build complex search queries. Use `search_records` to ask your agent to find items by combining keywords and applying filters, like finding all 'Louvre' artworks from the 17th century.
- Avoid incomplete data sets. With `get_record`, you get deep technical metadata for a specific object ID—not just a title or date.
- Skip cross-referencing websites. If you need to know everything about 'Leonardo da Vinci,' use `get_entity` to pull biographical facts, roles, and related records in one go.
- Stop manual data exports. Use `oaipmh_request` for professional metadata harvesting, grabbing massive amounts of structured XML for your own database.
- Speed up research flow. By centralizing access across thousands of European libraries, you cut down days of clicking into minutes.

## How It Works

The bottom line is that once you input the key, your AI client handles all the complex steps of querying across the entire European archive for you.

1. First, subscribe to the Europeana MCP and provide your unique API Key (WSKey).
2. Next, direct your AI client to run a query—for example, searching for records related to 'Vermeer' and 'Delft'.
3. Finally, the agent executes the search or request and returns structured metadata directly into your chat or script.

## Frequently Asked Questions

**How do I find records about a specific item using the search_records tool?**
You run `search_records` and provide keywords combined with boolean operators. This allows you to narrow down millions of results efficiently (e.g., 'Paris' AND 'Louvre').

**What is the difference between get_record and search_records?**
Use `search_records` when you only have keywords, as it returns a list of potential items. Use `get_record` when you already know the exact ID and need all the deep details for that single item.

**Can I use oaipmh_request to get data from multiple years?**
Yes, `oaipmh_request` is designed for bulk harvesting. You configure it with parameters that define a date range or collection scope, allowing you to download thousands of records at once.

**How does the get_entity tool help me find related people?**
It doesn't just list names; `get_entity` pulls structured data about that person—their roles (painter, scientist), their dates, and links to other records associated with them.

**What is the process for authenticating or setting up my API key when using get_record?**
You must subscribe to the MCP and provide a valid Europeana API Key (WSKey). This credential authorizes your agent to access the secure metadata endpoints. The system uses this key to validate every request, ensuring you have proper permissions before retrieving detailed records.

**Can I use search_records to filter results based on geographical places or organizations?**
Yes, `search_records` supports advanced boolean operators and filters for these entity types. You can combine location names (e.g., 'Paris') with organizational identifiers in a single query to narrow down your search scope effectively.

**What should I know about rate limits when running a large metadata harvest using oaipmh_request?**
The `oaipmh_request` tool is designed for bulk data, but you must be mindful of API throttling. For massive datasets, submit your requests in batches rather than attempting one single call to avoid hitting rate limits and ensure reliable data retrieval.

**When I use get_record, how do I handle records that contain multiple languages or formats?**
The `get_record` tool retrieves comprehensive metadata structures. You can filter the output parameters to specifically request descriptions in a primary language or access technical data fields like Dublin Core for consistent formatting across different record types.

**How can I filter my search to only include images?**
You can use the `qf` (Query Filter) parameter in the `search_records` tool. For example, setting `qf=TYPE:IMAGE` will narrow your results to visual media only.

**Can I retrieve information about a specific artist or historical figure?**
Yes! Use the `get_entity` tool with the type set to 'person' and the corresponding entity ID to fetch detailed information about individuals linked to Europeana records.

**What is the OAI-PMH tool used for?**
The `oaipmh_request` tool is designed for bulk harvesting of metadata. It allows you to list identifiers, sets, and records in XML format, which is ideal for large-scale data integration and archival synchronization.