Skip to main content

Oxylabs + MCP

Oxylabs MCP Server

The missing link between AI models and the real‑world web: one API that delivers clean, structured data from any site.


📖 Overview

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, manage CAPTCHA, and access geo-restricted web data from 195+ countries.

It is built on the Model Context Protocol (MCP), the open standard for connecting AI assistants to external tools and data.

🛠️ MCP Tools

Oxylabs MCP provides two sets of tools that can be used together or independently:

Oxylabs Web Scraper API tools

  1. universal_scraper: scrapes any URL, with optional JavaScript rendering, geo-targeting, and Markdown/HTML/links output;
  2. google_search_scraper: extracts results from Google Search, with optional parsing into structured JSON;
  3. amazon_search_scraper: scrapes Amazon search result pages, with optional parsing into structured JSON;
  4. amazon_product_scraper: extracts data from individual Amazon product pages.

Oxylabs AI Studio tools

  1. ai_scraper: scrapes content from any URL with AI-powered extraction, in JSON, CSV, Markdown, or TOON format;
  2. ai_crawler: crawls a website from a starting URL based on a prompt and collects data across multiple pages;
  3. ai_browser_agent: controls a real browser based on a prompt — navigates, clicks, fills forms — and returns the result;
  4. ai_search: searches the web and optionally returns Markdown content of each result;
  5. ai_map: maps a website's URLs, filtered by keywords or a prompt;
  6. generate_schema: generates an OpenAPI-format JSON schema for structured extraction with the AI tools above.

✅ Prerequisites

Before you begin, make sure you have at least one of the following:

  • Oxylabs Web Scraper API account: obtain your username and password from Oxylabs (1-week free trial available);
  • Oxylabs AI Studio API key: obtain your API key from Oxylabs AI Studio (1000 credits free).

You will also need the uv package manager to run the server:

# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

📦 Configuration

Environment variables

Oxylabs MCP server supports the following environment variables:

Name Description Default
OXYLABS_USERNAME Your Oxylabs Web Scraper API username
OXYLABS_PASSWORD Your Oxylabs Web Scraper API password
OXYLABS_AI_STUDIO_API_KEY Your Oxylabs AI Studio API key
LOG_LEVEL Log level for the logs returned to the client INFO

Based on the provided credentials, the server automatically exposes the corresponding tools:

  • If only OXYLABS_USERNAME and OXYLABS_PASSWORD are provided, the server exposes the Web Scraper API tools;
  • If only OXYLABS_AI_STUDIO_API_KEY is provided, the server exposes the AI Studio tools;
  • If all three are provided, the server exposes all tools.

Important: only set the environment variables you have real credentials for. Leaving placeholder values will result in exposed tools that do not work.

Configure with uvx

Installs the package from PyPI and runs it automatically:

{
  "mcpServers": {
    "oxylabs": {
      "command": "uvx",
      "args": ["oxylabs-mcp"],
      "env": {
        "OXYLABS_USERNAME": "YOUR_USERNAME",
        "OXYLABS_PASSWORD": "YOUR_PASSWORD",
        "OXYLABS_AI_STUDIO_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Configure with a local checkout

Useful for development — runs the server from a local clone of this repository:

{
  "mcpServers": {
    "oxylabs": {
      "command": "uv",
      "args": [
        "--directory",
        "/<absolute-path-to-folder>/oxylabs-mcp",
        "run",
        "oxylabs-mcp"
      ],
      "env": {
        "OXYLABS_USERNAME": "YOUR_USERNAME",
        "OXYLABS_PASSWORD": "YOUR_PASSWORD",
        "OXYLABS_AI_STUDIO_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Running as a remote HTTP server (self-hosting)

The server also supports the MCP streamable-HTTP transport. Start it with:

MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 MCP_PORT=8000 uvx oxylabs-mcp

With the HTTP transport, credentials are passed per request instead of environment variables:

Credential How to pass it
Web Scraper API Authorization: Basic <base64(username:password)> (standard HTTP Basic auth)
Web Scraper API (alternative) X-Oxylabs-Username and X-Oxylabs-Password headers
AI Studio X-Oxylabs-AI-Studio-Api-Key header

Example client configuration:

{
  "mcpServers": {
    "oxylabs": {
      "url": "https://your-host:8000/mcp",
      "headers": {
        "Authorization": "Basic <base64 of username:password>",
        "X-Oxylabs-AI-Studio-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}

All tools are always listed regardless of provided credentials; calling a tool without the credentials it needs returns an error message explaining exactly what to configure.

Setup with Claude Desktop

Navigate to Claude → Settings → Developer → Edit Config and add one of the configurations above to the claude_desktop_config.json file.

Setup with Cursor AI

Navigate to Cursor → Settings → Cursor Settings → MCP. Click Add new global MCP server and add one of the configurations above.

📝 Logging

The server provides additional information about the tool calls in notification/message events:

{
  "method": "notifications/message",
  "params": {
    "level": "info",
    "data": "Create job with params: {\"url\": \"https://ip.oxylabs.io\"}"
  }
}
{
  "method": "notifications/message",
  "params": {
    "level": "info",
    "data": "Job info: job_id=7333113830223918081 job_status=done"
  }
}
{
  "method": "notifications/message",
  "params": {
    "level": "error",
    "data": "Error: request to Oxylabs API failed"
  }
}

✨ Key Features

Scrape content from any site
  • Extract data from any URL, including complex single-page applications
  • Fully render dynamic websites using headless browser support
  • Choose full JavaScript rendering, HTML-only, or none
  • Emulate Mobile and Desktop viewports for realistic rendering
Automatically get AI-ready data
  • Automatically clean and convert HTML to Markdown for improved readability
  • Use automated parsers for popular targets like Google, Amazon, and more
Manage CAPTCHA & geo-restrictions
  • Navigate sophisticated automated request management systems with high success rate
  • Reliably scrape even the most complex websites
  • Get automatically rotating IPs from a proxy pool covering 195+ countries
Flexible setup & cross-platform support
  • Set rendering and parsing options if needed
  • Feed data directly into AI models or analytics tools
  • Works on macOS, Windows, and Linux
Built-in error handling and request management
  • Comprehensive error handling and reporting
  • Smart rate limiting and request management

Why Oxylabs MCP?  🕸️ ➜ 📦 ➜ 🤖

Imagine telling your LLM "Summarise the latest Hacker News discussion about GPT‑5" – and it simply answers. The Oxylabs MCP server makes that happen by doing the boring parts for you:

What Oxylabs MCP does Why it matters to you
Manages automated request walls with the Oxylabs global proxy network Enables website access and anonymity
Renders JavaScript in headless Chrome Single‑page apps, sorted
Cleans HTML → Markdown Drop straight into vector DBs or prompts
Optional structured parsers (Google, Amazon, etc.) One‑line access to popular targets

🛡️ License

Distributed under the MIT License – see LICENSE for details.


About Oxylabs

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.

image

Made with ☕ by Oxylabs. Feel free to give us a ⭐ if MCP saved you a weekend.

mcp-name: io.oxylabs/oxylabs-mcp

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oxylabs_mcp-0.9.2.tar.gz (150.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oxylabs_mcp-0.9.2-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file oxylabs_mcp-0.9.2.tar.gz.

File metadata

  • Download URL: oxylabs_mcp-0.9.2.tar.gz
  • Upload date:
  • Size: 150.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxylabs_mcp-0.9.2.tar.gz
Algorithm Hash digest
SHA256 d09fbc7b7785414d4bbb4b430cbc733a772626e3b5eb5ad8d0932eda3309fa36
MD5 0d2d601ad91bb15d904b3d88e16fbcf4
BLAKE2b-256 48357f858b1e54340372b46e59f5a012289bcf71ffe6117fe5d4834ea818abd2

See more details on using hashes here.

File details

Details for the file oxylabs_mcp-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: oxylabs_mcp-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxylabs_mcp-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c8a30e3cff0fea62176922bb7bcbd7cf5d9193a2416b7c61c8ca7c398a7c1f4c
MD5 e12804620e4060a0018b30fc1170b6b6
BLAKE2b-256 6a8207f0c700de1c79c669f7d186c13360d0aed073ab8816fb960a69d34e4a49

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.9.2 This release

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.8

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page