Skip to main content
Glama
mcp-archiveorg

mcp-archiveorg

Search the catalogue

search_items
Read-onlyIdempotent

Search Internet Archive catalogue by title, creator, or description across films, books, audio, images, software, and datasets; filter by media type to keep results readable.

Instructions

Search the Internet Archive catalogue: films, books, recordings, images, software and datasets. This matches titles, creators and descriptions, so a compilation whose notes mention a name ranks alongside that person's own work: read 'creator' on each row before treating a result as theirs. It does not read the contents of a scan; use search_inside for a phrase within a book. Set 'media_type' whenever the kind of thing is known, because one title exists across several media and mixing them makes a result list unreadable. 'oldest', 'newest', 'year_from' and 'year_to' all read one field: the date a depositor typed into the record. An item with no date carries a placeholder the index sorts as a real one, a date written as a fragment is filed at the year that fragment reads as, and the field holds no era, so a Babylonian tablet of 1712 BCE answers a search of 1700 to 1750. Read an order or a range as a statement about that field. Every row carries an 'identifier', which get_item takes.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNo'downloads' surfaces what people actually read, which relevance alone often buries. 'oldest' and 'newest' rank on a declared date, not on when a thing was made.relevance
limitNo
queryYesWords to look for in titles, creators and descriptions.
year_toNoLatest year, inclusive, on the record's declared date, which carries no era.
year_fromNoEarliest year, inclusive, on the record's declared date, which carries no era.
media_typeNoNarrow to one kind of thing. Strongly recommended.

Output Schema

NameRequiredDescriptionDefault
pageYes
itemsYes
notesYes
queryYes
totalYesItems matching across the catalogue, not the number returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.1.0
    • removedOutput schema / properties / items / items / properties / creator / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / items / items / properties / creator / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / items / items / properties / media_type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / items / items / properties / media_type / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / items / items / properties / title / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / items / items / properties / title / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed3 schema fields changedv1.5.0
    • changedInput schema / properties / year_from / description
      Previous value: -"Earliest year, inclusive."New value: +"Earliest year, inclusive, on the record's declared date, which carries no era."
    • changedInput schema / properties / year_to / description
      Previous value: -"Latest year, inclusive."New value: +"Latest year, inclusive, on the record's declared date, which carries no era."
    • changedOutput schema / properties / items / items / properties / media_type / description
      Previous value: -"texts, movies, audio, image, software or data."New value: +"The kind the catalogue files this row under, in the Archive's own words. Most rows carry one of texts, movies, audio, image, software or data, and some carry a kind the filter cannot ask for, such as 'collection' for a page gathering items rather than an item itself."
  3. Changed1 schema field changedv1.4.0
    • changedInput schema / properties / sort / description
      Previous value: -"'downloads' surfaces what people actually read, which relevance alone often buries."New value: +"'downloads' surfaces what people actually read, which relevance alone often buries. 'oldest' and 'newest' rank on a declared date, not on when a thing was made."
  4. Changed1 schema field changedv1.3.0
    • addedInput schema / additionalProperties
      Added value: +false
  5. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavioral context beyond the read-only annotations: matching includes descriptions, so compilations can rank alongside an author's own works, and date sorting/filtering operates on a depositor-entered field with placeholders, fragment handling, and no era field. These are exactly the non-obvious traits an agent needs before invoking and interpreting the search.

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 front-loaded with the search scope and remains dense with useful caveats, but it is a long single paragraph. A little more structure would improve scanability, though most sentences carry real information.

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 output schema and annotations, the description covers the important ambiguities: metadata-only matching, creator attribution risk, media type mixing, date-field behavior, and the identifier needed by get_item. Nothing essential for correct selection or invocation is 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?

Goes well beyond the 71% schema coverage by explaining that oldest/newest/year_from/year_to all read the same declared-date field, including placeholder and fragment quirks and the lack of era information. It also explains why media_type should be set and how description matching affects results, while the remaining page/limit parameters are conventional pagination controls.

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 the Internet Archive catalogue) and lists the material types covered. It clearly differentiates itself from search_inside and get_item by explaining that it searches metadata rather than scan contents or item 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?

Gives explicit routing for search_inside when looking for a phrase within a book, and tells the agent to set media_type whenever the material type is known. It also warns the agent to inspect 'creator' before treating a result as that person's work, though it does not mention when to prefer the sibling search_books tool.

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