by kintopp
Explore the Rijksmuseum’s artwork collections through AI‑driven conversation, using enriched metadata for semantic and full‑text search, provenance analysis, similarity comparisons, and spatial reasoning.
Rijksmuseum Mcp Plus provides an AI‑accessible interface to a curated copy of the Rijksmuseum’s open‑access metadata. It enriches the original data with full‑text fields, structured provenance events, geocoding, and semantic embeddings, enabling natural‑language queries and advanced analysis that go beyond the museum’s public portal.
https://rijksmuseum-mcp-plus-production.up.railway.app/mcp. No authentication is required.rijksmuseum-mcp-plus.skill.zip from the repository and install it in Claude (or any MCP‑compatible assistant) to guide tool selection and improve answer quality.Q: Do I need a paid Anthropic subscription? A: The best experience is with Claude Desktop or claude.ai on a Pro or higher plan, but the server also works with free‑tier MCP‑compatible chatbots such as Mistral LeChat.
Q: Is the data up‑to‑date? A: The dataset is a snapshot taken on 2 May 2026. For the latest catalogue information, always verify against the official Rijksmuseum portal.
Q: Can I run the server locally? A: Yes. Clone the repository and follow the technical guide to start the server in STDIO or HTTP mode using your local metadata and embedding files.
Q: What if a tool call fails? A: Re‑connect the connector (toggle off/on) or remove and add it again. Persistent issues may require restarting the remote MCP server.
Q: How do I enable geospatial queries?
A: Use proximity filters such as nearPlace and nearPlaceRadius in your natural‑language prompt (e.g., “artworks depicting places within 25 km of Leiden”).
rijksmuseum-mcp+ lets you explore the Rijksmuseum's artwork collections through natural conversation with an AI assistant. It does this by creating a bridge between the AI system's chat environment and an enriched copy of the museum's open-access, curated metadata. This in turn enables many additional features beyond those offered by the Rijksmuseum's collections portal, including full-text semantic search, structured provenance analysis, multiple similarity comparisons, AI-based visual analysis, and geospatial search. It works best when used together with rijksmuseum-iconclass-mcp, an analogous resource for Iconclass.
Please do not treat the data made available by this resource as current or authoritative. It is based on data copied from the Rijksmuseum on May 2nd, 2026. For current data, please always use the Rijksmuseum's own search portal and APIs. Nor have the (in small part, also LLM based) enrichments of the museum's geospatial and provenance data been reviewed or endorsed by the Rijksmuseum. This is an early pre-release of a technology demo that is still in active development. It is likely to include errors.
The tool was developed as a technology demo by the Research and Infrastructure Support (RISE) group at the University of Basel. We are particularly interested in exploring the research opportunities, methodological risks, and technical challenges posed by retrieving and analysing data with LLMs. If you are interested in collaborating with us in this area, please get in touch.
The best way to get started is with Claude Desktop or claude.ai by adding rijksmuseum-mcp+ as a custom 'Connector' to Claude using the URL below. This currently requires a paid ('Pro') or higher subscription from Anthropic.
https://rijksmuseum-mcp-plus-production.up.railway.app/mcp
Go to Settings → Connectors → Add custom connector → Name it as you like and paste the URL into the Remote MCP Server URL field. You can ignore the Authentication section. Once the connector is configured, optionally set the permissions for its tools (e.g. 'Always allow'). See Anthropic's instructions for more details.
Afterwards, follow the same procedure to install rijksmuseum-mcp+'s companion IconClass resource, rijksmuseum-iconclass-mcp. This allows you to automatically search and explore c. 1.3 million Iconclass notations, concepts, and descriptive texts alongside the Rijksmuseum's metadata.
It is possible (with some tradeoffs) to use rijksmuseum-mcp+ without a paid subscription. For more details, please see the Choosing an AI system section below.
The rijksmuseum-mcp+ skill file (.zip archive) gives the AI assistant detailed guidance in natural language on how to use rijksmuseum-mcp+ effectively: which tool to choose for a given question type, how to combine searches, important metadata distinctions (e.g. subject terms vs iconclass notations), and known limitations. The package also includes reference files with full description of the available provenance search patterns and the find_similar functionality. Making use of a skill is optional but will significantly improve the quality and efficiency of your AI assistant's responses when exploring the collection.
The downloaded skill file can be installed in Claude by following these instructions. Skills were originally developed by Anthropic for their Claude products but have since become an open standard. Even chatbots and applications without explicit support for skill packages can make use of the rijksmuseum-mcp+ skill by uploading/sharing its components with an AI assistant at the start of a research session. Some chatbots (e.g. Mistral's LeChat) allow you to permanently share files such as this with an LLM across sessions by uploading it to a personal library.
After you've connected the resource to your AI system, you can search, explore and ask questions about the Rijksmuseum's collections in natural language. For examples of the kinds of queries the systems can answer, please see the prompts below. Note: The links following these prompts are to sample responses in Claude Desktop. They only reproduce the texts of these sessions (no inline images or visualisations).
For examples of more complex queries and responses, please see the research scenarios.
Rijksmuseum-mcp+ provides the following features and capabilities over and beyond those made available by the Rijksmuseum on their search collections page:
Additional searchable metadata categories, including full-texts (description, inscription, provenance, creditLine, curatorialNarrative), creator demographics (e.g. gender, profession, birthPlace), all title variants for an artwork, multiple attribution qualifiers (e.g. workshop of, circle of, attributed to). Full-text queries over the title, description, inscription, and curatorialNarrative fields can be structured. This lets you combine boolean clauses, field scoping, proximity, exact phrases, exclusions, and prefix matching, while simultaneously narrowing results with normal filters such as creator, type, date, material, or technique. Proximity searches on enriched geocoded locations (nearPlace, nearPlaceRadius) let you find artworks related to a location (e.g. "artworks depicting places within 25 km of Leiden"). Physical dimension filters support queries about the size of an artwork (e.g. "paintings wider than 3 metres").
Iconclass notations can be searched by title and description and explored by following their parent and child branches via the companion rijksmuseum-iconclass-mcp resource.
Rijksmuseum-mcp+ adds support for multilingual, concept-based, exploratory searches drawing simultaneously on the full-texts of several metadata fields (title, description, inscription, curatorialNarrative). This allows for broad, interpretive queries of their contents by meaning (e.g. "a sense of loneliness in domestic interiors" that go beyond what structured, keyword based searches or filters can reveal. For more details, please see semantic search. Semantic search is also available for Iconclass via rijksmuseum-iconclass-mcp.
Images from the Rijkmuseum's collections can be viewed inline in your chat conversation with an interactive, deep-zoom image viewer that supports pan, zoom, rotation, horizontal flip, and full-screen mode (click on the ? icon in the image viewer for details). The AI assistant can analyse what it sees in conjunction with the collection's metadata, and can independently zoom into and annotate regions of interest on request with labelled bounding boxes. Because the assistant can see these overlays, it can also verify its own annotation — re-inspect the rendered result, adjust the coordinates and retry. By switching the viewer into interactive mode (press "i" or click on the □ icon), a user can draw a rectangle around an area of interest. This copies its bounding-box coordinates into the prompt and direct the AI assistant's attention to it (e.g. "identify the species of butterfly I've highlighted in the image"). When the displayed artwork has related variants — curator-declared pendants, production stadia, or different examples of the same design — the viewer's < / > buttons (or the j / l keys) let you step through them in place, without leaving the viewer.
A search for artworks 'similar to' other artworks (e.g. "find artworks similar to van Gogh's Zelfportret") creates a comparison webpage that places an artwork alongside the works most similar to it, evaluated across nine dimensions: visual appearance, related variant (curator-declared pendants, production stadia, different examples), related object (other curator-declared edges such as pairs, sets, recto/verso, and reproductions), artistic lineage (shared creators, workshops, or attribution chains), Iconclass subject classification, semantic description, shared curatorial themes, depicted persons, and depicted places. Works that appear across multiple dimensions are listed in a final, combined "pooled" view, highlighting the most broadly connected artworks in the collection. The 'related variant' dimension draws on the same curator-declared, creator-invariant relationships — pendants, production stadia, and different examples of one design — that also appear in an artwork's details and can be stepped through in the image viewer.
Here is an example of a find_similar analysis. Note that all generated comparison webpages are automatically deleted from the server after 30 minutes. Use your browser's 'Save As' (not bookmark) feature to save a copy.
The Rijksmuseum records the ownership history of c. 48,000 artworks as free-text provenance narratives following the AAM punctuation convention. Rijksmuseum-mcp+ has parsed and partially enriched these narratives into over 100,000 structured events with a CMOA-aligned transfer vocabulary, making them searchable by party name, transfer type (e.g. sale, gift, bequest, inheritance, confiscation or restitution), date range, location, and price in the original historical currency. This enables structured queries such as tracing a collector's activity across the collection, identifying artworks that were confiscated but never restituted, or comparing auction prices in guilders across centuries. Every provenance record carries searchable provenance-of-provenance metadata tracking how it was enriched. For more details, please see the provenance reference documentation.
Rijksmuseum-mcp+ is able to produce aggregate statistics (e.g. counts, distributions, and cross-tabulations) across most metadata categories of the collection. These can be passed on to the AI assistant for visualisation and other forms of analysis. For more details, please see the reference documents for metadata categories and search parameters.
Technically speaking, rijksmuseum-mcp+ works with any chatbot or application supporting the open Model Context Protocol (MCP) and MCP Apps standards. As such, it also works with many other browser based chatbots including those whose large language models (LLMs) can be used without a paid subscription. Mistral's LeChat is an example (follow these instructions) of a browser based chatbot with very good, basic support of the MCP standard. In addition, many desktop 'LLM client' applications, such as Jan.ai, are also MCP-compatible, and can be used with many different LLM models (including local models). Most agentic coding applications (e.g. Claude Code, OpenAI Codex, Google Gemini CLI) also support the MCP standard. In contrast, OpenAI's ChatGPT and Codex can also be used as a MCP client but only in 'developer mode' and in conjunction with a paid subscription. Google has announced MCP support for Gemini but has not indicated when this will be ready.
Subjectively speaking, most LLMs powering the general purpose, browser-based AI assistants are also not as 'smart' in their use of this MCP server compared to Anthropic's leading models. For this reason, at this moment (June, 2026), the best way to use rijksmuseum-mcp+ remains Claude Desktop or claude.ai combined with a paid ('Pro') or higher subscription from Anthropic. ChatGPT is a good second choice. If a paid subscription is not feasible, I recommend Mistral's LeChat (which also works very well with the companion IconClass MCP server). LeChat also has a useful personal library feature where you can upload research skills to better guide the AI assistant in its use of these resources.
Note to developers: the rijksmuseum-mcp+ server can also be run locally in STDIO mode with local copies of its metadata and embedding databases. Please see the technical notes for details.
When you submit your question, the AI assistant decides on the basis of their descriptions which combination of tools and search parameters provided by rijksmuseum-mcp+ will best answer it by drawing on the the museum's metadata. The assistant might search the collection using structured filters (search_artwork), look up an artwork's full metadata (get_artwork_details), query ownership history (search_provenance), or find artworks by meaning or concept (semantic_search). During this process, it will often chain several tools together in sequence (the so-called 'agentic loop'), each result informing the next query. The results from each tool come back as structured data and text, which the AI assistant interprets, contextualises, and when satisfied, finally sends back as an answer in natural language.
At each step, the AI assistant can combine the retrieved data with its own background knowledge — about artists, periods, iconographic traditions, and historical context — to offer interpretations that go beyond what the museum's metadata alone can provide. But the form and content of these statements will also be 'grounded' and 'constrained' by the curated metadata it has retrieved, by the instructions given to the AI assistant in the MCP server, and by the specialised domain knowledge and guidance it draws on from the optional research skill document. Together, these act as a kind of 'harness' for the AI assistant, keeping it factually grounded on the curated metadata and the user's query.
Because rijksmuseum-mcp+ maintains its own copy of Rijksmuseum and (via rijksmuseum-iconclass-mcp) Iconclass metadata, it can organise, enrich, query and analyse this in ways that are not possible by querying the Rijksmuseum collections portal or search API. A separate database enables, for example:
In essence, rijksmuseum-mcp+ trades the conceptual simplicity of a traditional search interface, where you formulate a keyword-based query, receive results, and interpret these yourself, for a more flexible and powerful but also more complex scenario, where an AI assistant can search metadata, combine, and interpret the results on your behalf. Importantly, because the AI assistant has access not only to what it retrieves but also the way this data is organised, it is also able to offer a certain degree of 'introspection' on its actions – to explain how and why a query was conducted, what the data it retrieved looked like, and recommend options for how best to carry out a query.
If a tool call fails unexpectedly, try disconnecting and reconnecting the connector. Because rijksmuseum-mcp+ runs as a hosted remote MCP server, changes to its configuration from recent updates can leave the connector in a stale state — symptoms include queries never being answered, generic error messages, or the AI assistant reporting that a tool is unavailable. In Claude Desktop or claude.ai, go to Settings → Connectors, toggle rijksmuseum-mcp+ off and back on, and retry your question. If connecting/disconnecting does not resolve the issue, remove the connector (MCP server) entirely and re-add it using the URL in the Quick Start section.
The collection data is a periodic snapshot, not a live feed. Rijksmuseum-mcp+ queries its own harvested copy of the museum's metadata rather than the live Rijksmuseum APIs. This is what makes semantic search, provenance parsing, proximity queries, and cross-tabulations possible — but it also means that more recent cataloguing changes, new acquisitions, or corrections made by Rijksmuseum curators will not be reflected in the AI assistant's responses. For definitive, up-to-date information, always cross-check against the Rijksmuseum's own collection portal.
Ask the assistant to explain which tools and filters it used — and steer it if the first answer looks off. Because rijksmuseum-mcp+ exposes many overlapping search patterns (keyword filters, semantic search, Iconclass notations, provenance events, spatial queries), the AI assistant sometimes picks a narrower or broader strategy than you intended. If a result seems incomplete, surprising, or suspiciously tidy, ask follow-ups like "let me the see other matching artworks for this query as well", or "try this again using semantic search instead of keyword filters". Installing the optional research skill will greatly reduce the frequency of poor queries, and being explicit in your prompt about whether you want a structured search (e.g. "all paintings by X made in Y") versus an exploratory search (e.g. "list a few...") helps the AI assistant interpret your question correctly.
For local setup (stdio or HTTP), deployment, architecture, data sources, and configuration, see the technical guide. Further technical documentation TBA.
Ongoing:
Later:
Maybe:
description signal for find_similar (e.g. via LLM re-ranker)Arno Bosse — RISE, University of Basel with Claude Code, Anthropic.
If you use rijksmuseum-mcp+ in your research, please cite it as follows:
APA (7th ed.)
Bosse, A. (2026). rijksmuseum-mcp+ (Version 0.70.0) [Software]. Research and Infrastructure Support (RISE), University of Basel. https://github.com/kintopp/rijksmuseum-mcp-plus
BibTeX
@software{bosse_2026_rijksmuseum_mcp_plus,
author = {Bosse, Arno},
title = {{rijksmuseum-mcp+}},
year = {2026},
version = {0.70.0},
publisher = {Research and Infrastructure Support (RISE), University of Basel},
url = {https://github.com/kintopp/rijksmuseum-mcp-plus},
orcid = {0000-0003-3681-1289},
note = {Developed with Claude Code (Anthropic, \url{https://www.anthropic.com})}
}
Collection data and images are provided by the Rijksmuseum, Amsterdam via their Linked Open Data APIs.
Licensing: Information and data that are no longer (or never were) protected by copyright carry the Public Domain Mark and/or CC0 1.0. Where the Rijksmuseum holds copyright, it generally waives its rights under CC0 1.0; in cases where it does exercise copyright, materials are made available under CC BY 4.0. Materials under third-party copyright without express permission are not made available as open data. Individual licence designations appear on the collection website.
Attribution: The Rijksmuseum considers it good practice to provide attribution and/or source citation via a credit line and data citation, regardless of the licence applied. Please see the Rijksmuseum's information and data policy for the full terms.
This project was inspired by @r-huijts/rijksmuseum-mcp, the original Rijksmuseum MCP server based on the museum's now superseded REST API.
This project is licensed under the MIT License.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by exa-labs
Provides real-time web search capabilities to AI assistants via a Model Context Protocol server, enabling safe and controlled access to the Exa AI Search API.
by perplexityai
Enables Claude and other MCP‑compatible applications to perform real‑time web searches through the Perplexity (Sonar) API without leaving the MCP ecosystem.
by Aas-ee
Provides multi-engine web search and article/content retrieval through an MCP server, command‑line interface, and a reusable local daemon, all without requiring API keys or authentication.
by MicrosoftDocs
Provides semantic search and fetch capabilities for Microsoft official documentation, returning content in markdown format via a lightweight streamable HTTP transport for AI agents and development tools.
by elastic
Enables natural‑language interaction with Elasticsearch indices via the Model Context Protocol, exposing tools for listing indices, fetching mappings, performing searches, running ES|QL queries, and retrieving shard information.
by graphlit
Enables integration between MCP clients and the Graphlit platform, providing ingestion, extraction, retrieval, and RAG capabilities across a wide range of data sources and connectors.
by ihor-sokoliuk
Provides web search capabilities via the SearXNG API, exposing them through an MCP server for seamless integration with AI agents and tools.
by mamertofabian
Fast cross‑platform file searching leveraging the Everything SDK on Windows, Spotlight on macOS, and locate/plocate on Linux.
by spences10
Provides unified access to multiple search engines, AI response tools, and content processing services through a single Model Context Protocol server.