Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

EnvoiSMS

REMOTE · API.ENVOISMS.MA

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

Available components

0 this week 81 Trust /100

Last scanned (11 hours ago)

Scores higher than 86% of remote servers

Reachable. Last reached 23 Oct 2026.

Category Communication

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security71
Transport & Reachability100
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 1434 tokens (~68/item across 21 items; 18 tools + 3 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_sms" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Sept 26 0
    • Tool “list_sender_ids” rewrote its description, which is the text the model reads security
    • “list_sender_ids” added an optional parameter “status” cosmetic
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 22 Sept 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 75 → 66 ▲ functional
    • The server now declares the “prompts” capability functional
    • The server now declares the “resources” capability functional
    • First check of Schema quality: 100 functional
    • New prompt “moroccan-sms-campaign” functional
    • New prompt “otp-verification-flow” functional
    • New prompt “whatsapp-template-setup” functional
    • New resource “EnvoiSMS API Status & Operational Health” functional
    • New resource “EnvoiSMS Moroccan Pricing Catalog” functional
    • New resource “Moroccan Custom Sender ID Regulations” functional
    • New tool “list_sender_ids” functional
    • New tool “lookup_number” functional
  • 12 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 1036 → 1209 ▼ functional
    • New tool “send_whatsapp_template” functional
  • 11 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
  • 10 Sept 26 0
    • Stability: 0.97 → pass security
  • 5 Sept 26 0
    • Authorization: unverified → fail ▼ security
    • Stability: fail → 0.83 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Probed https://api.envoisms.ma/v1/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=envoisms.ma CN=WE1,O=Google Trust Services,C=US 24 Sept 2026 23 Dec 2026 ECDSA 256 ECDSA-SHA256 db4ec01dfabfd3a70e9eb39acbf51ea6
SANs: envoisms.ma, api.envoisms.ma, *.api.envoisms.ma
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.envoisms.ma. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ma. present 3254 8 Verified
envoisms.ma. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.envoisms.ma/v1/mcp Verified 200
http (plaintext) http://api.envoisms.ma/v1/mcp Served over HTTP 200
MCP tools · 18 exposed · ~1,249 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
create_topup ~162

Create a balance top-up checkout link (Stripe card or crypto USDC) for the authenticated account.

NameTypeReqDescription
amount_madnumber–Custom recharge amount in MAD (minimum 300 MAD). Optional if pack_id is provided.
currencystring–Payment presentation currency for card checkout ('mad' or 'eur'). Default 'mad'.
pack_idstring–SMS top-up pack ID (e.g. 'sms-300' for 300 MAD, 'sms-1000' for 1000 MAD, 'sms-5000' for 5000 MAD). Optional if amount_mad is provided.
payment_methodstring–Payment method ('stripe' for card or 'crypto' for USDC). Default 'stripe'.

No output schema declared.

No examples provided.

get_analytics ~45

Get SMS & WhatsApp message delivery metrics, success rates, and volume statistics.

NameTypeReqDescription
daysnumber–Lookback window in days (1-365, default 30)

No output schema declared.

No examples provided.

get_balance ~19

Check remaining SMS credit balance in MAD and account status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_message_status ~41

Check the real-time delivery status, segments, and cost of a sent message by ID.

NameTypeReqDescription
message_idstringyesMessage ID returned by send_sms

No output schema declared.

No examples provided.

get_pricing ~89

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.

NameTypeReqDescription
tostring–Destination phone number in E.164 format, e.g. +2348012345678. Optional.

No output schema declared.

No examples provided.

list_campaigns ~38

List SMS marketing campaigns created on the account.

NameTypeReqDescription
limitnumber–Number of campaigns to retrieve (1-50, default 20)

No output schema declared.

No examples provided.

list_contacts ~72

List saved contacts or search contacts by name, phone, or email.

NameTypeReqDescription
limitnumber–Number of contacts to retrieve (1-100, default 20)
list_idstring–Filter contacts by contact list ID
qstring–Search query matching phone, name, or email

No output schema declared.

No examples provided.

list_messages ~62

List recent outbound messages for the authenticated account with optional filters.

NameTypeReqDescription
channelstring–Filter by communication channel
limitnumber–Number of messages to retrieve (1-50, default 20)
statusstring–Filter by delivery status

No output schema declared.

No examples provided.

list_sender_ids ~67

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.

NameTypeReqDescription
statusstring–Filter sender IDs by status (approved, pending, rejected, all). Defaults to all.

No output schema declared.

No examples provided.

lookup_number ~69

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.

NameTypeReqDescription
tostringyesPhone number to lookup in national (06...) or E.164 (+212...) format.

No output schema declared.

No examples provided.

ops_monitoring ~35

Admin only. Current operational state: open ops alerts by severity, upstream gateway balance, and known issues that need attention right now.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ops_pulse ~63

Admin only. Business health snapshot: margin, cash collected, customer float (liability), solvency ratio, active accounts, and money stuck in the refund-review queue.

NameTypeReqDescription
daysnumber–Lookback window in days (1-365). Default 30.

No output schema declared.

No examples provided.

ops_route_quality ~69

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.

NameTypeReqDescription
daysnumber–Lookback window in days (1-365). Default 30.

No output schema declared.

No examples provided.

send_bulk_sms ~77

Send an SMS message to multiple recipients in E.164 format at once (up to 100 recipients).

NameTypeReqDescription
messagestringyesText content of the SMS
recipientsarrayyesArray of recipient phone numbers in E.164 format (+212600000000)
sender_idstring–Optional approved custom Sender ID

No output schema declared.

No examples provided.

send_otp ~52

Send a 6-digit OTP verification code via SMS or WhatsApp.

NameTypeReqDescription
brandstring–Brand name shown in the OTP message
tostringyesRecipient phone number in E.164 format

No output schema declared.

No examples provided.

send_sms ~73

Send a single SMS message to a phone number in E.164 format (+212600000000).

NameTypeReqDescription
messagestringyesText content of the SMS
sender_idstring–Optional approved custom Sender ID
tostringyesRecipient phone number in E.164 format (+212600000000)

No output schema declared.

No examples provided.

send_whatsapp_template ~168

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.

NameTypeReqDescription
languagestring–Template language code (e.g. fr, en_US, ar). Defaults to the template's own language.
phone_number_idstring–Optional: which connected WhatsApp number sends (defaults to the account's default number)
template_namestringyesName of an approved WhatsApp template on the account
tostringyesRecipient phone number in E.164 format (+212600000000)
variablesarray–Values for the template body placeholders {{1}}, {{2}}, … in order

No output schema declared.

No examples provided.

verify_otp ~48

Verify an OTP passcode against a previously sent code.

NameTypeReqDescription
codestringyes6-digit OTP code to verify
session_idstringyesSession ID from send_otp

No output schema declared.

No examples provided.

Install

How do I install the EnvoiSMS MCP server?

EnvoiSMS is a hosted endpoint at https://api.envoisms.ma/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.envoisms.ma

# add to Claude Code
claude mcp add --transport http ma-envoisms-envoisms 'https://api.envoisms.ma/v1/mcp'
Common questions

What is the EnvoiSMS MCP server?

EnvoiSMS is an MCP server listed in the public MCP registry as ma.envoisms/envoisms. Send SMS/WhatsApp and verify OTP codes in Morocco (+212) and worldwide. Direct carrier routing. This page covers its hosted endpoint (https://api.envoisms.ma/v1/mcp).

Is the EnvoiSMS MCP server safe to use?

EnvoiSMS scores 81 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the EnvoiSMS MCP server expose?

EnvoiSMS exposes 18 tools: send_sms, send_bulk_sms, send_whatsapp_template, get_message_status, list_messages, and 13 more. Their descriptions and schemas cost roughly 1,249 tokens of context every time the server is loaded.

Does the EnvoiSMS MCP server require authentication?

Yes. EnvoiSMS asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the EnvoiSMS MCP server still maintained?

EnvoiSMS is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.