BulkSMS MCP by usefulapi
io.usefulapi/bulksms · v1.0.0
Read BulkSMS messages, replies, profile and webhooks; send SMS to up to 10 numbers.
MCPremoteno credentialsMessaging
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 8 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 88/100
What it does: 8 tools · 6 read, 2 write (incl. delete/pay) · Messaging
Test call bulksms_get_profile: needs a key: HTTP 401 (920 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://bulksms.usefulapi.io/mcpTools
8 tools listed at last check
bulksms_get_profileShow the BulkSMS account: username, credit balance, credit limit, whether credit transfer is allowed, the daily message quota (size and remaining today) and the sender ids this account may use. Company and billing details are left out. BulkSMS REST: GET /profile.bulksms_list_messagesList sent (SENT) and received (RECEIVED) SMS messages, newest first by default. BulkSMS limits the window to the last 7 days unless submission_date_from is given. To page newest-first, pass before_id = the smallest id of the previous page; with sort_order ASCENDING pass after_id = the largest id ofbulksms_get_messageGet one sent or received message by its id: body, recipient, delivery status, number of parts and credit cost. BulkSMS REST: GET /messages/{id}.bulksms_list_repliesList the received (RECEIVED) replies linked to a sent message id. Only messages sent with a REPLIABLE sender have linked replies. An empty list means none or an unknown id. BulkSMS REST: GET /messages/{id}/relatedReceivedMessages.bulksms_list_blocked_numbersList phone numbers the account may not send to (added via the API, by a recipient replying STOP, or by BulkSMS). To page, pass min_id = the largest id of the previous page + 1. BulkSMS REST: GET /blocked-numbers.bulksms_list_webhooksList the account's webhooks (name, trigger SENT/RECEIVED, active flag, invoke option). Only the host of each webhook URL is shown: the path and query can hold a secret. Read-only: webhooks are not changed by this server. BulkSMS REST: GET /webhooks.bulksms_send_messageWRITE: SENDS REAL SMS to real people and SPENDS CREDITS from the user's BulkSMS account; it cannot be undone or recalled. One message text to 1 to 10 phone numbers in international format (e.g. +447700900000). Cost = credits per message part x number of parts x number of recipients (about 1 credit pbulksms_block_numberWRITE: adds ONE phone number to the account's blocked list, so that no further messages are sent to it (a send to a blocked number fails with FAILED.BLOCKED and still costs credits). This API has no way to remove a block again: do it only when the user asks for it. BulkSMS REST: POST /blocked-number
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.usefulapi/bulksms)