oxylabs mcp
A scraper tool that leverages the Oxylabs Web Scraper API to fetch and process web content with flexible options for parsing and rendering pages, enabling efficient content extraction from complex websites.
A scraper tool that leverages the Oxylabs Web Scraper API to fetch and process web content with flexible options for parsing and rendering pages, enabling efficient content extraction from complex websites.
A Model Context Protocol (MCP) server that enables AI assistants like Claude to seamlessly access web data through Oxylabs' powerful web scraping technology.
The Oxylabs MCP server provides a bridge between AI models and the web. It enables them to scrape any URL, render JavaScript-heavy pages, extract and format content for AI use, bypass anti-scraping measures, and access geo-restricted web data from 195+ countries.
This implementation leverages the Model Context Protocol (MCP) to create a secure, standardized way for AI assistants to interact with web content.
When you've set up the MCP server with Claude, you can make requests like:
Could you scrape https://www.google.com/search?q=ai page?
Scrape https://www.amazon.de/-/en/Smartphone-Contract-Function-Manufacturer-Exclusive/dp/B0CNKD651V with parse enabled
Scrape https://www.amazon.de/-/en/gp/bestsellers/beauty/ref=zg_bs_nav_beauty_0 with parse and render enabled
Use web unblocker with render to scrape https://www.bestbuy.com/site/top-deals/all-electronics-on-sale/pcmcat1674241939957.c
Before you begin, make sure you have:
npx
command-line tooluv
package manager – install it using this guideThe Oxylabs MCP server supports these parameters:
Parameter | Description | Values |
---|---|---|
url |
The URL to scrape | Any valid URL |
parse |
Enable structured data extraction | True or False |
render |
Use headless browser rendering | html or None |
Automatically install Oxylabs MCP server for Claude Desktop via Smithery:
npx -y @smithery/cli install @oxylabs/oxylabs-mcp --client claude
[!IMPORTANT] Requires Cursor version
0.45.6+
To configure Oxylabs in Cursor:
oxylabs
(or your preferred name)command
npx -y @smithery/cli@latest run @oxylabs/oxylabs-mcp --config "{"oxylabsUsername":"YOUR_USERNAME","oxylabsPassword":"YOUR_PASSWORD"}"
Replace your-username
and your-password
with your Oxylabs credentials.
[!TIP] If you're using Windows and run into issues, try this:
cmd /c "set OXYLABS_USERNAME=your-username && set OXYLABS_PASSWORD=your-password && npx -y oxylabs-mcp"
After that, refresh the MCP server list to see the new tools. The Composer Agent will automatically use Oxylabs when appropriate, but you can explicitly request it by describing your web scraping needs. Access the Composer via Command+L
(Mac), select "Agent" next to the submit button, and enter your query.
Enable Developer Mode and then navigate to Claude → Settings → Developer → Edit Config and edit your claude_desktop_config.json
file as follows:
{
"mcpServers": {
"oxylabs_scraper": {
"command": "uvx",
"args": ["oxylabs-mcp"],
"env": {
"OXYLABS_USERNAME": "YOUR_USERNAME_HERE",
"OXYLABS_PASSWORD": "YOUR_PASSWORD_HERE"
}
}
}
}
git clone <git:url>
Install MCP server dependencies:
cd mcp-server-oxylabs
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # MacOS/Linux
# OR
.venv/Scripts/activate # Windows
# Install dependencies
uv sync
Enable Developer Mode and then navigate to Claude → Settings → Developer → Edit Config and edit your claude_desktop_config.json
file as follows:
{
"mcpServers": {
"oxylabs_scraper": {
"command": "uv",
"args": [
"--directory",
"/<Absolute-path-to-folder>/oxylabs-mcp",
"run",
"oxylabs-mcp"
],
"env": {
"OXYLABS_USERNAME": "YOUR_USERNAME_HERE",
"OXYLABS_PASSWORD": "YOUR_PASSWORD_HERE"
}
}
}
}
make run
Then access MCP Inspector at http://localhost:5173
. You may need to add your username and password as environment variables in the inspector under OXYLABS_USERNAME
and OXYLABS_PASSWORD
.
This server provides two main tools:
Web Scraper API supports JavaScript rendering, parsed structured data, and cleaned HTML in Markdown format. Web Unblocker offers JavaScript rendering and cleaned HTML, but doesn’t return parsed data.
[!WARNING] Usage with the MCP Inspector is affected by an ongoing issue with the Python SDK for MCP, see: https://github.com/modelcontextprotocol/python-sdk/pull/85. For Claude, a forked version of the SDK is used as a temporary fix.
This project is licensed under the MIT License.
Established in 2015, Oxylabs is a market-leading web intelligence collection platform, driven by the highest business, ethics, and compliance standards, enabling companies worldwide to unlock data-driven insights.
[
{
"description": "Scrape url using Oxylabs Web Api",
"inputSchema": {
"properties": {
"parse": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": {
"path": "uv.lock",
"type": "blob"
},
"description": "Should result be parsed. If result should not be parsed then html will be stripped and converted to markdown file",
"title": "Parse"
},
"render": {
"anyOf": [
{
"enum": [
"html",
"None"
],
"type": "string"
},
{
"type": "null"
}
],
"default": {
"path": "uv.lock",
"type": "blob"
},
"description": "Whether a headless browser should be used to render the page. See: https://developers.oxylabs.io/scraper-apis/web-scraper-api/features/javascript-rendering `html` will return rendered html page `None` will not use render for scraping.",
"title": "Render"
},
"url": {
"description": "Url to scrape",
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "scrape_urlArguments",
"type": "object"
},
"name": "oxylabs_scraper"
},
{
"description": "Scrape url using Oxylabs Web Unblocker",
"inputSchema": {
"properties": {
"render": {
"anyOf": [
{
"enum": [
"html",
"None"
],
"type": "string"
},
{
"type": "null"
}
],
"default": {
"path": "uv.lock",
"type": "blob"
},
"description": "Whether a headless browser should be used to render the page. See: https://developers.oxylabs.io/advanced-proxy-solutions/web-unblocker/headless-browser/javascript-rendering `html` will return rendered html page `None` will not use render for scraping.",
"title": "Render"
},
"url": {
"description": "Url to scrape with web unblocker",
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "scrape_with_web_unblockerArguments",
"type": "object"
},
"name": "oxylabs_web_unblocker"
}
]