WebScraping-AI MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WEBSCRAPING_AI_API_KEY | Yes | Your WebScraping.AI API key, required for all operations | |
| WEBSCRAPING_AI_DEFAULT_TIMEOUT | No | Maximum web page retrieval time in ms (max: 30000) | 15000 |
| WEBSCRAPING_AI_CONCURRENCY_LIMIT | No | Maximum number of concurrent requests | 5 |
| WEBSCRAPING_AI_DEFAULT_JS_TIMEOUT | No | Maximum JavaScript rendering time in ms | 2000 |
| WEBSCRAPING_AI_DEFAULT_PROXY_TYPE | No | Type of proxy to use (datacenter or residential) | residential |
| WEBSCRAPING_AI_DEFAULT_JS_RENDERING | No | Enable/disable JavaScript rendering | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| webscraping_ai_questionA | Scrape a web page and have an LLM answer a question about it, using only the page's own content. Returns the answer as plain text. If the page lacks the information or the question can't be answered from it, the tool returns an error result whose body.error starts with "Invalid page or question", and the credits are refunded. Costs 5 credits on top of the scrape's normal cost. Suited to a single fact or short answer; use webscraping_ai_fields for several named values at once, or webscraping_ai_text to read or reason over the whole page yourself. API docs: https://webscraping.ai/docs#ai-question |
| webscraping_ai_fieldsA | Scrape a web page and have an LLM extract named values from it, using only the page's own content. Returns JSON of the form {"result": {: }} with exactly the requested keys; each value is a string, or null when the page doesn't contain it. Values are never nested objects or arrays, so request a list as a single delimited string. Costs 5 credits on top of the scrape's normal cost. API docs: https://webscraping.ai/docs#ai-fields |
| webscraping_ai_htmlC | Get the full rendered HTML of a web page (with JavaScript execution by default). API docs: https://webscraping.ai/docs#html |
| webscraping_ai_textA | Get a web page's main content as Markdown, with boilerplate stripped and structure (headings, lists, tables, links) kept. Best for reading a page or passing it to an LLM. API docs: https://webscraping.ai/docs#text |
| webscraping_ai_selectedB | Get the HTML of the first page element matching a CSS selector. API docs: https://webscraping.ai/docs#selected |
| webscraping_ai_selected_multipleB | Get the HTML of all page elements matching a list of CSS selectors. API docs: https://webscraping.ai/docs#selected |
| webscraping_ai_serpA | Search Google and get parsed results as JSON: organic_results (position, title, link, domain, displayed_link, snippet, date), related_searches, search_information (including spelling corrections) and pagination. 10 results per page; position restarts at 1 on every page. Priced per search (see https://webscraping.ai/docs#serp); failed searches are not charged. Use it to find pages, then read them with webscraping_ai_text or the other tools. |
| webscraping_ai_dataA | Get structured JSON for a public page on a supported site from its normal URL, e.g. a YouTube video, channel or playlist, a TikTok video or profile, an X post or profile, a LinkedIn company, job or profile, an Instagram post, reel or profile, or a Reddit post, subreddit or user. Returns {request_parameters: {url, provider, type}, parse_status, data}: provider (site) and type (page kind) are detected from the URL, parse_status is ok, parse_failed or not_found, and data holds snake_case fields whose shape depends on provider and type (null fields for values the page doesn't expose; data itself can be null when parsing fails). More sites are added on the server over time: an unsupported URL or page type returns a 400 error, not charged, whose message lists what is supported. For other sites, use webscraping_ai_fields. Priced per site (see https://webscraping.ai/docs#data), including parse_failed and not_found results; failed fetches are not charged. |
| webscraping_ai_accountA | Get your WebScraping.AI account status: email, remaining API credits, and concurrency. API docs: https://webscraping.ai/docs#account |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes: html/text/selected return page content, serp searches, data handles known provider pages, and account handles billing status. The AI tools (question, fields, text) and the selector tools (selected vs selected_multiple) overlap somewhat, but the descriptions explicitly cross-reference each other and clarify when to use which.
All tools share a predictable webscraping_ai_ prefix and use a consistent noun/adjective style (question, fields, html, text, selected, serp, data, account). There is no verb_noun pattern, and selected vs selected_multiple is a minor deviation, but the set is highly consistent overall.
Nine tools is well-scoped for a web scraping API client, covering retrieval, AI extraction, structured data, search, and account status without redundancy. Each tool maps to a distinct endpoint or capability.
The surface covers the core scraping lifecycle: raw HTML, rendered text, CSS selection, AI question/field extraction, SERP search, provider-specific structured data, and account status. Minor gaps exist, such as screenshot or other advanced scraping options, but agents can accomplish most scraping tasks with this set.