Messente MCP by usefulapi
Read Messente balance, prices, delivery status and statistics; send SMS to up to 10 numbers.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"messente": {
"url": "https://messente.usefulapi.io/mcp"
}
}
}Remote endpoints
https://messente.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢messente_get_balance
Get the Messente account's remaining SMS credit balance (in EUR). Messente legacy API: GET /get_balance (api2.messente.com).
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢messente_get_prices(country)
Get this account's price per SMS part for one country, per mobile network (use it to estimate what messente_send_sms will cost). Messente legacy API: GET /prices.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, e.g. EE or GB."
}
},
"required": [
"country"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢messente_get_delivery_status(omnimessage_id)
Get the delivery report of a sent message by its omnimessage id (returned by messente_send_sms): per-message status (DELIVRD, UNDELIV, FAILED, ...), error and the price charged. Messente asks not to poll this for every message at scale. Messente: GET /omnimessage/{omnimessage_id}/status.
Input Schema
{
"type": "object",
"properties": {
"omnimessage_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The omnimessage_id returned when the message was sent."
}
},
"required": [
"omnimessage_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢messente_list_blacklist(limit, offset)
List the phone numbers on the account's blacklist (numbers Messente will not send to). Returns the total count and at most `limit` numbers. Messente: GET /phonebook/blacklist.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Maximum numbers to return (default 500).",
"type": "integer",
"minimum": 1,
"maximum": 2000
},
"offset": {
"description": "Skip this many numbers (to page through a long list).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢messente_check_blacklist(phone)
Check whether one phone number is on the account's blacklist. Messente: GET /phonebook/blacklist/{phone} (found = blacklisted, 404 = not).
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$",
"description": "Phone number in E.164 format, e.g. +37251000000."
}
},
"required": [
"phone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢messente_get_statistics(start_date, end_date, message_types)
Get total messages and total price per country for a date range, optionally for some message types. Messente: POST /statistics/reports (a read-only report).
Input Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date, YYYY-MM-DD."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date, YYYY-MM-DD."
},
"message_types": {
"description": "Limit the report to these message types.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"sms",
"viber",
"whatsapp",
"rcs",
"hlr"
]
}
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡messente_lookup_numbers(numbers)
Number lookup (HLR): is each number valid, ported, roaming, and which network it is on. COSTS CREDITS: Messente charges per number looked up (EUR 0.002 per number in its docs) and the Number Lookup service must be enabled on the account (a fixed monthly fee applies per Messente's docs). Up to 10 numbers per call. Messente: POST /hlr/sync.
Input Schema
{
"type": "object",
"properties": {
"numbers": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"description": "Phone numbers in E.164 format (1-10)."
}
},
"required": [
"numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡messente_add_to_blacklist(phone_number)
WRITE: add one phone number to the account's blacklist, so Messente will no longer send messages to it. Adding a number already listed is harmless. Messente: POST /phonebook/blacklist.
Input Schema
{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$",
"description": "Phone number to blacklist, E.164 format, e.g. +37251000000."
}
},
"required": [
"phone_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴messente_send_sms(to, text, sender)
WRITE: SENDS REAL SMS TEXT MESSAGES to real people and SPENDS the account's Messente credit (each recipient is charged per SMS part, longer texts use several parts; use messente_get_prices to estimate). SMS only, at most 10 recipients per call, one message per recipient, never to a list. Send only to people who asked to receive it (Messente forbids unsolicited messages). Not undoable. Messente: POST /omnimessage with channel sms, once per recipient.
Input Schema
{
"type": "object",
"properties": {
"to": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"description": "Recipient phone numbers in E.164 format (1-10)."
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 1600,
"description": "The message text."
},
"sender": {
"description": "Sender name (alphanumeric, max 11 chars) or number; must be a sender verified on the account. Omit to use the account default.",
"type": "string",
"minLength": 1,
"maxLength": 20,
"pattern": "^[A-Za-z0-9 .+_-]+$"
}
},
"required": [
"to",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence