Skip to main content
Glama

DPLA — Search Digitized Items

dpla.archives.search
Read-onlyIdempotent

Search 50M+ digitized items from US libraries, archives, and museums via the Digital Public Library of America. Filter by media type (image, text, sound, moving image), date range, US state, or contributing institution. Results include title, creator, date, type, subject tags, rights, and direct links to the original item and thumbnail. Sources include the Smithsonian, Library of Congress, NYPL, state digitization programs, and 2,000+ contributing institutions. Returns facets for top subjects, providers, and types within the result set.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoFull-text search query across title, description, creator, and subject fields (e.g. "civil war photographs", "Thomas Jefferson")
pageNoPage number for pagination, starting at 1 (default: 1)
typeNoFilter by media type: image (photographs, drawings), text (books, manuscripts), sound (audio recordings), moving image (film/video), physical object
stateNoFilter by US state name where the item originated or is about (e.g. "Massachusetts", "California")
date_endNoFilter items created on or before this year (e.g. "1900"). Use with date_begin for a range.
providerNoFilter by contributing institution name (e.g. "Smithsonian Institution", "The New York Public Library")
page_sizeNoNumber of items per page, 1–50 (default: 10)
date_beginNoFilter items created on or after this year (e.g. "1850"). Use with date_end for a range.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe, read-only, non-destructive operation. The description adds some behavioral context by noting that results include specific fields and that facets are returned, but it does not disclose additional traits such as pagination limits, rate limits, or whether the result set is deterministic. Given the annotation coverage, the description's contribution is moderate but not extensive, so a 3 is appropriate.

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?

The description is a single paragraph of about 100 words, front-loading the core purpose and filters. It efficiently lists result fields, sources, and facets without redundancy. While it is slightly verbose with the inclusion of contributor names, the structure is logical and every sentence conveys useful information. It is appropriately concise for a complex search tool.

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 description covers the essential aspects: what is searched, what filters are available, what fields are returned, and that facets are included. Since an output schema exists (though not shown here), the description does not need to detail the exact return structure. It is complete enough for an agent to understand the tool's capabilities and typical use, though it could mention pagination behavior explicitly. Overall, it is well-rounded for a search tool.

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 description coverage is 100%—all 8 parameters have descriptions in the input schema, including the meaning of each filter. The description mentions filter types (media type, date range, state, institution) but does not add new details beyond what the schema already provides, such as specific formats or constraints (e.g., date as year). Since the schema fully documents parameters, the description adds little incremental semantic value, aligning with the baseline of 3.

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 purpose: searching digitized items from US libraries, archives, and museums via DPLA. It specifies a concrete verb ('Search'), a resource ('50M+ digitized items'), and the scope (US libraries, archives, museums). It also lists filterable attributes, distinguishing it from sibling tools like dpla.archives.detail (which retrieves a single item) and dpla.archives.by_subject (which likely groups by subject). This is a precise and differentiated purpose statement.

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?

The description explains what the tool does but does not explicitly state when to use it versus the sibling tools (e.g., dpla.archives.by_subject, dpla.archives.detail, dpla.archives.facets). It implies use for general searching with filters, but it does not mention alternatives or exclusions. While an agent could infer from the name and description, there is no explicit guidance on when not to use it or when to choose a sibling, which is a gap.

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.