Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.smeet666/mcp-archiveorg

MCPB · MCP-ARCHIVEORG-1.5.0.MCPB · 2 COMPONENTS · SCANNED AUG 12

Search inside digitised books, browse the Internet Archive catalogue and read Wayback captures.

40 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security13
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability60
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2441 tokens (~406/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage96
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 86% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

mcpb · mcp-archiveorg-1.5.0.mcpb

Download bundle
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 9 Aug 26 40

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 12 Aug 2026 · Analysed mcpb/https://github.com/smeet666/mcp-archiveorg/releases/download/v1.5.0/mcp-archiveorg-1.5.0.mcpb@1.5.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb
MCP tools · 6 exposed · ~2,122 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_item ~237

Read one Internet Archive item by its identifier, as returned by search_items or search_inside. Sections are opt-in: 'basic' is the default and covers what a description needs. 'files' lists the downloadable files, which on a scanned film or book run to dozens of derivatives, so filter by format when a particular one is wanted. 'full_metadata' returns every field the Archive publishes for the item, which is large and rarely needed. 'file_count' and 'total_bytes' are always reported, whether or not the file list was asked for.

NameTypeReqDescription
file_formatstringKeep only files of this format, such as 'PDF' or 'MP3'. Matched case-insensitively.
identifierstringyesArchive identifier, such as 'nasa'. It is the last part of an item's address rather than the address itself, and it is matched exactly, capitals included.
max_description_charsinteger
max_filesintegerCeiling on files returned.
sectionsarrayWhich parts to return. Each one beyond 'basic' adds to the size of the answer.
NameTypeReqDescription
collectionsarrayyesCollections the item sits in.
dateyes
descriptionyes
file_countintegeryesFiles the item holds, whatever this answer returned.
filesarray
full_metadataobject
itemobjectyes
languageyes
license_urlyesTerms the uploader attached, when they attached any.
notesarrayyes
publisheryes
total_bytesyes

No examples provided.

get_snapshot ~180

Find the Wayback Machine capture of a web page closest to a given date. Give 'at' to ask for a moment in time; leave it out for the most recent capture. The answer always states 'days_from_requested', because the closest capture can be years away from the date asked for: read it before describing what the page said on that date. It also states the address the capture is of, which the Wayback Machine can resolve to a neighbouring form of the one asked about. This finds the capture and links to it. It does not return the page's contents.

NameTypeReqDescription
atstringDate to aim for, as YYYY-MM-DD or a full ISO 8601 timestamp. Omit for the newest capture.
urlstringyesAddress to look up, such as 'lemonde.fr' or a full URL.
NameTypeReqDescription
notesarrayyes
requested_atyes
requested_urlstringyes
snapshotobjectyes

No examples provided.

list_snapshots ~279

List Wayback Machine captures of a web page, oldest first, with the dates they were taken. Answers how long a page has been archived and how often, which get_snapshot cannot. A capture whose content repeats the row before it is left out of the index answer. The index also holds one site under several addresses at once, such as its www form, its https form and a form carrying credentials, and returns them interleaved, so two consecutive rows can differ because the address differs rather than because the page did. Every row names the address it captured; read that before counting the captures of any one of them. A capture records when the crawler came, not when the page changed: the change happened somewhere between two dates. This route is slow, tens of seconds on a heavily archived address, and it is paged for that reason. To walk further back, pass the 'next_cursor' from the previous answer as 'cursor'. The index counts rows rather than positions, so there is no page number and no arithmetic to do: a null 'next_cursor' means the end of what it holds.

NameTypeReqDescription
cursorstringThe 'next_cursor' from a previous answer. Omit to start at the oldest capture.
limitintegerCaptures to return.
urlstringyesAddress to look up.
NameTypeReqDescription
firstyesEarliest capture in this answer, not in the whole history.
lastyesLatest capture in this answer, not in the whole history.
next_cursoryesPass back as 'cursor' to read the window after this one. Null at the end of the history.
notesarrayyes
returnedintegeryesCaptures in this answer.
snapshotsarrayyes
urlstringyes

No examples provided.

search_books ~646

Find a book on Open Library, the Internet Archive's catalogue of works, either by name or by description. Pass 'query' when you know what you are looking for: a title, an author. Free text matches parts of words and reads titles and authors together, so a name also finds works by authors whose name merely contains it: read 'authors' on each row before treating a result as that author's work. Pass the criteria instead when you do not, and they combine: 'subject' for what a work is catalogued under, 'place' for where it is set, 'time' for the period it treats, 'person' for who it is about, plus ranges on the year of first publication and on the page count. 'sort' by rating or by readers answers 'what is worth reading', which relevance alone does not. 'first_published_year' is the year Open Library derives from its edition records, and a reissue or a mistyped edition can put it centuries from the real date; 'newest' and 'oldest' rank on that field, so the rows carrying the doubtful years lead the order. Answers who wrote a book, when it first appeared and how many editions exist, which the item catalogue describes poorly because it holds one upload at a time. 'archive_identifiers' lists up to 3 scans of the work: pass one to get_item, or use it to read the book itself. 'scan_count' says how many the work has. A scan is one edition, and a work first printed centuries ago is often held only as a later reissue or a translation, so read the scan's own record before dating what it holds. Use this to identify a work, and search_inside to find a phrase within one.

NameTypeReqDescription
languagestringThree-letter code of the language, such as 'eng' or 'fre'.
limitinteger
pageinteger
pages_maxintegerLongest acceptable work. The count is a median across editions.
pages_minintegerShortest acceptable work.
personstringWho the work is about, such as 'Napoleon'.
placestringWhere the work is set, such as 'Shanghai'.
querystringTitle or author, as free text. Optional when a criterion below is given.
sortstring'rating' is how readers scored it, 'readers' is how many recorded reading it, and both answer a question relevance cannot. 'newest' and 'oldest' rank on 'first_published_year', which the index takes…
subjectstringWhat the work is catalogued under, such as 'grief' or 'spy stories'. Also carries prizes and lists, such as 'Booker Prize'.
timestringThe period the work treats, such as '20th century'.
year_fromintegerEarliest first publication.
year_tointegerLatest first publication.
NameTypeReqDescription
booksarrayyes
notesarrayyes
pageintegeryes
queryyesThe free text the caller sent, as it was sent. Null when the search was made of criteria alone.
searched_forstringyesWhat this answer answers, in words: the free text and every criterion applied.
totalintegeryesWorks matching, not the number returned.

No examples provided.

search_inside ~406

Search the text inside digitised books, newspapers and documents on the Internet Archive. This reads what optical recognition took off the scanned pages, so it finds a phrase that appears nowhere in a title or a catalogue record. Put a phrase in double quotes to hold the words together in that order. The index folds accents, case and punctuation before it matches, so the letters are not held: a quoted "bûcher" comes back on pages printing Bücher and Bucher. Read an excerpt before repeating a quoted query as the spelling a page carries. Without quotes the words are matched separately, which finds far more. 'total' counts the documents that match, and they page: ask for page 2, 3 and so on to see beyond the first answer. It is not a count of how many times the phrase occurs. The index reports no page number, so a match names the item and the passage, never a leaf. Follow source_url and search the item to find where the passage sits. When 'inside_container' is true the passage came from a document bundled inside the item, and the title, creator and year describe the container rather than the text that matched: read 'matched_file' for what actually holds it. Use search_items or search_books instead when looking for a work by its title, author or subject.

NameTypeReqDescription
limitintegerMatches to return.
max_excerpt_charsintegerBudget for one passage. Read it together with 'max_excerpts_per_match': the size of the answer is the product of the two and the number of matches.
max_excerpts_per_matchintegerPassages to keep per match. The index finds several in a long work, and the later ones rarely say anything the first did not.
pageintegerWhich page of matches, from 1. Paging stops at 100.
querystringyesWords or a quoted phrase, such as '"call me ishmael"'.
NameTypeReqDescription
hitsarrayyes
notesarrayyes
pageintegeryes
querystringyes
totalintegeryesDocuments that match, not the number returned and not a count of occurrences. Raise 'page' to read further into it.

No examples provided.

search_items ~374

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.

NameTypeReqDescription
limitinteger
media_typestringNarrow to one kind of thing. Strongly recommended.
pageinteger
querystringyesWords to look for in titles, creators and descriptions.
sortstring'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.
year_fromintegerEarliest year, inclusive, on the record's declared date, which carries no era.
year_tointegerLatest year, inclusive, on the record's declared date, which carries no era.
NameTypeReqDescription
itemsarrayyes
notesarrayyes
pageintegeryes
querystringyes
totalintegeryesItems matching across the catalogue, not the number returned.

No examples provided.