oassis — web scraping, crawling and browser control for AI agents
Qué hace este MCP
Searches, scrapes, crawls, maps, and interacts with public websites using browser sessions, structured extraction, screenshots, and accessibility data.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['sessionId', 'actions'], 'properties': {'url': {'type': 'string', 'description': 'Page to process.'}, 'json': {'type': 'object', 'properties': {'prompt': {'type': 'string'}, 'schema': {'type': 'object'}}, 'description': 'For the `json` format: `prompt` and/or `schema`.'}, 'wait': {'type': 'object', 'properties': {'until': {'enum': ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'], 'type': 'string'}, 'timeout': {'type': 'number'}, 'selector': {'type': 'string'}}, 'description': 'When to consider the page loaded: `until`, `selector`, `timeout`.'}, 'maxAge': {'type': 'number', 'description': 'Accept an answer up to this many milliseconds old. A cache hit costs $0.0002 instead of the format price. Leave it out to force a fresh render.'}, 'actions': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Actions, in order.'}, 'formats': {'type': 'array', 'items': {'enum': ['html', 'markdown', 'links', 'screenshot', 'pdf', 'elements', 'json', 'accessibility', 'controls'], 'type': 'string'}, 'description': 'Outputs you want in the same response. `controls` is the map of what can be clicked; `elements` needs `selectors`; `json` needs `json.prompt`.'}, 'selectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CSS selectors for `elements`.'}, 'sessionId': {'type': 'string', 'description': 'The one web_session_open returned.'}}}
Esquema de entrada
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string'}, 'limit': {'type': 'number', 'description': 'Results to return (default 50).'}, 'cancel': {'type': 'boolean', 'description': 'Stop the batch and refund what it did not read.'}}}
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Where to start.'}, 'limit': {'type': 'number', 'description': 'Pages it may read (default 25, max 200).'}, 'maxAge': {'type': 'number', 'description': 'Accept an answer up to this many milliseconds old. A cache hit costs $0.0002 instead of the format price. Leave it out to force a fresh render.'}, 'formats': {'type': 'array', 'items': {'enum': ['html', 'markdown', 'links', 'screenshot', 'pdf', 'elements', 'json', 'accessibility', 'controls'], 'type': 'string'}, 'description': 'Outputs you want in the same response. `controls` is the map of what can be clicked; `elements` needs `selectors`; `json` needs `json.prompt`.'}, 'maxDepth': {'type': 'number', 'description': 'How far to follow links (default 2, max 5).'}, 'excludePaths': {'type': 'array', 'items': {'type': 'string'}}, 'includePaths': {'type': 'array', 'items': {'type': 'string'}}, 'includeSubdomains': {'type': 'boolean'}}}
Esquema de entrada
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string'}, 'limit': {'type': 'number', 'description': 'Pages to return (default 50).'}, 'cancel': {'type': 'boolean', 'description': 'Stop the crawl and refund what it did not read.'}}}
Esquema de entrada
{'type': 'object', 'required': ['verdict'], 'properties': {'url': {'type': 'string', 'description': 'The page that came out wrong.'}, 'route': {'type': 'string', 'description': 'Which tool or endpoint it is about.'}, 'comment': {'type': 'string', 'description': 'What you expected and what you got.'}, 'verdict': {'enum': ['good', 'bad'], 'type': 'string'}, 'reference': {'type': 'string', 'description': 'The jobId or sessionId it happened on.'}}}
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The site to map.'}, 'limit': {'type': 'number', 'description': 'Urls to return (default 1000, max 5000).'}, 'search': {'type': 'string', 'description': 'Keep only urls containing this text.'}, 'includePage': {'type': 'boolean', 'description': 'Render the page too (default true).'}, 'excludePaths': {'type': 'array', 'items': {'type': 'string'}}, 'includePaths': {'type': 'array', 'items': {'type': 'string'}}, 'includeSubdomains': {'type': 'boolean'}}}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'url': {'type': 'string', 'description': 'Page to process.'}, 'html': {'type': 'string', 'description': 'Raw HTML instead of `url`.'}, 'json': {'type': 'object', 'properties': {'prompt': {'type': 'string'}, 'schema': {'type': 'object'}}, 'description': 'For the `json` format: `prompt` and/or `schema`.'}, 'wait': {'type': 'object', 'properties': {'until': {'enum': ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'], 'type': 'string'}, 'timeout': {'type': 'number'}, 'selector': {'type': 'string'}}, 'description': 'When to consider the page loaded: `until`, `selector`, `timeout`.'}, 'maxAge': {'type': 'number', 'description': 'Accept an answer up to this many milliseconds old. A cache hit costs $0.0002 instead of the format price. Leave it out to force a fresh render.'}, 'formats': {'type': 'array', 'items': {'enum': ['html', 'markdown', 'links', 'screenshot', 'pdf', 'elements', 'json', 'accessibility', 'controls'], 'type': 'string'}, 'description': 'Outputs you want in the same response. `controls` is the map of what can be clicked; `elements` needs `selectors`; `json` needs `json.prompt`.'}, 'selectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CSS selectors for `elements`.'}}}
Esquema de entrada
{'type': 'object', 'required': ['urls'], 'properties': {'json': {'type': 'object', 'properties': {'prompt': {'type': 'string'}, 'schema': {'type': 'object'}}, 'description': 'For the `json` format: `prompt` and/or `schema`.'}, 'urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The urls to read, 2 to 50. They do not have to share a site.'}, 'wait': {'type': 'object', 'properties': {'until': {'enum': ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'], 'type': 'string'}, 'timeout': {'type': 'number'}, 'selector': {'type': 'string'}}, 'description': 'When to consider the page loaded: `until`, `selector`, `timeout`.'}, 'maxAge': {'type': 'number', 'description': 'Accept an answer up to this many milliseconds old. A cache hit costs $0.0002 instead of the format price. Leave it out to force a fresh render.'}, 'formats': {'type': 'array', 'items': {'enum': ['html', 'markdown', 'links', 'screenshot', 'pdf', 'elements', 'json', 'accessibility', 'controls'], 'type': 'string'}, 'description': 'Outputs you want in the same response. `controls` is the map of what can be clicked; `elements` needs `selectors`; `json` needs `json.prompt`.'}, 'selectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CSS selectors for `elements`.'}}}
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Results (default 10, max 50).'}, 'query': {'type': 'string', 'description': 'What to search for.'}, 'since': {'type': 'string', 'description': 'Only results published after this ISO date.'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only these domains.'}, 'snippets': {'type': 'boolean', 'description': 'Text alongside each result (default true).'}, 'excludeDomains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Never these domains.'}}}
Esquema de entrada
{'type': 'object', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string'}}}
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Page to process.'}, 'json': {'type': 'object', 'properties': {'prompt': {'type': 'string'}, 'schema': {'type': 'object'}}, 'description': 'For the `json` format: `prompt` and/or `schema`.'}, 'wait': {'type': 'object', 'properties': {'until': {'enum': ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'], 'type': 'string'}, 'timeout': {'type': 'number'}, 'selector': {'type': 'string'}}, 'description': 'When to consider the page loaded: `until`, `selector`, `timeout`.'}, 'maxAge': {'type': 'number', 'description': 'Accept an answer up to this many milliseconds old. A cache hit costs $0.0002 instead of the format price. Leave it out to force a fresh render.'}, 'formats': {'type': 'array', 'items': {'enum': ['html', 'markdown', 'links', 'screenshot', 'pdf', 'elements', 'json', 'accessibility', 'controls'], 'type': 'string'}, 'description': 'Outputs you want in the same response. `controls` is the map of what can be clicked; `elements` needs `selectors`; `json` needs `json.prompt`.'}, 'selectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CSS selectors for `elements`.'}}}
Cambios recientes en herramientas
Servidores MCP similares
apis-io
Provides catalog search, comparison, scoring, enrichment, lists, and dataset exports for APIs, providers, specifications, workflo…
Tools for Agents
Provides web research and extraction workflows, crawling, browser automation, PDF and book OCR, text processing, embeddings, and …
canton-ccpedia
Searches and explains Canton Network and Daml documentation, governance proposals, forums, code examples, APIs, releases, and eco…
webbersites-x402-data-api
Provides pay-per-call utilities for web scraping, SEO and accessibility audits, document extraction, DNS and email checks, crypto…
api-evangelist
Provides API governance analysis, OpenAPI overlays and version diffs, security-sensitive field classification, code samples, matu…
arch-tools-mcp
Provides general-purpose agent APIs for browser automation, web and PDF extraction, data conversion, email operations, fact check…
Agent Margin Router
Provides pay-per-call tools for blockchain balances, contracts, prices, gas, domains, web extraction, package intelligence, news,…
1cent Web Intelligence for AI Agents
Performs SSRF-safe public web inspection, URL extraction, metadata and content analysis, accessibility checks, feed and sitemap d…