Data source: Metropolitan Museum of Art Collection API, Art Institute of Chicago API
https://context.gnist.ai/mcp/museum/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (4)
search_artworksSearch artworks across the Metropolitan Museum of Art (470K+ objects) and Art Institute of Chicago (120K+ objects).
Returns titles, artists, dates, media, dimensions, departments, images, and more.
Search both institutions at once or filter to one.
Examples:
search_artworks("impressionism") → Impressionist works from both museums
search_artworks("armor", institution="met", department_id=4) → Arms and Armor at the Met
search_artworks("Monet water lilies", institution="aic") → Monet at Art Institute of Chicago
Returns:
total, results (list of artworks with metadata and image URLs), query.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search term — artist, title, style, subject. Example: 'Van Gogh sunflowers'. |
institution | any | optional | Filter by institution: 'met' (Metropolitan Museum of Art) or 'aic' (Art Institute of Chicago). Omit to search both. |
department_id | any | optional | Met Museum department ID filter (use get_departments to list). Only applies when institution='met'. |
is_highlight | any | optional | Only return highlighted/notable works. Met only. |
has_images | any | optional | Only return works with images. Met only. |
medium | any | optional | Filter by medium, e.g. 'Paintings', 'Sculpture', 'Photographs'. Met only. |
date_begin | any | optional | Start year filter, e.g. 1800. Met only. |
date_end | any | optional | End year filter, e.g. 1900. Met only. |
limit | integer | optional | Max results to return (1-10). (default: 5) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_artworks",
"arguments": {
"query": "example"
}
}
}get_artworkGet full details for a specific artwork by ID and institution.
Returns complete metadata: title, artist, dates, medium, dimensions, department,
classification, culture, period, credit line, public domain status, image URLs,
tags, and Wikidata links (Met) or provenance, exhibition history, and description (AIC).
Examples:
get_artwork(436535, "met") → Van Gogh's Wheat Field with Cypresses
get_artwork(27992, "aic") → Seurat's A Sunday on La Grande Jatte
Returns:
Full artwork metadata dict.
| Parameter | Type | Required | Description |
|---|---|---|---|
object_id | integer | required | Artwork ID from the institution. |
institution | string | required | Institution: 'met' (Metropolitan Museum) or 'aic' (Art Institute of Chicago). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_artwork",
"arguments": {
"object_id": 1,
"institution": "example"
}
}
}get_departmentsList all curatorial departments at the Metropolitan Museum of Art.
Returns department IDs and names. Use department IDs to filter search_artworks results.
Departments include: American Decorative Arts, Ancient West Asian Art, Arms and Armor,
Asian Art, The Cloisters, European Paintings, Egyptian Art, Photographs, Modern Art, and more.
Returns:
departments (list of {id, name}).
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_departments",
"arguments": {}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/museum/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_artworks", "arguments": {"query": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/museum/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_artworks",
"arguments": {
"query": "example"
}
}
},
)
print(resp.json())