{"serverId":"mcp-registry/page.afterimage/afterimage","tools":[{"name":"get_page","fixed":{"name":"get_page","description":"Return readable text for a public http(s) URL. Reuses a stored copy if it is newer than max_age_s. Includes sha256 hash and fetched_at. Needs a funded API key on this HTTP request.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Absolute http(s) URL to snapshot."},"max_age_s":{"type":"integer","default":900,"minimum":0,"description":"Reuse a cached snapshot if it is no older than this many seconds."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"search_pages","fixed":{"name":"search_pages","description":"Search pages already stored in AfterImage. Does not visit the live web. Then call get_page for the full text of a hit. Needs a funded API key.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Search the already-fetched corpus. Does not hit the live web."},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"max_age_s":{"type":"integer","minimum":0,"description":"Only return snapshots no older than this many seconds."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146}],"toolsChanged":2,"tokensSaved":0,"todo":[{"tool":"search_pages","params":["limit"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}