BillionVerify

Email verification for AI agents: verify single or bulk emails, check credits and history.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
79%
Naming quality
98%
Poisoning risk
100%
Permission match
70%
Protocol compliance
100%

Findings (3)

  • LOWTool 'delete_webhook' suggests web access but openWorldHint=falsein delete_webhook
  • LOWTool 'get_download_url' suggests web access but openWorldHint=falsein get_download_url
  • LOWTool 'list_webhooks' suggests web access but openWorldHint=falsein list_webhooks

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,260Tokens (tool definitions)
~704 BTypical response size
Moderate attention impact (0.98% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "billionverify-mcp": {
      "command": "npx",
      "args": [
        "billionverify-mcp"
      ]
    }
  }
}

Runnable packages

npmbillionverify-mcp1.1.1stdio

Remote endpoints

https://mcp.billionverify.com/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_webhook(events, url)

Create a webhook endpoint for verification lifecycle notifications.

Input Schema

{
  "type": "object",
  "properties": {
    "events": {
      "description": "The webhook event types to subscribe to.",
      "items": {
        "enum": [
          "file.completed",
          "file.failed"
        ],
        "type": "string"
      },
      "minItems": 1,
      "type": "array"
    },
    "url": {
      "description": "The HTTPS endpoint that should receive webhook deliveries.",
      "type": "string"
    }
  },
  "required": [
    "url",
    "events"
  ]
}
🔴delete_webhook(webhook_id)

Permanently delete a webhook endpoint by identifier. The endpoint stops receiving notifications immediately.

Input Schema

{
  "type": "object",
  "properties": {
    "webhook_id": {
      "description": "The webhook identifier to delete.",
      "type": "string"
    }
  },
  "required": [
    "webhook_id"
  ]
}
🟢get_account_balance

Get the current credit balance for the authenticated account.

Input Schema

{
  "type": "object"
}
🟢get_download_url(catchall, disposable, invalid, job_id, role, ...)

Get a signed download URL for completed results, or CSV content when filtered or rebuilt from history.

Input Schema

{
  "type": "object",
  "properties": {
    "catchall": {
      "default": false,
      "description": "Include results marked as catchall.",
      "type": "boolean"
    },
    "disposable": {
      "default": false,
      "description": "Include results marked as disposable.",
      "type": "boolean"
    },
    "invalid": {
      "default": false,
      "description": "Include results marked as invalid.",
      "type": "boolean"
    },
    "job_id": {
      "description": "The completed verification job identifier.",
      "type": "string"
    },
    "role": {
      "default": false,
      "description": "Include results marked as role-based addresses.",
      "type": "boolean"
    },
    "unknown": {
      "default": false,
      "description": "Include results marked as unknown.",
      "type": "boolean"
    },
    "valid": {
      "default": false,
      "description": "Include results marked as valid.",
      "type": "boolean"
    }
  },
  "required": [
    "job_id"
  ]
}
🟢get_task_status(task_id)

Get the current status of an asynchronous verification task.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "description": "The task or job identifier returned by a previous verification request.",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ]
}
🟢get_verification_history(limit, page)

List verification history for the authenticated account.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "description": "The number of history records to return per page.",
      "maximum": 100,
      "minimum": 1,
      "type": "number"
    },
    "page": {
      "default": 1,
      "description": "The page number to retrieve.",
      "minimum": 1,
      "type": "number"
    }
  }
}
🟢get_verification_stats(period)

Get aggregated verification statistics for the authenticated account.

Input Schema

{
  "type": "object",
  "properties": {
    "period": {
      "default": "30d",
      "description": "The reporting period to query.",
      "enum": [
        "7d",
        "30d",
        "90d",
        "1y"
      ],
      "type": "string"
    }
  }
}
🟢health_check

Check the health of the BillionVerify MCP server.

Input Schema

{
  "type": "object"
}
🟢list_webhooks

List all webhook endpoints configured for the authenticated account.

Input Schema

{
  "type": "object"
}
⚪verify_batch_emails(check_smtp, emails)

Verify 1 to 50 email addresses in one request and return a verdict for each. Split longer lists into chunks of 50. Uses credits from the connected BillionVerify account.

Input Schema

{
  "type": "object",
  "properties": {
    "check_smtp": {
      "default": false,
      "description": "Whether to perform SMTP checks for each email address.",
      "type": "boolean"
    },
    "emails": {
      "description": "The email addresses to verify, with a minimum of 1 item and a maximum of 50 items.",
      "items": {
        "minLength": 3,
        "type": "string"
      },
      "maxItems": 50,
      "minItems": 1,
      "type": "array"
    }
  },
  "required": [
    "emails"
  ]
}
⚪verify_single_email(check_smtp, email, force_refresh)

Verify whether a single email address can receive mail. Checks syntax and the domain's mail servers, and optionally the mailbox over SMTP. Uses credits from the connected BillionVerify account.

Input Schema

{
  "type": "object",
  "properties": {
    "check_smtp": {
      "default": false,
      "description": "Whether to perform an SMTP check in addition to syntax and domain checks.",
      "type": "boolean"
    },
    "email": {
      "description": "The email address to verify.",
      "type": "string"
    },
    "force_refresh": {
      "default": false,
      "description": "Whether to bypass cached results and force a fresh verification.",
      "type": "boolean"
    }
  },
  "required": [
    "email"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools