AI 原生 MCP 服务器

SMSBulk MCP 服务器

直接在 Claude Desktop、Cursor 或任何兼容 MCP 的客户端中使用 SMSBulk——订购短信号码和一次性邮箱地址,并读取验证码。

模型上下文协议(MCP)让 AI 助手能够调用外部工具。这个开源服务器将 SMSBulk API 连接到你的 AI 客户端,不含业务逻辑,也不存储任何密钥。

GitHub 上的开源项目

功能说明

该服务器是纯转发层:它使用你自己的 API 密钥将每个请求转发到 SMSBulk 公共 API。它提供分为四组的 18 个工具——目录、短信、钱包和邮箱。

与仅提供短信的服务商不同,SMSBulk 同时提供电话和邮箱验证。在大多数竞争对手的 MCP 服务器中,邮箱工具没有对应功能。

安装

需要 Node.js 18 或更高版本。克隆仓库、安装依赖并构建:

git clone https://github.com/Tolunay3434/smsbulk-mcp.git
cd smsbulk-mcp
npm install
npm run build

然后让你的 MCP 客户端指向构建好的 dist/index.js。目录工具无需密钥即可使用;其他所有工具都需要你的 SMSBulk API 密钥。

客户端配置

Claude Desktop

{
  "mcpServers": {
    "smsbulk": {
      "command": "node",
      "args": ["/absolute/path/to/smsbulk-mcp/dist/index.js"],
      "env": {
        "SMSBULK_API_KEY": "your_api_key_here",
        "MAX_SPEND_PER_SESSION": "5"
      }
    }
  }
}

将其添加到 claude_desktop_config.json,然后重启 Claude Desktop。SMSBulk 工具会出现在工具菜单中。

Cursor

{
  "mcpServers": {
    "smsbulk": {
      "command": "node",
      "args": ["/absolute/path/to/smsbulk-mcp/dist/index.js"],
      "env": {
        "SMSBULK_API_KEY": "your_api_key_here"
      }
    }
  }
}

将其添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(按项目)。

将 /absolute/path/to/smsbulk-mcp 替换为你克隆仓库的真实路径。切勿提交你的 API 密钥。

工具参考

共 18 个工具。目录工具无需密钥;其他工具会发送你的 x-api-key。

目录

无需 API 密钥
list_services

所有可用服务,附库存和最低价格摘要。

list_countries

所有支持的国家/地区,附旗帜和 ISO 代码。

get_serviceslug

按 SEO 短链或服务代码查询的单个服务。

get_service_countriesslug

某项服务有库存的国家/地区,含价格、库存和速度等级。

短信验证

需要 API 密钥
request_numberserviceCode, countryIso, operator?, idempotency_token?扣费

为短信验证预留一个号码。带重试保护。

get_statusid

某次激活的状态及短信验证码(收到后)。

completeid

将一次激活标记为完成。此操作不可撤销。

cancelid

取消激活;若未收到短信则退款到钱包。

request_resendid

请求服务商向同一号码再发送一条短信。

list_activationslimit?, cursor?, status?

你的激活记录,按游标分页,最新在前。

钱包

需要 API 密钥
get_balance

你当前的钱包余额。

list_transactionslimit?, cursor?

最近的充值、扣费和退款。

邮箱验证

需要 API 密钥仅短信服务器不具备
email_get_domainssite

目标网站可用的邮箱服务商域名,含价格和库存。

email_requestsite, domain, idempotency_token?扣费

预留一个一次性邮箱地址。带重试保护。

email_listlimit?

你最近的邮箱激活记录,最新在前(最多 100 条,无游标)。

email_get_statusid

状态、解析出的 OTP 以及原始 HTML 正文(收到后)。

email_reorderid扣费

重新开启同一地址以接收另一个 OTP。

email_cancelid

取消;若未收到 OTP 则退款到钱包。

安全与限制

这些防护是为方便而设的安全带,并非保证。

尽力而为的重试保护——并非保证的幂等性

request_number 和 email_request 在内存中维护一个小型防护,用于捕捉常见的误操作情形:如果同一个下单工具在一个会话中以相同参数被调用两次,第二次调用会返回第一次的结果,而不会再次扣费。这并非保证的幂等性——它仅存在于本进程的内存中,重启后即清零,不在多个客户端之间协调,也无法防止真正的服务器端竞态。要安全地重试同一笔订单,请传入相同的 idempotency_token;要有意下第二笔订单,请传入不同的 token。

软性消费上限(MAX_SPEND_PER_SESSION)

设置后,服务器会跟踪每笔成功订单的真实成本,并在累计总额达到你的上限时阻止下一笔订单。它是软性的且存于内存——重启后清零,仅覆盖本会话,且阻止的是下一个请求,而非拆分单个请求。在仍低于上限时下的订单会被允许,即使它使总额超出上限。它是叠加在你账户服务器端限制(余额、每日配额、频率限制)之上的额外一层。

把验证带入你的 AI 工作流

克隆服务器、填入你的 API 密钥,直接从助手订购短信或邮箱验证码。