Skip to main content
Glama
smeet666

mcp-libraryofcongress

List the digital collections

list_collections
Read-onlyIdempotent

Browse Library of Congress digital collections to identify curated bodies of material before searching. Use collection_filter and searchable media types to target search_items.

Instructions

List the digital collections of the Library of Congress: bodies of material a curator chose, described and published together. Use it to see what is there before searching, since a collection names a corpus that a query would have to guess at. 'collection_filter' on each row is the wording search_items takes as its 'collection' argument, and 'searchable_media_types' names the catalogues that filter can be sent to. A collection whose 'searchable_media_types' is empty gathers a kind of thing the catalogue search is not divided into, such as web archives; set 'searchable_only' to leave those out. 'item_count' is how many records the collection gathers, which is the size of the corpus rather than the number of rows here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoWhich page of collections, from 1.
limitNoCollections to return.
searchable_onlyNoKeep only the collections whose formats name a media_type, which are the ones search_items can be asked for.
max_description_charsNoBudget for one collection's description.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageYes
notesYes
totalYesCollections the Library publishes, not the number returned.
collectionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv2.1.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / searchable_only
      Added value: +{
      +  "default": false,
      +  "description": "Keep only the collections whose formats name a media_type, which are the ones search_items can be asked for.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / collections / items / properties / collection_filter / description
      Previous value: -"Pass as 'collection' to search_items to keep results within this collection."New value: +"Pass as 'collection' to search_items, together with one of 'searchable_media_types', to keep results within this collection."
    • addedOutput schema / properties / collections / items / properties / searchable_media_types
      Added value: +{
      +  "description": "The 'media_type' values search_items can be asked with for this collection, read off the formats the Library publishes for it. Empty when none of those formats names a catalogue.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / collections / items / required
      Previous value: -[
      -  "identifier",
      -  "title",
      -  "collection_filter",
      -  "description",
      -  "item_count",
      -  "subjects",
      -  "formats",
      -  "source_url",
      -  "items_url"
      -]New value: +[
      +  "identifier",
      +  "title",
      +  "collection_filter",
      +  "searchable_media_types",
      +  "description",
      +  "item_count",
      +  "subjects",
      +  "formats",
      +  "source_url",
      +  "items_url"
      +]
  2. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

The description adds substantial behavioral context that the annotations do not cover. It explains the meaning of collection_filter, searchable_media_types, and the important distinction that 'item_count' is 'the size of the corpus rather than the number of rows here'. It also clarifies that empty searchable_media_types gathers things like web archives that the catalogue search does not divide into. This enriches the agent's understanding beyond the readOnly/idempotent hints.

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 longer than average but every sentence serves a purpose: it defines the resource, explains when to use it, clarifies field semantics, and distinguishes row count from item_count. The information is front-loaded with the core action, followed by relevant detail. No redundancy or filler exists, making it as concise as the content permits.

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?

Given the tool's moderate complexity, the output schema, and strong annotations, the description is fully complete. It explains the relationship to search_items, clarifies the meaning of output fields like collection_filter and item_count, and acknowledges edge cases like empty searchable_media_types. The description preempts likely misunderstandings and gives the agent all necessary context to invoke the tool correctly.

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?

The input schema has 100% description coverage for all four parameters, so the baseline is 3. The description adds extra meaning for 'searchable_only' by explaining the condition in context: 'A collection whose searchable_media_types is empty... set searchable_only to leave those out.' This goes beyond the schema's wording and helps clarify the parameter's practical intent. However, the description does not add meaning for page, limit, or max_description_chars beyond what the schema already states, so it does not earn a 5.

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 opens with 'List the digital collections of the Library of Congress', using a specific verb and resource. It then clarifies the concept of a 'collection' as 'bodies of material a curator chose, described and published together', and distinguishes it from sibling search tools by stating 'Use it to see what is there before searching, since a collection names a corpus that a query would have to guess at.' This clearly differentiates it from find/search operations.

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?

The description explicitly advises when to use the tool: 'Use it to see what is there before searching', and explains how it relates to sibling tools: 'collection_filter on each row is the wording search_items takes as its collection argument'. It also gives conditional guidance for searchable_only, explaining that collections with empty searchable_media_types are not searchable and how to exclude them. This goes beyond generic statements and provides concrete usage context.

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