io.github.smeet666/mcp-libraryofcongress
MCPB · MCP-LIBRARYOFCONGRESS-2.1.0.MCPB · 2 COMPONENTS · SCANNED AUG 12
Search inside scanned US newspapers and browse the Library of Congress catalogue. No API key.
Available components
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 Usability59
- AI-judged instruction clarity (excellent).Pass
- 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. 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 Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 93% 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.
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-libraryofcongress-2.1.0.mcpb
Download bundleEvery 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 +2
- 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 38
First indexed and scored.
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-libraryofcongress/releases/download/v2.1.0/mcp-libraryofcongress-2.1.0.mcpb@2.1.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
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.
get_item Read a record ~313
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.
| Name | Type | Req | Description |
|---|---|---|---|
| identifier | string | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| call_number | – | yes | – |
| citations | object | – | – |
| description | – | yes | – |
| full_metadata | object | – | – |
| item | object | yes | – |
| language | array | yes | – |
| location | array | yes | – |
| next_offset | – | yes | Pass as 'offset' to read the rest of the description. Null when it ends here. |
| notes | array | yes | – |
| notes_on_record | array | yes | 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 | yes | – |
| part_of | array | yes | Collections and divisions the record sits in. |
| repository | – | yes | Where the original is held. |
| resources | array | – | – |
| rights | – | yes | What the Library says about reuse. Null when it says nothing, which is not permission. |
| subjects | array | yes | – |
No examples provided.
list_collections List the digital collections ~230
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| collections | array | yes | – |
| notes | array | yes | – |
| page | integer | yes | – |
| total | integer | yes | Collections the Library publishes, not the number returned. |
No examples provided.
search_items Search the catalogue ~502
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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 | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | – |
| notes | array | yes | – |
| page | integer | yes | – |
| query | string | yes | – |
| total | integer | yes | 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… |
No examples provided.
search_newspapers Search inside scanned newspaper pages ~629
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| hits | array | yes | – |
| notes | array | yes | – |
| page | integer | yes | – |
| query | string | yes | – |
| total | integer | yes | Newspaper pages that match, not the number returned and not a count of occurrences. Raise 'page' to read further into it. |
No examples provided.