Enables AI agents to perform B2B lead generation, email validation, and business data scraping across multiple platforms like Apollo and Google Maps.
Also known as scrapercity/scrapercity-cli, scrapercity
- Stars
- 2
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.0.1
- Last commit
- Nov 12, 2026
- License
- MIT
What is ScraperCity MCP?
ScraperCity enables AI agents to perform B2B lead generation, email validation, and business data scraping across multiple platforms like Apollo and Google Maps.
Summary generated from the project's README
About ScraperCity MCP server
ScraperCity provides a suite of B2B data tools designed for AI agents, developers, and automated workflows. It enables users to perform complex tasks such as Apollo scraping, Google Maps extraction, and email validation through a single interface. The service is accessible via an MCP server for clients like Claude Code, Cursor, or Windsurf, as well as through a command-line interface and dedicated JavaScript and Python SDKs.
Users can interact with the system by configuring an API key in their environment or via the CLI. The platform offers specialized tools for finding mobile numbers, conducting skip tracing, and extracting ecommerce store data. While a guided tour is available without an API key, full access to the 15+ data tools requires an account. The service operates on a credit-based system where users can purchase plans or additional credits to pull real records from various databases.
What you can do with it
- 1Automated B2B lead generationAn AI agent can find specific professionals in a certain industry and location using Apollo data.
- 2Email deliverability verificationVerify that business email addresses are valid before starting an outreach campaign.
Written from the project's README. Every use case is checked against a quote from it.
How to install ScraperCity MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall ScraperCity MCP in Claude Code
$ claude mcp add --env 'SCRAPERCITY_API_KEY=<YOUR_SCRAPERCITY_API_KEY>' scrapercity-cli -- npx -y scrapercityInstall ScraperCity MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"scrapercity-cli": {
"command": "npx",
"args": [
"-y",
"scrapercity"
],
"env": {
"SCRAPERCITY_API_KEY": "<YOUR_SCRAPERCITY_API_KEY>"
}
}
}
}Install ScraperCity MCP in VS Code
.vscode/mcp.json
{
"servers": {
"scrapercity-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"scrapercity"
],
"env": {
"SCRAPERCITY_API_KEY": "<YOUR_SCRAPERCITY_API_KEY>"
}
}
}
}Install ScraperCity MCP in VS Code CLI
$ code --add-mcp '{"name":"scrapercity-cli","type":"stdio","command":"npx","args":["-y","scrapercity"],"env":{"SCRAPERCITY_API_KEY":"<YOUR_SCRAPERCITY_API_KEY>"}}'Install ScraperCity MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"scrapercity-cli": {
"command": "npx",
"args": [
"-y",
"scrapercity"
],
"env": {
"SCRAPERCITY_API_KEY": "<YOUR_SCRAPERCITY_API_KEY>"
}
}
}
}Install ScraperCity MCP in Codex
$ codex mcp add scrapercity-cli --env 'SCRAPERCITY_API_KEY=<YOUR_SCRAPERCITY_API_KEY>' -- npx -y scrapercityInstall ScraperCity MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.scrapercity-cli] command = "npx" args = ["-y", "scrapercity"] [mcp_servers.scrapercity-cli.env] SCRAPERCITY_API_KEY = "<YOUR_SCRAPERCITY_API_KEY>"
Install ScraperCity MCP in Gemini CLI
$ gemini mcp add -s user -e 'SCRAPERCITY_API_KEY=<YOUR_SCRAPERCITY_API_KEY>' scrapercity-cli npx -- -y scrapercityInstall ScraperCity MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"scrapercity-cli": {
"command": "npx",
"args": [
"-y",
"scrapercity"
],
"env": {
"SCRAPERCITY_API_KEY": "<YOUR_SCRAPERCITY_API_KEY>"
}
}
}
}Configuration
SCRAPERCITY_API_KEYRequiredSecretYour ScraperCity API key
| Name | Description | |
|---|---|---|
| SCRAPERCITY_API_KEY | Your ScraperCity API key | RequiredSecret |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablescrapercity/scrapercity-cli is public and reachablegithub.com/scrapercity/scrapercity-cli ↗Pass
- Package names this repository as its sourcescrapercity names scrapercity/scrapercity-cli as sourcenpmjs.com/package/scrapercity ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-12github.com/scrapercity/scrapercity-cli ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from scrapercityPass
- No critical advisory in the package or its dependencies99 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubScraperCity - B2B Lead Generation for AI Agents
Pull leads, validate emails, find mobile numbers, and scrape business data - all from your AI agent, CLI, or code. One package: the MCP server, the CLI and the JavaScript SDK. The Python SDK is pip install scrapercity.
ScraperCity gives AI agents access to 15+ B2B data tools: Apollo scraping, Google Maps extraction, email finding/validation, mobile number lookup, skip tracing, ecommerce store data, criminal records, and more.
Start Here (no API key needed)
npx scrapercity start "dentists in Austin"
Or have your agent call the start_here MCP tool, or GET https://app.scrapercity.com/api/v1/start?query=.... With no key you get a guided tour: what ScraperCity is, how to sign up, the plans and the trial with their live terms, and real searches with live counts. With a key it plans for your account and returns the exact next call.
The trial, plainly: The trial is real usage, not a demo or a free tier: $5 of credit for 7 days that works on every tool and database at the normal prices, so you can pull real records on day one and judge the data. A card is required at signup. When the 7 days end, the plan picked at signup starts; cancel before then from billing and nothing more is charged. If the credit runs out sooner, database pulls wait (nothing is charged for them); a scraper run that goes past the credit starts the plan early. Planning searches and checking counts are free. start_here returns the live terms.
Quick Start
Option 1: CLI
npx scrapercity login # enter your API key
npx scrapercity wallet # check balance
npx scrapercity maps -q "plumbers" -l "Denver, CO"
npx scrapercity poll <runId> # wait for results
npx scrapercity download <runId> # save CSV
Option 2: MCP Server (Claude Code, Cursor, Windsurf, etc.)
Add to your MCP config (e.g. ~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"scrapercity": {
"command": "npx",
"args": ["-y", "--package", "scrapercity", "scrapercity-mcp"],
"env": {
"SCRAPERCITY_API_KEY": "your_api_key_here"
}
}
}
}
Then tell your AI: "Find 1000 plumbers in Denver with emails using ScraperCity"
Option 3: Skill File (Claude Code)
Copy the skill file into your project:
npx scrapercity-mcp --print-skill > SCRAPERCITY_SKILL.md
Or download from: https://scrapercity.com/agents/SKILL.md
Then in Claude Code: "Read SCRAPERCITY_SKILL.md and find me 2000 marketing directors at SaaS companies in California, validate their emails, and save to leads.csv"
Option 4: Direct API
# Start a Maps scrape
curl -X POST https://app.scrapercity.com/api/v1/scrape/maps \
-H "Authorization: Bearer $SCRAPERCITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"searchStringsArray":["plumbers"],"locationQuery":"Denver, CO","maxCrawledPlacesPerSearch":500}'
# Check status
curl https://app.scrapercity.com/api/v1/scrape/status/RUN_ID \
-H "Authorization: Bearer $SCRAPERCITY_API_KEY"
# Download CSV when SUCCEEDED
curl -O https://app.scrapercity.com/api/downloads/RUN_ID \
-H "Authorization: Bearer $SCRAPERCITY_API_KEY"
Option 5: JavaScript SDK
npm install scrapercity
import { configure, wallet, dbLeads, callTool, TOOLS, openaiTools, anthropicTools } from 'scrapercity'
configure({ apiKey: process.env.SCRAPERCITY_API_KEY })
await wallet()
await dbLeads({ title: 'CEO', country: ['United States'], hasEmail: 'true', limit: 25 })
// Every tool the MCP server offers, by name, with the same arguments
await callTool('plan_search', { query: 'dentists in Austin, Texas' })
// Hand the whole tool list to OpenAI or Anthropic tool calling
const tools = openaiTools() // or anthropicTools()
Option 6: Python SDK
pip install scrapercity # add [langchain] or [openai] for agent tools
from scrapercity import ScraperCity, langchain_tools
sc = ScraperCity() # reads SCRAPERCITY_API_KEY
sc.call_tool("query_lead_database", {"title": "CEO", "limit": 10})
tools = langchain_tools() # LangChain / LangGraph
Both SDKs carry the same tool list as the MCP server, regenerated from the live API docs on every release. Guide: scrapercity.com/sdk. Python package: pypi.org/project/scrapercity.
Pricing (auto-generated from the live catalog — do not edit)
| Tool | Endpoint | Price |
|---|---|---|
scrape_apollo |
/api/v1/scrape/apollo | $0.0039 per lead |
scrape_website_finder |
/api/v1/scrape/website-finder | $0.0499 per contact found |
find_people |
/api/v1/scrape/skip-trace | $0.0199 per result (searches with 0 matches are billed as 1 result) |
scrape_distress_list |
/api/v1/scrape/distress-list | $0.05 per property |
validate_emails |
/api/v1/scrape/email-validator | $0.0017 per email |
scrape_maps |
/api/v1/scrape/maps | $0.0099 per business |
scrape_airbnb |
/api/v1/scrape/airbnb-email | $0.019 per result ($19.00 per 1,000) |
scrape_bizbuysell |
/api/v1/scrape/bizbuysell-scraper | $0.0099 per listing |
scrape_crexi |
/api/v1/scrape/crexi-scraper | $0.029 per property |
scrape_angi |
/api/v1/scrape/angi-angies-list-scraper | $0.0099 per listing |
scrape_yelp |
/api/v1/scrape/yelp-scraper | $0.0099 per result |
scrape_zillow_agents |
/api/v1/scrape/zillow-agents | $0.029 per agent |
scrape_property_lookup |
/api/v1/scrape/property-lookup | $0.15 per property (+$0.10 for owner contact) |
search_criminal_records |
/api/v1/scrape/criminal-records | $1.00 per search (only charged if records found) |
scrape_store_leads |
/api/v1/scrape/store-leads | $0.0039 per lead |
scrape_builtwith |
/api/v1/scrape/techstack | $4.99 per technology |
scrape_signals |
/api/v1/scrape/signals | $0.0094 per company running ads, $0.0009 per website per platform checked, $0.0043 per company hiring; minimum charge per search |
find_emails |
/api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
find_mobiles |
/api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
Available Tools
| Tool | What it does | Cost |
|---|---|---|
| Apollo | B2B contacts by job title, industry, location | $0.0039/lead |
| Google Maps | Local businesses with phones, emails, reviews | $0.01/place |
| Email Validator | Verify deliverability, catch-all, MX records | $0.0036/email |
| Email Finder | Find business email from name + company | $0.05/contact |
| Mobile Finder | Phone numbers from LinkedIn or email | $0.25/input |
| People Finder | Skip trace by name, email, phone, address | $0.02/result |
| Store Leads | Shopify/WooCommerce stores with contacts | $0.0039/lead |
| BuiltWith | All sites using a technology | $4.99/search |
| Criminal Records | Background check by name | $1.00 if found |
| Lead Database | B2B contacts, instant query | Included on $149/mo and up; per new lead from credits below it |
| Local Business Database | Local businesses with phones, emails and ratings, instant query | Included on $149/mo and up; per new business from credits below it |
Before You Send
Leads from any database: check them before outreach. Every record carries email_check_status (our own email checker: valid, valid_catch_all, invalid, unknown, not_checked): send ONLY to valid emails checked in the last 30 days (email_checked_on), and put every other email through validate_emails first. For people (Lead Database), pass replaceLeftContacts: true to query_lead_database (query_local_business_database and query_ecommerce_database take it too, for each business's or store's contact person); the response adds replacement.run_id, a run that checks every email and swaps each person who has left for the person in that role now. Wait for it with check_run_status, then send the CSV from download_results ($0.02 per contact replaced, free on the $649 plan). At minimum, run the emails through validate_emails and send only to the valid ones.
How It Works
- Start a scrape → get a
runId - Poll status (or use webhooks) → wait for
SUCCEEDED - Download CSV → leads with full contact info
Apollo scrapes usually take 15-30 minutes. All other scrapers: 1-30 minutes. Store leads are instant.
Authentication
Get your API key at app.scrapercity.com/dashboard/api-docs
# Environment variable (recommended)
export SCRAPERCITY_API_KEY="your_key"
# Or save to config file
npx scrapercity login
Webhooks
For Apollo and long-running scrapes, configure a webhook at app.scrapercity.com/dashboard/webhooks to get notified when results are ready.
Plans
| Plan | Price | Credits |
|---|---|---|
| Trial | 7 days, card required, then the plan picked at signup | $5 of usage credit |
| Starter | $49/mo | $49 (databases per record from credits) |
| Growth | $149/mo | $149 + 10% bonus, databases included |
| Scale | $649/mo | $649 + 30% bonus, databases included, higher limits |
Buy additional credits anytime. scrapercity.com/pricing
Links
- Agent Docs - setup guide
- API Reference - full documentation
- SDK guide - JavaScript and Python SDKs
- Python SDK on PyPI -
pip install scrapercity - Skill File - for Claude Code
- MCP Server Listing - configuration
License
MIT
ScraperCity MCP questions
How do I add ScraperCity MCP to Claude Code?
Run claude mcp add --env 'SCRAPERCITY_API_KEY=<YOUR_SCRAPERCITY_API_KEY>' scrapercity-cli -- npx -y scrapercity in your terminal. Add --scope user to make it available in every project.
How do I add ScraperCity MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How does the trial work?
The trial provides $5 of usage credit for 7 days that can be used on any tool at normal prices. A card is required at signup.