npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@webbula/mcp

v1.3.0

Published

Webbula MCP Server — email verification, hygiene, and data-quality trust layer for AI agents

Readme

Webbula MCP Server

Expose Webbula's email-intelligence data to AI agents as Model Context Protocol tools — verify and clean email addresses, validate full lead records, run batch files, and check your credit balance. Each verification result carries a trust block (data provenance and activity history) from Webbula's 20+ year dataset.

The server is a thin wrapper over the Webbula API: it validates input, calls the API over HTTPS, and reshapes the response. It performs no scoring of its own — every verdict comes from Webbula.


Installation

You need Node.js 20+ and a Webbula API key. Run the published package directly with npx — no clone, no build:

# stdio (default) — for a local MCP host that spawns the server
WEBBULA_API_KEY=wb_your_key npx -y @webbula/mcp

# HTTP transport on port 4000 — for a remote/shared deployment
WEBBULA_API_KEY=wb_your_key PORT=4000 npx -y @webbula/mcp --http

Connecting your AI tool

Every client launches the server over stdio and passes the key via env. Add a webbula entry to your client's MCP config, then restart/reload the client — the tools appear automatically.

Claude Code (CLI) — one command:

claude mcp add webbula -e WEBBULA_API_KEY=wb_your_key -- npx -y @webbula/mcp

Claude Desktop — edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "webbula": {
      "command": "npx",
      "args": ["-y", "@webbula/mcp"],
      "env": { "WEBBULA_API_KEY": "wb_your_key" }
    }
  }
}

Cursor — same mcpServers block as above, in ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project).

Windsurf — same mcpServers block, in ~/.codeium/windsurf/mcp_config.json.

VS Code (Copilot agent mode) — in .vscode/mcp.json; note the key is servers and each entry needs a type:

{
  "servers": {
    "webbula": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@webbula/mcp"],
      "env": { "WEBBULA_API_KEY": "wb_your_key" }
    }
  }
}

Configuration

The package is configured entirely through the environment — nothing else is required. The API key is held in memory for the duration of a request only; it is never logged, persisted, or returned in any tool output or error.

| Variable | Default | Purpose | |----------|---------|---------| | WEBBULA_API_KEY | — | Required. Your Webbula API key. Sent upstream as the X-API-KEY header. | | PORT | 3000 | Listen port for the HTTP transport. |

The same tool set runs under two transports (stdio or HTTP); the transport is chosen at launch (default stdio, --http for HTTP), everything else comes from the environment.

Authentication model. The key is configured once, on the server process, and every request uses it. The HTTP transport does not read a per-request Authorization / X-API-KEY header from inbound clients — run one server instance per key (per tenant, if you need multiple keys).


Tools

8 tools available. Every tool validates input with zod before any upstream call and returns the result both as pretty-printed text and as structuredContent.

| # | Tool | Category | Required params | Optional params | |---|------|----------|-----------------|-----------------| | 1 | verify_email | Email verification | email | profile | | 2 | hygiene_check | Email verification | emails (array, 1–100) | profile | | 3 | validate_lead | Lead validation | ≥1 of first_name, last_name, full_address, phone, emails | profile | | 4 | upload_file | Batch (async) | filename + content_base64 or data_source | profile, url, host, port, username, password, path, secure | | 5 | file_status | Batch (async) | package_name | — | | 6 | download_results | Batch (async) | package_name, filename | — | | 7 | get_credits | Account | — | — | | 8 | list_profiles | Account | — | — |

Capability breakdown

  • Email verification & hygieneverify_email returns a deliverability verdict, any corrected form, and a trust block for a single address; hygiene_check runs the same per-email classification + activity history over a list of 1–100.
  • Lead validationvalidate_lead parses and assesses a full contact record (name, postal address, phone) in one call, and runs email hygiene too when emails are supplied.
  • Batch file processing (async)upload_file submits a file (inline base64 or a web/FTP/SSH source) and returns a package_name; poll file_status, then pull each output with download_results (insert.csv / _report.xls).
  • Accountget_credits reports the remaining balance per billing scenario with an explicit "unlimited" flag (consumes no verification credits); list_profiles lists the profile names the account may use. The profile-accepting tools (verify_email, hygiene_check, validate_lead, upload_file) run a preflight against this list and reject an unavailable profile — the one passed in the call or the server default — returning the available profiles instead of an opaque upstream rejection.

Result vocabulary

Verification tools pass the upstream verdict token through verbatim as status (or per-email result) and attach a static, documented label / risk / usable for known tokens (unknown tokens keep the raw token, friendly fields omitted — the wrapper never guesses):

| Token | Label | Risk | Usable | |-------|-------|------|--------| | Clean / Valid | Clean / Valid | Low | ✅ true | | Unknown | Unknown | High to Moderate | — (indeterminate) | | Invalid | Invalid | Extreme | ❌ false | | Reputation | Reputation Threat | Extreme | ❌ false | | Fraud | Fraud Threat | Extreme to High | ❌ false | | Delivery | Delivery Threat | High | ❌ false | | Conversion | Conversion Threat | Moderate | ❌ false | | Beta | Beta Threat | Moderate to Low | ❌ false |

When upstream supplies activity data, a trust block is attached: { data_source, first_seen, last_seen, trajectory }.

Resources

This server exposes no MCP resources — all functionality is provided through the tools above.


License

MIT © Webbula, LLC