ScrapeRing MCP Server
ScrapeRing exposes an MCP (Model Context Protocol) server over HTTP. Connect Claude, Cursor, VS Code, Codex or any other compatible AI agent to let it read web pages, search Google and Yandex, and pull news, trends and reviews — no custom code required.
Quick Setup
The fastest way to connect your agents is the official scrapering CLI. No install and no copy-pasting keys — it works on macOS, Linux and Windows with Node.js 18+:
npx scrapering init
- API URL — press Enter for
https://app.scrapering.com. - Account — choose Log in with browser (recommended) or Paste an API key. The browser opens ScrapeRing: sign in or create an account with email, Google, GitHub or LinkedIn, then click Authorize.
- API key — back in the terminal, pick one of your API keys or create a new one with access to every tool.
- Agents — select the AI agents to connect (space to toggle, Enter to confirm).
- Done — restart your agents. The ScrapeRing tools are now available.
Run init again at any time to add agents or switch accounts. It remembers your previous choices and never removes other MCP servers from your configs.
Supported agents: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code (GitHub Copilot), Codex CLI, opencode and OpenClaw.
CLI Commands
| Command | What it does |
|---|---|
scrapering init | Connect your AI agents to ScrapeRing |
scrapering login | Log in with your browser (the CLI session is valid for 30 days) |
scrapering logout | Revoke the CLI session and delete stored credentials. Agent configs are left untouched |
scrapering whoami | Show the signed-in email, the API URL and the masked key your agents use |
scrapering keys | List your API keys and how many MCP tools each one can use |
scrapering keys use [key] | Switch the key used by your agents and rewrite every config the CLI installed |
scrapering keys create [name] | Create a new API key with every scope (default name: mcp-<computer-name>) |
| Option | Applies to | Description |
|---|---|---|
--no-browser | init, login, keys | Don't open a browser; print the login URL instead |
--key <id|name> | init, keys use | Pick an API key without the interactive list |
npx scrapering init --key mcp-macbook # use a specific key, skip the key prompt
npx scrapering keys use # switch keys interactively
npx scrapering keys create ci-agent # create a key with every scope
The CLI session can only list your API keys, reveal the key you pick and create new ones — it cannot change your account, password or billing. Credentials are stored in ~/.config/scrapering/credentials.json (%APPDATA%\scrapering\credentials.json on Windows).
MCP Endpoint
POST https://app.scrapering.com/api/mcp
Authenticate with your API key in the Authorization: Bearer YOUR_API_KEY header. Each tool requires the matching scope on the key — scrapering keys shows how many tools a key can use (MCP tools 8/8 means all of them).
Available Tools
| Tool | Description | Key scope |
|---|---|---|
parse_url | Fetch any web page — returns Markdown (default), HTML, text or JSON | url |
search_google | Google results: organic listings, ads, knowledge graph | serp:google |
search_yandex | Yandex results | serp:yandex |
google_news | Google News by search query, topic or story | google-news |
google_trends | Interest over time and by region, related queries, suggestions | google-trends |
galaxy_store_reviews | Samsung Galaxy Store app reviews | galaxy-store-reviews |
msn_feed | MSN news feed for a market (e.g. en-us) | msn |
opera_news_feed | Opera News feed for a country and language | opera-news |
The MCP server always waits for the result and returns it to the agent, so no callback URL is needed.
parse_url
Fetches a URL using a real browser and returns its content, cookies and an optional screenshot. Mirrors the URL Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | Page URL to fetch |
| output | object | no | Output formats: html, markdown, text, json (booleans). Default: {"markdown": true}. At least one must be true |
| proxy | string | no | Proxy URL: http://user:pass@host:port |
| useragent | string | no | Custom User-Agent string (printable ASCII only) |
| region | string | no | Country code to fetch the page from (e.g. US, DE) |
| isMobile | boolean | no | Emulate a mobile device |
| solveCaptcha | boolean | no | Solve a captcha if one appears (paid add-on) |
| takeScreenshot | boolean | no | Include a page screenshot (paid add-on) |
| parseHeaders | boolean | no | Include response headers (paid add-on) |
search_google
Searches Google and returns structured SERP results including organic listings, ads and knowledge graph. Mirrors the Google SERP Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | yes | Search query |
| count | number | yes | Number of results to return (10–100) |
| gl | string | no | Country code (e.g. US, GB, DE) |
| hl | string | no | Interface language code (e.g. en, de, fr) |
| canonicalLocationName | string | no | Google canonical location for city-level results, e.g. New York,New York,United States. See Available cities |
| isDesktop | boolean | no | Desktop results; false for mobile (default: true) |
| useragent | string | no | Custom User-Agent string |
| screenResolution | string | no | Screen resolution as WIDTHxHEIGHT, e.g. 1920x1080 |
| parsingDomain | string | no | Google domain to search on, e.g. google.com, google.de |
| params | array | no | Extra Google search URL query parameters as [{"key": "...", "value": "..."}] |
search_yandex
Searches Yandex and returns structured SERP results. Mirrors the Yandex SERP Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | yes | Search query |
| count | number | yes | Number of results to return (1–100) |
| region | number | no | Yandex region ID (lr parameter), e.g. 213 for Moscow |
| isDesktop | boolean | no | Desktop results; false for mobile (default: true) |
| takeScreenshot | boolean | no | Include a SERP screenshot (default: true) |
| useragent | string | no | Custom User-Agent string |
google_news
Fetches Google News articles by search query, topic or full-coverage story. The feed is selected with feed. Mirrors the Google News Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| feed | string | yes | search, topic or stories |
| gl | string | yes | Country code (e.g. US, RU) |
| hl | string | yes | Language code (e.g. en, ru) |
| limit | number | yes | Number of articles to return (10–100) |
| timeframe | string | no | Time window: all, 1h, 1d, 7d or 30d |
| q | string | for search | News search query |
| by | string | for topic | How the topic is identified: token, topicId or kgmid |
| topicToken | string | for by: token | Google News topic token — see Available topics |
| topicId | string | for by: topicId | Google News topic ID |
| topicKgmid | string | for by: kgmid | Knowledge Graph ID of the topic, e.g. /m/09s1f |
| storiesToken | string | for stories | Full-coverage story token |
google_trends
Returns Google Trends data for a keyword. Mirrors the Google Trends Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | yes | Keyword or phrase to look up |
| type | string[] | no | Data to return: periods, geo, queries, topics, autocomplete. When omitted, returns periods, geo, queries and topics. autocomplete is a separate suggestion lookup |
| geo | string | no | Country code, e.g. US; omit for worldwide |
| date | string | no | Period: now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all, or a custom range YYYY-MM-DD YYYY-MM-DD |
| cat | number | no | Google Trends category ID; 0 for all categories |
| gprop | string | no | Search property: web, images, news, froogle (Google Shopping) or youtube |
| hl | string | no | Interface locale, e.g. en-US |
| tz | number | no | Timezone offset from UTC in minutes |
| resolution | string | no | Geographic level for interest by region: COUNTRY, REGION, CITY or DMA |
galaxy_store_reviews
Returns Samsung Galaxy Store app reviews with ratings, text, authors and dates. Mirrors the Galaxy Store Reviews Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | App page URL, e.g. https://galaxystore.samsung.com/detail/com.example.app |
msn_feed
Returns the MSN news feed for a market, optionally personalized for an MSN user. Mirrors the MSN Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| cm | string | yes | Market in language-country format, e.g. en-us, de-de, fr-fr |
| limit | integer | no | Number of feed items to return (1–100) |
| user | string | no | MSN user ID (a-…); returns this user's personalized feed |
opera_news_feed
Returns the Opera News feed for a country and language, optionally for a category. Mirrors the Opera News Scraper API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | yes | Feed country code, e.g. us, de |
| language | string | yes | Two-letter language code, e.g. en, de, fr |
| limit | integer | no | Number of feed items to return (1–100) |
| category | string | no | Feed category, e.g. sports; omit for the main feed |
Manual Setup
If you prefer to configure your agent by hand, add a scrapering entry to its config file with YOUR_API_KEY replaced by your actual key. This is exactly what npx scrapering init writes.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
Claude Desktop only supports local (stdio) servers in its config file, so use the mcp-remote bridge — nothing to install, npx fetches it:
{
"mcpServers": {
"scrapering": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.scrapering.com/api/mcp",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}
Claude Code
claude mcp add --transport http scrapering https://app.scrapering.com/api/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Or add to .mcp.json in your project root to share with your team:
{
"mcpServers": {
"scrapering": {
"type": "http",
"url": "https://app.scrapering.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Cursor
~/.cursor/mcp.json globally or .cursor/mcp.json in your project root:
{
"mcpServers": {
"scrapering": {
"url": "https://app.scrapering.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"scrapering": {
"url": "https://app.scrapering.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
VS Code (GitHub Copilot)
User-level mcp.json (~/Library/Application Support/Code/User/mcp.json on macOS) or .vscode/mcp.json in your workspace:
{
"servers": {
"scrapering": {
"type": "http",
"url": "https://app.scrapering.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Codex CLI
~/.codex/config.toml:
[mcp_servers.scrapering]
url = "https://app.scrapering.com/api/mcp"
bearer_token_env_var = "SCRAPERING_API_KEY"
Codex reads the key from an environment variable rather than its config file — bearer_token_env_var is the name of that variable. Add it to your shell profile (~/.zshrc, ~/.bashrc) and open a new terminal:
export SCRAPERING_API_KEY="YOUR_API_KEY"
Repeat this after scrapering keys use if you switch keys.
opencode
~/.config/opencode/opencode.json or ./opencode.json:
{
"mcp": {
"scrapering": {
"type": "remote",
"url": "https://app.scrapering.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
OpenClaw
~/.openclaw/openclaw.json:
{
"mcp": {
"servers": {
"scrapering": {
"url": "https://app.scrapering.com/api/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}
To remove ScrapeRing from an agent, delete the scrapering entry from its config file.
Agent Workflow Examples
Once connected, prompt your agent naturally. It will select and chain the right tools automatically.
Scrape a page and summarize it:
Fetch https://scrapering.com and give me a summary of the main content.
Research a topic with live search:
Search Google for "latest AI regulation news" and summarize the top 5 results.
Compare search results across engines:
Search for "best electric cars 2026" on both Google and Yandex. Compare what's different between the two sets of results.
Monitor competitor pages:
Scrape https://competitor.com/pricing and extract all plan names and prices.
News briefing:
Find the 10 latest Google News articles about electric vehicles in the US from the past day and write a morning briefing.
Spot a trend:
Show me Google Trends interest for "air fryer" in the US over the last 12 months and list the top related queries.
App review analysis:
Get the Galaxy Store reviews for https://galaxystore.samsung.com/detail/com.example.app and group the complaints by theme.
Deep research with scraping:
Search Google for "open source LLM benchmarks 2026", then scrape the top 3 results and compare the benchmark scores they mention.
Troubleshooting
The browser didn't open. Copy the URL the CLI printed into any browser on the same computer, or run with --no-browser.
Logging in over SSH. The login page redirects to 127.0.0.1 on the machine running the CLI. Forward the port shown in the printed URL (redirect_uri=http://127.0.0.1:PORT/callback) with ssh -L PORT:127.0.0.1:PORT your-server before approving, or choose Paste an API key in init.
"Timed out waiting for the browser login." Approval must happen within 5 minutes. Run the command again.
A tool fails with a scope error. The key lacks the scope for that scraper. Run scrapering keys use and pick a key with MCP tools 8/8, or create one with scrapering keys create.
The agent doesn't show the tools. Fully restart the agent (quit, not just close the window). For Codex, check that the environment variable is set in the terminal that launches it.
Next steps
- Authentication — manage API keys and assign the required scopes
- URL Scraper — use the REST API directly
- Google SERP Scraper — REST API for Google search
- Google News Scraper — REST API for Google News
- Pricing — each tool call costs the same as the equivalent REST API request