D7 Networks MCP by usefulapi
Read D7 Networks balance, SMS pricing and delivery status; look up numbers; send one SMS.
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": {
"d7-networks": {
"url": "https://d7-networks.usefulapi.io/mcp"
}
}
}Remote endpoints
https://d7-networks.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢d7_get_balance
Read the D7 account's remaining credit balance (free; no credit is spent). D7 REST: GET /messages/v1/balance.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢d7_get_sms_pricing(country_iso)
Read the account's price per SMS part, for one country or for all countries (free; no credit is spent). Use it to estimate the cost before d7_send_sms. D7 REST: GET /messages/v1/sms/pricing.
Input Schema
{
"type": "object",
"properties": {
"country_iso": {
"description": "Two-letter ISO country code, for example AE. Omit for all countries.",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢d7_get_message_status(request_id)
Read the delivery status of an SMS request: per recipient the status (delivered, sent, scheduled, un_delivered, not_reachable, spam_content, insufficient_credit), message parts and cost (free). D7 REST: GET /report/v1/message-log/{request_id}.
Input Schema
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"minLength": 8,
"description": "The request_id that d7_send_sms returned."
}
},
"required": [
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢d7_get_lookup_report(request_id)
Read the stored result of an earlier number lookup by its request_id (free; no credit is spent). D7 REST: GET /hlr/v1/report/{request_id}.
Input Schema
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"minLength": 8,
"description": "The request_id that d7_lookup_number returned."
}
},
"required": [
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴d7_lookup_number(recipient)
WRITE (spends credits): look up ONE phone number's carrier data (country, network, MCC/MNC, ported, reachable, mobile or fixed). Each lookup is billed to the D7 account's credit balance (the cost is returned by d7_get_lookup_report as number_lookup_cost) and the account must have lookup routing enabled. It does not message the number. D7 REST: POST /hlr/v1/lookup.
Input Schema
{
"type": "object",
"properties": {
"recipient": {
"type": "string",
"minLength": 7,
"maxLength": 24,
"description": "The phone number, international format with the country code, for example +971501234567."
}
},
"required": [
"recipient"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴d7_send_sms(originator, recipients, content, data_coding, tag)
WRITE (sends real text messages and spends credits): send ONE text message to 1-10 recipients (never a list or campaign). Each recipient costs the per-country price for every message part (about 160 GSM characters or 70 unicode characters per part; see d7_get_sms_pricing), taken from the D7 credit balance, and a sent SMS cannot be recalled. Free trial accounts may only use D7's demo sender id; other sender ids must be registered with D7. Send only messages the recipients expect, as unsolicited SMS violates D7's terms. Returns a request_id for d7_get_message_status. D7 REST: POST /messages/v1/send.
Input Schema
{
"type": "object",
"properties": {
"originator": {
"type": "string",
"minLength": 1,
"maxLength": 16,
"description": "Sender id shown on the phone: up to 11 letters/digits (alphanumeric) or a registered number. Must be allowed for the account."
},
"recipients": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"minLength": 7,
"maxLength": 24
},
"description": "1 to 10 phone numbers, each in international format with the country code, for example +971501234567."
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 640,
"description": "The message text, at most 640 characters."
},
"data_coding": {
"description": "text = GSM 03.38 characters only, unicode = Arabic/Chinese/emoji etc., auto (default) = D7 decides from the content.",
"type": "string",
"enum": [
"text",
"unicode",
"auto"
]
},
"tag": {
"description": "Your own reference string, stored with the request.",
"type": "string",
"maxLength": 100
}
},
"required": [
"originator",
"recipients",
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence