SMSBulk MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SMSBULK_API_KEY | No | Your personal API key. Catalog tools work without it. Required for paid actions. | |
| SMSBULK_BASE_URL | No | API base URL. Override only if self-hosting. | https://smsbulk.net/api/v1 |
| MAX_SPEND_PER_SESSION | No | Soft USD spend cap per session. Blank or 0 disables it. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_servicesA | List all active SMS verification services with stock and minimum-price summaries. No API key required. Use this to discover available services and their slugs/codes. |
| list_countriesA | List all supported countries with flags and ISO codes. No API key required. |
| get_serviceA | Get details for a single service by its SEO slug or service code. No API key required. |
| get_service_countriesA | List in-stock countries for a service (stock > 0) with prices, currency, stock, and speed tiers. No API key required. Use the returned isoCode + service code/slug to order a number. |
| request_numberA | Reserve a virtual number for SMS verification. ⚠️ This SPENDS from your wallet immediately. Requires an API key. Use list_services / get_service_countries first to pick a serviceCode and countryIso. Best-effort retry guard: an identical call in the same session is replayed without charging again. To intentionally order a SECOND number for the same service/country, pass a distinct idempotency_token. |
| get_statusA | Get the current status and SMS code (if received) for one activation. Requires an API key. Does not spend. |
| completeB | Mark an activation complete (confirms the SMS was used). Final transition. Requires an API key. |
| cancelA | Cancel an activation. Refunds the wallet if no SMS was received. Requires an API key. |
| request_resendA | Ask the provider to send another SMS to the same number. Limited per activation. Requires an API key. |
| list_activationsA | List your activations (cursor-paginated, newest first). Requires an API key. Does not spend. |
| get_balanceA | Get your current wallet balance. Requires an API key. Does not spend. |
| list_transactionsA | List recent wallet transactions (deposits, debits, refunds), cursor-paginated. Requires an API key. Does not spend. |
| email_get_domainsA | List available email provider domains for a target site, with user-facing prices and stock. Requires an API key. Use this before email_request to pick a domain. Does not spend. |
| email_requestA | Reserve a temporary email address for OTP verification. ⚠️ This SPENDS from your wallet immediately. Requires an API key. Pick site + domain via email_get_domains first. Best-effort retry guard: an identical call in the same session is replayed without charging again. To intentionally order a SECOND address for the same site/domain, pass a distinct idempotency_token. |
| email_listA | List your most recent email activations (newest first, up to 100; no cursor paging). Requires an API key. Does not spend. |
| email_get_statusA | Get the status, parsed OTP, and raw HTML body (once received) for one email activation. Requires an API key. Does not spend. |
| email_reorderA | Re-open the same email address for another OTP (email equivalent of SMS request_resend). ⚠️ This SPENDS from your wallet again. Requires an API key. |
| email_cancelA | Cancel an email activation. Refunds the wallet if no OTP was received. Requires an API key. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool targets a distinct resource and action: SMS services, countries, activations, wallet, and email domain. The email_ prefix clearly separates email tools from SMS tools, and within each group, operations like request, status, cancel, resend are unambiguous. No two tools appear to do the same thing.
The naming is largely consistent with a verb_noun pattern (e.g., list_services, get_balance, request_number), and the email_ prefix uniformly marks email tools. Minor exceptions include a few short verbs like 'complete' and 'cancel' without a noun, and 'request_resend' vs 'email_reorder' which use different phrasing, but the overall pattern is predictable and readable.
With 18 tools, the count is slightly above the typical 3-15 range, but it is justified by covering two distinct domains (SMS verification and email OTP). Each tool serves a clear purpose, and the count does not feel bloated or overwhelming. It straddles the boundary but remains reasonable.
The tool set covers the full lifecycle for both SMS and email verification: discovery, ordering, status, completion, cancellation, resend, plus wallet management and transaction history. There are no obvious dead ends or missing operations that would prevent an agent from executing common workflows.