Skip to content

EnvoiSMS

by envoisms.ma · remote · no sign-in to list tools · v1.0.0 · published by ma.envoisms

Send SMS/WhatsApp and verify OTP codes in Morocco (+212) and worldwide. Direct carrier routing.

Final · 5Changes · 4

18 tools: 5 do something that can't be undone, 4 change things and 9 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http envoisms https://api.envoisms.ma/v1/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

18 tools

Can't be undone 5Claude Code: ask
  • create_topupCreate a balance top-up checkout link (Stripe card or crypto USDC) for the authenticated account.No findings

    Why it is in this group

    • The name "create_topup" says "create": a word for a change.
    • The name "create_topup" also says "topup": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Create a balance top-up checkout link (Stripe card or crypto USDC) for the authenticated account.
  • send_bulk_smsSend an SMS message to multiple recipients in E.164 format at once (up to 100 recipients).No findings

    Why it is in this group

    • The name "send_bulk_sms" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.recipients): what it sends cannot be taken back.
    Description, as the server wrote it
    Send an SMS message to multiple recipients in E.164 format at once (up to 100 recipients).
  • send_otpSend a 6-digit OTP verification code via SMS or WhatsApp.No findings

    Why it is in this group

    • The name "send_otp" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Send a 6-digit OTP verification code via SMS or WhatsApp.
  • send_smsSend a single SMS message to a phone number in E.164 format (+212600000000).No findings

    Why it is in this group

    • The name "send_sms" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Send a single SMS message to a phone number in E.164 format (+212600000000).
  • send_whatsapp_templateSend an approved WhatsApp template message from the account's connected WhatsApp Business number.No findings

    Why it is in this group

    • The name "send_whatsapp_template" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Send an approved WhatsApp template message from the account's connected WhatsApp Business number. Templates may open a conversation at any time (no 24-hour window). Billed like the same send on POST /v1/messages.
Changes things 4Claude Code: ask
  • ops_monitoringAdmin only.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Admin only. Current operational state: open ops alerts by severity, upstream gateway balance, and known issues that need attention right now.
  • ops_pulseAdmin only.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Admin only. Business health snapshot: margin, cash collected, customer float (liability), solvency ratio, active accounts, and money stuck in the refund-review queue.
  • ops_route_qualityAdmin only.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Admin only. Delivery quality per carrier/provider/channel, failure codes, DLR plausibility (whether delivery reports can be trusted), and ported-number routing hints. The data behind any provider-routing decision.
  • verify_otpVerify an OTP passcode against a previously sent code.No findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Verify an OTP passcode against a previously sent code.
Only reads 9Claude Code: allow
  • get_analyticsGet SMS & WhatsApp message delivery metrics, success rates, and volume statistics.No findings

    Why it is in this group

    • The name "get_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get SMS & WhatsApp message delivery metrics, success rates, and volume statistics.
  • get_balanceCheck remaining SMS credit balance in MAD and account status.No findings

    Why it is in this group

    • The name "get_balance" says "get": a word for reading.
    Description, as the server wrote it
    Check remaining SMS credit balance in MAD and account status.
  • get_message_statusCheck the real-time delivery status, segments, and cost of a sent message by ID.No findings

    Why it is in this group

    • The name "get_message_status" says "get": a word for reading.
    Description, as the server wrote it
    Check the real-time delivery status, segments, and cost of a sent message by ID.
  • get_pricingGet EnvoiSMS pricing.No findings

    Why it is in this group

    • The name "get_pricing" says "get": a word for reading.
    Description, as the server wrote it
    Get EnvoiSMS pricing. Pass `to` (a phone number in E.164, e.g. +2348012345678) for that destination's per-SMS rate; omit it for Moroccan rates and credit packs. Public — no authentication required.
  • list_campaignsList SMS marketing campaigns created on the account.No findings

    Why it is in this group

    • The name "list_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    List SMS marketing campaigns created on the account.
  • list_contactsList saved contacts or search contacts by name, phone, or email.No findings

    Why it is in this group

    • The name "list_contacts" says "list": a word for reading.
    Description, as the server wrote it
    List saved contacts or search contacts by name, phone, or email.
  • list_messagesList recent outbound messages for the authenticated account with optional filters.No findings

    Why it is in this group

    • The name "list_messages" says "list": a word for reading.
    Description, as the server wrote it
    List recent outbound messages for the authenticated account with optional filters.
  • list_sender_idsConsultation des noms d'expéditeurs alphanumériques validés par l'ANRT.No findings

    Why it is in this group

    • The name "list_sender_ids" says "list": a word for reading.
    Description, as the server wrote it
    Consultation des noms d'expéditeurs alphanumériques validés par l'ANRT. List approved and pending custom alphanumeric Sender IDs registered on the authenticated account.
  • lookup_numberInspect a phone number: validate format, identify Moroccan operator (IAM / Maroc Telecom, Orange, Inwi) or international country, and view applicable rate.No findings

    Why it is in this group

    • The name "lookup_number" says "lookup": a word for reading.
    Description, as the server wrote it
    Inspect a phone number: validate format, identify Moroccan operator (IAM / Maroc Telecom, Orange, Inwi) or international country, and view applicable rate. Public — no authentication required.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http envoisms https://api.envoisms.ma/v1/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__envoisms__get_message_status",
      "mcp__envoisms__list_messages",
      "mcp__envoisms__get_balance",
      "mcp__envoisms__list_campaigns",
      "mcp__envoisms__list_contacts",
      "mcp__envoisms__get_analytics",
      "mcp__envoisms__lookup_number",
      "mcp__envoisms__list_sender_ids",
      "mcp__envoisms__get_pricing"
    ],
    "ask": [
      "mcp__envoisms__send_sms",
      "mcp__envoisms__send_bulk_sms",
      "mcp__envoisms__send_whatsapp_template",
      "mcp__envoisms__create_topup",
      "mcp__envoisms__send_otp",
      "mcp__envoisms__verify_otp",
      "mcp__envoisms__ops_pulse",
      "mcp__envoisms__ops_route_quality",
      "mcp__envoisms__ops_monitoring"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as envoisms. Review it before you use it.