Atlas / MCP servers / scrapeless-ai / Scrapeless

ScrapelessSAFE

mcp/scrapeless-ai/scrapeless

Scrapeless Mcp Server

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
22 21r · 1w · 0d
Transport
sse · stdio · streamable-http
License
MIT
Stars
169
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Welcome to the official Scrapeless Model Context Protocol (MCP) Server — a powerful integration layer that empowers LLMs, AI Agents, and AI applications to interact with the web in real time.

Built on the open MCP standard, Scrapeless MCP Server seamlessly connects models like ChatGPT, Claude, and tools like Cursor and Windsurf to a wide range of external capabilities, including:

  • Google services integration (Search, Trends)
  • Browser automation for page-level navigation and interaction
  • Scrape dynamic, JS-heavy sites—export as HTML, Markdown, or screenshots
  • Crawl entire websites by following links and capture each page in multiple formats
  • AI Scraper Create an AI Scraper task for ChatGPT, Gemini, Perplexity, Copilot, Google AI Mode, Google AI Overview, Grok, or Alexa

Whether you're building an AI research assistant, a coding copilot, or autonomous web agents, this server provides the dynamic context and real-world data your workflows need—without getting blocked.

Usage Examples

  1. Automated Web Interaction and Data Extraction with Claude

Using Scrapeless MCP Browser, Claude can perform complex tasks such as web navigation, clicking, scrolling, and scraping through conversational commands, with real-time preview of web interaction results via live sessions.

  1. Bypassing Cloudflare to Retrieve Target Page Content

Using the Scrapeless MCP Browser service, the Cloudflare page is automatically accessed, and after the process is completed, the page content is extracted and returned in Markdown format.

  1. Extracting Dynamically Rendered Page Content and Writing to File

Using the Scrapeless MCP Universal API, the JavaScript-rendered content of the target page above is scraped, exported in Markdown format, and finally written to a local file named `text.md`.

Read from source at commit e3ffbf7f3c9fOBSERVED · 2026-10-06
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add scrapeless-mcp-server --env SCRAPELESS_API_KEY=${SCRAPELESS_API_KEY} -- npx -y [email protected]
03

Exposed tools (22)

21 read · 1 write · 0 destructive.

ToolRiskDescription
browser_clickreadClick a specific element on the page. Restrictions: Requires a valid CSS selector for the target element. Valid: Click the button with selector
browser_closereadCloses the current session by disconnecting the cloud browser. This will terminate the recording for the session.
browser_createwriteCreate or reuse a cloud browser session using Scrapeless. Updates the active session.
browser_get_htmlreadGet the full HTML of the current page. Restrictions: Returns the entire raw HTML source code. Valid: Get the HTML of the current page to parse its structure. Invalid: Get only the visible text (use
browser_get_textreadGet all visible text from the current page. Restrictions: Extracts only text content, ignoring HTML tags. Valid: Get the text content of the current page for summarization. Invalid: Get the page
browser_go_backreadGo back one step in browser history. Restrictions: Only works if a previous page exists in the session history. Valid: After navigating from page A to B, go back to A. Invalid: Attempting to go back on the first page of a session.
browser_go_forwardreadGo forward one step in browser history. Restrictions: Only works after a
browser_gotoreadNavigate browser to a specified URL. Restrictions: Only for direct URL navigation, not for searches. Valid: Go to https://google.com. Invalid: Search for
browser_press_keyreadSimulate a key press. Restrictions: Must specify a valid key name; optional target selector. Valid: Press Enter in #search. Invalid: Press a key without specifying the key name.
browser_screenshotreadCapture a screenshot of the current page. Restrictions: Can capture either the full page or the visible viewport. Valid: Take a screenshot of the current browser view. Invalid: Capture a screenshot of a specific element (not supported).
browser_scrollreadScroll the current page to a specific position. Restrictions: Requires pixel coordinates for scrolling. Valid: Scroll to the bottom of the page (e.g., { x: 0, y: 10000 }). Invalid: Scroll to
browser_scroll_toreadScroll a specific element into view. Restrictions: Requires a valid CSS selector for the target element. Valid: Scroll to the element
browser_snapshotreadCapture the complete structure of a webpage, including DOM and resources, for inspection and analysis.
browser_typereadType text into a specified input field. Restrictions: Requires a CSS selector for an input/textarea and the text to type. Valid: Type
browser_waitreadPause execution for a fixed duration. Restrictions: Requires a duration in milliseconds. Should be used sparingly. Valid: Wait for 2000 milliseconds. Invalid: Wait for a page to finish loading (use
browser_wait_forreadWait for a specific page element to appear. Restrictions: Requires a valid CSS selector for the element to wait for. Valid: Wait for the element
crawl_cancelreadCancel an in-progress crawl job by its id (the id returned by crawl_start). Returns the cancelled status.
google_searchreadUniversal Information Search Engine.Retrieves any data information; Explanatory queries (why, how).Comparative analysis requests
google_trendsreadGet trending search data from Google Trends. Restrictions: Activated for queries about trends, popularity, or interest over time. Valid: Find the search interest for
scrape_htmlreadScrape a URL and return its full HTML content. Restrictions: Activated for URLs that require JavaScript rendering or bot protection. Valid: Get HTML from a dynamic, JS-heavy single-page application. Invalid: Fetching a simple static page (use a standard HTTP client).
scrape_markdownreadScrape a URL and return its content as Markdown. Restrictions: Best for articles, blog posts, and other text-heavy pages. Valid: Scrape a news article to get its readable content. Invalid: Scrape a complex web application dashboard.
scrape_screenshotreadCapture a high-quality screenshot of any webpage. Restrictions: Bypasses bot detection and CAPTCHAs using residential proxies. Valid: Get a screenshot of a price-checker page protected by Cloudflare. Invalid: Taking a screenshot of the local browser (use browser_screenshot)
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (9)

LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/ai_scraper/aiScraper.ts:4
import { BASE_URL } from "../../config.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/ai_scraper/api.ts:3
import { API_KEY, BASE_URL, API_KEY_NAME } from "../../config.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/browser/browser.ts:8
import { Context } from "../../context.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/tools/crawl/api.ts:3
import { API_KEY, BASE_URL, API_KEY_NAME } from "../../config.js";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@chatmcp/sdk, @modelcontextprotocol/sdk, @scrapeless-ai/sdk, agents, axios, express, nanoid, puppeteer-core
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
assets/mcp-1.gif
assets/mcp-1.gif
Why it matters. 5627197 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
assets/mcp-2.gif
assets/mcp-2.gif
Why it matters. 3256062 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
assets/mcp-3.gif
assets/mcp-3.gif
Why it matters. 3332056 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
assets/mcp-4.gif
assets/mcp-4.gif
Why it matters. 2532293 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-10-06 · audit v0.4.1 · source sha e3ffbf7f3c9ffull audit observations/trust-audit/mcp-server/scrapeless-ai__scrapeless.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-06e3ffbf7f3c9fSAFEB89first audit
06

Questions

What is the Scrapeless MCP server?

Scrapeless Mcp Server

What tools does Scrapeless expose?

22 in total: 21 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Scrapeless safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Scrapeless need?

It reads SCRAPELESS_API_KEY and SCRAPELESS_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Scrapeless run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as scrapeless-mcp-server at 0.6.3.

How current is this page?

The grade is for one exact copy of the source (e3ffbf7f3c9f), read on 2026-10-06. The repository is watched and re-audited when it changes.

Advertisement