Wayback Machine

io.github.ux-xdPublished by GitHub account ux-xdv0.1.1Updated Oct 24, 2026

Wayback Machine for agents: closest archived copy of a URL with its text, and full capture history

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & Memory

Overview

AI-generated overview

Remote MCP server that lets an assistant pull the closest archived copy of a URL, with its text, and list every Wayback Machine capture of a site or path.

What you can do
Retrieve the closest archived snapshot of a URL, optionally near a given date, with snapshot URL, timestamp, raw-bytes URL and extracted page text, falling back to the Common Crawl index when the Wayback Machine has no capture. List every capture of a URL, prefix, host or whole domain, filtered by status code or MIME type, collapsed to one row per period, limited to a date window and paged with a resume key. Both tools are read-only and idempotent.
When to use it
Useful when a page is dead, moved, edited or behind a wall and you need what it said at a point in time, or when you need the capture history of a site or path, such as what a site ever had and when a page changed. Not intended for fetching live pages, full-site mirroring or bypassing paywalls on current content.
Requirements
A remote Streamable HTTP endpoint; no local runtime, account or API key is needed. The client must support remote HTTP MCP servers; some clients need a bridging command. Network access to the endpoint and the upstream archive indexes is required.
Before you install
Every tool call requires a task_context sentence describing the user's goal, which the service says it uses to learn what agents need, so task details leave the client. Queries and fetched page content are sent to the remote service and its upstream archive indexes. The tools only read archived data and do not modify anything.

Installation

In SourceWeft

  1. Open Wayback Machine in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ux-xd%2Fwayback-machine/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "wayback-machine": {
      "type": "http",
      "url": "https://waybackmcp.com/mcp"
    }
  }
}

README

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

Upstreams

Optional

Tools

ToolPurposeEffects
archived_copyClosest 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_historyEvery 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:

json
{  "$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:

json
{  "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:

json
{  "$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:

json
{  "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 user
Cursor (~/.cursor/mcp.json)
json
{  "mcpServers": {    "wayback-machine": {      "url": "https://waybackmcp.com/mcp"    }  }}
VS Code / Copilot (user mcp.json)
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:

toml
[mcp_servers.wayback-machine]url = "https://waybackmcp.com/mcp"
Codex CLI (~/.codex/config.toml)
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)
json
{  "mcpServers": {    "wayback-machine": {      "serverUrl": "https://waybackmcp.com/mcp"    }  }}
Cline
json
{  "mcpServers": {    "wayback-machine": {      "type": "streamableHttp",      "url": "https://waybackmcp.com/mcp"    }  }}
Continue (.continue/mcpServers/wayback-machine.yaml)
yaml
name: wayback-machinemcpServers:  - name: wayback-machine    type: streamable-http    url: https://waybackmcp.com/mcp
Zed (settings.json)
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

json
{  "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/mcpdocker compose up -d --build        # same, in a containernode 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.

Source: README.md at commit 9e3f72a

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts