Skip to main content
Glama

art-institute-chicago-mcp-server

Search artworks

artic_search_artworks
Read-onlyIdempotent

Search the Art Institute of Chicago collection by text and structured filters, ranked by relevance or sorted by date. Text matches all words across titles, artists, descriptions, provenance, and other catalog fields. Filters combine with AND. Results reach the first 1,000 matches; narrow with filters for more. Set limit to 0 with facets to get only counts. Use artic_lookup_vocabulary for filter values and artic_get_artworks for full records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage to return (1-based); page times limit may not exceed 1,000.
sortNorelevance ranks by query text, or by museum popularity without it; date_asc and date_desc sort by start year.relevance
limitNoRows per page (0-12; capped so a page of long catalog records with every facet stays within common tool-output limits); 0 returns only totalCount and facets.
queryNoText matched against titles, artists, descriptions, provenance, and other catalog fields; every word must match. Supports "exact phrase", -exclude, and a | b.
styleNoStyle title as artic_lookup_vocabulary lists it (case ignored), such as Impressionism; matches preferred or alternate styles.
themeNoTheme title as artic_lookup_vocabulary lists it (case ignored), such as Women artists.
artistNoArtist or culture name matched against every credited artist (all words must match).
facetsNoFacet counts to compute over the filtered set (top 15 values each): department, artwork_type, style, subject, classification, place_of_origin, artist. An array or a comma-separated string.
galleryNoGallery where the work is on view, such as Gallery 240 (a bare 240 is read as Gallery 240). Only on-view works carry a gallery.
subjectNoSubject title as artic_lookup_vocabulary lists it (case ignored).
year_toNoLatest year; a work matches when its date span overlaps year_from to year_to. Negative for BCE.
materialNoMaterial title as artic_lookup_vocabulary lists it (case ignored), such as ink or gold leaf.
artist_idNoAgent id from artic_search_artists or an artist facet row; matches preferred and other credits.
has_imageNoOnly works with an image.
techniqueNoTechnique title as artic_lookup_vocabulary lists it (case ignored), such as black-and-white photography or plain weaving.
year_fromNoEarliest year; a work matches when its date span overlaps year_from to year_to. Negative for BCE.
departmentNoDepartment title exactly as artic_lookup_vocabulary lists it (case ignored), such as Prints and Drawings.
artwork_typeNoArtwork type title as artic_lookup_vocabulary lists it (case ignored), such as Painting or Print.
on_view_onlyNoOnly works on view at the museum now.
classificationNoClassification title as artic_lookup_vocabulary lists it (case ignored), such as oil on canvas or etching.
place_of_originNoPlace of origin as artic_lookup_vocabulary lists it (case ignored), such as france.
public_domain_onlyNoOnly public-domain works, whose images are CC0.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe limit applied to this page.
pageNoPage returned (1-based).
errorNoPresent when the call failed. Absent on success.
shownNoRows returned on this page.
facetsNoCounts over the filtered set for each requested facet; present only when facets were requested.
noticeNoGuidance when nothing matched, more pages exist, or the reachable window is exhausted.
artworksNoMatching artworks on this page, in ranked or sorted order.
has_moreNoTrue when more matches exist beyond this page.
next_pageNoPage to request next; absent when nothing remains or the next page would pass the first 1,000 matches.
truncatedNoTrue when more matches exist beyond this page.
totalCountNoMatches for the query and filters, before paging.
license_textNoLicense statement from the API for this data, verbatim.
sort_appliedNoOrder applied; popularity when relevance was requested without query text (the museum popularity ranking).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, and idempotent, so the safety profile is covered. The description still adds real behavioral facts not in the annotations: the 1,000-result cap, AND-combination of filters, and the limit=0 + facets counting behavior. Only return-shape details are left to the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tightly packed sentences, front-loaded with the core purpose before the routing and pagination caveats. No filler and every sentence conveys a distinct, usable fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter search tool with an output schema and rich annotations, the description supplies the routing, cap, AND-combination, and facet-count behavior an agent needs. Return values are correctly left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 without further value. The description earns above baseline by disclosing cross-parameter semantics the schema states only per-field: that filters combine with AND, that text matches across all catalog fields, and that page×limit must stay under 1,000.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb (Search) and resource (Art Institute of Chicago collection) plus the scope (text and structured filters, ranked or sorted). It is unmistakably distinct from siblings like artic_search_artists or artic_search_exhibitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use artic_lookup_vocabulary for filter values and artic_get_artworks for full records. It also gives an actionable fallback when the 1,000-match ceiling is hit (narrow with filters) and a special-case pattern (limit 0 with facets for counts only).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.