Skip to content
Conduit

mcp server

webdatatools-mcp-server

MCP server: ten web-data tools for AI agents (search, page reading, contacts, tech stack, company profiles, e-mail security, package health) powered by Apify Actors

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "webdatatools-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@webdatatools/mcp-server"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 26, 2026

webdatatools MCP server

An MCP (Model Context Protocol) server that gives AI agents — Claude Desktop, Cursor, Cline, ChatGPT desktop, or any other MCP client — eleven web-data tools backed by WebDataTools' Apify Actors: web search, article extraction, site crawling, contact/tech-stack detection, company profiling, e-mail/DNS security checks, e-mail validation, package health, and raw Google search.

This server uses your own Apify API token. Every tool call runs an Actor under your Apify account and is billed to your Apify credit, not ours. Nothing is sent anywhere else.

All of the Actors behind these tools are listed at webdatatools.

Requirements

Quick start (no install)

npx -y github:paulet4a-commits/webdatatools-mcp-server

The server speaks MCP over stdio. It reads your token from the APIFY_TOKEN environment variable. If APIFY_TOKEN isn't set, the server still starts and lists all eleven tools (so it doesn't look broken in a client's UI) — calling a tool without a token returns a friendly error telling you where to get one.

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config) and add:

{
  "mcpServers": {
    "webdatatools": {
      "command": "npx",
      "args": ["-y", "github:paulet4a-commits/webdatatools-mcp-server"],
      "env": {
        "APIFY_TOKEN": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Restart Claude Desktop. The eleven tools below appear under the "webdatatools" server.

Cursor

Cursor → Settings → MCP → Add new MCP server, or edit .cursor/mcp.json in your project (or the global ~/.cursor/mcp.json):

{
  "mcpServers": {
    "webdatatools": {
      "command": "npx",
      "args": ["-y", "github:paulet4a-commits/webdatatools-mcp-server"],
      "env": {
        "APIFY_TOKEN": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Cline (VS Code extension)

Cline → MCP Servers → Configure MCP Servers, which opens cline_mcp_settings.json:

{
  "mcpServers": {
    "webdatatools": {
      "command": "npx",
      "args": ["-y", "github:paulet4a-commits/webdatatools-mcp-server"],
      "env": {
        "APIFY_TOKEN": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      },
      "disabled": false
    }
  }
}

Any other MCP client that supports a stdio server with an env map works the same way — set command to npx, args to ["-y", "github:paulet4a-commits/webdatatools-mcp-server"], and pass APIFY_TOKEN in env.

Tools

ToolActorWhat it does
web_searchai-web-searchSearch the web (or read specific URLs) and get clean Markdown of the top results
read_urlarticle-extractorFetch article/blog/news URL(s) and return clean readable Markdown
crawl_site_markdownwebsite-to-markdownCrawl a site from a start URL and return one Markdown doc per page (maxPages controls cost)
extract_contactscontact-extractorPull e-mails, phone numbers and social links off a website
detect_tech_stacktech-stack-detectorFingerprint CMS, e-commerce, analytics, ad pixels, chat, payments, frameworks, CDN
extract_with_selectorscss-selector-extractorExtract exact fields from any page with CSS selectors; list pages, pagination, sitemaps (billed per page)
company_profilecompany-360One-call company profile: contacts, tech, DNS/e-mail security, TLS grade, hiring, Wikidata facts, SEO
check_email_securitydns-email-security-checkerSPF/DMARC/DKIM, mail & DNS provider, registrar, domain age, 0-100 score
validate_emailsemail-validatorSyntax + disposable/role detection + live MX/A lookup for a list of e-mails
package_healthpackage-health-checkernpm/PyPI/Crates.io package health: version, downloads, license, GitHub stats
google_searchgoogle-search-scraperRaw Google SERP data: organic results, People Also Ask, related searches

Each tool has a precise JSON-Schema inputSchema — the calling agent reads the field descriptions to decide when and how to call it. Most tools accept either a singular convenience field (url, domain, email, package, query) or a plural batch array (urls, domains, emails, packages, queries); the plural form wins when both are given.

More WebDataTools MCP servers

Every WebDataTools Actor is also available as a tool, grouped by theme:

Pricing

There is no charge for the MCP server itself. Each tool call runs the underlying Actor on your Apify account and is billed at our Apify Store price for that Actor (pay-per-result or pay-per-event, shown on each Actor's page). Apify's free plan includes $5 of platform credit per month, which comfortably covers light use of these tools. See each Actor's Store page (linked above) for exact pricing, or https://console.apify.com/billing for your own usage and balance.

How results are kept small

Tool results are dataset rows from the Actor run, trimmed for readability:

  • any text field longer than ~4,000 characters is truncated with a note of how many characters were cut
  • the whole response is capped at roughly 100 KB; if it doesn't fit, rows are dropped from the end and the reply says how many of the total rows were included vs. omitted

If you need the full untrimmed data, run the Actor directly from the Apify Console or API.

Configuration reference

Env varRequiredDescription
APIFY_TOKENYes (for tool calls)Your personal Apify API token. Tool discovery works without it; calling a tool without it returns a friendly error.

Per-call timeout is 120 seconds. If an Actor run doesn't finish in time, the tool returns a timeout error suggesting a smaller request (fewer URLs/pages/items).

Local development

npm install
npm test          # vitest, all HTTP mocked — no live network or token needed
npm start          # run the server on stdio (needs APIFY_TOKEN in the environment)

Publishing (not yet published — maintainer decision)

Install straight from GitHub — no npm account or publish step needed:

npx -y github:paulet4a-commits/webdatatools-mcp-server

Publishing to npm would only shorten that to npx -y @webdatatools/mcp-server; the GitHub form above is verified working and is what the config examples use.

Listing on MCP directories

  • Smithery (https://smithery.ai): the repo already includes smithery.yaml. Connect the GitHub repo from the Smithery dashboard ("Deploy Server") — nothing else to configure, it reads smithery.yaml for the stdio start command and the apifyToken config field.
  • Glama (https://glama.ai/mcp/servers): Glama auto-indexes public GitHub repos that ship a valid package.json with an MCP server bin entry and a README with a config example (this repo has both) plus glama.json declaring the maintainer. Submit the repo URL from https://glama.ai/mcp/servers/new once it's pushed to GitHub.
  • mcp.so (https://mcp.so): submit the GitHub repo URL and/or npm package name via their "Submit" form; it scrapes package.json, README.md and the tool list the same way.

None of the above were created or submitted as part of this task — see the final report for what's left to do by hand.

↑↓ navigate openesc close