Wayback Machine MCP Server
This server provides access to the Internet Archive's Wayback Machine for retrieving historical web snapshots and searching archived content.
List snapshots: Get available archived versions of a URL with date range filtering (
from,to), result limits, and match type control (exact, prefix, host, domain)Fetch archived pages: Retrieve content from specific timestamps (YYYYMMDDHHMMSS format), with option to get original content without Wayback Machine's rewriting
Search archive items: Query Internet Archive's collection with advanced filters like media type, collection, field selection, sorting, and pagination
Resource access: Directly fetch archived content via
wayback://{url}/{timestamp}resource URLs
Provides access to the Internet Archive Wayback Machine, enabling retrieval of historical website snapshots, archived page content, and searching of archive.org items with metadata filtering capabilities.
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., "@Wayback Machine MCP Servershow me snapshots of wikipedia.org from last year"
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.
Wayback Machine MCP Server (Python)
A Model Context Protocol (MCP) server that provides access to the Internet Archive Wayback Machine: list snapshots and fetch archived pages. Inspired by the TypeScript server described in the LobeHub listing.
Reference: Wayback MCP (listing) — link
Reference: Internet Archive APIs — Wayback APIs index
Reference: MCP server quickstart — Build an MCP Server
Features
Tools
get_snapshots(url, from, to, limit, match_type)via Wayback CDX APIget_archived_page(url, timestamp, original)fetches archived contentsearch_items(query, mediatype, collection, fields, sort, rows, page)searches archive.org items
Resource
wayback://{url}/{timestamp}returns the archived page content
Install
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtRun (stdio)
python -m wayback_mcp.serverInstall as CLI
pip install wayback-mcp
wayback-mcpRun with uvx (no install)
uvx wayback-mcpPin Python version:
uvx --python 3.12 wayback-mcpPin package version:
uvx --from wayback-mcp==0.1.1 wayback-mcpConfigure in MCP client
Claude Desktop settings (example):
{
"mcpServers": {
"wayback-machine": {
"command": "wayback-mcp",
"args": [],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}Alternatively, using uvx (no install):
{
"mcpServers": {
"wayback-machine": {
"command": "uvx",
"args": ["wayback-mcp"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}Usage examples
Tool call (snapshots):
get_snapshots(url="example.com", from="20200101", to="20201231", limit=10)Tool call (page):
get_archived_page(url="example.com", timestamp="20200101120000", original=true)Tool call (items search):
search_items(
query="title:(Wayback) AND creator:(Internet Archive)",
mediatype="texts",
fields=["identifier","title","creator","mediatype","publicdate"],
sort=["publicdate desc"],
rows=20,
page=1
)Resource fetch:
wayback://example.com/20200101120000Notes
Snapshot data via CDX API:
https://web.archive.org/cdx/search/cdx?url={url}&output=jsonPage retrieval via Wayback:
https://web.archive.org/web/{timestamp}/{url}(orid_mode for original content)Advanced item search endpoint:
https://archive.org/advancedsearch.php(JSON output)
Available Tools
3 toolsget_archived_pageC
Retrieve content of an archived webpage from the Wayback Machine using YYYYMMDDHHMMSS timestamp. If original=true, request id_ mode.
| Name | Required | Description | Default |
|---|---|---|---|
| original | No | ||
| timestamp | Yes | ||
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at a retrieval operation ('Retrieve content') but lacks critical details: authentication requirements, rate limits, error handling, or what 'id_ mode' entails. The mention of timestamp format is useful but insufficient for a tool interacting with an external service like Wayback Machine.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main purpose. Both sentences are relevant: the first states the action and key parameter detail, the second adds a conditional parameter behavior. There's no wasted text, though the ambiguous 'id_ mode' could be clarified for better efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no annotations, and an output schema (which reduces need to describe returns), the description is moderately complete. It covers timestamp format and a parameter condition but misses explanations for 'url' and 'id_ mode', and lacks behavioral context like errors or limits. This is adequate but has clear gaps for a tool with external dependencies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description adds some semantics: it explains the timestamp format (YYYYMMDDHHMMSS) and clarifies that 'original' parameter triggers 'id_ mode'. However, it doesn't explain the 'url' parameter or what 'id_ mode' means, leaving gaps for 3 parameters. This partial compensation justifies a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve content') and resource ('archived webpage from the Wayback Machine'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from its siblings (get_snapshots, search_items), which would require a 5. The mention of 'using YYYYMMDDHHMMSS timestamp' adds specificity but not sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_snapshots or search_items. It mentions a conditional ('If original=true, request id_ mode') but this is a parameter usage note, not a contextual guideline for tool selection. Without any when-to-use or when-not-to-use information, the score is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snapshotsC
Get a list of available Wayback Machine snapshots for a URL. Dates use YYYYMMDD, match_type is one of: exact, prefix, host, domain.
| Name | Required | Description | Default |
|---|---|---|---|
| from_ | No | ||
| limit | No | ||
| match_type | No | exact | |
| to | No | ||
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool retrieves a 'list of available snapshots', implying a read-only operation, but doesn't cover important aspects like rate limits, authentication needs, pagination behavior, error handling, or what 'available' means in practice. The description adds minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and follows with essential parameter details. There's no wasted text, and it's appropriately sized for a tool with multiple parameters. However, it could be slightly more structured by separating usage guidance from parameter semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no annotations, but with an output schema), the description is minimally adequate. It covers the basic action and some parameter details, but lacks usage guidelines, behavioral context, and full parameter explanations. The presence of an output schema reduces the need to describe return values, but overall completeness is limited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some semantic value by explaining date formats ('YYYYMMDD') and match_type options, which aren't covered in the schema (0% description coverage). However, it doesn't explain the purpose of 'from_', 'to', or 'limit' parameters, or how they interact with the URL and match_type. With 5 parameters and low schema coverage, the description partially compensates but leaves significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of available Wayback Machine snapshots for a URL'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_archived_page' or 'search_items', which likely have related but different functions in the Wayback Machine context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_archived_page' or 'search_items'. It mentions date formats and match_type values, but these are parameter details rather than usage context. There's no indication of prerequisites, constraints, or typical scenarios for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_itemsC
Search Internet Archive items using Advanced Search (archive.org). Supports basic query, optional mediatype/collection filters, fields, sort, rows, and page.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No | ||
| fields | No | ||
| mediatype | No | ||
| page | No | ||
| query | Yes | ||
| rows | No | ||
| sort | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'supports basic query, optional mediatype/collection filters, fields, sort, rows, and page,' which hints at search capabilities but lacks details on permissions, rate limits, pagination behavior, or response format. For a search tool with 7 parameters and no annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the main purpose ('Search Internet Archive items using Advanced Search') and follows with key features. It avoids redundancy and wastes no words, making it appropriately sized for the tool's complexity. A point is deducted as it could be slightly more structured, but overall it's concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no annotations, and an output schema exists (which reduces the need to explain return values), the description is minimally adequate. It covers the basic purpose and hints at parameters, but lacks details on usage guidelines, behavioral traits, and parameter semantics. For a search tool with moderate complexity, this leaves room for improvement, scoring at the minimum viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It lists parameters like 'basic query, optional mediatype/collection filters, fields, sort, rows, and page,' which adds some meaning beyond the schema's property names, but doesn't explain what each parameter does, acceptable values, or how they interact. With 7 parameters and low coverage, this partial compensation is insufficient, scoring below the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Internet Archive items using Advanced Search, specifying the target resource and verb. It distinguishes from siblings like get_archived_page and get_snapshots by focusing on search functionality rather than retrieving specific pages or snapshots. However, it doesn't explicitly contrast with siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'supports basic query, optional mediatype/collection filters, fields, sort, rows, and page,' which implies usage for searching with various filters, but provides no explicit guidance on when to use this tool versus alternatives like get_archived_page or get_snapshots. There's no mention of prerequisites, exclusions, or comparative contexts, resulting in minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
get_archived_page - First observed
get_snapshots - First observed
search_items
TDQS
Each tool has a clearly distinct purpose: get_archived_page retrieves specific archived content, get_snapshots lists available snapshots for a URL, and search_items searches Internet Archive items. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern (get_archived_page, get_snapshots, search_items) with clear, descriptive verbs. There are no deviations in naming conventions, ensuring predictability and readability.
Three tools are reasonable for a Wayback Machine server, covering key operations: retrieving archived pages, listing snapshots, and searching items. It might benefit from additional tools like saving pages or handling metadata, but the core functionality is well-scoped.
The tools cover essential Wayback Machine operations: retrieving archived content, exploring available snapshots, and searching items. Minor gaps include no explicit tool for saving or submitting URLs to the archive, but agents can work around this with the provided tools.
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 Connectors
Shared copies of public web pages for AI agents. Search stored pages or fetch a URL.
Wayback Machine for agents: closest archived copy of a URL with its text, and full capture history
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with the Internet Archive's Wayback Machine to save web pages, retrieve archived versions, search historical snapshots, and check archive statistics without requiring API keys.776Creative Commons Attribution Non Commercial Share Alike 4.0 International
- 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.63MIT
- AlicenseAqualityCmaintenanceProvides tools to archive URLs, retrieve clean readable text from Wayback Machine snapshots, list snapshots, search Internet Archive items, and compare snapshots, designed to avoid context window blowup by returning stripped text.65MIT
- 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.5MIT
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/sisilet/wayback-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server