Skip to main content
Glama
molanojustin

Smithsonian Open Access MCP Server

by molanojustin

Search Objects

search_objects
Read-onlyIdempotent

Search Smithsonian collection objects by keyword, maker, museum, date, material, or exhibit status; retrieve compact summaries and IDs for detailed records.

Instructions

Search Smithsonian collection objects by keyword and filters. Returns compact summaries; pass an id to get_object for the full record. For "how many" questions use limit=1 and read total_count. For works by a person use maker, since query also matches records that only mention them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoResults per page.
makerNoCreator name, full or surname, e.g. "Winslow Homer", "Homer", "Katsushika Hokusai". Results then carry maker_match.
queryNoKeywords, matched anywhere in a record, descriptions and notes included. Every word must match, so use 1-4 distinctive words, OR between alternatives ("muppet OR henson") and quotes for phrases. Leave out stop-words and questions. Empty matches everything.
topicNoSubject term, e.g. "Civil War".
museumNoMuseum name or unit code, e.g. "American History", "NMAH", "Asian Art", "Natural History".
offsetNoStart position; pass next_offset to get the next page.
date_toNoLatest year, matched by decade.
on_viewNotrue for objects on physical exhibit now, false for objects not on exhibit. Natural History (NMNH) has no exhibit data, so its objects never match true.
cc0_onlyNoOnly objects with CC0 (public domain) media.
materialNoMaterial or medium, e.g. "bronze".
date_fromNoEarliest year, such as 1860 or "1860s", matched by decade. Some records are dated by their subject, so later books about a period can match.
has_imagesNoOnly objects with images.
object_typeNoObject type, e.g. "Paintings", "Puppets".
record_typeNo"objects", or "archives" for archival collections and their folders and items (papers, photographs, recordings), which the API searches separately from objects.objects

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
museumNoMuseum filter that was applied
offsetNo
objectsNo
returnedYes
next_offsetNoOffset of the next page; null when there are no more
total_countYesAll matches, not just this page

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.0

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered. The description adds useful behavior beyond that: results are compact summaries, results carry maker_match when maker is used, and query matches descriptions/notes broadly. It does not detail pagination via next_offset, but that is documented in the 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 tight sentences, front-loaded with the core capability, then routing hints in descending priority. Every sentence adds a distinct decision rule; no filler or restatement of the title.

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?

For a 14-parameter search tool with an output schema and full schema coverage, the description covers scope, result type, counting workflow, and special-parameter caveats. Missing only fine-grained behavioral notes (pagination cadence, error conditions), which are minor given output schema and rich annotations.

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?

Schema coverage is 100%, so parameter documentation already lives in the schema and the baseline of 3 applies. The description does reinforce two high-stakes semantics (maker vs query, limit=1 for total_count) but adds little syntax beyond what the schema already states for each parameter.

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?

Opens with a specific verb+resource ('Search Smithsonian collection objects') and immediately scopes the result type ('compact summaries'), distinguishing it from get_object which returns full records. An agent can route between search_objects and get_object without opening a schema.

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?

Gives three explicit routing rules: pass an id to get_object for full records, use limit=1 + total_count for counting questions, and use maker rather than query for works by a person. It even explains why (query also matches records that merely mention someone), which is exactly the when/why guidance that prevents wrong calls.

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