{"server":{"name":"wbrestore-mcp","version":"1.0.0","description":"Wayback Restorer public MCP server. Discover eras, screenshot previews, quote & launch restores for AI agents."},"tools":[{"name":"discover_eras","description":"Discover Wayback Machine restoration eras for a domain. WBR clusters raw archive.org snapshots into 3-15 manageable eras with a significance-scored recommended pick. Use this first before quoting or restoring. Inputs: domain (e.g. \"example.com\"). Returns: {domain, eras: [...], recommended_era_index, restor_url}.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to analyze. Accepts \"example.com\" or full URL."},"is_www":{"type":"boolean","default":false,"description":"Set true if the customer wants the www subdomain specifically."}},"required":["domain"]},"auth_required":false},{"name":"get_screenshot","description":"Returns a Wayback Machine screenshot URL for a domain at a timestamp. The URL goes through WBR's Playwright + Webshare proxy pipeline (clean shot, no archive.org toolbar). Pair with `discover_eras.recommended` for the era_id to use. Inputs: domain (e.g. \"example.com\"), timestamp (YYYYMMDDHHMMSS). Returns: {screenshot_url, served_via, domain, timestamp}.","inputSchema":{"type":"object","properties":{"domain":{"type":"string"},"timestamp":{"type":"string","pattern":"^\\d{14}$"}},"required":["domain","timestamp"]},"auth_required":false},{"name":"quote_restore","description":"Pre-flight pricing estimate for restoring one era. Returns USD estimate + heuristic reasoning. Use BEFORE create_restore_job. Inputs: domain, from_date (YYYY-MM-DD), to_date (YYYY-MM-DD), optionally era_id. Returns: {usd_estimate, formula, days, multiplier, capped}","inputSchema":{"type":"object","properties":{"domain":{"type":"string"},"from_date":{"type":"string","description":"YYYY-MM-DD"},"to_date":{"type":"string","description":"YYYY-MM-DD"},"era_id":{"type":"string","description":"Optional, for context only"}},"required":["domain","from_date","to_date"]},"auth_required":false},{"name":"list_cached_eras","description":"List recently-cached domains that WBR has screenshots for. Use this to skip a fresh discover_eras call when a domain is already cached. Inputs: limit (default 20, max 100). Returns: {count, items: [{domain, last_screenshot_at, screenshot_count}]}","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":20,"maximum":100}}},"auth_required":false},{"name":"create_restore_job","description":"Launch a WBR restore job for the authenticated user. Charges credits. Requires API key with write scope. Inputs: domain, from_date (YYYY-MM-DD), to_date (YYYY-MM-DD), is_www (bool, default false). Returns: {job_id, status, credits_charged, new_balance, tracking_url}","inputSchema":{"type":"object","properties":{"domain":{"type":"string"},"from_date":{"type":"string"},"to_date":{"type":"string"},"is_www":{"type":"boolean","default":false}},"required":["domain","from_date","to_date"]},"auth_required":true},{"name":"cancel_restore_job","description":"Cancel a pending restore job. Refunds credits if status is `pending`. Returns 409 if job is already in_progress or completed. Inputs: job_id. Returns: {job_id, previous_status, new_status, credits_refunded, new_balance}.","inputSchema":{"type":"object","properties":{"job_id":{"type":"integer"}},"required":["job_id"]},"auth_required":true},{"name":"list_my_restore_jobs","description":"List restore jobs owned by the authenticated user. Returns most-recent first, paginated. Inputs: limit (default 20, max 100), offset (default 0). Returns: {count, total, jobs: [{id, domain, status, progress, from_date, to_date, created_at}]}","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":20,"maximum":100},"offset":{"type":"integer","default":0,"minimum":0}}},"auth_required":true},{"name":"get_restore_job_status","description":"Get status of a single restore job. Returns progress (0-100), status (pending\/preparing\/in_progress\/completed\/error\/cancelled), and any action_statuses flags. Inputs: job_id. Returns: {job_id, domain, status, progress, ...}","inputSchema":{"type":"object","properties":{"job_id":{"type":"integer"}},"required":["job_id"]},"auth_required":true}]}