archival-imagery-mcp
An MCP server for browsing and downloading open-licensed imagery from major museum and archive APIs including Wellcome, Met, Library of Congress, Smithsonian, and Europeana.
README
archival-imagery-mcp
An MCP server for browsing and downloading open-licensed imagery from six major museum and archive APIs. Built for editorial projects that need authored, archival visual material instead of AI-generated stock.
What this is
When Claude or any other MCP-compatible client needs imagery for an editorial project — a service site, a long-form article, a brand book, a deck — generating images from scratch usually produces something that reads as AI. For brands with editorial bona fides, that signal is fatal.
This server gives the assistant a different option: search the world's open-access museum collections for authored, attributed, often-centuries-old imagery and download it straight into the project's public/ folder. Most results are CC0, CC-BY, or Public Domain Mark — usable with no licensing friction.
Sources
| Source | Coverage | API Key | License Defaults |
|---|---|---|---|
| Wellcome Collection | UK. Medical, scientific, esoteric, astrological history. ~250k items. | No | CC-BY / PDM |
| Met Museum | US. Open Access program. ~470k objects, all CC0 when public domain. | No | CC0 |
| Library of Congress | US. Photos, manuscripts, maps, prints, newspapers, film. ~1M items. | No | Mostly PD |
| Smithsonian Open Access | US. 4.5M+ CC0 items across 21 museums. | Free | CC0 |
| Europeana | EU aggregator — British Library, Louvre, full Rijksmuseum collection, plus 4000+ institutions. | Free | Mixed (filterable) |
Note on Rijksmuseum: the Rijksmuseum's REST API was deprecated in 2024 in favour of OAI-PMH (an XML harvesting protocol designed for institutional bulk-download, not query-by-keyword). Rather than re-implement on a less query-friendly protocol, this server intentionally omits direct Rijksmuseum support. Europeana fully indexes the Rijksmuseum collection — query it via
europeana_searchwithprovider="Rijksmuseum".
Installation
From npm (recommended)
No install step needed if you have Node 18+ — just point your MCP client at npx:
{
"mcpServers": {
"archival-imagery": {
"type": "stdio",
"command": "npx",
"args": ["-y", "archival-imagery-mcp"],
"env": {
"SMITHSONIAN_API_KEY": "your-key-here-or-omit",
"EUROPEANA_API_KEY": "your-key-here-or-omit"
}
}
}
}
Or install once globally:
npm install -g archival-imagery-mcp
Then use "command": "archival-imagery-mcp" (no args needed) in your config.
API keys are all optional — Wellcome, Met, and Library of Congress work without keys. Smithsonian and Europeana tools return a helpful error message with the signup URL if their key is missing.
From source (for development / custom builds)
git clone https://github.com/chandhoke/archival-imagery-mcp.git
cd archival-imagery-mcp
npm install
Then point your MCP config at the local path:
{
"mcpServers": {
"archival-imagery": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/archival-imagery-mcp/index.mjs"]
}
}
}
Getting the optional API keys
All free, all take under 2 minutes:
- Smithsonian: api.data.gov/signup/ — email confirmation. The same key works for NASA, NOAA, FCC, and most US government APIs.
- Europeana: pro.europeana.eu/page/get-api — instant. Covers British Library, Rijksmuseum, Louvre, and 4000+ other institutions in one endpoint.
Tools (12 total)
Search & retrieval
| Tool | Source | Needs Key |
|---|---|---|
wellcome_search |
Wellcome | — |
wellcome_get_work |
Wellcome | — |
wellcome_image_url |
Wellcome (utility) | — |
met_search |
Met | — |
met_get_object |
Met | — |
loc_search |
Library of Congress | — |
loc_get_item |
Library of Congress | — |
smithsonian_search |
Smithsonian | ✓ |
smithsonian_get_object |
Smithsonian | ✓ |
europeana_search |
Europeana | ✓ |
europeana_get_record |
Europeana | ✓ |
Shared utility
| Tool | Purpose |
|---|---|
download_image |
Save any image URL (from any of the above) to a local path. Creates parent dirs automatically. |
Usage examples (natural language)
Once installed, just describe what you want and the assistant picks the right tool:
"Find Indian astrology pieces at the Met that we could use on /method — show me 5."
"Search Wellcome for nakshatra diagrams and save the best two to my project's public/brand/ folder."
"Use Europeana with provider='Rijksmuseum' to find Vermeer paintings — I want a portrait for the about page."
"Use Europeana to find anything from the British Library tagged 'Sanskrit manuscript' — only CC0/CC-BY please."
Attribution
When using imagery from any of these sources in published work, always check the per-item license (returned with every result) and follow its attribution requirements. Most CC-BY items only need a short credit line:
Imagery courtesy of [Source] (CC BY 4.0).
CC0 / Public Domain Mark items have no attribution requirement but crediting the source is good practice.
Architecture
- Single-file MCP server (
index.mjs), ~400 lines - Native
fetch(Node 18+), no HTTP library dependency - Only one dependency:
@modelcontextprotocol/sdk - No telemetry, no persistent state, no auth required for the server itself
- Stateless — every tool call hits the upstream API fresh
Extending
To add another source (e.g. New York Public Library Digital Collections, DPLA, Gallica):
- Add a section under
// =========================================================================withxyzSearch,xyzGetObjectfunctions - Add an env-var helper if it needs a key (use the existing
requireKeypattern) - Add entries to the
TOOLSarray with clear descriptions - Add entries to the
HANDLERSmap
~50 lines per new source.
License
MIT © Harpreet Chandhoke
This server is a client for third-party APIs. Each source has its own terms — respect them in your usage. The MIT license applies only to this server code, not to the content retrieved.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.