{
  "markdown": "# Scrapingdog MCP Server\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server that exposes the\n[Scrapingdog](https://www.scrapingdog.com) web-scraping and SERP APIs as tools any\nMCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.) can call.\n\nOne tool per Scrapingdog product — general web scraping, the full Google family,\nAmazon, Walmart, eBay, LinkedIn, X, YouTube, Bing, Baidu, and screenshots.\n\n## Requirements\n\n- Node.js ≥ 18\n- A Scrapingdog API key — get one on your [dashboard](https://www.scrapingdog.com/).\n\n## Install & build\n\n```bash\nnpm install\nnpm run build\n```\n\n## Configuration\n\nThe server reads your API key from the **`SCRAPINGDOG_API_KEY`** environment\nvariable. It is never passed as a tool argument, so it stays out of the model's\ncontext, transcripts, and logs.\n\n| Variable | Required | Default | Description |\n| --- | --- | --- | --- |\n| `SCRAPINGDOG_API_KEY` | yes | — | Your Scrapingdog API key. |\n| `SCRAPINGDOG_API_BASE` | no | `https://api.scrapingdog.com` | Override the API base URL. |\n| `SCRAPINGDOG_TIMEOUT_MS` | no | `90000` | Per-request timeout in milliseconds. |\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`\n(macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"scrapingdog\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/ScrapingdogMCP/dist/index.js\"],\n      \"env\": {\n        \"SCRAPINGDOG_API_KEY\": \"your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add scrapingdog -e SCRAPINGDOG_API_KEY=your_api_key_here -- node /absolute/path/to/ScrapingdogMCP/dist/index.js\n```\n\n## Available tools\n\n**35 tools.** Each tool's full parameter set (with descriptions and API\ndefaults) is generated from [`src/endpoints.ts`](src/endpoints.ts) and surfaced\nto the client as the tool's input schema. All paths were validated against the\nlive API except `amazon_reviews` (⚠️) — see [Known issues](#known-issues).\n\n### General\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `web_scrape` | `/scrape` | `url` |\n\n### Google family\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `google_search` | `/google` | `query` |\n| `google_maps` | `/google_maps` | `query` |\n| `google_news` | `/google_news/v2` | — (`query` or a `*_token`) |\n| `google_trends` | `/google_trends` | `query` |\n| `google_shopping` | `/google_shopping` | `query` |\n| `google_scholar` | `/google_scholar` | `query` (or `cites`) |\n| `google_jobs` | `/google_jobs` | `query` |\n| `google_finance` | `/google_finance` | `query` |\n| `google_lens` | `/google_lens` | `url` |\n| `google_ai_mode` | `/google/ai_mode` | `query` |\n| `google_ai_overview` | `/google/ai_overview` | `url` |\n| `google_shorts` | `/google_shorts` | `query` |\n| `google_hotels` | `/google_hotels` | `query`, `check_in_date`, `check_out_date` |\n| `google_patents` | `/google_patents` | `query` |\n| `google_immersive_product` | `/google_immersive_product` | `page_token` |\n| `google_images` | `/google_images` | `query` |\n\n### E-commerce\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `amazon_search` | `/amazon/search` | `query`, `domain`, `page`, `country` |\n| `amazon_product` | `/amazon/product` | `asin` |\n| `amazon_reviews` ⚠️ | `/amazon/reviews` | `asin` |\n| `amazon_offers` | `/amazon/offers` | `asin` |\n| `walmart_search` | `/walmart/search` | `url` |\n| `ebay_search` | `/ebay/search` | `url` |\n\n### Social / professional\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `linkedin_profile` | `/linkedin` | `type`, `linkId` |\n| `x_profile` | `/x/profile` | `profileId` |\n| `youtube_search` | `/youtube` | `search_query` |\n| `youtube_transcripts` | `/youtube/transcripts` | `v` |\n| `youtube_video` | `/youtube/video` | `v` |\n| `youtube_channel` | `/youtube/channel` | `channel_id` |\n| `youtube_comments` | `/youtube/comments` | `v` |\n\n### Other search engines\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `bing_search` | `/bing/search` | `query` |\n| `baidu_search` | `/baidu/search` | `query` |\n| `universal_search` | `/search` | `query` |\n\n### AI / LLM & tools\n\n| Tool | Scrapingdog endpoint | Key required args |\n| --- | --- | --- |\n| `chatgpt` | `/chatgpt` | `prompt` |\n| `screenshot` | `/screenshot` | `url` (returns an image) |\n\n## Known issues\n\nAll 35 endpoints were validated against the live API and return data, with one\nexception:\n\n- **`amazon_reviews`** — the `/amazon/reviews` route is correct, but the live\n  endpoint currently responds `HTTP 400 \"Something went wrong\"` for every input\n  (any ASIN, with or without extra params). This looks like a Scrapingdog\n  backend/plan-scope issue rather than a wrapper bug. It stays marked with\n  `verify: true` in `src/endpoints.ts` until it returns data. List flagged\n  endpoints anytime with:\n\n```bash\nnpm run list:unverified\n```\n\n## Adding or adjusting an endpoint\n\nEvery endpoint is a single declarative object in\n[`src/endpoints.ts`](src/endpoints.ts) — no handler code to write. To add a\nScrapingdog product (e.g. Google Hotels, Patents, TikTok), append:\n\n```ts\n{\n  tool: \"google_hotels\",\n  title: \"Google Hotels API\",\n  path: \"/google_hotels\",\n  description: \"…\",\n  params: [\n    { name: \"query\", type: \"string\", required: true, description: \"…\" },\n    // …\n  ],\n}\n```\n\nRebuild with `npm run build`.\n\n## Architecture\n\n```\nsrc/\n  types.ts       Endpoint / EndpointParam type definitions\n  endpoints.ts   Declarative registry of every Scrapingdog API\n  client.ts      HTTP client: URL building, API-key resolution, error handling\n  server.ts      Compiles each endpoint into an MCP tool + Zod input schema\n  index.ts       stdio entry point\n```\n\n## License\n\nMIT\n",
  "bytes": 5752,
  "sha": "9cc25244e6f222ea84f82838ac6afe3bf734809fa740a19bef786d314bc4931e",
  "repo_slug": "darshan972/scrapingdog-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_darshan972_scrapingdog_mcp_e133bce0/readme"
}