# io.github.smeet666/mcp-libraryofcongress (mcpb · mcp-libraryofcongress-3.0.1.mcpb)

Search inside scanned US newspapers and browse the Library of Congress catalogue. No API key.

- Trust score: 52/100 (low)
- Change this week: −1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-28

## Components

- mcpb · `mcp-libraryofcongress-3.0.1.mcpb`: 52/100 (this document), [markdown](https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib.md), [page](https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib)
- npm · `mcp-libraryofcongress`: 92/100, [markdown](https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/mcp-libraryofcongress.md), [page](https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/mcp-libraryofcongress)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/smeet666/mcp-libraryofcongress/releases/download/v3.0.1/mcp-libraryofcongress-3.0.1.mcpb`
- Version: `3.0.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-28.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 29 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2171 tokens (~542/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 93% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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

### How do I install the io.github.smeet666/mcp-libraryofcongress server?

io.github.smeet666/mcp-libraryofcongress ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. The MCP registry declares no SHA-256 for this bundle, so there is no published digest to check the download against.

- Download bundle: `https://github.com/smeet666/mcp-libraryofcongress/releases/download/v3.0.1/mcp-libraryofcongress-3.0.1.mcpb`

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-28 (score 52, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 52, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 51, −3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 54, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-21 (score 53, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 52, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 51, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-15 (score 50, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (4)

### `search_newspapers` (~629 tokens)

Search inside scanned newspaper pages

Search the text inside digitised American newspaper pages held by the Library of Congress. 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. Double quotes change how the Library matches the words, and it decides what they mean: a page can come back carrying the words apart or in another order rather than the phrase as written. What the quotes do to the number of matching pages varies from one query to the next, so run the search both ways rather than expecting either form to return more. 'total' counts the pages 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 words occur. Each match names the newspaper, the date, the leaf of the issue and the state it was published in, and 'source_url' opens that leaf with the query applied. 'location' keeps to papers published in one state, 'publication' to a single paper, and 'year_from' with 'year_to' to a span of years. A filter matching nothing is dropped and the answer says so. Every match carries 'excerpt_kind', and the excerpts are labelled with it in the text. A 'passage' is the text around the words that matched. A 'page_opening' is the start of the page, sent because the text the Library returned with the row stops before those words appear, so it does not carry the match and quoting it quotes something else. Use search_items instead when looking for a work by its title, creator or subject.

Input parameters:

- `limit` (integer): Matches to return.
- `location` (string): The state a paper was published in, written as the Library writes it: 'new york', 'district of columbia'. It is the value 'state' carries on the matches this tool returns.
- `max_excerpt_chars` (integer): Budget 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_match` (integer): Passages to keep per match. A page holding the words several times yields several, and the later ones rarely say anything the first did not.
- `page` (integer): Which page of matches, from 1.
- `publication` (string): One newspaper, named with its town and the years it ran: 'new-york tribune (new york [n.y.]) 1866-1924'. Take the wording from 'publication' on a match here, or from a title in search_items with medi…
- `query` (string, required): Words or a quoted phrase, such as '"cure for influenza"'. The index reads the text off the pages themselves and holds single characters, so a query of one character is a query it answers.
- `year_from` (integer): Earliest year, inclusive.
- `year_to` (integer): Latest year, inclusive.

Output parameters:

- `hits` (array)
- `notes` (array)
- `page` (integer)
- `query` (string)
- `total` (integer): Newspaper pages that match, not the number returned and not a count of occurrences. Raise 'page' to read further into it.

### `search_items` (~502 tokens)

Search the catalogue

Search the Library of Congress catalogue: books, photographs, maps, recordings, films, manuscripts, sheet music and newspaper titles. 'media_type' is required, because the Library keeps a separate catalogue for each kind of thing. This matches titles, creators and catalogue descriptions. It does not read the text inside a scan; use search_newspapers for a phrase printed on a newspaper page. Filters take the words the Library itself uses: 'subject' and 'location' as the rows here spell them, 'language' written in English, 'collection' as list_collections reports it under 'collection_filter'. A filter matching nothing is set aside and the search asked again without it; the answer names what was dropped, and the count it reports is then the unfiltered search's. By default only material with a digitised copy is returned; set 'online_only' to false to take in records the Library holds on a shelf alone. A row carries an 'identifier' get_item takes when it names a record. A row that is a collection the Library gathered names no record: 'is_collection' is true there, 'identifier' is null, and 'source_url' opens the collection.

Input parameters:

- `collection` (string): A collection, named exactly as list_collections reports it under 'collection_filter'.
- `language` (string): A language, written in English: 'english'.
- `limit` (integer)
- `location` (string): A place, such as 'oklahoma'.
- `media_type` (string, required): Which catalogue to search: books, photos, maps, audio, film-and-videos, manuscripts, notated-music or newspapers. 'newspapers' holds the papers themselves; a phrase printed on a page belongs in searc…
- `online_only` (boolean): Keep to material with a digitised copy. Set false to include shelf-only records.
- `page` (integer)
- `query` (string, required): Words to look for in titles, creators and catalogue descriptions. The catalogue index holds no word of a single letter, so at least one word has to run to two letters or more, unless it is written in…
- `sort` (string): Order of the results.
- `subject` (string): A subject heading, such as 'crime'.
- `year_from` (integer): Earliest year, inclusive.
- `year_to` (integer): Latest year, inclusive.

Output parameters:

- `items` (array)
- `notes` (array)
- `page` (integer)
- `query` (string)
- `total` (integer): Records matching across this catalogue for the search the rows come from, not the number returned. A filter that matched nothing is set aside, and this then counts the search without it, which the no…

### `get_item` (~313 tokens)

Read a record

Read one Library of Congress record by its identifier, as returned by search_items or search_newspapers. An identifier can carry slashes: a single newspaper issue is named by its paper, its date and its edition together. Sections are opt-in: 'basic' is the default and covers what a description needs. 'date' carries only the precision the record's own words support, and 'date_stated' repeats those words, which can be a span of years the record was filed at the opening of. Where the Library has established no date it files the record under a cataloguing code, which 'date_code' carries while 'date' and 'year' stay null. 'citations' returns the ready-made citations the Library publishes for the record. 'resources' lists the served copies, such as page images and downloadable files. 'full_metadata' returns every field the Library publishes for the record, which is large and rarely needed. A long description paginates: when 'next_offset' is not null, call again with 'offset' set to it.

Input parameters:

- `identifier` (string, required): Record identifier, such as '2017645459' or 'sn83045462/1929-02-03/ed-1'.
- `max_description_chars` (integer): Characters of the description to return in one call.
- `offset` (integer): Where to resume the description.
- `sections` (array): Which parts to return. Each one beyond 'basic' adds to the size of the answer.

Output parameters:

- `call_number`
- `citations` (object)
- `description`
- `full_metadata` (object)
- `item` (object)
- `language` (array)
- `location` (array)
- `next_offset`: Pass as 'offset' to read the rest of the description. Null when it ends here.
- `notes` (array)
- `notes_on_record` (array): Notes the Library published about the record itself, less any whose words the description already carries. The Library assembles the description of some records out of these notes, and those records…
- `offset` (integer)
- `part_of` (array): Collections and divisions the record sits in.
- `repository`: Where the original is held.
- `resources` (array)
- `rights`: What the Library says about reuse. Null when it says nothing, which is not permission.
- `subjects` (array)

### `list_collections` (~230 tokens)

List the digital collections

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 parameters:

- `limit` (integer): Collections to return.
- `max_description_chars` (integer): Budget for one collection's description.
- `page` (integer): Which page of collections, from 1.
- `searchable_only` (boolean): Keep only the collections whose formats name a media_type, which are the ones search_items can be asked for.

Output parameters:

- `collections` (array)
- `notes` (array)
- `page` (integer)
- `total` (integer): Collections the Library publishes, not the number returned.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib#diagnostics

## Score history

- 2026-09-28: 52
- 2026-09-27: 52
- 2026-09-26: 51
- 2026-09-25: 51
- 2026-09-24: 54
- 2026-09-23: 54
- 2026-09-22: 53
- 2026-09-21: 53
- 2026-09-20: 52
- 2026-09-19: 52
- 2026-09-18: 51
- 2026-09-17: 51
- 2026-09-16: 50
- 2026-09-15: 50
- 2026-09-14: 49
- 2026-09-13: 49
- 2026-09-12: 49
- 2026-09-11: 48
- 2026-09-10: 48
- 2026-09-09: 47
- 2026-09-08: 47
- 2026-09-07: 46
- 2026-09-06: 46
- 2026-09-05: 42
- 2026-09-04: 42
- 2026-09-03: 42
- 2026-09-02: 42
- 2026-09-01: 42
- 2026-08-31: 42
- 2026-08-30: 42

## Common questions

### What is the io.github.smeet666/mcp-libraryofcongress server?

io.github.smeet666/mcp-libraryofcongress is listed in the public MCP registry as io.github.smeet666/mcp-libraryofcongress. Search inside scanned US newspapers and browse the Library of Congress catalogue. No API key. This page covers its MCPB bundle (https://github.com/smeet666/mcp-libraryofcongress/releases/download/v3.0.1/mcp-libraryofcongress-3.0.1.mcpb).

### Is the io.github.smeet666/mcp-libraryofcongress server safe to use?

io.github.smeet666/mcp-libraryofcongress scores 52 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.smeet666/mcp-libraryofcongress server expose?

io.github.smeet666/mcp-libraryofcongress exposes 4 tools: search_newspapers, search_items, get_item, list_collections. Their descriptions and schemas cost roughly 1,674 tokens of context every time the server is loaded.

### What licence is the io.github.smeet666/mcp-libraryofcongress server under?

io.github.smeet666/mcp-libraryofcongress declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/smeet666/mcp-libraryofcongress
- Changelog RSS feed: https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib.xml
- Changelog JSON feed: https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib.json
- HTML version of this page: https://verifymcp.io/servers/smeet666-mcp-libraryofcongress/https-github-com-smeet666-mcp-libraryofcongress-releases-download-v3-0-1-mcp-lib
