{"serverInfo":{"name":"wayback-machine","version":"0.1.1","title":"Wayback Machine","websiteUrl":"https://waybackmcp.com"},"authentication":{"required":false,"schemes":[]},"transport":{"type":"streamable-http","url":"https://waybackmcp.com/mcp"},"tools":[{"name":"archived_copy","description":"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.","inputSchema":{"$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},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true}},{"name":"capture_history","description":"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.","inputSchema":{"$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},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true}}],"resources":[],"prompts":[]}