GnistAI GnistAI
Log in

Art & Museum Collections

Search 470K+ artworks from the Metropolitan Museum of Art and 120K+ from the Art Institute of Chicago — titles, artists, dates, media, images, and full provenance.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 4 tools tools 4 4 type: api wrapper type type api wrapper api wrapper lifecycle: maintained lifecycle lifecycle maintained maintained Media

Data source: Metropolitan Museum of Art Collection API, Art Institute of Chicago API

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/museum/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (4)

search_artworks

Search 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.

ParameterTypeRequiredDescription
querystringrequiredSearch term — artist, title, style, subject. Example: 'Van Gogh sunflowers'.
institutionanyoptionalFilter by institution: 'met' (Metropolitan Museum of Art) or 'aic' (Art Institute of Chicago). Omit to search both.
department_idanyoptionalMet Museum department ID filter (use get_departments to list). Only applies when institution='met'.
is_highlightanyoptionalOnly return highlighted/notable works. Met only.
has_imagesanyoptionalOnly return works with images. Met only.
mediumanyoptionalFilter by medium, e.g. 'Paintings', 'Sculpture', 'Photographs'. Met only.
date_beginanyoptionalStart year filter, e.g. 1800. Met only.
date_endanyoptionalEnd year filter, e.g. 1900. Met only.
limitintegeroptionalMax results to return (1-10). (default: 5)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_artworks",
    "arguments": {
      "query": "example"
    }
  }
}
get_artwork

Get 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.

ParameterTypeRequiredDescription
object_idintegerrequiredArtwork ID from the institution.
institutionstringrequiredInstitution: 'met' (Metropolitan Museum) or 'aic' (Art Institute of Chicago).
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_artwork",
    "arguments": {
      "object_id": 1,
      "institution": "example"
    }
  }
}
get_departments

List 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}).

JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_departments",
    "arguments": {}
  }
}
report_feedback

Report 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'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
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"}}}'
Python
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())

Related Toolkits (Media)

Resources