Skip to main content
Glama
oxylabs

Oxylabs MCP Server

Official

pypi package Licence Coverage badge


📖 개요

Oxylabs MCP 서버는 AI 모델과 웹 사이의 다리 역할을 합니다. 이를 통해 모든 URL을 스크래핑하고, JavaScript가 많이 사용된 페이지를 렌더링하며, AI 사용을 위한 콘텐츠를 추출하고 형식화하며, CAPTCHA를 관리하고, 195개 이상의 국가에서 지역 제한 웹 데이터에 액세스할 수 있습니다.

이 서버는 AI 어시스턴트를 외부 도구 및 데이터에 연결하기 위한 개방형 표준인 Model Context Protocol (MCP)을 기반으로 구축되었습니다.

Related MCP server: FreeCrawl MCP Server

🛠️ MCP 도구

Oxylabs MCP는 함께 또는 독립적으로 사용할 수 있는 두 가지 도구 세트를 제공합니다:

Oxylabs Web Scraper API 도구

  1. universal_scraper: 선택적 JavaScript 렌더링, 지역 타겟팅, Markdown/HTML/링크 출력과 함께 모든 URL을 스크래핑합니다;

  2. google_search_scraper: Google 검색 결과를 추출하며, 선택적으로 구조화된 JSON으로 파싱합니다;

  3. amazon_search_scraper: Amazon 검색 결과 페이지를 스크래핑하며, 선택적으로 구조화된 JSON으로 파싱합니다;

  4. amazon_product_scraper: 개별 Amazon 제품 페이지에서 데이터를 추출합니다.

Oxylabs AI Studio 도구

  1. ai_scraper: AI 기반 추출을 통해 모든 URL에서 콘텐츠를 스크래핑하며, JSON, CSV, Markdown 또는 TOON 형식으로 제공합니다;

  2. ai_crawler: 프롬프트를 기반으로 시작 URL에서 웹사이트를 크롤링하고 여러 페이지에 걸쳐 데이터를 수집합니다;

  3. ai_browser_agent: 프롬프트를 기반으로 실제 브라우저를 제어합니다 — 탐색, 클릭, 양식 작성 — 결과를 반환합니다;

  4. ai_search: 웹을 검색하고 선택적으로 각 결과의 Markdown 콘텐츠를 반환합니다;

  5. ai_map: 키워드 또는 프롬프트로 필터링하여 웹사이트의 URL을 매핑합니다;

  6. generate_schema: 위의 AI 도구로 구조화된 추출을 위한 OpenAPI 형식 JSON 스키마를 생성합니다.

✅ 사전 요구 사항

시작하기 전에 다음 중 하나 이상이 있는지 확인하세요:

  • Oxylabs Web Scraper API 계정: Oxylabs에서 사용자 이름과 비밀번호를 얻으세요 (1주 무료 체험 가능);

  • Oxylabs AI Studio API 키: Oxylabs AI Studio에서 API 키를 얻으세요 (1000 크레딧 무료).

로컬에서 서버를 실행하려면 (아래 옵션 2) uv 패키지 관리자도 필요합니다:

# 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"

📦 구성

서버를 사용하는 방법은 두 가지입니다: 호스팅 인스턴스에 연결하거나 (설치 불필요) 환경 변수의 자격 증명으로 로컬에서 실행합니다.

옵션 1: 호스팅 서버 (설치 불필요)

Oxylabs는 다음 주소에서 호스팅 MCP 서버를 실행합니다:

https://mcp.oxylabs.io/mcp

자격 증명은 요청 헤더로 전달됩니다:

자격 증명

헤더

Web Scraper API

Authorization: Basic <base64(username:password)>

Web Scraper API (대안)

X-Oxylabs-Username 및 X-Oxylabs-Password

AI Studio

X-Oxylabs-AI-Studio-Api-Key

Claude Code로 설정:

claude mcp add --transport http oxylabs https://mcp.oxylabs.io/mcp \
  --header "Authorization: Basic $(echo -n 'YOUR_USERNAME:YOUR_PASSWORD' | base64)" \
  --header "X-Oxylabs-AI-Studio-Api-Key: YOUR_API_KEY"

Cursor 또는 사용자 지정 헤더가 있는 원격 MCP 서버를 지원하는 모든 클라이언트로 설정:

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

서버는 Smithery에도 등록되어 있습니다.

참고: 원격 서버에 OAuth만 지원하는 클라이언트 (예: claude.ai 웹 UI에서 사용자 지정 커넥터 추가)는 아직 헤더를 전달할 수 없습니다 — OAuth 로그인은 로드맵에 있습니다. 그동안 해당 클라이언트에서는 아래의 로컬 설정을 사용하세요.

옵션 2: 로컬에서 실행

환경 변수

Oxylabs MCP 서버는 다음 환경 변수를 지원합니다:

이름

설명

기본값

OXYLABS_USERNAME

Oxylabs Web Scraper API 사용자 이름

OXYLABS_PASSWORD

Oxylabs Web Scraper API 비밀번호

OXYLABS_AI_STUDIO_API_KEY

Oxylabs AI Studio API 키

LOG_LEVEL

클라이언트에 반환되는 로그의 로그 수준

INFO

제공된 자격 증명에 따라 서버는 해당 도구를 자동으로 노출합니다:

  • OXYLABS_USERNAME 및 OXYLABS_PASSWORD만 제공된 경우 서버는 Web Scraper API 도구를 노출합니다;

  • OXYLABS_AI_STUDIO_API_KEY만 제공된 경우 서버는 AI Studio 도구를 노출합니다;

  • 세 가지 모두 제공된 경우 서버는 모든 도구를 노출합니다.

❗ 중요: 실제 자격 증명이 있는 환경 변수만 설정하세요. 자리 표시자 값을 남겨두면 작동하지 않는 도구가 노출됩니다.

uvx로 구성

PyPI의 패키지를 설치하고 자동으로 실행합니다:

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

로컬 체크아웃으로 구성

개발에 유용합니다 — 이 저장소의 로컬 클론에서 서버를 실행합니다:

{
  "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"
      }
    }
  }
}

원격 HTTP 서버로 실행 (자체 호스팅)

서버는 MCP streamable-HTTP 전송도 지원합니다. 다음으로 시작하세요:

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

HTTP 전송을 사용하면 자격 증명이 환경 변수 대신 요청별로 전달됩니다:

자격 증명

전달 방법

Web Scraper API

Authorization: Basic <base64(username:password)> (표준 HTTP Basic 인증)

Web Scraper API (대안)

X-Oxylabs-Username 및 X-Oxylabs-Password 헤더

AI Studio

X-Oxylabs-AI-Studio-Api-Key 헤더

클라이언트 구성 예시:

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

제공된 자격 증명과 관계없이 모든 도구가 항상 나열됩니다. 필요한 자격 증명 없이 도구를 호출하면 정확히 무엇을 구성해야 하는지 설명하는 오류 메시지가 반환됩니다.

Claude Desktop으로 설정

Claude → Settings → Developer → Edit Config로 이동하여 위 구성 중 하나를 claude_desktop_config.json 파일에 추가하세요.

Cursor AI로 설정

Cursor → Settings → Cursor Settings → MCP로 이동하세요. Add new global MCP server를 클릭하고 위 구성 중 하나를 추가하세요.

📝 로깅

서버는 notification/message 이벤트에서 도구 호출에 대한 추가 정보를 제공합니다:

{
  "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"
  }
}

✨ 주요 기능

  • 복잡한 단일 페이지 애플리케이션을 포함한 모든 URL에서 데이터 추출

  • 헤드리스 브라우저 지원으로 동적 웹사이트 완전 렌더링

  • 전체 JavaScript 렌더링, HTML 전용 또는 없음 중 선택

  • 사실적인 렌더링을 위한 모바일 및 데스크톱 뷰포트 에뮬레이션

  • 가독성 향상을 위해 HTML을 자동으로 정리하고 Markdown으로 변환

  • Google, Amazon 등 인기 대상에 대한 자동화된 파서 사용

  • 높은 성공률로 정교한 자동 요청 관리 시스템 탐색

  • 가장 복잡한 웹사이트도 안정적으로 스크래핑

  • 195개 이상의 국가를 포괄하는 프록시 풀에서 자동 순환 IP 획득

  • 필요한 경우 렌더링 및 파싱 옵션 설정

  • 데이터를 AI 모델 또는 분석 도구에 직접 공급

  • macOS, Windows, Linux에서 작동

  • 포괄적인 오류 처리 및 보고

  • 스마트 속도 제한 및 요청 관리

왜 Oxylabs MCP인가? 🕸️ ➜ 📦 ➜ 🤖

LLM에게 *"GPT‑5에 관한 최신 Hacker News 토론을 요약해 줘"*라고 말하는 것을 상상해 보세요 – 그러면 그냥 답변합니다. Oxylabs MCP 서버는 지루한 부분을 대신 처리하여 이를 실현합니다:

Oxylabs MCP가 하는 일

사용자에게 중요한 이유

Oxylabs 글로벌 프록시 네트워크로 자동 요청 장벽 관리

웹사이트 액세스 및 익명성 보장

헤드리스 Chrome에서 JavaScript 렌더링

단일 페이지 앱, 해결됨

HTML → Markdown 정리

벡터 DB 또는 프롬프트에 바로 투입

선택적 구조화 파서 (Google, Amazon 등)

인기 대상에 대한 원클릭 액세스


🛡️ 라이선스

MIT 라이선스에 따라 배포됩니다 – 자세한 내용은 LICENSE를 참조하세요.


Oxylabs 소개

2015년에 설립된 Oxylabs는 최고 수준의 비즈니스, 윤리 및 규정 준수 표준을 기반으로 하는 시장 선도적인 웹 인텔리전스 수집 플랫폼으로, 전 세계 기업이 데이터 기반 인사이트를 확보할 수 있도록 지원합니다.

image

mcp-name: io.oxylabs/oxylabs-mcp

Available Tools

10 tools
ai_browser_agentC
Read-only
Inspect

Run the browser agent and return the data in the specified format.

This tool is useful if you need navigate around the website and do some actions. It allows navigating to any url, clicking on links, filling forms, scrolling, etc. Finally it returns the data in the specified format. Schema is required only if output_format is json, csv or toon. 'task_prompt' describes what browser agent should achieve

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to start the browser agent navigation from.
schemaNoThe schema to use for the scrape. Only required if output_format is json, csv or toon.
task_promptYesWhat browser agent should do.
geo_locationNoTwo letter ISO country code to use for the browser proxy.
output_formatNoThe output format. Markdown returns full text of the page including links. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents. If json, csv or toon, the schema is required.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the agent can click links, fill forms, and perform actions, which implies potentially mutating state or submitting data. This contradicts the annotations readOnlyHint set to true. Because the description directly conflicts with the annotation and also provides no safety/auth/side-effect context, this dimension scores minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is not excessively long, but it repeats the core idea: the first sentence and the 'Finally it returns...' sentence both say the tool returns data in a specified format. Some sentences are redundant rather than adding new operational guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and detailed input-schema provide substantial structure, so this is not a sparse definition. However, the description misses important behavioral context around a browser automation tool, such as side effects from form submission, authentication state, and session behavior; this is made worse by the annotation contradiction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with descriptions at 100% coverage, so the baseline is 3. The description repeats the conditional schema requirement for json/csv/toon and explains task_prompt, but it adds no new information beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly says 'Run the browser agent and return the data' and then lists concrete actions like clicking, filling forms, scrolling, and navigating to URLs. This gives a specific verb/resource and conveys an interactive browser tool, though it does not explicitly name or contrast sibling scraper/crawler tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says the tool is 'useful if you need navigate around the website and do some actions,' which implies an interactive task. However, it provides no explicit guidance on when not to use it or which sibling tool (e.g., ai_scraper, ai_crawler) should be used for static extraction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_crawlerC
Read-only
Inspect

Tool useful for crawling a website from starting url and returning data in a specified format.

Schema is required only if output_format is json, csv or toon. 'render_javascript' is used to render javascript heavy websites. 'return_sources_limit' is used to limit the number of sources to return, for example if you expect results from single source, you can set it to 1.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL from which crawling will be started.
schemaNoThe JSON schema to use for structured data extraction from the crawled pages. Only required if output_format is json, csv or toon.
user_promptYesWhat information user wants to extract from the domain.
geo_locationNoTwo letter ISO country code to use for the crawl proxy.
output_formatNoThe format of the output. If json, csv or toon, the schema is required. Markdown returns full text of the page. CSV returns data in CSV format. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents.markdown
render_javascriptNoWhether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page. Unless user asks to use it, first try to crawl the page without it. If results are unsatisfactory, try to use it.
return_sources_limitNoThe maximum number of sources to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true, which the description respects. The description does not add further behavioral details (e.g., no side effects, rate limits, or data retention), but it does not contradict the annotation either. Given the read-only nature is already indicated, the description adds little beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and redundant, repeating parameter details that are already in the schema. For example, the URL and render_javascript explanations are duplicated verbatim. This wastes tokens and reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema is present but the description does not explain the structure or any exceptional behaviors. It briefly mentions returning data in a specified format, but does not elaborate on how the crawl is scoped or what happens with large sites. Given the completeness of the input schema and presence of output schema, the description is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the tool description adds no new parameter information. The prose repeats the schema definitions without clarifying edge cases or relationships, so it meets the baseline but provides no added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool crawls a website starting from a URL and returns data in a specified format. However, it does not differentiate from sibling tools like ai_scraper or universal_scraper, which might also crawl pages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives. It implies output format flexibility but lacks guidance on scenarios favoring ai_crawler over other scrapers or search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_mapD
Read-only
Inspect

Tool useful for mapping website's URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL from which URLs mapping will be started.
limitNoThe maximum number of URLs to return.
user_promptNoWhat kind of URLs user wants to find. Can be used together with 'search_keywords'.
geo_locationNoTwo letter ISO country code to use for the mapping proxy.
max_crawl_depthNoThe maximum depth of the crawl.
search_keywordsNoThe keywords to use for URLs paths filtering. Keywords are matched as OR condition. Meaning, one keyword is enough to match the url path.
allow_subdomainsNoWhether to map subdomains URLs as well.
render_javascriptNoWhether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page. Unless user asks to use it, first try to crawl the page without it. If results are unsatisfactory, try to use it.
allow_external_domainsNoWhether to include external domains URLs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint: true, indicating a safe read operation, but the description fails to add behavioral context. It doesn't disclose that the tool performs crawling, respects depth limits, or requires JavaScript rendering for some sites. No mention of performance characteristics, rate limits, or edge cases beyond what the schema's parameter descriptions already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is concise but under-specifies the tool's behavior. It's not powerful or informative enough to earn credit for conciseness; rather, it reads as an under-developed placeholder. A good description would front-load the tool's purpose in a way that adds value, but this wastes the opportunity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, a required URL, and complex behaviors like crawl depth, subdomain handling, and JavaScript rendering, a one-sentence description is grossly inadequate. Even though an output schema exists, the description fails to convey the tool's inputs' intent or the meaning of its output. The behavioral nuances (e.g., proxy usage, OR-matching for keywords) are left entirely to the schema, making this incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 9 parameters are documented in the input schema itself. The description adds no parameter semantics; it merely repeats the tool name. Per rubric, with high schema coverage, the baseline is 3, which is appropriate here since the description doesn't need to compensate but also doesn't add value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Tool useful for mapping website's URLs' uses the vague verb 'mapping' and a possessive phrasing that doesn't define the action clearly. While it names the resource (website URLs), it fails to articulate the core function of discovering or crawling links, leaving the tool's true purpose ambiguous. Sibling tools like 'ai_crawler' and 'ai_scraper' further blur the line, making this description insufficiently specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus any of the nine sibling tools. There is no mention of when ai_map is preferred over ai_crawler or ai_browser_agent, nor any exclusions or prerequisites. Users are left to guess which tool fits their use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_scraperA
Read-only
Inspect

Scrape the contents of the web page and return the data in the specified format.

Schema is required only if output_format is json or csv. 'render_javascript' is used to render javascript heavy websites.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to scrape
schemaNoThe JSON schema to use for structured data extraction from the scraped page. Only required if output_format is json, csv or toon.
geo_locationNoTwo letter ISO country code to use for the scrape proxy.
output_formatNoThe format of the output. If json, csv or toon, the schema is required. Markdown returns full text of the page. CSV returns data in CSV format, tabular like data. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents.markdown
render_javascriptNoWhether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page.Unless user asks to use it, first try to scrape the page without it. If results are unsatisfactory, try to use it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description aligns with that (scraping is read-only). The description adds useful behavioral context about render_javascript being slower and the recommendation to try without it first. However, it doesn't disclose potential rate limits, auth requirements, or what happens on failure, which would be valuable for a scraping tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the core purpose. It avoids redundancy with the schema. However, it could be slightly more structured by separating the conditional requirements more clearly, but overall it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and 100% parameter coverage, the description is fairly complete. It covers the key conditional logic (schema requirement, render_javascript usage) and the tool's scope. It doesn't explain return values, but the output schema handles that. Minor gaps: no mention of error handling or edge cases, but acceptable for a scraping tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds minimal extra meaning beyond what the schema provides, but it does clarify the conditional requirement for schema and the performance trade-off of render_javascript. This is a baseline 3 since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scrapes web page contents and returns data in a specified format. It distinguishes itself from siblings like ai_crawler (which likely crawls multiple pages) and google_search_scraper (which targets search results) by focusing on a single page scrape with format options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when schema is required (for json/csv/toon formats) and when to use render_javascript (for JS-heavy sites, with a recommendation to try without it first). It doesn't explicitly mention alternatives among siblings, but the usage context is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

amazon_product_scraperA
Read-only
Inspect

Scrape Amazon products.

Supports content parsing, different user agent types, domain, geolocation, locale parameters and different output formats. Supports Amazon specific parameters such as currency and getting more accurate pricing data with auto select variant.

ParametersJSON Schema
NameRequiredDescriptionDefault
parseNoShould result be parsed. If the result is not parsed, the output_format parameter is applied.
queryYesKeyword to search for.
domainNo Domain localization for Google. Use country top level domains. For example: - 'co.uk' for United Kingdom - 'us' for United States - 'fr' for France
localeNo Set 'Accept-Language' header value which changes your Google search page web interface language. Examples: - 'en-US' for English, United States - 'de-AT' for German, Austria - 'fr-FR' for French, France
renderNo Whether a headless browser should be used to render the page. For example: - 'html' when browser is required to render the page.
currencyNoCurrency that will be used to display the prices.
geo_locationNo The geographical location that the result should be adapted for. Use ISO-3166 country codes. Examples: - 'California, United States' - 'Mexico' - 'US' for United States - 'DE' for Germany - 'FR' for France
output_formatNo The format of the output. Works only when parse parameter is false. - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website. - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process. - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.
user_agent_typeNoDevice type and browser that will be used to determine User-Agent header value.
autoselect_variantNoTo get accurate pricing/buybox data, set this parameter to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals a safe read operation. The description adds some functional context (content parsing, output formats, user agents) but does not disclose potential side effects, rate limits, or return behavior beyond what the schema implies. The annotation is not contradicted, and the added detail provides marginal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with the purpose front-loaded. The second sentence compactly enumerates capabilities without redundancy. Every word contributes to the overall understanding, and there is no filler or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, 1 required) and rich schema/output schema, the description gives a reasonable high-level overview. However, it does not mention limitations, pagination, or differentiate from similar tools like amazon_search_scraper. The output schema and annotations fill in some gaps, making it minimally complete but not richly contextual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 10 parameters, so the schema carries the full semantic burden. The description groups parameters into categories and highlights Amazon-specific ones (currency, autoselect_variant), adding conceptual organization but no new factual information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scrapes Amazon products, providing a specific verb and resource. It does not explicitly differentiate from sibling tools like amazon_search_scraper or universal_scraper, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for scraping Amazon products but gives no explicit guidance on when to use it vs. alternatives. It lacks when-to-use/when-not-to-use criteria or exclusion notes, leaving the agent to infer based on the name and general purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

amazon_search_scraperB
Read-only
Inspect

Scrape Amazon search results.

Supports content parsing, different user agent types, pagination, domain, geolocation, locale parameters and different output formats. Supports Amazon specific parameters such as category id, merchant id, currency.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoNumber of pages to retrieve.
parseNoShould result be parsed. If the result is not parsed, the output_format parameter is applied.
queryYesKeyword to search for.
domainNo Domain localization for Google. Use country top level domains. For example: - 'co.uk' for United Kingdom - 'us' for United States - 'fr' for France
localeNo Set 'Accept-Language' header value which changes your Google search page web interface language. Examples: - 'en-US' for English, United States - 'de-AT' for German, Austria - 'fr-FR' for French, France
renderNo Whether a headless browser should be used to render the page. For example: - 'html' when browser is required to render the page.
currencyNoCurrency that will be used to display the prices.
start_pageNoStarting page number.
category_idNoSearch for items in a particular browse node (product category).
merchant_idNoSearch for items sold by a particular seller.
geo_locationNo The geographical location that the result should be adapted for. Use ISO-3166 country codes. Examples: - 'California, United States' - 'Mexico' - 'US' for United States - 'DE' for Germany - 'FR' for France
output_formatNo The format of the output. Works only when parse parameter is false. - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website. - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process. - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.
user_agent_typeNoDevice type and browser that will be used to determine User-Agent header value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only lists supported features (parsing, pagination, user agents, etc.) and does not disclose behavioral traits such as response format, rate limits, or edge cases. The readOnlyHint annotation already indicates a safe read operation, but the description adds little beyond what the schema and annotation provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear opening statement followed by a feature list in two sentences. While every sentence provides relevant information, the list format is somewhat generic and could be better structured by separating capabilities into categories.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters) and the presence of a full output schema, the description offers an adequate high-level overview. However, it omits practical context like when to use parse=false or how pagination behaves, relying on the detailed schema descriptions to cover specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description redundantly mentions parameter groups already documented in the schema (e.g., pagination, user agent types, currency) without adding nuanced meaning or context beyond what the schema descriptions offer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource: 'Scrape Amazon search results.' This clearly distinguishes it from siblings like google_search_scraper and amazon_product_scraper, which target different resources. It further lists Amazon-specific parameters, reinforcing its focused purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for Amazon search result scraping but provides no explicit guidance on when to choose this tool over alternatives. It does not mention exclusions or recommend siblings for related tasks, leaving the decision to inference from the tool name and capability list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_schemaC
Read-only
Inspect

Generate a json schema in openapi format.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes
user_promptYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not contradict the readOnly annotation, but it adds no context about side effects, limitations, or special behaviors. With the annotation present, the bar is lower, but the description still offers minimal insight beyond the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no fluff, but it is too brief to be informative. It is appropriately sized in terms of length, but the lack of content reduces its effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters and an output schema, the description is severely incomplete. It does not explain expected inputs, outputs, or any relevant context, making it insufficient for a user to understand the tool's full capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description gives no explanation of the parameters user_prompt and app_name. Schema coverage is 0%, and the description fails to compensate with any param-level detail, leaving the user to guess their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a JSON schema in OpenAPI format, which is a specific action and outcome. It differentiates from sibling tools focused on search and scraping, but could be more specific about the schema's intended use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. It lacks explicit when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

google_search_scraperA
Read-only
Inspect

Scrape Google Search results.

Supports content parsing, different user agent types, pagination, domain, geolocation, locale parameters and different output formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to retrieve in each page.
pagesNoNumber of pages to retrieve.
parseNoShould result be parsed. If the result is not parsed, the output_format parameter is applied.
queryYesURL-encoded keyword to search for.
domainNo Domain localization for Google. Use country top level domains. For example: - 'co.uk' for United Kingdom - 'us' for United States - 'fr' for France
localeNo Set 'Accept-Language' header value which changes your Google search page web interface language. Examples: - 'en-US' for English, United States - 'de-AT' for German, Austria - 'fr-FR' for French, France
renderNo Whether a headless browser should be used to render the page. For example: - 'html' when browser is required to render the page.
ad_modeNoIf true will use the Google Ads source optimized for the paid ads.
start_pageNoStarting page number.
geo_locationNo The geographical location that the result should be adapted for. Use ISO-3166 country codes. Examples: - 'California, United States' - 'Mexico' - 'US' for United States - 'DE' for Germany - 'FR' for France
output_formatNo The format of the output. Works only when parse parameter is false. - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website. - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process. - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.
user_agent_typeNoDevice type and browser that will be used to determine User-Agent header value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description 'Scrape' is consistent with a read operation. However, the description adds little beyond the annotations and the parameter schema; it does not mention rate limits, pagination behavior, rendering implications, or antiscraping nuances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences. The first sentence is a clear, front-loaded purpose statement; the second is a compact capability list. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema and output schema are rich, but the tool description omits several notable parameters like render and ad_mode, and does not explain the parse/output_format relationship. Given the tool's complexity, the description alone provides only high-level context, leaving these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 12 parameters. The tool description only lists categories like 'pagination' and 'geolocation' without adding new meaning; therefore, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Scrape Google Search results.' This clearly distinguishes the tool from siblings like amazon_search_scraper or ai_search by naming Google Search as the target. The second sentence enumerates key capabilities (parsing, user agents, pagination, etc.), further clarifying scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for scraping Google Search results but provides no explicit guidance on when to prefer this over ai_search, universal_scraper, or other siblings. It lists supported features but does not state conditions, exclusions, or alternative choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

universal_scraperB
Read-only
Inspect

Get a content of any webpage.

Supports browser rendering, parsing of certain webpages and different output formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesWebsite url to scrape.
renderNo Whether a headless browser should be used to render the page. For example: - 'html' when browser is required to render the page.
geo_locationNo The geographical location that the result should be adapted for. Use ISO-3166 country codes. Examples: - 'California, United States' - 'Mexico' - 'US' for United States - 'DE' for Germany - 'FR' for France
output_formatNo The format of the output. Works only when parse parameter is false. - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website. - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process. - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.
user_agent_typeNoDevice type and browser that will be used to determine User-Agent header value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already indicates a safe read operation. The description adds that browser rendering and parsing are supported, which is useful. However, it does not disclose potential limitations, error behaviors, or the meaning of 'certain webpages', so it adds only modest context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two short sentences that front-load the core purpose. It is efficient but contains a grammatical awkwardness ('a content') and vague phrasing like 'certain webpages', preventing a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of multiple sibling scrapers and a 5-parameter schema, this description is too sparse. It does not explain when to use this generic scraper over specialized ones like amazon_product_scraper, nor does it clarify the render or geo_location options' implications. An output schema exists, which covers return format, but selection guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with detailed parameter descriptions for url, render, geo_location, output_format, and user_agent_type. The tool description adds no additional parameter meaning beyond mentioning 'different output formats', which the schema already details. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets content from any webpage and supports browser rendering, parsing, and output formats. However, it does not differentiate itself from sibling tools like ai_scraper or ai_crawler, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The mention of browser rendering and parsing hints at use cases, but there are no exclusions or comparisons to sibling scrapers, leaving the agent without clear selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.9.2
    • Addedai_browser_agent
    • Addedai_crawler
    • Addedai_map
    • Addedai_scraper
    • Addedai_search
    • Addedgenerate_schema
  2. 6 tool updatesv0.8.1
    • Addedamazon_product_scraper
    • Addedamazon_search_scraper
    • Addedgoogle_search_scraper
    • Removedoxylabs_scraper
    • Removedoxylabs_web_unblocker
    • Addeduniversal_scraper
  3. 2 tool updatesv1.0.0
    • First observedoxylabs_scraper
    • First observedoxylabs_web_unblocker

TDQS

B3/5.0

Scored across 10 tools

Disambiguation2/5

Several tools have heavily overlapping purposes: ai_scraper and universal_scraper both claim to scrape any webpage content, while ai_crawler and ai_browser_agent both navigate websites and extract data. ai_search and google_search_scraper also cover similar territory, making selection ambiguous without very careful reading.

Naming Consistency3/5

Names are descriptive and readable, but they follow two different conventions: an ai_ prefix group (ai_crawler, ai_scraper, ai_search, ai_map, ai_browser_agent) and a target_suffix group (google_search_scraper, amazon_search_scraper, amazon_product_scraper, universal_scraper). Only generate_schema stands apart with a clear verb_noun pattern.

Tool Count5/5

Ten tools is well-scoped for a web scraping and search server covering generic scraping, search, browser automation, URL mapping, schema generation, and Amazon-specific extraction. Each tool represents a distinct product capability, even if some overlap exists.

Completeness5/5

The tool surface covers the core needs of the domain: general search, Google-specific search, generic page scraping, crawling, browser-driven interaction, site mapping, and Amazon search/product scraping. There are no obvious dead ends for common web data acquisition workflows.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web scraping and document processing with JavaScript execution, anti-detection measures, batch processing, and structured data extraction. Supports multiple formats including markdown, HTML, screenshots, and handles PDFs with OCR capabilities.
    4
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables web scraping and data extraction from websites with geographic flexibility, privacy features, and anti-detection capabilities. Supports scraping general websites, Google Search, Amazon Search, and Reddit with customizable parameters for rendering, geolocation, and locale.
    30
    404 npm
    37
    ISC
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to scrape any website by providing tools for JavaScript rendering, antibot bypass, and automatic captcha solving. It supports synchronous, asynchronous, and batch scraping operations with built-in proxy rotation.
    5
    207 npm
    MIT