DISCLAIMER
@shenhai-ran
MCP server for Rijksmuseum OAI-PMH API
Overview
What is DISCLAIMER?
DISCLAIMER is a Model Context Protocol (MCP) server that provides access to the Rijksmuseum OAI-PMH API. It exposes the museum’s collection metadata through standard OAI-PMH verbs as individual MCP tools, making it easy for MCP‑compatible clients to query records, sets, and formats.
How to use DISCLAIMER?
Clone the repository, install dependencies with npm install, then start the server using npm run dev (or npm run watch for hot reloading). The server listens on a local HTTP port and exposes endpoints such as GET / for server info and POST /tools/{toolName} to invoke specific OAI-PMH tools.
Key features of DISCLAIMER
- Implements five OAI-PMH verbs as MCP tools (Identify, ListMetadataFormats, ListSets, ListRecords, GetRecord)
- RESTful API following MCP standards
- Comprehensive error handling
- TypeScript implementation with hot‑reloading development mode
- Includes a direct test and an MCP test client
Use cases of DISCLAIMER
- Querying basic repository information from the Rijksmuseum using
rijksmuseum_identify - Retrieving the list of available metadata formats with
rijksmuseum_list_metadata_formats - Browsing collection sets via
rijksmuseum_list_sets - Harvesting records in bulk using
rijksmuseum_list_records - Fetching a specific object’s metadata with
rijksmuseum_get_record
FAQ from DISCLAIMER
What OAI-PMH verbs are implemented?
DISCLAIMER implements five verbs: Identify, ListMetadataFormats, ListSets, ListRecords, and GetRecord. Each verb is exposed as a separate tool (e.g., rijksmuseum_identify).
How do I install and run the server?
Clone the repository, run npm install to install dependencies, then start with npm run dev. For development with hot reloading, use npm run watch.
What runtime or dependencies are required?
The server is written in TypeScript and requires Node.js. Dependencies are managed via npm (installed with npm install).
Where does the data come from?
All data is fetched from the Rijksmuseum OAI-PMH API, which provides access to the museum’s collection metadata. No local database is used.
How do I retrieve a specific record?
Send a POST request to /tools/rijksmuseum_get_record with a JSON body containing identifier and metadataPrefix. An example is provided in the README.