# Oxylabs MCP server

> Scrape any URL, Google and Amazon results, and run AI crawlers, browser agents and web search through Oxylabs.

- Listing: https://mcp.tc/i/oxylabs
- Connect: use the server's own URL `https://mcp.oxylabs.io/mcp` (with your API key); clients connect to it directly. The listing link is a page, not an MCP endpoint.
- Type: remote (Streamable HTTP)
- Auth: API key
- Category: [Search & Web Data](https://mcp.tc/c/search-web)
- Vendor: Oxylabs
- Homepage: <https://developers.oxylabs.io/products/web-scraper-api/solutions-for-ai-workflows/model-context-protocol-mcp>
- Repository: <https://github.com/oxylabs/oxylabs-mcp>
- Package: pypi `oxylabs-mcp`

## About

Connects an assistant to Oxylabs Web Scraper API and AI Studio. It can scrape any page with optional JavaScript rendering and geo-targeting, pull Google Search and Amazon search or product data, crawl or map sites, run a browser agent that clicks and fills forms, and search the web with optional page content.

The hosted endpoint at https://mcp.oxylabs.io/mcp uses streamable HTTP. Credentials go in request headers: HTTP Basic auth for Web Scraper API and/or an AI Studio API key. The open-source repository is archived, but the hosted endpoint is the supported setup and the PyPI package oxylabs-mcp can still be run locally with uvx.

## What it can do

- Scrape any URL with optional JavaScript rendering and geo-targeting
- Extract Google Search results, optionally parsed into structured data
- Scrape Amazon search results and individual product pages
- Crawl a site from a start URL and collect data by prompt
- Map a website's URLs filtered by keywords or a prompt
- Run a browser agent that navigates, clicks and fills forms
- Search the web and optionally return Markdown for each result
- Generate JSON schemas for structured extraction

## Tools (10)

- `ai_crawler`: Crawl a website from a starting URL and return data in a chosen format. (read-only)
- `ai_scraper`: Scrape a web page with AI extraction into JSON, CSV, Markdown or TOON. (read-only)
- `ai_browser_agent`: Drive a browser to navigate, click and fill forms, then return results. (read-only)
- `ai_search`: Search the web, optionally returning Markdown content for each result. (read-only)
- `generate_schema`: Generate an OpenAPI-format JSON schema for structured extraction. (read-only)
- `ai_map`: Map a website's URLs, filtered by keywords or a prompt. (read-only)
- `universal_scraper`: Get the content of any webpage with optional rendering and parsing. (read-only)
- `google_search_scraper`: Scrape Google Search results with parsing, pagination and locale options. (read-only)
- `amazon_search_scraper`: Scrape Amazon search results with category, merchant and currency options. (read-only)
- `amazon_product_scraper`: Scrape Amazon product pages, with optional variant auto-select and currency. (read-only)

## Example prompts

- "Scrape this product page and return the title and price as JSON"
- "Search Google for best standing desks and give me the top 10 results"
- "Crawl docs.example.com and summarize the pages about authentication"
- "Look up this Amazon product in the US store and show current pricing"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport http oxylabs https://mcp.oxylabs.io/mcp --header "Authorization: Bearer <YOUR_AUTHORIZATION>" --header "X-Oxylabs-AI-Studio-Api-Key: <YOUR_X_OXYLABS_AI_STUDIO_API_KEY>"
```

2. Replace the placeholder with your key before you run it, then check it with `/mcp` inside Claude Code.

Add `--scope user` to make it available in every project, not just this one.

### Claude Desktop

1. Custom connectors can’t send this server’s key header, so use the `mcp-remote` bridge. Open **Settings → Developer → Edit Config** and add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "oxylabs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.oxylabs.io/mcp",
        "--header",
        "Authorization: Bearer <YOUR_AUTHORIZATION>",
        "--header",
        "X-Oxylabs-AI-Studio-Api-Key: <YOUR_X_OXYLABS_AI_STUDIO_API_KEY>"
      ]
    }
  }
}
```

2. Replace the placeholder with your key and restart Claude Desktop.

The bridge needs Node.js on your computer.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=oxylabs&config=eyJ1cmwiOiJodHRwczovL21jcC5veHlsYWJzLmlvL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciA8WU9VUl9BVVRIT1JJWkFUSU9OPiIsIlgtT3h5bGFicy1BSS1TdHVkaW8tQXBpLUtleSI6IjxZT1VSX1hfT1hZTEFCU19BSV9TVFVESU9fQVBJX0tFWT4ifX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "oxylabs": {
      "url": "https://mcp.oxylabs.io/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_AUTHORIZATION>",
        "X-Oxylabs-AI-Studio-Api-Key": "<YOUR_X_OXYLABS_AI_STUDIO_API_KEY>"
      }
    }
  }
}
```

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the key the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "oxylabs": {
      "type": "http",
      "url": "https://mcp.oxylabs.io/mcp",
      "headers": {
        "Authorization": "Bearer ${input:api-key}",
        "X-Oxylabs-AI-Studio-Api-Key": "${input:x-oxylabs-ai-studio-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "api-key",
      "description": "API key",
      "password": true
    },
    {
      "type": "promptString",
      "id": "x-oxylabs-ai-studio-api-key",
      "description": "X-Oxylabs-AI-Studio-Api-Key",
      "password": true
    }
  ]
}
```

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "oxylabs": {
      "serverUrl": "https://mcp.oxylabs.io/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_AUTHORIZATION>",
        "X-Oxylabs-AI-Studio-Api-Key": "<YOUR_X_OXYLABS_AI_STUDIO_API_KEY>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf. It reads `serverUrl` (or `url`) for remote servers.

### Codex

```bash
codex mcp add oxylabs --url https://mcp.oxylabs.io/mcp --bearer-token-env-var OXYLABS_API_KEY
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.oxylabs]
url = "https://mcp.oxylabs.io/mcp"
bearer_token_env_var = "OXYLABS_API_KEY"
```

Set `OXYLABS_API_KEY` to your key in the shell that runs Codex.

### Gemini CLI

```bash
gemini mcp add --transport http --header "Authorization: Bearer <YOUR_AUTHORIZATION>" --header "X-Oxylabs-AI-Studio-Api-Key: <YOUR_X_OXYLABS_AI_STUDIO_API_KEY>" oxylabs https://mcp.oxylabs.io/mcp
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients accept this shape. Some name the URL field differently: `serverUrl` in Devin Desktop, `httpUrl` in Gemini CLI’s settings file.

```json
{
  "mcpServers": {
    "oxylabs": {
      "type": "http",
      "url": "https://mcp.oxylabs.io/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_AUTHORIZATION>",
        "X-Oxylabs-AI-Studio-Api-Key": "<YOUR_X_OXYLABS_AI_STUDIO_API_KEY>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings. Cline needs `"type": "streamableHttp"`, or it assumes SSE.

Client only starts local servers? Bridge it with `npx -y mcp-remote https://mcp.oxylabs.io/mcp`.

## Details

- Server version: 0.9.3
- MCP protocol version: 2025-11-25
- Last checked: 2026-10-03 (reachable)
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/oxylabs (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
