{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_83dyuy5jyskt","handle":"oassis-web-scraping-crawling-and-browser-control","url":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control","links":{"self":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control/record.json","html":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control","markdown":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control/record.md","api":"https://wellknown.network/api/v1/agents/oassis-web-scraping-crawling-and-browser-control","status":"https://wellknown.network/api/v1/agents/oassis-web-scraping-crawling-and-browser-control/status","claim":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control/claim.json","badge":"https://wellknown.network/agents/oassis-web-scraping-crawling-and-browser-control/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/oassis-web-scraping-crawling-and-browser-control/history","tools":"https://wellknown.network/api/v1/agents/oassis-web-scraping-crawling-and-browser-control/tools"},"ard":{"identifier":"urn:air:api.oassis.dev:server:oassis-web-scraping-crawling-and-browser-control","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"oassis — web scraping, crawling and browser control for AI agents","summary":"Scrape to markdown, map and crawl sites, drive a real browser. Pay per call, no API key, no signup.","description":"Scrape to markdown, map and crawl sites, drive a real browser. Pay per call, no API key, no signup.","publisher":{"name":"dev.oassis","url":null},"homepage":"https://oassis.dev","repository":null,"version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.oassis.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-30T04:22:55.230638Z","publishedAt":"2026-09-30T04:22:55.230638Z","registryName":"dev.oassis/scraper-crawler"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"data.web-search","name":"Web Search","confidence":1,"provenance":"derived"},{"slug":"data.web-scraping","name":"Web Scraping","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"}],"categories":["data","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 31m ago.","lastOkAt":"2026-10-10T08:32:24.651Z","lastProbedAt":"2026-10-10T08:32:24.651Z","statusComputedAt":"2026-10-10T08:34:09.331Z","reliability30d":{"probes":36,"successRate":1,"p50Ms":23,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":36,"ok":36,"authBoundaryOk":0,"serviceOk":36,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T08:32:24.651Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":14,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"27499bd2fe4b10da2e5bd3820d183df9f35f084c316c7d2e04d4e0edd04f9824","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T01:24:30.246Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"27499bd2fe4b10da2e5bd3820d183df9f35f084c316c7d2e04d4e0edd04f9824","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T19:26:14.832Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":42,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T12:27:58.969Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":42,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:25:36.529Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":18,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T22:22:59.528Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":15,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:24:40.795Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":18,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T08:30:10.477Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T02:21:11.339Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T19:25:15.904Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":59,"error":null,"detail":{"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"toolCount":11,"toolsHash":"fece4a4c8d748914202bbfcde6309e37c672c59ef0d245cacee2f6d11fcf3fa2","serverName":"oassis","capabilities":["tools","resources","prompts"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"web_scrape","description":"Processes a page and returns every output you ask for at once: markdown, html, links, screenshot, PDF, accessibility tree, elements by selector, AI-structured d"},{"name":"web_session_open","description":"Opens a browser on a page and leaves it open, returning the map of controls. Use it when something has to be FILLED IN or CLICKED, not just read: inside the ses"},{"name":"web_act","description":"Runs actions against an open session and returns the resulting state. Actions: {navigate}, {click:{ref}}, {type:{ref,text,clear}}, {select:{ref,value}}, {press}"},{"name":"web_scrape_batch","description":"A batch OF SCRAPES: reads a list of urls YOU give it (2 to 50, from any sites) and returns a jobId. It discovers nothing on its own — for that use web_crawl. Ch"},{"name":"web_batch_status","description":"Checks a batch of scrapes: status, how many are done, and the results. Free. Pass `cancel: true` to stop it and get the urls it never read refunded."},{"name":"web_map","description":"Every url of a site, fast and cheap: its sitemap plus, optionally, the links on the page. Use it BEFORE crawling, to see what is there and decide what is worth "},{"name":"web_crawl","description":"Follows a site's links and reads every page. Returns a jobId; poll it with web_crawl_status. Charged up front for the pages it is allowed to read (`limit`), and"},{"name":"web_crawl_status","description":"Checks a crawl: status, pages read, discovered and still queued, and the pages themselves. Free. Pass `cancel: true` to stop it and get the unread pages refunde"},{"name":"web_search_exa","description":"Search the web with Exa's index: a query instead of a url, for when you do not know where to look. Returns title, url and a snippet per result. To read the page"},{"name":"web_feedback","description":"Tell us an answer was good or bad. FREE. Use it when a result is wrong — empty markdown, a control map missing a button, data that does not match the page — wit"},{"name":"web_session_close","description":"Closes a session and stops billing browser time. Free. If you do not close it, it closes itself after a minute without use."}],"package":null,"toolSurface":{"id":"ts_sfvpvvamp8fc","endpointId":"ep_dbq6azaf35dw","hash":"27499bd2fe4b10da2e5bd3820d183df9f35f084c316c7d2e04d4e0edd04f9824","toolCount":11,"serverName":"oassis","serverVersion":"1.0.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T01:24:30.255Z","lastSeenAt":"2026-10-10T08:32:24.645Z","observations":2,"toolNames":["web_scrape","web_session_open","web_act","web_scrape_batch","web_batch_status","web_map","web_crawl","web_crawl_status","web_search_exa","web_feedback","web_session_close"],"distinctSurfaces":6},"endpointFacts":[{"id":"ep_dbq6azaf35dw","url":"https://api.oassis.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T12:27:58.985Z","auth":{"observedAt":"2026-10-09T12:27:59.046Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T12:27:59.068Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"oassis.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-27T20:34:28.000Z","validTo":"2026-12-26T21:34:25.000Z","daysToExpiry":77,"sanCount":3,"fingerprint256":"E1:19:5E:C2:16:B0:14:E4:2A:E0:5D:64:38:63:B2:F6:B1:F5:97:58:E2:70:B3:B3:D1:FA:1C:08:81:E1:45:F2"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.oassis/scraper-crawler","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.oassis%2Fscraper-crawler","firstSeenAt":"2026-09-30T21:21:19.478Z","fetchedAt":"2026-10-09T14:21:07.904Z","normalizedAt":"2026-10-09T14:21:07.904Z"}]},"firstSeenAt":"2026-09-30T21:21:19.478Z","updatedAt":"2026-10-10T08:34:55.098Z"}