loc-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@loc-mcpsearch for 'Brooklyn Bridge' in chronicling-america"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
loc-mcp
A CLI and MCP server for the Library of Congress JSON API: newspapers, books and manuscripts, all full-text indexed and all resolvable to the individual page.
Keyless, no registration, no affiliation required.
Scope
Searches cover the whole of loc.gov by default. --collection <slug> narrows to
one collection — chronicling-america for the historic newspapers, which is
where the bulk of the transcribed text lives.
There is nothing special-cased about the newspapers. The dedicated
chroniclingamerica.loc.gov API has been retired and that collection is now
reachable only as one collection of loc.gov, so it is simply one value of
--collection like any other.
Related MCP server: docsearch
Install
uv tool install .Commands
locgov search "<query>" [--pages N|N-M|all] [filters] [--json]
locgov snippets <reference> "<query>" # the query in context on that page
locgov get <reference> # OCR text, prints path to the cached fileA reference is the loc.gov URL printed for each search result. It is both the citation link and the argument the other two commands take.
$ locgov search '"Brooklyn Bridge"' --collection chronicling-america \
--from-year 1883 --to-year 1883 --per-page 2
# "Brooklyn Bridge" — 2363 results in chronicling-america, page 1 of 1182
[1] 1883-06-16 Image 2 of The Lincoln County leader (White Oaks, Lincoln County, N.M.), June 16, 1883
the lincoln county leader (white oaks, lincoln county, n.m.) 1882-189? · p. 2 · english · new mexico
https://www.loc.gov/resource/sn87090072/1883-06-16/ed-1/?sp=2Note the nested quotes. '"Brooklyn Bridge"' is a phrase search; "Brooklyn Bridge"
lets the shell strip the quotes and becomes an AND search, which on this same
1883 range reports 11,098 hits instead of 2,363.
Filters for search: --from-year, --to-year, --language, --state,
--title, --collection, --level, --per-page, --sort.
--sort takes relevance (default), date_asc or date_desc.
Query syntax
Bare words are ANDed, and "quoted phrases" match exactly.
There is no boolean OR and no NOT. The words OR and NOT, a leading -,
parentheses and | are all silently stripped from the query rather than
rejected:
Query | Hits |
| 3,212,711 |
| 594,470 |
| 594,470 |
| 594,470 |
The last three are the same AND query. Each variant of a term therefore needs its
own search, and a query written as (a OR b) quietly returns only pages holding
both. This is the single most important thing to know before planning a sweep
against this source.
Result totals are true counts
Unlike a relevance-ranked archive, loc.gov filters: the reported total is a real
count of matching pages, so it can be quoted as one and --sort date_asc is safe
on any query. The decade facet counts sum exactly to the reported total.
Pages, not documents
--level page is the default and resolves a hit to the individual page it sits
on, for a book or a manuscript exactly as for a newspaper. That is what makes
snippets and per-page text available. --level item returns whole documents
instead; those have no snippet service, and get on one downloads the entire
transcription in a single file.
Readability
By default search returns only material whose text can actually be retrieved
(online-format:online text). A hit that cannot be read is of no use, so this is
on unless you pass --include-unreadable, and anything unreadable that does slip
through is flagged in the output.
Cost
Requests are paced at one every four seconds, shared across processes, so
parallel callers share one budget. The Library publishes a limit of 20 requests
per minute and blocks an offending IP for a full hour, which is what the
conservative default is for. Override with LOC_MIN_REQUEST_INTERVAL only with
reason.
Budget in requests: search is one request per result page (up to 150 results
each), snippets and get are one request each after a one-off lookup per page
that is then memoised on disk — and search seeds that memo for every result it
returns. OCR downloads are cached under $XDG_CACHE_HOME/loc-mcp.
MCP server
uv run loc-mcp-installInstalls to Claude Code, Codex CLI and Gemini CLI. The CLI is the primary interface; the server exposes the same client.
License
Apache 2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for the Internet Archive's Wayback Machine. Search archived snapshots, extract page text from a specific date, track how a site has changed over time, check if broken links are recoverable, and perform research across Internet Archive collections.Last updated63MIT
- AlicenseAqualityDmaintenanceMCP server that enables searching and reading binary document files (PDF, DOCX, PPTX, XLSX, ODT, ODS, ODP, RTF, EPUB) using regex patterns and retrieving content by sections.Last updated2MIT
- FlicenseAqualityCmaintenanceEnables searching and retrieving historical records from the Library of Congress, including newspapers, photos, maps, manuscripts, audio, and film, via the Model Context Protocol.Last updated10
- AlicenseAqualityAmaintenanceMCP server for the Congress.gov API that tracks US federal legislative process, providing tools to search bills and get bill details.Last updated10Apache 2.0
Related MCP Connectors
MCP server for Open Archives: Dutch genealogical records and historical page transcriptions.
MCP server for Project Gutenberg — 75,000+ public-domain ebooks with full plain-text retrieval.
Internet Archive (archive.org) item search & metadata MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nestordemeure/loc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server