HasData

HasData APIs - Google SERP、Amazon、Zillow、Indeed、Maps 等

文件

MCP Server

Connect LLM clients and AI agents to HasData via the Model Context Protocol.

The HasData MCP Server exposes HasData's scraping and search capabilities to any client that speaks the Model Context Protocol. Point your MCP-enabled client (Claude, Codex, Cursor, VS Code, Windsurf, custom agents, etc.) at the HasData endpoint and your model can scrape web pages, run Google searches, and pull structured data without writing API integration code.

Endpoint

https://mcp.hasdata.com/mcp

The server uses the streamable HTTP transport.

Authentication

Two ways to connect: sign in with your HasData account, or send an API key.

Sign in with your HasData account

Clients that support OAuth connect without you handling a key: add the endpoint and follow the sign-in prompt. Each connection gets its own API key, named after the client — delete that key on the API keys page to disconnect it.

```bash Claude Code theme={null} claude mcp add --transport http hasdata https://mcp.hasdata.com/mcp # then run /mcp and authenticate ```
codex mcp add hasdata --url https://mcp.hasdata.com/mcp
codex mcp login hasdata
code --add-mcp '{"name":"hasdata","type":"http","url":"https://mcp.hasdata.com/mcp"}'
Settings → Connectors → Add custom connector → https://mcp.hasdata.com/mcp
Settings → MCP → Add custom MCP → https://mcp.hasdata.com/mcp

API key

Send your key from the dashboard in the x-api-key header. Use this for clients without OAuth support, and for unattended agents.

```bash Claude Code theme={null} claude mcp add --transport http hasdata https://mcp.hasdata.com/mcp \ --header "x-api-key: " ```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "hasdata": {
      "url": "https://mcp.hasdata.com/mcp",
      "headers": { "x-api-key": "<your-api-key>" }
    }
  }
}
// ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "hasdata": {
      "serverUrl": "https://mcp.hasdata.com/mcp",
      "headers": { "x-api-key": "<your-api-key>" }
    }
  }
}
// cline_mcp_settings.json
{
  "mcpServers": {
    "hasdata": {
      "type": "streamableHttp",
      "url": "https://mcp.hasdata.com/mcp",
      "headers": { "x-api-key": "<your-api-key>" }
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.hasdata]
url = "https://mcp.hasdata.com/mcp"
env_http_headers = { "x-api-key" = "HASDATA_API_KEY" }

Any other client that speaks the streamable HTTP transport works the same way: point it at the endpoint and send x-api-key. Requests with no valid credential are rejected with 401 Unauthorized.

Choosing Which APIs to Expose

By default the server exposes all 57 HasData APIs as tools, and your model re-reads all 57 tool definitions on every call. Add the apis parameter to expose only the ones you need:

https://mcp.hasdata.com/api/mcp?apis=amazon,shopify

That connection has 7 tools instead of 57. Authentication, billing and tool behaviour are unchanged.

Name a provider to get all of its APIs, or name a single API — ?apis=google_maps_search,web_scraping gives two tools.

ProviderIndividual APIs
airbnbairbnb_listing, airbnb_property
amazonamazon_product, amazon_reviews, amazon_search, amazon_seller, amazon_seller_products
bingbing_serp
bookingbooking_place, booking_search
duckduckgoduckduckgo_serp
glassdoorglassdoor_job, glassdoor_listing
google_imagesgoogle_images_images
google_mapsgoogle_maps_contributor_reviews, google_maps_photos, google_maps_place, google_maps_posts, google_maps_reviews, google_maps_search
google_serpgoogle_serp_ai_mode, google_serp_ai_overview, google_serp_events, google_serp_immersive_product, google_serp_news, google_serp_product, google_serp_serp, google_serp_serp_light, google_serp_shopping, google_serp_short_videos
google_travelgoogle_travel_flights, google_travel_hotels
google_trendsgoogle_trends_search
indeedindeed_job, indeed_listing
instagraminstagram_posts, instagram_profile
redfinredfin_listing, redfin_property
shopifyshopify_collections, shopify_products
tiktoktiktok_comments, tiktok_posts, tiktok_profile, tiktok_search
web_scrapingweb_scraping_web_scraping
yellowpagesyellowpages_place, yellowpages_search
yelpyelp_place, yelp_reviews, yelp_search
youtubeyoutube_channel, youtube_search, youtube_transcript, youtube_video
zillowzillow_listing, zillow_property

A misspelled name is ignored and the rest still loads. If every name is misspelled the request fails with 400 and lists the valid providers.

Billing

Each tool call consumes HasData credits the same way a direct API request would, from the workspace the connection is attached to. See Credits and Concurrency for details.