scrape_url
Scrapes a webpage and returns the content in AI-readable Markdown format. Can access blocked sites through browser rendering.
url必填format
io.github.bamchi由 GitHub 帳號 bamchi 發布v2.0.6更新於 Oct 27, 2026
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Scrapi 擷取網頁並回傳乾淨、適合大型語言模型使用的 Markdown 或純文字,支援 JavaScript 渲染與反爬處理,還可查詢額度與帳單。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.bamchi%2Fscrapi/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"scrapi": {
"type": "http",
"url": "https://scrapi.ai/mcp"
}
}
}⚡ Fast & Reliable — Built on 8+ years of web scraping expertise, 1,900+ production crawlers, and battle-tested anti-bot handling.
An MCP (Model Context Protocol) server that lets AI agents fetch and read web pages. Simply give it a URL, and it returns clean, LLM-ready content — fast.
Before: AI can't read web pages directly
After: "Summarize this article" just works ✨
Scrapi MCP Server supports two transport modes:
No installation needed. Just configure your MCP client to use npx.
Tip: You can also pass the API key via CLI argument instead of env var:
See Step 2 for where to put this configuration.
hsmcp_ API keyOption A: Via Settings (Recommended)
Option B: Edit config file directly
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonConfiguration (npx):
Configuration (from source):
Note: Replace
/absolute/path/to/with the actual path where you cloned the repository.
Config file location:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonConfiguration (npx):
Configuration (from source):
Create or edit .cursor/mcp.json in your project root:
Configuration (npx):
Configuration (from source):
Option 1: CLI command (Recommended)
Or with --api-key:
Option 2: Edit config file
Edit ~/.claude.json or project .mcp.json:
Connect via Streamable HTTP — no Node.js installation needed on the client side.
Endpoint: https://scrapi.ai/mcp
Cursor (.cursor/mcp.json):
Claude Code (CLI):
Cline (cline_mcp_settings.json):
Claude Desktop (claude_desktop_config.json):
Note: Claude Desktop requires the mcp-remote proxy for HTTP connections.
Run your own instance instead of using the hosted endpoint:
The server starts at http://localhost:3000 with the MCP endpoint at /mcp. Configure with PORT and HOST environment variables. Replace the URL in the client configurations above with your self-hosted URL (e.g. http://localhost:3000/mcp).
Health check: GET http://localhost:3000/health
You should see the MCP server connection indicator.
scrape_urlScrapes a webpage and returns AI-readable content.
Parameters:
Example:
Markdown Output:
Text Output:
scrape_urlsScrapes multiple webpages in parallel and returns AI-readable content.
Parameters:
Example:
Output:
scraper_server_statusCheck the status of all ScraperServer instances. Shows server health, circuit breaker state, failure counts, and timing info.
Parameters: None
Example:
Output:
Status values:
get_usageCheck your API usage and remaining credits.
Parameters: None
Example:
Output:
get_billingRetrieve detailed billing information including subscription, plans, daily usage, and spending limits.
Parameters:
Example — Current subscription:
Example — Available plans:
Example — Daily usage history:
Example — Spending limits:
Built by the team behind Scrapi, with 8+ years of web scraping experience:
Make sure your API key is provided via one of these methods:
SCRAPI_API_KEY in your configuration--api-key your-key in the argsVerify that your API key is correct and active in your Scrapi dashboard.
If you upgraded but still see old behavior, clear the npx cache:
node /absolute/path/to/scrapi-mcp-server/dist/index.js manually to check for errorsUpdate Claude Desktop to the latest version: Claude menu → "Check for Updates..."
MIT © Scrapi
來源:README.md,提交 9f2f366
Scrapes a webpage and returns the content in AI-readable Markdown format. Can access blocked sites through browser rendering.
url必填formatScrapes multiple webpages in parallel and returns the content in AI-readable Markdown format. Can access blocked sites through browser rendering.
urls必填formatCheck API usage and remaining credits. Returns current plan, subscription credits, purchased credits, and total remaining credits.
無需輸入參數。
Check the status of all ScraperServer instances. Shows server health, circuit breaker state, failure counts, and last success/failure times.
無需輸入參數。
Retrieve MCP billing information: subscription details, available plans, daily usage history, or spending limits.
action必填end_datestart_date已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
{ "mcpServers": { "scrapi": { "command": "npx", "args": ["-y", "@scrapi.ai/mcp-server"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}"args": ["-y", "@scrapi.ai/mcp-server", "--api-key", "your-api-key"]# Clone the repositorygit clone https://github.com/bamchi/scrapi-mcp-server.gitcd scrapi-mcp-server
# Install dependencies and buildnpm install && npm run build{ "mcpServers": { "scrapi": { "command": "npx", "args": ["-y", "@scrapi.ai/mcp-server"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "node", "args": ["/absolute/path/to/scrapi-mcp-server/dist/index.js"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "npx", "args": ["-y", "@scrapi.ai/mcp-server"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "node", "args": ["/absolute/path/to/scrapi-mcp-server/dist/index.js"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "npx", "args": ["-y", "@scrapi.ai/mcp-server"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "node", "args": ["/absolute/path/to/scrapi-mcp-server/dist/index.js"], "env": { "SCRAPI_API_KEY": "your-api-key" } } }}claude mcp add scrapi-ai -s user -e SCRAPI_API_KEY=your-api-key -- npx -y @scrapi.ai/mcp-serverclaude mcp add scrapi-ai -s user -- npx -y @scrapi.ai/mcp-server --api-key your-api-key{ "mcpServers": { "scrapi": { "command": "npx", "args": ["-y", "@scrapi.ai/mcp-server", "--api-key", "your-api-key"] } }}{ "mcpServers": { "scrapi": { "url": "https://scrapi.ai/mcp", "headers": { "Authorization": "Bearer your-api-key" } } }}claude mcp add --transport http scrapi https://scrapi.ai/mcp \ --header "Authorization: Bearer your-api-key"{ "mcpServers": { "scrapi": { "type": "streamableHttp", "url": "https://scrapi.ai/mcp", "headers": { "Authorization": "Bearer your-api-key" } } }}{ "mcpServers": { "scrapi": { "command": "npx", "args": [ "mcp-remote", "https://scrapi.ai/mcp", "--header", "Authorization: Bearer your-api-key" ] } }}SCRAPI_API_KEY=your-api-key npx -y -p @scrapi.ai/mcp-server scrapi-http# or from source:SCRAPI_API_KEY=your-api-key node dist/http.js{ "url": "https://example.com/article", "format": "markdown"}# Article Title
> Author: John Doe | Published: 2024-01-15
## Introduction
This is the main content of the article, converted to clean markdown...
## Key Points
- Point 1: Important detail- Point 2: Another insight- [Related Link](https://example.com/related)Article Title
Author: John Doe | Published: 2024-01-15
Introduction
This is the main content of the article, converted to plain text...
Key Points
- Point 1: Important detail- Point 2: Another insight{ "urls": ["https://example.com/page1", "https://example.com/page2"], "format": "text"}[ { "url": "https://example.com/page1", "content": "Page 1 Title\n\nThis is the content of page 1..." }, { "url": "https://example.com/page2", "content": "Page 2 Title\n\nThis is the content of page 2..." }]{}## ScraperServer Status
Total: 3 | Available: 2
| Name | OS | Status | Failures | Last Success | Last Failure ||------|----|--------|----------|--------------|--------------|| pluto | linux | OK | 0 | 01/30 14:23:05 | - || mars | mac | FAIL | 2 | 01/29 10:00:00 | 01/30 13:55:12 || venus | linux | OPEN | 3 | 01/28 09:00:00 | 01/30 12:00:00 |
### Issues- **mars**: Connection refused - connect(2)- **venus**: Circuit breaker open until 01/30 12:30:00- **venus**: Net::ReadTimeout{}## MCP Credits
| Item | Value ||------|-------|| Plan | starter || Subscription Credits | 1,500 || Purchased Credits | 200 || Total Remaining | 1,700 || Period End | 2026-03-01 |{ "action": "subscription" }## MCP Subscription
| Item | Value ||------|-------|| Plan | starter (Starter) || Status | active || Monthly Credits | 2,000 || Price | $19.00/mo || Rate Limit | 30 RPM || Burst Limit | 5 concurrent || Period End | 2026-03-01 |{ "action": "plans" }## Available MCP Plans
| Plan | Credits/mo | Price | RPM | Burst ||------|-----------|-------|-----|-------|| Free (free) | 500 | Free | 10 | 2 || Starter (starter) | 2,000 | $19.00/mo | 30 | 5 || Pro (pro) | 10,000 | $49.00/mo | 60 | 10 || Business (business) | 50,000 | $149.00/mo | 120 | 20 |{ "action": "daily_usage", "start_date": "2026-02-01", "end_date": "2026-02-07" }## Daily Usage (2026-02-01 ~ 2026-02-07)
| Date | Requests | Credits | Top Tool ||------|----------|---------|----------|| 2026-02-07 | 45 | 45 | scrape#scrape (45) || 2026-02-06 | 120 | 120 | scrape#scrape (100) |
**Total**: 165 requests, 165 credits{ "action": "spending_limits" }## Spending Limits
| Item | Value ||------|-------|| Daily Limit | 500 credits || Today's Usage | 120 credits || Usage % | 24.0% |User: Summarize this article: https://news.example.com/article/12345
Claude: [calls scrape_url]
Here's a summary of the article:
## Key Points- Point 1: ...- Point 2: ...- Point 3: ...User: Get the content from https://example.com/data
Claude: [calls scrape_url]
# Page Title> Source: https://example.com/data
The page content is returned in clean Markdown format...User: What's the pricing on https://competitor.com/product/abc
Claude: [calls scrape_url]
Here's the pricing information:- **Product**: ABC Premium- **Regular Price**: $99.00- **Sale Price**: $79.00 (20% off)User: Read https://docs.example.com/api/v2 and write integration code
Claude: [calls scrape_url]
I've analyzed the API documentation. Here's the integration code:
// api-client.tsexport class ExampleApiClient { private baseUrl = 'https://api.example.com/v2'; async getData(): Promise<Response> { // ... }}┌─────────────────┐│ User ││ "Summarize this ││ URL for me" │└────────┬────────┘ │ ▼┌─────────────────┐│ Claude Desktop ││ / Cursor │└────────┬────────┘ │ ▼┌─────────────────┐ ┌─────────────────┐│ MCP Server │────►│ Scrapi API ││ (scrape_url) │ │ (format param) │└────────┬────────┘ └────────┬────────┘ │ │ │◄──────────────────────┘ │ Markdown/Text Response ▼┌─────────────────┐│ AI Response ││ (Summary, etc.) │└─────────────────┘npx clear-npx-cache