Voodoo SMS MCP by usefulapi

Read Voodoo SMS credits, reports, inbox and lists; send one SMS; manage the opt-out blacklist.

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
81%
命名の品質
75%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(3)

  • LOWTool 'voodoosms_list_delivery_reports' name length outside 3-30 rangevoodoosms_list_delivery_reports 内
  • LOWTool 'voodoosms_list_scheduled_messages' name length outside 3-30 rangevoodoosms_list_scheduled_messages 内
  • LOWTool 'voodoosms_cancel_scheduled_message' name length outside 3-30 rangevoodoosms_cancel_scheduled_message 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,232トークン数(ツール定義)
~1.9 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.53%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "voodoo-sms": {
      "url": "https://voodoo-sms.usefulapi.io/mcp"
    }
  }
}

リモートエンドポイント

https://voodoo-sms.usefulapi.io/mcpstreamable-http

できること

ツール一覧

ツール(13)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢voodoosms_get_credits

Get the SMS credit balance of the account. One credit pays for one 160-character SMS part (153 characters per part in a long message). Voodoo SMS REST: GET /credits.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_delivery_reports(message_id, sender_id, to, sent_at, delivered_at, ...)

List delivery reports of sent messages (message_id, sender_id, to, sent_at, delivered_at, price, status), optionally filtered. Use it to check whether a message was delivered. Dates accept a UNIX timestamp, ISO 8601 (2026-10-01T09:00:00+00:00) or plain English ('yesterday', '2 weeks'). Voodoo SMS REST: GET /report.

入力スキーマ

{
  "type": "object",
  "properties": {
    "message_id": {
      "description": "The messages[].id returned when the SMS was sent.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sender_id": {
      "description": "The sender id the messages were sent with.",
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "to": {
      "description": "Only messages sent to this number (international format, e.g. 447700900123).",
      "type": "string"
    },
    "sent_at": {
      "description": "Only messages sent at this date/time.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "delivered_at": {
      "description": "Only messages delivered at this date/time.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "external_reference": {
      "description": "The external_reference used when sending.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "description": "Only messages with this status.",
      "type": "string",
      "enum": [
        "Delivered",
        "Sent - Awaiting Delivery",
        "Undelivered",
        "Expired",
        "Rejected"
      ]
    },
    "start": {
      "description": "Start of the date range to filter on.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "end": {
      "description": "End of the date range to filter on.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Number of reports to return (default 25, max 1000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_scheduled_messages

List SMS that were scheduled through the send API and are still waiting to go out (messages scheduled in the portal's Web SMS are not shown). Voodoo SMS REST: GET /schedule.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_inbox(keyword, start, end, from, to, ...)

List SMS received on the account's Virtual Mobile Numbers (replies and keyword messages). Needs a purchased number; an empty inbox returns an empty result. Dates accept a UNIX timestamp, ISO 8601 or plain English. Voodoo SMS REST: GET /inbox.

入力スキーマ

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "The keyword (first word of the message).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "start": {
      "description": "Oldest date of the messages to return.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "end": {
      "description": "Newest date of the messages to return.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "from": {
      "description": "The number the message came from (international format).",
      "type": "string"
    },
    "to": {
      "description": "The number the message was sent to: your virtual number (international format).",
      "type": "string"
    },
    "reference": {
      "description": "The external_reference of the original outgoing message.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort": {
      "description": "Sort by id, ASC or DESC (default DESC).",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "skip": {
      "description": "Where to start the returned results (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Number of messages to return (default 25, max 1000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_numbers

List the Virtual Mobile Numbers (VMNs) the account has purchased, used to receive SMS. Returns an empty result if there are none. Voodoo SMS REST: GET /numbers.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_contact_lists(skip, limit)

List the account's contact lists (id, name, status, size, created/updated times) without their contacts. Returns an empty result if there are none. Voodoo SMS REST: GET /contacts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "skip": {
      "description": "Where to start the returned results (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Number of lists to return (default 100, max 5000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 5000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_get_contact_list(contact_list_id, skip, limit)

Get one contact list including its contacts (id, number, status, dynamic_data, created_at). Voodoo SMS REST: GET /contacts?contact_list_id=.

入力スキーマ

{
  "type": "object",
  "properties": {
    "contact_list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact list id (id from list_contact_lists)."
    },
    "skip": {
      "description": "Where to start the returned results (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Number of contacts to return (default 100, max 5000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 5000
    }
  },
  "required": [
    "contact_list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢voodoosms_list_blacklist(number, start, end, sort, skip, ...)

List the numbers on the account's opt-out blacklist (no SMS is ever sent to them), or look up one number (`{empty: true}` means it is not on the list). Returns an empty result when the blacklist is empty. Voodoo SMS REST: GET /blacklist.

入力スキーマ

{
  "type": "object",
  "properties": {
    "number": {
      "description": "Look up a single number (international format, e.g. 447700900123).",
      "type": "string"
    },
    "start": {
      "description": "Oldest date a number was added.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "end": {
      "description": "Newest date a number was added.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "sort": {
      "description": "Sort by id, ASC or DESC (default DESC).",
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "skip": {
      "description": "Where to start the returned results (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Number of entries to return (default 25, max 1000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴voodoosms_send_sms(to, from, msg, country_code, schedule, ...)

WRITE: SENDS A REAL SMS to ONE recipient and USES THE ACCOUNT'S CREDITS (1 credit per message part, charged whether or not it is delivered; it cannot be undone). `sandbox` is required: true validates and prices the message without sending or charging, false sends it for real. Optional `schedule` queues it for later (cancel with cancel_scheduled_message). Do not retry after an error or timeout without checking list_delivery_reports / list_scheduled_messages, or the recipient may get it twice. One recipient per call; there is no bulk or list send. Voodoo SMS REST: POST /sendsms.

入力スキーマ

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "description": "ONE recipient number: international format with the country code and no leading 0 (447700900123), or a national number if country_code is given."
    },
    "from": {
      "type": "string",
      "description": "Sender id shown to the recipient: 4 to 11 letters/digits or a number of up to 15 digits."
    },
    "msg": {
      "type": "string",
      "minLength": 1,
      "maxLength": 918,
      "description": "The message text. 160 characters per part (153 in a long message), 70 (67) if it has emoji or other non-GSM characters; maximum 918 (402 with Unicode)."
    },
    "country_code": {
      "description": "Country calling code of the recipient (e.g. 44), when `to` has no country code.",
      "type": "integer",
      "minimum": 1,
      "maximum": 999
    },
    "schedule": {
      "description": "Send later: a UNIX timestamp, ISO 8601 (2026-12-25T09:00:00+00:00) or plain English ('2 weeks'). Must be in the future.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "timezone": {
      "description": "Timezone for `schedule` (default UTC).",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "external_reference": {
      "description": "Your own reference for this SMS (e.g. an order number); shown in reports.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "sandbox": {
      "type": "boolean",
      "description": "REQUIRED. true = validate and price the message only: nothing is sent and no credits are used. false = really send the SMS and use credits. Use true first unless the user clearly asked to send now."
    }
  },
  "required": [
    "to",
    "from",
    "msg",
    "sandbox"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴voodoosms_cancel_scheduled_message(id)

WRITE: cancels one SMS that was scheduled through the send API, so it will not be sent. A message that has already gone out cannot be cancelled. Whether credits are refunded for a cancelled message is not documented by the vendor. Voodoo SMS REST: DELETE /schedule/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The scheduled message id (id from list_scheduled_messages)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴voodoosms_add_to_blacklist(number)

WRITE: adds one number to the account's opt-out blacklist; from then on no SMS is sent to it (sends to it fail with error 20). Use it for a recipient who asked to stop. This tool cannot remove a number again. Voodoo SMS REST: POST /blacklist.

入力スキーマ

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "description": "Phone number in international format with the country code and no leading 0, e.g. 447700900123."
    }
  },
  "required": [
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴voodoosms_create_contact_list(name, description, country, contacts)

WRITE: creates a new contact list with up to 500 contacts (the list name must be unique, at most 32 characters). It does not send anything. Voodoo SMS REST: POST /contacts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32,
      "description": "Unique list name, at most 32 characters."
    },
    "description": {
      "description": "Optional description.",
      "type": "string",
      "maxLength": 255
    },
    "country": {
      "description": "Default country calling code for the list (default 44).",
      "type": "integer",
      "minimum": 1,
      "maximum": 999
    },
    "contacts": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Phone number in international format with the country code and no leading 0, e.g. 447700900123."
          },
          "dynamic_data": {
            "description": "Custom fields for this contact as {name: value}, at most 7 (usable in messages as {name}).",
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 255
            }
          }
        },
        "required": [
          "number"
        ]
      },
      "description": "Contacts to put in the list: [{number, dynamic_data?}]."
    }
  },
  "required": [
    "name",
    "contacts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴voodoosms_update_contact_list(contact_list_id, name, contacts)

WRITE: renames a contact list and/or adds up to 500 contacts to it (existing contacts are not removed). Adding dynamic data needs a list created as dynamic. It does not send anything. Voodoo SMS REST: PUT /contacts/{contact_list_id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "contact_list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact list id (id from list_contact_lists)."
    },
    "name": {
      "description": "New list name, at most 32 characters.",
      "type": "string",
      "minLength": 1,
      "maxLength": 32
    },
    "contacts": {
      "description": "Contacts to add: [{number, dynamic_data?}].",
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Phone number in international format with the country code and no leading 0, e.g. 447700900123."
          },
          "dynamic_data": {
            "description": "Custom fields for this contact as {name: value}, at most 7 (usable in messages as {name}).",
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 255
            }
          }
        },
        "required": [
          "number"
        ]
      }
    }
  },
  "required": [
    "contact_list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 13 件