Search and fetch artworks from The Metropolitan Museum of Art collection via @cyanheads/met-museum-mcp-server (npx)
How to search the Metropolitan Museum of Art's collection, filter for public-domain (CC0) artworks, and retrieve full records including high-resolution image URLs — all from an AI agent via MCP, no API key required.
Recipe: Search Met Museum artworks and fetch CC0 records via MCP
Server: @cyanheads/[email protected] (npx, stdio) Tools: 3 — met_list_departments, met_search_collections, met_get_object Auth: None required — wraps the Met Museum's public Collection API Typical workflow: met_list_departments → met_search_collections (returns IDs) → met_get_object (up to 20 IDs per call)
Spawn
{ "command": "npx", "args": ["-y", "@cyanheads/met-museum-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio" } }Step 1 — Search for public-domain Van Gogh paintings
{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"met_search_collections","arguments":{"q":"Van Gogh","isPublicDomain":true,"medium":"Paintings","limit":5}}}Response: total: 35, objectIDs: [436531, 436533, 438722, 436530, 437998], returned: 5, truncated: true
Step 2 — Fetch full object record
{"jsonrpc":"2.0","method":"tools/call","id":4,"params":{"name":"met_get_object","arguments":{"objectIDs":[436533]}}}Response: Full record for Van Gogh's Shoes (1888): Oil on canvas, 18 × 21¾ in., Gallery 822, CC0 image at https://images.metmuseum.org/CRDImages/ep/original/DT1947.jpg, Wikidata Q19911520.
Key filters
isPublicDomain: true→ CC0 images you can use freelyhasImages: true→ includes copyrighted works (no usable URLs)medium→ maps to classification ("Paintings", "Sculpture"), NOT material ("Oil on canvas")departmentId→ usemet_list_departmentsfor valid IDs (1–21)dateBegin/dateEnd→ year integers, negative for BCE
Known issue (v0.2.0)
met_get_object with batch IDs can fail with a Zod validation error when the Met API returns null for tags[n].AAT_URL. Object 436531 (Van Gogh's Cypresses) triggers this — the schema declares AAT_URL as type: "string" but the API returns null for some tags. Workaround: fetch objects one at a time, or catch the error and retry individual IDs.
Error: Invalid input: expected string, received null at objects.0.tags.3.AAT_URL
{ "request": { "method": "tools/call", "params": { "name": "met_search_collections", "arguments": { "q": "Van Gogh", "isPublicDomain": true, "medium": "Paintings", "limit": 5 } } }, "response": { "total": 35, "objectIDs": [436531, 436533, 438722, 436530, 437998], "returned": 5, "truncated": true }, "fetch_request": { "method": "tools/call", "params": { "name": "met_get_object", "arguments": { "objectIDs": [436533] } } }, "fetch_response": { "objects": [ { "objectID": 436533, "title": "Shoes", "isPublicDomain": true, "hasCC0Image": true, "primaryImage": "https://images.metmuseum.org/CRDImages/ep/original/DT1947.jpg", "primaryImageSmall": "https://images.metmuseum.org/CRDImages/ep/web-large/DT1947.jpg", "department": "European Paintings", "classification": "Paintings", "artistDisplayName": "Vincent van Gogh", "artistDisplayBio": "Dutch, Zundert 1853–1890 Auvers-sur-Oise", "objectDate": "1888", "medium": "Oil on canvas", "dimensions": "18 × 21 3/4 in. (45.7 × 55.2 cm)", "GalleryNumber": "822", "objectWikidata_URL": "https://www.wikidata.org/wiki/Q19911520" } ], "failed": [] }, "batch_bug": { "request": { "name": "met_get_object", "arguments": { "objectIDs": [436531, 436533] } }, "error": "Invalid input: expected string, received null at objects.0.tags.3.AAT_URL", "cause": "Met API returns null for some tag AAT_URL fields; server schema declares string (non-nullable)" } }