Skip to main content
Glama

Search Artworks

search_artworks
Read-onlyIdempotent

Search the Art Institute of Chicago collection by keyword. Returns artwork titles, artists, dates, mediums, and image IDs. Use get_artwork to fetch full details.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of results to return (1-100, default 10)
queryYesSearch query (e.g., "monet water lilies")

Output Schema

NameRequiredDescriptionDefault
totalYesTotal number of artworks matching the search query
artworksYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "monet water lilies"
      +  },
      +  {
      +    "limit": 25,
      +    "query": "american portrait"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "artworks": {
      +      "items": {
      +        "properties": {
      +          "artist": {
      +            "description": "Artist display name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "date": {
      +            "description": "Date of creation",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Artwork ID",
      +            "type": "number"
      +          },
      +          "image_id": {
      +            "description": "ARTIC image identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "image_url": {
      +            "description": "URL to high-resolution image",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "medium": {
      +            "description": "Medium used (e.g., oil on canvas)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Artwork title",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "description": "Total number of artworks matching the search query",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "artworks"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "query": "monet water lilies"
      -  },
      -  {
      -    "limit": 25,
      -    "query": "american portrait"
      -  }
      -]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "artworks": {
      -      "items": {
      -        "properties": {
      -          "artist": {
      -            "description": "Artist display name",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "date": {
      -            "description": "Date of creation",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "description": "Artwork ID",
      -            "type": "number"
      -          },
      -          "image_id": {
      -            "description": "ARTIC image identifier",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "image_url": {
      -            "description": "URL to high-resolution image",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "medium": {
      -            "description": "Medium used (e.g., oil on canvas)",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "title": {
      -            "description": "Artwork title",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "title"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "total": {
      -      "description": "Total number of artworks matching the search query",
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "total",
      -    "artworks"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "artworks": {
      +      "items": {
      +        "properties": {
      +          "artist": {
      +            "description": "Artist display name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "date": {
      +            "description": "Date of creation",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Artwork ID",
      +            "type": "number"
      +          },
      +          "image_id": {
      +            "description": "ARTIC image identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "image_url": {
      +            "description": "URL to high-resolution image",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "medium": {
      +            "description": "Medium used (e.g., oil on canvas)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Artwork title",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "description": "Total number of artworks matching the search query",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "artworks"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "monet water lilies"
      +  },
      +  {
      +    "limit": 25,
      +    "query": "american portrait"
      +  }
      +]
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations by listing the specific data returned (titles, artists, dates, mediums, image IDs). The annotations already declare the tool read-only, idempotent, and non-destructive, so the description doesn't need to restate those. It does not contradict the annotations, and the extra detail about return content is valuable.

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?

The description is concise and front-loaded, with two sentences that efficiently convey purpose, return content, and an alternative. Every sentence earns its place, with no redundant or extraneous information.

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

Completeness4/5

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

The tool has an output schema, so the description isn't required to detail return structures; it already summarizes the fields. Annotations cover the safety profile (read-only, idempotent). The description is sufficiently complete for a simple search tool, though it could mention the limit parameter's default or cap, but that is covered in the schema. It also doesn't reference sibling tools like search_within, but that's not essential.

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

Parameters3/5

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

The input schema provides 100% coverage for both parameters (query and limit) with clear descriptions. The tool description adds little to parameter semantics beyond reinforcing that the search is by keyword. Since the schema already carries the burden, a baseline score of 3 is appropriate; the description does not enhance understanding of the parameters.

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 description clearly states the tool's function: 'Search the Art Institute of Chicago collection by keyword.' It specifies a concrete verb ('search') and resource ('Art Institute of Chicago collection'), and lists the returned fields (titles, artists, dates, mediums, image IDs). It also differentiates from the sibling tool get_artwork by noting that search is for summary results and get_artwork provides full details.

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

Usage Guidelines4/5

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

The description provides clear usage context: use this tool for keyword searching to get summary information. It explicitly names an alternative ('Use get_artwork to fetch full details'), which indicates when not to use this tool (when full details are needed). However, it does not delve into edge cases or other sibling tools like search_within, so it falls short of a perfect 5.

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.