Browser Use
ให้ AI ทำงานบนเว็บแทนคุณ เช่น กรอกฟอร์ม ค้นหา และดึงข้อมูล ใช้เบราว์เซอร์บนคลาวด์ของผู้ทำหรือรันในเครื่องก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Web scraping MCP server — scrape, extract structured data, screenshot any site with anti-bot bypass.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.alterlab.io/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"alterlab": {
"command": "npx",
"args": [
"-y",
"alterlab-mcp-server"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http alterlab https://mcp.alterlab.io/mcpclaude mcp add alterlab -- npx -y alterlab-mcp-serverวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"alterlab": {
"url": "https://mcp.alterlab.io/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"alterlab": {
"command": "npx",
"args": [
"-y",
"alterlab-mcp-server"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"alterlab": {
"type": "http",
"url": "https://mcp.alterlab.io/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"alterlab": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"alterlab-mcp-server"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.alterlab.io/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
alterlab_scrapeFetch one URL and return its content as clean markdown, text, HTML, or JSON. Use when a normal fetch returns 403/429, a bot-protection challenge page, a CAPTCHA, or an empty JavaScript shell. Website challenges and JavaScript-heavy pages are handled automatically by a 5-tier syst
alterlab_extractExtract structured data (prices, product info, contact details, custom fields) as JSON from HTML, text or markdown you already hold. Use when you have content and need specific fields. Does not fetch a URL: to fetch and extract in one step, use alterlab_scrape with extraction_sch
alterlab_screenshotCapture a full-page PNG screenshot of one URL, an image rather than text content. Use when a normal fetch returns 403/429, a bot-protection challenge page, a CAPTCHA, or an empty JavaScript shell. Works on anti-bot-protected sites, rendered in a real headless browser. Use wait_fo
alterlab_crawlCrawl a whole website and return the content of every page, for RAG, indexing or site-wide export. Use when you need many pages from one domain; for one URL use alterlab_scrape, for a URL list only use alterlab_map. Works on JavaScript-heavy and protected sites, with anti-bot han
alterlab_searchSearch the web and get structured results (URLs, titles, snippets). Use when you have a question or topic but no URL yet; follow up with alterlab_scrape to read a page, or set scrape_results=true to read every result in one call. Use domain to restrict to one site and time_range
alterlab_mapList every URL on a site via sitemap parsing and link extraction, without fetching page content. Use before alterlab_crawl or alterlab_batch to choose pages; to read the content itself use alterlab_crawl. Works on JavaScript-heavy and protected sites. When you present results to
alterlab_batch_scrapeScrape 2-20 URLs in parallel and get every result back in one synchronous call, no polling required. Use when a normal fetch returns 403/429, a bot-protection challenge page, a CAPTCHA, or an empty JavaScript shell. Failed URLs report their error; successful ones return content.
alterlab_batchStart an asynchronous batch job for a large URL set (up to 100 per call) and poll for results later. Use when a normal fetch returns 403/429, a bot-protection challenge page, a CAPTCHA, or an empty JavaScript shell. Each URL can have its own mode, formats and extraction_schema. R
alterlab_estimate_costEstimate the credit cost of scraping a URL before you run it. Use when cost matters or before a large job; no credits are charged. Returns the predicted tier, estimated cost and confidence. Full machine-readable price list: GET https://alterlab.io/api/v1/pricing (public, no auth)
alterlab_pricingGet AlterLab's machine-readable price list: per-tier cost, bring-your-own-proxy discount, cache-hit discount, add-ons, search and SERP prices, and the free allowance. Use when deciding whether AlterLab fits a budget, before any account exists. Free and keyless; nothing is scraped
alterlab_newsSearch aggregated news headlines from curated public sources: headline, URL, source, published time, author, image, short snippet and category. Use to find what is being reported on a topic. Served from a cache that refreshes about every 15 minutes, so a call never triggers a fet
alterlab_keyword_ideasFan out a seed keyword across autocomplete (seed + a-z + who/what/how/why/best/vs), People Also Ask and related searches, and get deduplicated ideas, each with source, question flag, intent (question, commercial, navigational, informational) and a 0-1 relevance score. volume is a
alterlab_ai_visibilityRun prompts against AI answer engines through their public, logged-out interfaces and get, per engine and run, the answer text, whether the brand is mentioned and its position, competitors mentioned, cited URLs and domains and a sentiment label, plus per-prompt mention rate, shar
alterlab_feedbackTell AlterLab when something is hard, or what would make it better. Call this when something blocks you, a result is wrong, or a step is confusing, slow or priced unexpectedly, and also to send a suggestion (category `suggestion`, ideas welcome even when nothing is broken). Descr
alterlab_support_ticketOpen a support ticket in your user's AlterLab account when they need a human: a billing, account or data problem. Do not use it for scrape friction, blocks or ideas; use `alterlab_feedback` for those. Ask the user first: a ticket reaches a human and emails them. Requires an API k
alterlab_create_accountCreate an AlterLab account and API key for your user. Use only when no ALTERLAB_API_KEY exists yet; skip it if a key is already configured. Signup is on behalf of your user (agent signup with human approval). Nothing is created until the human approves: they get an email (and you
alterlab_create_api_keyCreate one scoped, spend-capped API key (ALTERLAB_API_KEY) for the SDK and REST API on this machine. Works only when the user ticked "Also create an API key for this machine" on the OAuth approval screen, so no second approval is needed. Skip it if a key is already configured. Th
search_alterlabUse this to look up how to do something with AlterLab (API parameters, SDKs, MCP setup, pricing, error codes, migration from Firecrawl/ScrapingBee/Apify) or to find a guide for scraping a specific site. Searches the docs guides and API reference by default (blog posts only when y
read_alterlab_pageUse this after search_alterlab to read the full text of one AlterLab page as markdown, so you can follow the documented steps instead of guessing. Pass the url of a search result. Only pages on alterlab.io that search_alterlab can return are readable. Free: needs no API key and n
alterlab_serpQuery a search engine and get structured results: organic listings, ads and related data, from Google, Bing or DuckDuckGo. Use action=search (default) to run a query, or action=history to read earlier SERP queries for your account. Prefer alterlab_search when you also want each r
alterlab_jobLook up a job by id. action=status (default) returns its status and result once finished; set wait (seconds) to hold the request until the job reaches a terminal status. action=explain returns the ordered per-stage timing breakdown, useful when a job was slow or failed. Job ids c
alterlab_balanceRead account credit data. action=balance (default) returns the current credit balance in microcents (1,000,000 microcents = $1.00) with formatted values. action=usage returns usage statistics. Read-only; call it before an expensive crawl or batch to confirm there are enough credi
alterlab_monitorManage change monitors. action=create watches a URL on a cron schedule and notifies by webhook when content changes; action=list returns your monitors; action=delete removes one by monitor_id (it stops running and cannot be restored). Each check spends credits like a scrape.
alterlab_scheduleManage recurring scrape schedules. action=create runs a scrape of one or more URLs on a cron expression; action=list returns your schedules; action=delete removes one by schedule_id (it stops triggering). Every run spends credits like a scrape; minimum intervals depend on your ba
alterlab_workflow_runStart an execution of a workflow you saved in the AlterLab dashboard. Optional input_data is passed to the workflow's webhook trigger node. Returns run_id, workflow_id and the initial status. The run spends credits for the steps it executes.
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน alterlab.io แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 492 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 25 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.12.11) เข้า registry วันนี้
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Browser Use, Chrome DevTools MCP, MCP Server Browser
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ให้ AI ทำงานบนเว็บแทนคุณ เช่น กรอกฟอร์ม ค้นหา และดึงข้อมูล ใช้เบราว์เซอร์บนคลาวด์ของผู้ทำหรือรันในเครื่องก็ได้
ให้ AI ใช้เครื่องมือนักพัฒนาของ Chrome ตรวจหน้าเว็บ ดูว่าโหลดช้าตรงไหน และหาข้อผิดพลาด ทำโดยทีม Chrome DevTools
MCP server for browser use access
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
AlterLab MCP Server
Give Claude, Cursor, and Windsurf the ability to scrape any website, extract structured data, and take screenshots — with automatic anti-bot bypass.
Get Started Free → $1 free balance on signup — up to 5,000 scrapes.
claude mcp add alterlab -- npx -y alterlab-mcp-server@latest
Then set your API key: export ALTERLAB_API_KEY=sk_live_... or add it to .claude.json (see full setup below).
# Add to .cursor/mcp.json — see full config below
npx -y @smithery/cli install alterlab-mcp-server --client claude
Claude's built-in WebFetch tool and open-source browser MCP servers fail on most real-world websites. They cannot bypass Cloudflare, render JavaScript SPAs, or extract structured data.
AlterLab replaces broken fetch tools with one MCP server that actually works:
| Capability | WebFetch / fetch() | Browser MCP | AlterLab MCP |
|---|---|---|---|
| Anti-bot bypass (Cloudflare, DataDome, Akamai) | No | Partial | Yes — automatic |
| JavaScript rendering (React, Angular, Vue SPAs) | No | Yes (slow) | Yes — headless Chromium |
| Structured data extraction (JSON, Schema.org) | No | No | Yes — built-in profiles |
| Smart tier escalation (cheapest method first) | N/A | N/A | Yes — saves 60-80% |
| Residential proxy rotation (195+ countries) | No | No | Yes |
| Screenshot and PDF capture | No | Screenshot only | Yes — both |
| OCR text extraction from images | No | No | Yes |
| Cost per request | Free (but fails) | Free (but slow) | From $0.0002 |
AlterLab uses a multi-tier scraping architecture. It automatically selects the cheapest method capable of fetching each URL:
Auto mode starts at Tier 1 and escalates only when blocked. Most websites resolve at Tiers 1-2, so $1 gets you 1,000 to 5,000 scrapes depending on the sites you target.
Add to your Claude config file (~/.claude.json for Claude Code, or Settings for Claude Desktop):
{
"mcpServers": { "alterlab": { "command": "npx", "args": ["-y", "alterlab-mcp-server@latest"], "env": { "ALTERLAB_API_KEY": "sk_live_your_key_here" } } } }
Add to .cursor/mcp.json in your project root:
{
"mcpServers": { "alterlab": { "command": "npx", "args": ["-y", "alterlab-mcp-server@latest"], "env": { "ALTERLAB_API_KEY": "sk_live_your_key_here" } } } }
Add to Windsurf MCP settings (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": { "alterlab": { "command": "npx", "args": ["-y", "alterlab-mcp-server@latest"], "env": { "ALTERLAB_API_KEY": "sk_live_your_key_here" } } } }
npx -y @smithery/cli install alterlab-mcp-server --client claude
ALTERLAB_API_KEY field in your MCP configalterlab_scrape — Scrape Any WebpageScrape a URL and return its content as markdown, text, HTML, or JSON. Automatically handles anti-bot protection with tier escalation. Returns markdown by default — optimized for LLM context windows.
"Scrape https://www.amazon.com/dp/B0BSHF7WHW and summarize the product"
| Parameter | Type | Default | Description | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
url | string | required | URL to scrape | |||||||
mode | auto \ | html \ | js \ | pdf \ | ocr | auto | Scraping mode | |||
method / body / content_type / headers | enum / string / enum / object | GET | POST support (1.5x cost) and custom target headers | |||||||
formats | `(text\ | json\ | json_v2\ | html\ | markdown\ | rag\ | content\ | raw)[]` | ["markdown"] | Output formats |
extraction_schema / extraction_prompt | object / string | — | LLM extraction (+$0.001) | |||||||
extraction_profile / extraction_template | enum | — | auto, product, article, job_posting, faq, recipe, event, ecommerce_homepage, directory_listing (template is a deprecated alias) | |||||||
extraction_provider / extraction_model | enum / string | — | BYOK LLM selection | |||||||
evidence, promote_schema_org, filter_content | boolean | — | Extraction behaviour | |||||||
cache, cache_ttl, force_refresh | boolean / number / boolean | — | Response caching (cache_ttl 60-86400) | |||||||
render_js | boolean \ | "auto" | API default | Headless browser (forces Browser tier, $0.004) | ||||||
use_proxy, proxy_country | boolean, string | — | Premium proxy (+$0.0002) and geo-targeting | |||||||
use_own_proxy, use_system_proxy, proxy_integration_id | boolean, boolean, string | — | Bring-your-own-proxy selection | |||||||
skip_tls_verification | boolean | — | Omit (recommended) = verify, fall back on invalid certs; true skip, false require valid cert | |||||||
wait_for, wait_until, wait_condition | string | — | Selector / load-event waits | |||||||
actions | object[] (max 20) | — | Browser actions: wait, wait_for, click, fill, press, scroll, infinite_scroll, screenshot, evaluate | |||||||
screenshot, generate_pdf, ocr | boolean | — | Add-ons (+$0.0002 / +$0.0004 / +$0.001) | |||||||
scroll_to_load, scroll_count, enable_scroll | boolean / 1-10 / boolean | — | Lazy-load handling | |||||||
include_iframes, flatten_shadow_dom, block_images, remove_cookie_banners | boolean | — | Rendering options | |||||||
section_filter | object | — | Filter for json_v2 sections | |||||||
session_id, cookies, session_headers | UUID, object, object | — | Authenticated scraping | |||||||
sticky_session, sticky_session_ttl | string, 300-7200 | — | Reuse cookies and exit IP across calls (paid plans) | |||||||
location | {country, language} | — | Geo-targeting | |||||||
cost_controls | object | — | force_tier, max_tier, max_credits, prefer_cost, prefer_speed, fail_fast, time_budget (prefer_cost, prefer_speed, fail_fast also accepted at top level) | |||||||
embeddings | object | — | enabled, model, chunk_size, chunk_overlap (+$0.001/page) | |||||||
sync_policy | auto \ | wait_until_deadline | auto | Wait behaviour for long scrapes | ||||||
timeout, max_response_bytes, include_raw_html | number, number, boolean | 90, 5 MB, false | Limits and raw output | |||||||
estimate_first | boolean | false | Run a free cost estimate first |
Not exposed: source (dashboard tracking tag), sync (the tool is always synchronous), webhook_url (use alterlab_batch/alterlab_crawl webhooks). If a scrape outlives the ~85s synchronous window the tool returns a job_id; fetch it with alterlab_get_job.
alterlab_extract — Extract Structured DataExtract structured fields from HTML, text or markdown content using pre-built profiles or custom JSON Schema. Returns clean JSON — ready for databases, spreadsheets, or downstream processing.
"Extract the product name, price, and rating from this Amazon page"
| Parameter | Type | Default | Description | ||
|---|---|---|---|---|---|
content | string (max 500,000) | required | HTML, text or markdown you already have (this tool does not fetch a URL) | ||
content_type | html \ | text \ | markdown | html | Type of content |
extraction_profile / extraction_template | enum | — | Profile: auto, product, article, job_posting, faq, recipe, event, ecommerce_homepage, directory_listing | ||
extraction_schema | object | — | Custom JSON Schema for structured output | ||
extraction_prompt | string | — | Natural language extraction instructions | ||
extraction_provider / extraction_model | enum / string | — | BYOK LLM selection | ||
formats | enum[] | ["json"] | Output formats | ||
source_url, evidence | string, boolean | — | Context URL and provenance | ||
cache, cache_ttl | auto \ | skip \ | only, number | auto | Extraction result cache |
To scrape and extract in one step, use alterlab_scrape with extraction_schema.
Extraction profiles:
alterlab_screenshot — Screenshot Any PageTake a full-page screenshot of any URL. Returns a PNG image directly in the conversation — no URLs to copy, no files to download.
"Take a screenshot of our landing page at https://alterlab.io"
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | required | URL to screenshot |
wait_for | string | — | CSS selector to wait for before capture |
wait_until | enum | networkidle | networkidle, domcontentloaded, or load |
timeout | number | 90 | Timeout in seconds (1-300) |
use_proxy, proxy_country | boolean, string | — | Premium proxy and geo-targeting |
session_id, cookies | UUID, object | — | Screenshot pages behind a login |
location | {country, language} | — | Geo-targeting |
alterlab_estimate_cost — Estimate Before You ScrapeCheck how much a scrape will cost before running it. Returns the predicted tier, cost per request, and confidence level.
"How much would it cost to scrape linkedin.com?"
| Parameter | Type | Default | Description | |
|---|---|---|---|---|
url | string | required | URL to estimate | |
mode | enum | auto | Scraping mode | |
method | GET \ | POST | GET | POST costs 1.5x |
render_js | boolean \ | "auto" | false | Include JS rendering cost |
use_proxy, use_own_proxy | boolean | false | Include proxy cost / BYOP discount |
| `screen
ตัดมาแค่ช่วงต้น อ่านต่อใน repo