internet-archive-mcp-server
Server Details
Search the Wayback Machine and IA library (40M+ items), fetch snapshots, item metadata, and text.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/internet-archive-mcp-server
- GitHub Stars
- 4
- Server Listing
- @cyanheads/internet-archive-mcp-server
TDQS
Score is being calculated.
Available Tools
5 toolsia_find_snapshotsFind Wayback Machine SnapshotsRead-onlyIdempotentInspect
Find Wayback Machine snapshots of a URL. Mode "closest" returns the single nearest capture to a given timestamp via the Availability API, falling back to a CDX closest-capture query when the Availability API has no answer (one result). Mode "history" returns the full capture list via the CDX API — filterable by date range and HTTP status code, collapsed by default to one capture per day (collapse "timestamp:8"); collapse "timestamp:14" lists one row per distinct capture second. Use history mode to survey how a page changed over time; use closest mode when you need the snapshot nearest a specific date. History mode returns up to limit records (at most 10,000 per call) and supports resume-key pagination for URLs with very large capture histories.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of date range filter in YYYYMMDD format (history mode only). Example: "20231231". | |
| url | Yes | The URL to look up in the Wayback Machine. | |
| from | No | Start of date range filter in YYYYMMDD format (history mode only). Example: "20200101". | |
| mode | Yes | Lookup mode: "closest" returns the single nearest snapshot to the given timestamp; "history" returns the paginated full capture list via the CDX API. | |
| limit | No | Maximum number of CDX records to return (history mode only, default 100). One call returns at most 10,000: a larger value (up to 150,000) is served as 10,000, and the resume_key continues from there. | |
| collapse | No | CDX collapse parameter (history mode only). Format: "timestamp:N" where N is 1–14 (4=year, 6=month, 8=day, 10=hour, 14=second): consecutive captures sharing the first N timestamp digits are listed once. Omitted or blank, it is "timestamp:8", one capture per day. Pass "timestamp:14" for one row per distinct capture second. | |
| timestamp | No | Target timestamp in YYYYMMDDHHMMSS format (or any prefix thereof). Required for mode=closest. Example: "20200101" for January 1, 2020. | |
| resume_key | No | Opaque pagination key from a previous history mode response. Pass this to continue from where the last page left off. | |
| status_filter | No | Filter CDX results to a specific HTTP status code (history mode only). Must be a 3-digit numeric code. Example: "200" to return only successful captures. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit applied: limit, or 10,000 when a larger value was capped. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of snapshots returned. |
| notice | No | Set when the list was capped: how to continue, naming resume_key. |
| snapshots | No | List of snapshots matching the query. |
| truncated | No | True when the snapshot list was capped at the limit. |
| resume_key | No | Opaque key to pass as resume_key in the next call to continue paginating CDX history results. |
ia_get_itemGet Internet Archive ItemRead-onlyIdempotentInspect
Retrieve metadata and the file manifest for an Internet Archive item by identifier. Returns title, creator, description, subjects, collections, license, language, the total file count, and a page of files, each with its format, size, and direct download URL. Pages hold up to max_files files (default 50, at most 500 per call) starting at file_offset; set format to keep a single file type (e.g. "DjVuTXT", "Text PDF", "VBR MP3"). The primary tool to act on a search result from ia_search_items. Use ia_get_text to retrieve the readable text of a text item.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Keep only files whose format equals this value, ignoring case — e.g. "DjVuTXT", "Text PDF", "VBR MP3". Applied before paging. Omit to list every format. | |
| max_files | No | Maximum number of files to return (default 50). One call returns at most 500: a larger value (up to 300,000) is served as 500, with a notice naming the next file_offset. | |
| identifier | Yes | Internet Archive item identifier, e.g. "prideprejudice00aust" (Pride and Prejudice). Obtain from ia_search_items results. | |
| file_offset | No | Zero-based position in the (format-filtered) file list to start from (default 0). To read the next page, add the number of files returned to the previous file_offset, or pass the file_offset the notice names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page size applied: max_files, or 500 when a larger value was capped. |
| date | No | Publication or upload date when provided. |
| error | No | Present when the call failed. Absent on success. |
| files | No | This page of the manifest in upstream order — up to max_files files (at most 500) from file_offset, after the format filter. |
| shown | No | Number of files returned on this page. |
| title | No | Item title when provided by the metadata. |
| notice | No | Paging guidance with the next file_offset, or the formats present when the filter matched nothing. |
| rights | No | Rights statement when provided. |
| creator | No | Creator or author name(s) when provided. |
| subject | No | Subject or topic tag(s) when provided. |
| language | No | Language(s) of the item when provided. |
| mediatype | No | Media type (texts, audio, movies, etc.). |
| truncated | No | True when more files remain past this page. |
| collection | No | Collection(s) this item belongs to when provided. |
| file_count | No | Total number of files in the full item manifest, before filtering and paging. |
| identifier | No | The item identifier. |
| licenseurl | No | License URL when provided. |
| totalCount | No | Number of files matching the format filter, before paging. |
| description | No | Item description when provided. |
ia_get_snapshotGet Wayback Machine Snapshot ContentRead-onlyIdempotentInspect
Fetch the archived content of a URL at a specific Wayback Machine timestamp. Resolves to the nearest available capture when the exact timestamp has no snapshot. Returns the archived page as readable plain text (HTML stripped) and the replay URL of the capture Wayback served, for browser access. Use ia_find_snapshots first to discover valid timestamps for a URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL whose archived content to retrieve. | |
| timestamp | Yes | Target Wayback timestamp in YYYYMMDDHHMMSS format (or any prefix). The nearest available snapshot will be resolved and fetched. Example: "20200101120000" for noon on January 1, 2020. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | Readable plain text extracted from the archived HTML: scripts, styles, comments, and tags removed, character references decoded, whitespace collapsed. Capped at the server-configured IA_MAX_SNAPSHOT_CHARS limit (default 50 000 characters). Taken from at most the first 4 MiB of the page; a notice says so when a page is longer. |
| error | No | Present when the call failed. Absent on success. |
| notice | No | Set when the page is longer than the 4 MiB read limit: the text comes from its first bytes only. |
| replay_url | No | Wayback Machine replay URL (https://web.archive.org) of the capture the text came from — where the fetch ended after any redirect Wayback issued to the capture it served. |
| resolved_status | No | HTTP status Wayback replayed the capture the text came from with — the same capture as resolved_timestamp and replay_url. |
| resolved_timestamp | No | Timestamp (YYYYMMDDHHMMSS) of the capture the text came from, read from replay_url. |
ia_get_textGet Internet Archive Item TextRead-onlyIdempotentInspect
Retrieve the readable text content of a text item (OCR DjVuTXT or plain-text file) from the Internet Archive, with length-aware truncation and a continuation pointer for pagination. Suited for public-domain books, documents, scanned periodicals, and transcripts. Use max_chars and char_offset to page through long documents. To confirm the item has a text file first, call ia_get_item with format "DjVuTXT"; its response also gives the mediatype.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Maximum number of characters to return in this response. Defaults to the server-configured maximum (IA_MAX_SNAPSHOT_CHARS, typically 50 000); a larger value is served at that maximum, with a notice. Lower values reduce token usage. | |
| identifier | Yes | Internet Archive item identifier, e.g. "prideprejudice00aust" (Pride and Prejudice). Obtain from ia_search_items results. | |
| char_offset | No | Character offset to start reading from (default 0). To read the next page, add max_chars to the previous char_offset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | The text slice starting at char_offset up to max_chars characters. |
| error | No | Present when the call failed. Absent on success. |
| notice | No | Set when max_chars exceeded the server maximum (IA_MAX_SNAPSHOT_CHARS) and was served at it, naming the char_offset of the next page, or saying the page reaches the end of the document. |
| has_more | No | True when there is more text beyond this slice. Increment char_offset by max_chars to read the next page. |
| max_chars | No | Maximum characters this response could hold — the requested max_chars, or the server maximum when the request exceeded it. |
| char_offset | No | Character offset used for this response. |
| source_file | No | Filename of the source text file fetched from the item. |
| source_file_bytes | No | Size of the source text file in bytes, from the item manifest — a byte count, not a character count (non-ASCII text takes several bytes per character). Omitted when the manifest lists no size. |
ia_search_itemsSearch Internet Archive ItemsRead-onlyInspect
Search the Internet Archive library (40M+ items) using the Advanced Search (Solr) API. Filter by media type (texts, audio, movies, software, image, etc.), collection, creator, date range, and language. Sort by downloads (the default), date, title, or random. Supports pagination via page/rows. Returns identifiers, titles, creators (the first 10, with creator_count when a record lists more), media types, dates, download counts, collections (without fav- favorites lists), total_found, and current page/rows for pagination context. Use ia_get_item with a returned identifier to get full metadata and file manifests.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed). Combine with rows for pagination. Advanced Search serves only the first 10,000 results, so page × rows ≤ 10,000 (page 50 at 200 rows, page 200 at 50). | |
| rows | No | Number of results per page (default 50). One call returns at most 200: on page 1 a larger value (up to 10,000) is served as 200 with a notice naming the next page; on later pages a value above 200 is rejected. | |
| sort | No | Sort order in Solr format: a sortable field followed by asc or desc, e.g. "downloads desc", "date asc", "publicdate desc", "titleSorter asc", or "random". Default: "downloads desc". Advanced Search has no relevance sort. Except under random, results tied under the sort are ordered by identifier, so consecutive pages neither repeat nor skip an item. | |
| query | Yes | Solr query string. Supports field prefixes such as title:"war and peace", creator:dickens, subject:history. Plain keywords search all fields. Put a URL in quotes. At most 2,047 characters, a limit the filters below also count toward. | |
| creator | No | Filter by creator name, e.g. "Charles Dickens". | |
| date_to | No | End of date range filter in YYYY-MM-DD format. Example: "1999-12-31". | |
| language | No | Filter by language code or name, e.g. "eng" or "English". | |
| date_from | No | Start of date range filter in YYYY-MM-DD format. Example: "1900-01-01". | |
| mediatype | No | Filter by media type: texts, movies, audio, software, image, data, web, collection, etree (live concert recordings), or account. Case-insensitive; text, book, and books mean texts, movie, video, and videos mean movies, images means image, and collections means collection. Any other value is rejected. | |
| collection | No | Filter to items within a specific collection identifier, e.g. "gutenberg" or "librivoxaudio". |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The per-call cap applied to rows (200). |
| page | No | Current page number (1-indexed). |
| rows | No | Rows per page applied: the requested rows, or 200 when a larger value was capped. |
| error | No | Present when the call failed. Absent on success. |
| items | No | Items matching the search query. |
| shown | No | Number of items returned. |
| notice | No | Guidance when the page came back empty — nothing matched (naming the mediatype filter applied, if any), or the requested page is past the last page of results — or when rows was capped, naming the rows and page that continue. |
| truncated | No | True when rows above 200 was served at 200 and more results remain. |
| total_found | No | Total number of matching items across all pages. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
ia_find_snapshots - First observed
ia_get_item - First observed
ia_get_snapshot - First observed
ia_get_text - First observed
ia_search_items
Related MCP Connectors
Archive MCP — wraps the Internet Archive APIs (free, no auth)
Search books and authors across Open Library, the Internet Archive open catalog.
Turn any URL into clean Markdown and structured data. Scrape, crawl, search and extract.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides tools to query the Internet Archive, including enumerating historical captures, listing revisions, reading snapshots as clean text, diffing captures, and searching archived items.38 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching the Internet Archive for texts, audio, video, and software; retrieving detailed metadata for archived items; checking Wayback Machine snapshots for URLs; and listing downloadable files.24 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to the Internet Archive's Wayback Machine and catalog, enabling retrieval of archived web captures, snapshot metadata, and catalog search.BSD 3-Clause
- AlicenseAqualityCmaintenanceMCP 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.617 PyPI3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.