Skip to main content
Glama

Rijksmuseum MCP Server

by r-huijts
MIT License
22
57
  • Apple
  • Linux
RijksmuseumApiClient.js2.09 kB
import axios from 'axios'; export class RijksmuseumApiClient { constructor(apiKey) { this.BASE_URL = 'https://www.rijksmuseum.nl/api/en'; this.ENDPOINTS = { COLLECTION: 'collection' }; this.axiosInstance = axios.create({ baseURL: this.BASE_URL, params: { key: apiKey, format: 'json' } }); } async searchArtworks(query, pageSize = 10) { const response = await this.axiosInstance.get(this.ENDPOINTS.COLLECTION, { params: { q: query, ps: pageSize } }); return response.data.artObjects; } async getArtworkDetails(objectNumber) { const response = await this.axiosInstance.get(`${this.ENDPOINTS.COLLECTION}/${objectNumber}`); return response.data; } async getArtworkImageTiles(objectNumber) { const response = await this.axiosInstance.get(`${this.ENDPOINTS.COLLECTION}/${objectNumber}/tiles`); return response.data; } async getUserSets(page = 0, pageSize = 10) { const response = await this.axiosInstance.get('usersets', { params: { page, pageSize } }); return response.data; } async getUserSetDetails(setId) { const response = await this.axiosInstance.get(`usersets/${setId}`); return response.data; } async getArtistTimeline(artist, maxWorks = 10) { const response = await this.axiosInstance.get(this.ENDPOINTS.COLLECTION, { params: { involvedMaker: artist, ps: maxWorks, s: 'chronologic', imgonly: true } }); return response.data.artObjects.map((artwork) => ({ year: artwork.longTitle.match(/\d{4}/)?.[0] || "Unknown", title: artwork.title, objectNumber: artwork.objectNumber, description: artwork.longTitle, image: artwork.webImage ? artwork.webImage.url : null })); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/r-huijts/rijksmuseum-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server