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.cyanheads/libofcongress-mcp-server

REMOTE · LIBOFCONGRESS.CASEYJHAND.COM · 2 COMPONENTS

Search LOC digital collections, Chronicling America newspapers (full OCR), and LC Subject Headings.

+3 this week 86 Trust /100

Last scanned (2 hours ago)

Scores higher than 93% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Education and Research

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3395 tokens (~485/item across 7 items; 6 tools + 1 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 Management83
  • Stability check failed: schema churn in the 30 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 1 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
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.

  • 3 Nov 26 +3
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “libofcongress_search_items” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_browse_collections” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_search_newspapers” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_search_subjects” rewrote its description, which is the text the model reads security
    • Schema quality: 3072 → 3395 ▼ functional
    • First check of Schema quality: 100 functional
    • New resource “libofcongress-guide” functional
    • Server version: 0.5.1 → 0.6.0 functional
    • “libofcongress_search_items” added an optional parameter “sort” cosmetic
    • “libofcongress_search_newspapers” added an optional parameter “sort” cosmetic
    • “libofcongress_search_subjects” added an optional parameter “offset” cosmetic
    • “libofcongress_search_items” reworded the description of “collection_slug” cosmetic
    • “libofcongress_search_items” reworded the description of “query” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “state” cosmetic
    • “libofcongress_search_subjects” reworded the description of “limit” cosmetic
  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 77.

  • 15 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “libofcongress_search_newspapers” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_search_items” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_get_newspaper_page” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_search_subjects” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_get_item” rewrote its description, which is the text the model reads security
    • Schema quality: 268 → 512 ▼ functional
    • Schema quality: 268 → 438 ▼ functional
    • Server version: 0.5.0 → 0.5.1 functional
    • Server version: 0.4.0 → 0.5.0 functional
    • “libofcongress_get_newspaper_page” added an optional parameter “match” cosmetic
    • “libofcongress_get_item” added an optional parameter “page_offset” cosmetic
    • “libofcongress_get_item” added an optional parameter “page_limit” cosmetic
    • “libofcongress_get_item” added an optional parameter “include_files” cosmetic
    • “libofcongress_search_items” added an optional parameter “include_facets” cosmetic
    • “libofcongress_search_items” reworded the description of “subject” cosmetic
    • “libofcongress_search_items” reworded the description of “location” cosmetic
    • “libofcongress_search_items” reworded the description of “limit” cosmetic
    • “libofcongress_search_items” reworded the description of “date_end” cosmetic
    • “libofcongress_get_newspaper_page” reworded the description of “page_url” cosmetic
    • “libofcongress_search_subjects” reworded the description of “limit” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “state” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “newspaper_title” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “limit” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “date_start” cosmetic
    • “libofcongress_search_newspapers” reworded the description of “date_end” cosmetic
    • “libofcongress_get_item” reworded the description of “item_id” cosmetic
    • “libofcongress_browse_collections” reworded the description of “limit” cosmetic
  • 14 Oct 26 −2
    • Stability: 0.80 → fail ▼ security
    • Tool “libofcongress_search” was removed ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “libofcongress_search_subjects” rewrote its description, which is the text the model reads security
    • Tool “libofcongress_get_item” rewrote its description, which is the text the model reads security
    • Server version: 0.3.1 → 0.4.0 functional
    • New tool “libofcongress_search_items” functional
    • “libofcongress_get_item” reworded the description of “item_id” cosmetic
  • 12 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 77. That category is still filling its 30-day observation window: 21 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.

  • 10 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 70. That category is still filling its 30-day observation window: 19 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.

  • 8 Oct 26 +1
    • Server version: 0.3.0 → 0.3.1 functional
  • 6 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 57. That category is still filling its 30-day observation window: 15 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.

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 5 Nov 2026 · Probed https://libofcongress.caseyjhand.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=caseyjhand.com CN=WE1,O=Google Trust Services,C=US 2 Nov 2026 31 Jan 2027 ECDSA 256 ECDSA-SHA256 995a30681ab772540e934241ca1d576c
SANs: caseyjhand.com, *.caseyjhand.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of libofcongress.caseyjhand.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
caseyjhand.com. present 2371 13 Verified
libofcongress.caseyjhand.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://libofcongress.caseyjhand.com/mcp Verified 200
http (plaintext) http://libofcongress.caseyjhand.com/mcp HTTPS enforced 301 https://libofcongress.caseyjhand.com/mcp
MCP tools · 6 exposed · ~3,154 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
libofcongress_browse_collections ~222

List and browse Library of Congress curated digital collections. Returns collection names, descriptions, item counts, slugs, and URLs. Optionally filter by keyword. Collections are curated subsets of the digital holdings with specific focuses (e.g., "Civil War Glass Negatives", "Baseball Cards", "WPA Posters"). Pass a returned slug to libofcongress_search_items.collection_slug to search within it; use query "*" to browse matching records, optionally with format, date and sort filters. Use the returned URL to navigate directly to a collection on loc.gov.

NameTypeReqDescription
limitinteger–Maximum number of collections to return. Default 25. A page holds at most 100 collections: a larger limit (up to 1000) is served as a 100-collection page, and page then counts 100-collection pages.
pageinteger–1-indexed page number for paginating results.
querystring–Optional keyword to filter collections by name or description. Omit to list all collections.
NameTypeReqDescription
collectionsarray–LOC curated collections matching the keyword filter, or all collections when no keyword is specified.
effectiveLimitnumber–The page size actually served when limit exceeded the per-call cap of 100. Absent when limit was within the cap.
errorobject–Present when the call failed. Absent on success.
has_nextboolean–True when more pages are available after this one.
noticestring–Recovery hint when results are empty or a page is out of range — suggests broadening the keyword or removing filters — plus disclosure of a capped limit. Absent on ordinary result pages.
pagenumber–Current 1-indexed page number.
pagesnumber–Total number of pages available.
totalnumber–Total number of matching collections across all pages.
totalCountnumber–Total matching collections — mirrors output.total for agent reasoning.

No examples provided.

libofcongress_get_item ~626

Retrieve the full metadata record for a specific LOC digital item. Returns the imprint (place, publisher, and date of publication), contributors, LCSH subject headings and the subject terms the search subject filter accepts, summary, languages, locations, rights information, physical description, call number, original and online formats, access restrictions, former catalog IDs, notes, and related items, plus the item's digital resources (each with its page count, representative image, PDF, and audio) and a window of its pages. Each page has a page_url and has_text; pass a page_url with has_text true to libofcongress_get_newspaper_page to read that page's text (newspaper, book, and manuscript pages alike). A long item lists 50 pages per call: continue with page_offset set to next_page_offset. Set include_files for each listed page's downloadable files (TIFF, JP2, JPEG sizes, text). Use after libofcongress_search_items on a result whose is_item is true. Pass the result id — a simple ID, an LCCN, or a slash-separated newspaper path — or a loc.gov item link (`https://www.loc.gov/item/<id>/`) or LCCN permalink (`https://lccn.loc.gov/<lccn>`), which is read as its id. Non-item results (is_item: false) — collections, exhibits, guides, newspaper pages, catalog.loc.gov records, hdl.loc.gov finding aids — have no item record and cannot be retrieved here.

NameTypeReqDescription
include_filesboolean–Also list the download URLs of each listed page's files — every JPEG size, the JP2 and TIFF masters, OCR XML, and text files. Default false.
item_idstringyesLOC item id from a libofcongress_search_items result's "id" field (where is_item is true): a simple ID ("2009632251", "2005691065") or a slash-separated path for newspaper issues ("sn95047246/1935-09…
page_limitinteger–Pages to list. Default 50. A response lists at most 100 pages: a larger page_limit (up to 1000) is served as 100.
page_offsetinteger–Index of the first page to list, 0-based across all of the item's resources. Default 0. Pass next_page_offset from the previous response to continue.
NameTypeReqDescription
access_restrictedboolean–True when LOC restricts access to the original. Absent when upstream omits it.
call_numberstring–LOC call number — the shelf location for requesting the physical original.
contributorsarray–Contributors, creators, or photographers as LOC catalogs them, role included (e.g., "Washington, George, 1732-1799 (Author)"). One person can appear once per role. Empty when LOC lists none.
datestring–Publication or creation date as LOC catalogs it: free text, a year, or a full date (e.g., "1936 Apr.", "1909-1911.", "1894", "1912-04-16"). Absent when LOC records only a coded value ("uuuu", "||||")…
effectivePageLimitnumber–The page_limit actually served when page_limit exceeded the per-call cap of 100. Absent when page_limit was within the cap.
errorobject–Present when the call failed. Absent on success.
former_idsarray–Superseded catalog identifiers or URLs this item was previously known by.
imprintstring–Imprint as LOC catalogs it: place, publisher, and date of publication (e.g., "New York : Werner School Book Company, c1900."), or a date alone on many photos and manuscripts ("1936 Apr."). Absent whe…
item_idstring–LOC item ID: the input item_id, or the id read from the loc.gov item link or LCCN permalink passed as item_id.
languagesarray–Languages of the item (e.g., "english").
locationsarray–Places the item depicts or originates from (e.g., "united states").
next_page_offsetnumber–page_offset for the next window of pages. Absent when this window reaches the last page.
notesarray–Descriptive notes and annotations from catalogers.
noticestring–Set when page_offset is past the last page, or when page_limit was capped. Absent otherwise.
online_formatsarray–Formats the digitized surrogate is available in (e.g., "image").
original_formatsarray–Material types of the original (e.g., "photo, print, drawing").
page_totalnumber–Pages across all of the item's resources.
pagesarray–The window of the item's pages starting at page_offset, across every resource in order. Empty when the item has no pages or page_offset is past the last page.
physical_descriptionstring–Physical or technical description of the original item.
related_itemsarray–IDs or URLs of related LOC records for follow-up retrieval; a title stands in for a related record LOC gives neither for.
resourcesarray–The item's digital resources, in LOC order. Empty when no digital surrogate exists.
rights_informationstring–Rights and reproduction statement for this item.
subject_headingsarray–Library of Congress Subject Headings (LCSH) assigned to this item, as cataloged (e.g., "United States--History--Civil War, 1861-1865"). Empty when the record carries none.
subject_termsarray–Subject terms LOC indexes this item under: lowercase heading components without dates (e.g., "civil war", "united states"). Each is a value the libofcongress_search_items subject filter accepts.
summarystring–Cataloger's abstract of the item's subject and historical context.
titlestring–Item title.
totalCountnumber–Pages across all resources — mirrors output.page_total for agent reasoning.
urlstring–Canonical LOC item URL.

No examples provided.

libofcongress_get_newspaper_page ~673

Retrieve the full text of one LOC page — a historical newspaper page, or a book or manuscript page — or, with match, only the passages around your search terms, with its publication metadata: for newspapers the title, issue date, place of publication, indexed states, and edition; for every page its sequence, the page count, and the item_title and item_id of the issue, book, or manuscript it belongs to — pass item_id to libofcongress_get_item to list every page of the item. Pass the url field from a libofcongress_search_newspapers result, or a pages[].page_url from libofcongress_get_item (has_text true), or a Chronicling America page link (…/ed-N/seq-M/) — do not construct this URL manually. A dense newspaper page runs to 50,000 characters: to find the article a search hit on, pass the search query as match and read the passages around it rather than the whole page. The text is OCR, or for some manuscripts a volunteer transcription; OCR quality varies by digitization batch and era, and 19th-century and degraded materials may contain fragmented text, garbled words, and line-break artifacts that are surfaced as-is. When a page exists but has no digitized text, ocr_available is false and ocr_text is empty — this is a data property, not an error.

NameTypeReqDescription
matchstring–Return the passages around these terms instead of the whole page — pass the query you gave libofcongress_search_newspapers (e.g., titanic, or "the titanic" iceberg); the q= in a search result url is…
page_urlstringyesA LOC page URL: the url field from a libofcongress_search_newspapers result (e.g., "https://www.loc.gov/resource/sn83045462/1905-03-15/ed-1/?sp=1"), or a pages[].page_url from libofcongress_get_item…
NameTypeReqDescription
datestring–Issue publication date (YYYY-MM-DD).
editionstring–Edition number of the issue (e.g., "1"). Absent when LOC gives none.
errorobject–Present when the call failed. Absent on success.
item_idstring–ID of the item this page belongs to: the newspaper issue (e.g., "sn83030214/1912-04-16/ed-1"), book, or manuscript volume (e.g., "mm77093930"). Pass it to libofcongress_get_item to list every page of…
item_titlestring–Title of the item this page belongs to, on every page type: the book or manuscript title, or for a newspaper page the issue title with place and date (e.g., "New-York tribune (New York [N.Y.]), April…
match_countinteger–Present when match is set and text retrieval did not fail: occurrences of every match term on the page, including those beyond the passages returned. 0 when nothing matched or the page has no text. A…
matchesarray–Present when match is set and text retrieval did not fail: passages of the page text around the occurrences of the match terms, in page order — about 300 characters either side of each occurrence, ov…
newspaper_titlestring–Title of the newspaper publication. Absent when LOC gives none.
noticestring–Set when ocr_available is true but the page's text came back empty, saying why: the text service did not answer this call (retry), its answer could not be read as text (retrying will not help), or th…
ocr_availableboolean–True when LOC lists OCR or transcribed text for this page, even if the text it returns is empty (see notice). False for image-only pages where no text has been produced.
ocr_textstring–Full plain text of this page: OCR, or for some manuscripts a volunteer transcription. Empty string when match is set (read matches instead), when ocr_available is false, or when the page is blank or…
page_urlstring–The LOC resource URL for this page, in the https://www.loc.gov/resource/…?sp=N form the input was read as.
place_of_publicationstring–Where the newspaper was published, as LOC catalogs it (e.g., "Charleston, S.C."). Absent when LOC gives none.
segment_countnumber–Number of pages in the issue, volume, or folder. Absent when LOC gives none.
sequencenumber–Page sequence number within the issue, volume, or folder.
statesarray–Every state or province LOC indexes this newspaper title under (e.g., ["georgia", "south carolina"]), in LOC order — possibly more than the place of publication. Absent when LOC lists none.

No examples provided.

libofcongress_search_items ~789

Search the Library of Congress digital collections by keyword. Optionally filter by material format (photos, maps, newspapers, audio, etc.), date range, subject heading, or geographic location, or scope the search to a single curated collection with collection_slug. Returns item summaries with titles, dates, descriptions, LOC IDs, and format tags. Each result carries is_item: pass the id of a result where is_item is true to libofcongress_get_item for full metadata. Non-item resources include collections, exhibit and research-guide pages, newspaper pages, catalog.loc.gov records, and hdl.loc.gov finding aids. When page_url is present, pass it to libofcongress_get_newspaper_page, optionally using the search query as match; its item_id identifies the issue. A link_notice warns that a retired catalog URL no longer opens its record; otherwise follow a non-item url. Use libofcongress_search_subjects to find an LCSH heading for the subject filter. To discover the subject and location values the filters accept for a search, set include_facets to get its top subject_facets and location_facets.

NameTypeReqDescription
collection_slugstring–Scope the search to one curated collection. Pass a slug exactly as returned by libofcongress_browse_collections to libofcongress_search_items.collection_slug (e.g., "aaron-copland") — slugs are not d…
date_endinteger–End year for date filter, inclusive (e.g., 1930). Omit to run through the current year.
date_startinteger–Start year for date filter, inclusive (e.g., 1920). Omit for no lower bound.
formatstring–Material type filter. Options: photo, map, newspaper, manuscript, audio, film, book, notated-music. Omit to search all formats.
include_facetsboolean–Also return subject_facets and location_facets: LOC's top subject and location terms across every match, with counts — the values the subject and location filters accept. Default false: facets add ti…
limitinteger–Results per page. Default 25. A page holds at most 100 results: a larger limit (up to 1000) is served as a 100-result page, and page then counts 100-result pages.
locationstring–Geographic location filter (e.g., "oklahoma", "washington d.c."). Lowercase, matches LOC location facets; location_facets (include_facets) lists values for a search.
pageinteger–1-indexed page number for paginating results.
querystringyesFull-text search across metadata and available descriptive text. Use "*" to match all records within the applied filters; relevance order can differ from a queryless LOC browse.
sortstring–Result order: relevance (default), date (oldest first), or date_desc (newest first). Uses LOC catalog dates and upstream ordering.
subjectstring–Subject filter: an LCSH heading from libofcongress_search_subjects (e.g., "World War, 1939-1945", "United States--History--Civil War, 1861-1865") or a subject term from subject_facets (include_facets…
NameTypeReqDescription
effectiveCollectionSlugstring–The collection the search was scoped to, after trimming. Absent when the search covered all of LOC.
effectiveLimitnumber–The page size actually served when limit exceeded the per-call cap of 100. Absent when limit was within the cap.
effectiveQuerystring–The query as submitted to the LOC API, after trimming.
effectiveSortstring–Applied LOC result order, including empty and out-of-range pages.
effectiveSubjectTermsarray–The subject terms the subject filter was sent as, all required to match. Absent when no subject filter was given.
errorobject–Present when the call failed. Absent on success.
has_nextboolean–True when a retrievable next page follows this one. Never promises a page past LOC's ~100,000-item retrieval ceiling.
itemsarray–Item summaries matching the search query and filters.
location_facetsarray–LOC's top location terms across every item matching this search (up to 10), most frequent first. Pass a value as the location filter to narrow the search. Present only when include_facets is true; em…
noticestring–Recovery hint when results are empty or a page is out of range — echoes applied filters, subject terms and location included, and suggests how to broaden — plus disclosure of a capped limit or of the…
pagenumber–Current 1-indexed page number.
pagesnumber–Total retrievable pages. For result sets larger than LOC will page through (~100,000 items) this is capped, and a notice discloses how to reach the rest (partition by date/subject/location).
subject_facetsarray–LOC's top subject terms across every item matching this search (up to 10), most frequent first. Pass a value as the subject filter to narrow the search. Present only when include_facets is true; empt…
totalnumber–Total number of matching items across all pages.
totalCountnumber–Total matching items across all pages — mirrors output.total for agent reasoning.

No examples provided.

libofcongress_search_newspapers ~595

Search historical newspaper pages in the Chronicling America corpus. Returns matching pages with the opening of each page's OCR text (~500 characters), publication title, date, the states LOC indexes the title under, and the page URL needed for libofcongress_get_newspaper_page. Filters by keyword, date range, indexed state/province, and newspaper title. The excerpt is the page's first lines, not the text around the match: to read where the query occurs, call libofcongress_get_newspaper_page with the returned url field and this query as its match, which returns the passages around each occurrence; omit match for the full page text. OCR quality varies: 19th-century and degraded materials may contain fragmented or garbled text.

NameTypeReqDescription
date_end––End of the date filter, inclusive, in the same forms as date_start (e.g., 1920 or "1912-04-16"). A year or month ends on its last day, so "1912-04" runs through April 30. Omit to run through the curr…
date_start––Start of the date filter, inclusive: an integer year (e.g., 1900) or a "YYYY", "YYYY-MM", or "YYYY-MM-DD" string (e.g., "1912-04-15"); month and day may be one or two digits. A year or month starts o…
limitinteger–Results per page. Default 25. A page holds at most 100 results: a larger limit (up to 1000) is served as a 100-result page, and page then counts 100-result pages.
newspaper_titlestring–Filter to one newspaper. Pass the newspaper_title value of a libofcongress_search_newspapers result exactly (case-insensitive), e.g., "new-york tribune (new york [n.y.]) 1866-1924" — the full catalog…
pageinteger–1-indexed page number for paginating results.
querystringyesKeyword search across OCR text and newspaper metadata.
sortstring–Result order: relevance (default), date (oldest first), or date_desc (newest first). Uses LOC catalog dates and upstream ordering.
statestring–Filter by LOC's State/Province facet: a full indexed name (e.g., "oklahoma", "piedmont") or a supported US postal code (e.g., "OK", "NY"), case-insensitive. Use "district of columbia" (or "DC") for W…
NameTypeReqDescription
effectiveLimitnumber–The page size actually served when limit exceeded the per-call cap of 100. Absent when limit was within the cap.
effectiveQuerystring–The keyword query as submitted to the Chronicling America API, after trimming.
effectiveSortstring–Applied LOC result order, including empty and out-of-range pages.
errorobject–Present when the call failed. Absent on success.
has_nextboolean–True when a retrievable next page follows this one. Never promises a page past LOC's ~100,000-item retrieval ceiling.
itemsarray–Newspaper page results matching the search query and filters.
noticestring–Recovery hint when results are empty or a page is out of range — echoes applied filters and suggests how to broaden — plus disclosure of a capped limit or of the retrieval ceiling. Absent on ordinary…
pagenumber–Current 1-indexed page number.
pagesnumber–Total retrievable pages. For result sets larger than LOC will page through (~100,000 pages) this is capped, and a notice discloses how to reach the rest (partition by date/state).
totalnumber–Total number of matching newspaper pages in the result set.
totalCountnumber–Total matching newspaper pages — mirrors output.total for agent reasoning.

No examples provided.

libofcongress_search_subjects ~249

Search Library of Congress Subject Headings (LCSH) by keyword. Returns authorized subject headings and their URIs in a stable paged order, promoting an exact match from the first 50 results to the start; a partial word with no keyword match returns the headings that begin with it. Use the returned label as the subject filter in libofcongress_search_items — LCSH uses precise, standardized terms that differ from natural language (e.g., "World War, 1939-1945" not "World War II"; "Aerial photography" not "Photography, Aerial"). Running this tool before a subject-filtered libofcongress_search_items dramatically improves result quality.

NameTypeReqDescription
limitinteger–Maximum number of subject headings to return. Default 10. A call returns at most 250 headings; a larger limit (up to 1000) returns up to 250.
offsetinteger–Zero-based position in the matching headings. Continue with next_offset from the previous response.
querystringyesKeyword or partial subject heading to search for (e.g., "civil war", "immigration", "jazz").
NameTypeReqDescription
capnumber–The heading limit applied to this response.
effectiveLimitnumber–The heading count actually applied when limit exceeded the per-call cap of 250. Absent when limit was within the cap.
effectiveQuerystring–The query as submitted to the id.loc.gov subject suggest endpoint, after trimming.
errorobject–Present when the call failed. Absent on success.
next_offsetnumber–Zero-based position to request next. Absent on the final or past-end page.
noticestring–Continuation instructions, a past-end or no-match recovery hint, and disclosure of a capped limit. Absent on an uncapped final page.
shownnumber–Number of subject headings returned in this response.
subjectsarray–A page of matching LCSH headings in the same order across offsets and limits. An exact match from the initial 50 entries is promoted to the start. To see how many LOC items carry a heading, pass its…
totalnumber–Number of subject headings returned.
truncatedboolean–True when another page follows. Continue with next_offset to see the remaining headings.

No examples provided.

Install

How do I install the io.github.cyanheads/libofcongress-mcp-server server?

io.github.cyanheads/libofcongress-mcp-server is a hosted endpoint at https://libofcongress.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · libofcongress.caseyjhand.com

# add to Claude Code
claude mcp add --transport http cyanheads-libofcongress-mcp-server 'https://libofcongress.caseyjhand.com/mcp'
Common questions

What is the io.github.cyanheads/libofcongress-mcp-server server?

io.github.cyanheads/libofcongress-mcp-server is listed in the public MCP registry as io.github.cyanheads/libofcongress-mcp-server. Search LOC digital collections, Chronicling America newspapers (full OCR), and LC Subject Headings. This page covers its hosted endpoint (https://libofcongress.caseyjhand.com/mcp).

Is the io.github.cyanheads/libofcongress-mcp-server server safe to use?

io.github.cyanheads/libofcongress-mcp-server scores 86 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.cyanheads/libofcongress-mcp-server server expose?

io.github.cyanheads/libofcongress-mcp-server exposes 6 tools: libofcongress_search_items, libofcongress_get_item, libofcongress_search_newspapers, libofcongress_get_newspaper_page, libofcongress_search_subjects, libofcongress_browse_collections. Their descriptions and schemas cost roughly 3,154 tokens of context every time the server is loaded.

Does the io.github.cyanheads/libofcongress-mcp-server server require authentication?

No. We connected to io.github.cyanheads/libofcongress-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the io.github.cyanheads/libofcongress-mcp-server server still maintained?

io.github.cyanheads/libofcongress-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.