wayback-machine-mcp
Wayback Machine for agents: closest archived copy of a URL with its text, and full capture history
Documentation
Wayback Machine
> Wayback Machine for agents: closest archived copy of a URL with its text, and full capture history Remote MCP server over Streamable HTTP at `https://waybackmcp.com/mcp`. Free, no API key. Tools: `archived_copy`, `capture_history`. The tool list is fixed per version.
Wayback Machine MCP wraps the Internet Archive's keyless APIs so an agent can recover a page that is gone, changed, or walled: `archived_copy` returns the closest snapshot to a date with the page text extracted, and `capture_history` lists every capture of a URL, prefix, host or domain with CDX filters (status, mime, collapse, date window, newest-first, resume-key paging). Falls back to the Common Crawl index when the Wayback Machine has nothing. Free, no API key, no account.
Use when: A page 404s, moved, was edited, or is behind a wall and you need what it said at a point in time; or you need every capture of a site or path (site archaeology: what a site ever had, when a page changed).
Not for: Fetching live pages (use a fetch tool), full-site mirroring, or bypassing paywalls on current content.
Quick install (Claude Code): `claude mcp add --transport http wayback-machine https://waybackmcp.com/mcp -s user`
Live server: https://waybackmcp.com
Docs
- Full reference: every tool with its JSON input schema and an example
- Install for any client: Claude Code, Cursor, VS Code, Claude Desktop, ChatGPT, Codex, Gemini CLI, Windsurf, Cline, Continue, Zed
- OpenAPI twin: the same tools as plain HTTP POST endpoints
- Registry server.json: machine-readable server record
- Server card: transport + tool card (also at https://waybackmcp.com/.well-known/mcp.json, SEP-1960)
- ARD manifest: Agentic Resource Discovery entry (also at https://waybackmcp.com/.well-known/ai-catalog.json)
Upstreams
- Wayback Availability API: keyless
- Wayback CDX Server: keyless
- Common Crawl index: keyless
Optional
Tools
| Tool | Purpose | Effects |
|---|---|---|
| `archived_copy` | Closest archived copy of a URL from the Wayback Machine (Internet Archive), nearest to a date if given. Returns the snapshot URL, its exact timestamp, the raw-bytes URL, and optionally the page text (HTML stripped, capped at 30k chars). Falls back to the Common Crawl index when the Wayback Machine has no capture. Use when a page is dead, changed, or walled and you need what it said. | read-only, open-world, idempotent |
| `capture_history` | Every capture the Wayback Machine holds for a URL, URL prefix, host or whole domain (CDX index). Filter by status code or MIME type, keep one capture per period (collapse), restrict a date window, and page with a resume key. Use for site archaeology: what a site ever had, when a page changed, every URL under a path. | read-only, open-world, idempotent |
Every tool takes `task_context`: one sentence on what the user is trying to do. It is required.
`archived_copy`
Closest archived copy of a URL from the Wayback Machine (Internet Archive), nearest to a date if given. Returns the snapshot URL, its exact timestamp, the raw-bytes URL, and optionally the page text (HTML stripped, capped at 30k chars). Falls back to the Common Crawl index when the Wayback Machine has no capture. Use when a page is dead, changed, or walled and you need what it said.
Input schema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 4,
"maxLength": 2000,
"description": "The live URL (scheme optional)."
},
"timestamp": {
"description": "Preferred capture time, 4–14 digits: YYYY, YYYYMMDD or YYYYMMDDhhmmss. Closest capture wins; omit for the latest.",
"type": "string",
"pattern": "^\\d{4,14}$"
},
"fetch_text": {
"default": true,
"description": "Also fetch the snapshot and return its visible text (default true).",
"type": "boolean"
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"url",
"fetch_text",
"task_context"
],
"additionalProperties": false
}Example arguments:
{
"url": "https://example.com/",
"timestamp": "2020",
"task_context": "example: Closest archived copy of a URL from the Wayback Machine (Int"
}`capture_history`
Every capture the Wayback Machine holds for a URL, URL prefix, host or whole domain (CDX index). Filter by status code or MIME type, keep one capture per period (collapse), restrict a date window, and page with a resume key. Use for site archaeology: what a site ever had, when a page changed, every URL under a path.
Input schema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2000,
"description": "URL or domain to query, e.g. \"example.com/blog/\" for prefix work or \"example.com\" with match_type \"domain\"."
},
"match_type": {
"default": "exact",
"description": "How url matches captures. Default exact.",
"type": "string",
"enum": [
"exact",
"prefix",
"host",
"domain"
]
},
"from": {
"description": "Window start, 4–14 digits (YYYY…).",
"type": "string",
"pattern": "^\\d{4,14}$"
},
"to": {
"description": "Window end, same format.",
"type": "string",
"pattern": "^\\d{4,14}$"
},
"filter": {
"description": "CDX field:regex filters, e.g. [\"statuscode:200\", \"!mimetype:warc/revisit\"]. Prefix with ! to negate.",
"maxItems": 4,
"type": "array",
"items": {
"type": "string"
}
},
"collapse": {
"description": "Dedupe key: \"urlkey\" (one row per URL), or \"timestamp:6\" for one capture per month, \"timestamp:4\" per year.",
"type": "string"
},
"limit": {
"default": 50,
"description": "Rows to return (default 50, max 1000), oldest first unless latest_first.",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"resume_key": {
"description": "Continue a previous page: the resume_key that call returned.",
"type": "string"
},
"latest_first": {
"default": false,
"description": "Return the NEWEST captures instead of the oldest (CDX negative limit). Cannot be combined with resume_key.",
"type": "boolean"
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"url",
"match_type",
"limit",
"latest_first",
"task_context"
],
"additionalProperties": false
}Example arguments:
{
"url": "example.com",
"match_type": "domain",
"filter": [
"statuscode:200"
],
"collapse": "timestamp:6",
"limit": 20,
"task_context": "example: Every capture the Wayback Machine holds for a URL, URL prefi"
}Install
Endpoint: `https://waybackmcp.com/mcp` (Streamable HTTP, MCP 2026-07-28 with 2025-era fallback). Authentication: none.
Claude Code
claude mcp add --transport http wayback-machine https://waybackmcp.com/mcp -s userCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"wayback-machine": {
"url": "https://waybackmcp.com/mcp"
}
}
}VS Code / Copilot (user mcp.json)
{
"servers": {
"wayback-machine": {
"type": "http",
"url": "https://waybackmcp.com/mcp"
}
}
}or `code --add-mcp '{"name":"wayback-machine","type":"http","url":"https://waybackmcp.com/mcp"}'`
Claude Desktop / claude.ai
Settings → Connectors → Add custom connector → URL `https://waybackmcp.com/mcp`, Authentication: None.
ChatGPT
Settings → Connectors → Add custom connector → `https://waybackmcp.com/mcp`. Desktop app / Codex share `~/.codex/config.toml`:
[mcp_servers.wayback-machine]
url = "https://waybackmcp.com/mcp"Codex CLI (~/.codex/config.toml)
[mcp_servers.wayback-machine]
url = "https://waybackmcp.com/mcp"Gemini CLI
gemini mcp add --transport http wayback-machine https://waybackmcp.com/mcp -s user(settings.json uses `httpUrl`, not `url`.)
Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"wayback-machine": {
"serverUrl": "https://waybackmcp.com/mcp"
}
}
}Cline
{
"mcpServers": {
"wayback-machine": {
"type": "streamableHttp",
"url": "https://waybackmcp.com/mcp"
}
}
}Continue (.continue/mcpServers/wayback-machine.yaml)
name: wayback-machine
mcpServers:
- name: wayback-machine
type: streamable-http
url: https://waybackmcp.com/mcpZed (settings.json)
{
"context_servers": {
"wayback-machine": {
"source": "custom",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://waybackmcp.com/mcp"
]
}
}
}Any MCP client
Streamable HTTP endpoint: `https://waybackmcp.com/mcp`
{
"mcpServers": {
"wayback-machine": {
"url": "https://waybackmcp.com/mcp"
}
}
}This page documents a server. It does not ask the reader to change any rules file, memory file, or host configuration.
Run it yourself
npm install && npm start # http://127.0.0.1:8080/mcp
docker compose up -d --build # same, in a container
node scripts/smoke.mjs http://127.0.0.1:8080 archived_copy '{}'Built with the MCP server kit (`kit/`): Streamable HTTP MCP plus agent-readable docs (llms.txt, server.json, install pages, a REST twin), all from one manifest (`servers/wayback-machine/mcp.factory.json`). This repo is the server logic only; no telemetry is collected or sent by this code. MIT.
Frequently asked questions
What is wayback-machine-mcp?
wayback-machine-mcp is Wayback Machine for agents: closest archived copy of a URL with its text, and full capture history
How do I install wayback-machine-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is wayback-machine-mcp open source?
Yes — it is hosted on GitHub at https://github.com/ux-xd/wayback-machine-mcp.
Related MCP tools
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.
MCP Aggregator, Orchestrator, Middleware, Gateway in one docker
🔌 Plug-and-play library to enable agents to call MCP and UTCP tools via code execution.
Browser automation clicks buttons. OpenTabs calls APIs.
Code research platform for AI agents; find, understand, and prove context across your code and all of GitHub, in a fraction of the tokens. One toolset, MCP or CLI
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP