Skip to main content
Glama
magicianmarty

heritage-research-mcp

si_search

Search Smithsonian Open Access records to find historical materials and check their reuse rights, with filters for media type, category, and sort order.

Instructions

Search Smithsonian Open Access records. Needs SMITHSONIAN_API_KEY.

Records whose media are all marked CC0 come back with rights.reuse "free"; otherwise "Usage conditions apply" is surfaced as restricted.

Args: q: Search words; supports AND/OR and fielded terms such as topic:Cavalry (see si_terms). rows: Results to return (1 to 100). start: Offset of the first row. sort: relevancy (default), newest or updated. type: EDAN record type, e.g. edanmdm. row_group: objects or archives. category: Search within art_design, history_culture or science_technology instead. kind: text, image, map, audio or video, added to the query as object_type or online_media_type.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYes
kindNo
rowsNo
sortNo
typeNo
startNo
categoryNo
row_groupNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.3

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it does disclose two meaningful behaviors: the SMITHSONIAN_API_KEY auth requirement and the rights semantics (CC0 media returns rights.reuse "free", otherwise "Usage conditions apply"). It stops short of rate limits or pagination/error behavior, but the auth and rights disclosure is genuinely valuable.

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

Conciseness4/5

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

Front-loads the purpose and auth requirement before a structured Args list, and every line carries information. The Args block is a bit long but each entry earns its place by documenting an otherwise undocumented parameter.

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?

An output schema exists so return format need not be explained, and the description covers auth, all parameter semantics, and rights semantics. It is largely complete for an 8-parameter search tool, with only pagination behavior and usage-versus-siblings guidance missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does for all 8 parameters: rows range (1-100), sort options with default, the EDAN record type, row_group values, category enums, and the object_type/online_media_type mapping for kind. This adds real meaning beyond the bare schema.

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?

States a specific verb and resource ('Search Smithsonian Open Access records'), which cleanly separates it from the sibling source searches (nara_search, ia_search, dpla_search, commons_search). An agent can route to it without opening any schema.

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

Usage Guidelines3/5

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

Gives the API-key prerequisite and points to si_terms for fielded query syntax, which is useful routing context. However, it never states when to use si_search versus si_get_content, si_terms, or the other source-specific search tools, so the when-not guidance is absent.

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