Skip to main content
Glama
Pibot-Dev

sms-web2sms-mcp-server

by Pibot-Dev

sms-web2sms-mcp-server

MCP (Model Context Protocol) server for sending SMS via web2sms.ro Romanian SMS gateway.

Features

  • send_sms — Send SMS messages to Romanian phone numbers

  • check_status — Check delivery status of sent messages

  • check_balance — Check prepaid credit balance

  • Per-request credential overrides (or use environment defaults)

  • SHA-512 HMAC authentication

  • Full error code mapping with retry hints

Related MCP server: LigueLead MCP Server

Quick Start

With Claude Desktop / MCP Client

Add to your MCP client configuration:

{
  "mcpServers": {
    "web2sms": {
      "command": "node",
      "args": ["/path/to/sms-web2sms-mcp-server/dist/index.js"],
      "env": {
        "WEB2SMS_API_KEY": "your-api-key",
        "WEB2SMS_SECRET": "your-secret"
      }
    }
  }
}

Manual

git clone https://github.com/Pibot-Dev/sms-web2sms-mcp-server.git
cd sms-web2sms-mcp-server
npm install
npm run build

Docker

docker build -t sms-web2sms-mcp .
docker run -e WEB2SMS_API_KEY=xxx -e WEB2SMS_SECRET=yyy sms-web2sms-mcp

Configuration

Environment Variable

Required

Description

WEB2SMS_API_KEY

Yes*

API key from web2sms.ro dashboard

WEB2SMS_SECRET

Yes*

API secret from web2sms.ro dashboard

WEB2SMS_SENDER

No

Default sender ID

PORT

No

Server port (default: 3000)

* Can be provided per-request via api_key/api_secret parameters instead.

Tools

send_sms

Send an SMS message.

Parameter

Type

Required

Description

phone

string

Yes

Recipient number (07XXXXXXXX or +407XXXXXXXX)

message

string

Yes

SMS body

sender

string

No

Custom sender ID

api_key

string

No

Override API key

api_secret

string

No

Override API secret

check_status

Check delivery status of a sent message.

Parameter

Type

Required

Description

message_id

string

Yes

Message ID from send_sms

api_key

string

No

Override API key

api_secret

string

No

Override API secret

Status values: pending, sent, delivered, failed, unknown

check_balance

Check prepaid credit balance.

Parameter

Type

Required

Description

api_key

string

No

Override API key

api_secret

string

No

Override API secret

Provider

This server integrates with the web2sms.ro REST API:

  • Send: POST https://www.web2sms.ro/prepaid/message

  • Balance: BALANCE https://www.web2sms.ro/prepaid/message

  • Status: SOAP via https://www.web2sms.ro/api

Disclaimer

This project is not affiliated with web2sms.ro. SMS costs are billed to your prepaid account. Always obtain explicit user permission before sending messages. Do not use for spam or bulk messaging. Comply with Romanian telecom regulations (ANCOM) and GDPR.

License

MIT

Available Tools

3 tools
check_balanceA

Check prepaid SMS credit balance on web2sms.ro

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOverride web2sms.ro API key (optional)
api_secretNoOverride web2sms.ro API secret (optional)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only operation ('check') but does not state return format, potential side effects, or authentication requirements. Minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action, no wasted words. Every element contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but with no output schema, the description does not explain what the tool returns (e.g., numeric balance, success/failure). It also lacks any mention of prerequisites or default credentials. Enough for a basic grasp but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters (api_key, api_secret) have clear descriptions as optional overrides. The description adds nothing beyond this, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'check' with a clear resource 'prepaid SMS credit balance on web2sms.ro', which distinguishes it from siblings like send_sms and check_status. It immediately clarifies what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool when you need to check the SMS credit balance. However, it does not explicitly mention when not to use it or provide alternatives, so it falls short of a 5 but is more than just implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_statusB

Check SMS delivery status via web2sms.ro SOAP API

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOverride web2sms.ro API key (optional)
api_secretNoOverride web2sms.ro API secret (optional)
message_idYesMessage ID returned by send_sms

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It merely says 'check status,' which implies a read operation, but it does not state safety, authentication requirements, or response format. The optional API key/secret overrides are not addressed in the description, leaving gaps for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no redundant wording. It efficiently conveys the core function while remaining appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should clarify what the tool returns, but it does not. It also omits necessary context such as requiring a prior send_sms call and potential error conditions, making the tool under-specified for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides descriptions for all three parameters, achieving 100% coverage. Since the description itself adds no extra parameter semantics, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Check SMS delivery status') and the target resource ('via web2sms.ro SOAP API'). This distinguishes it from sibling tools send_sms and check_balance, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or mention of alternatives. Usage is implied (e.g., after sending an SMS), but no exclusions or comparisons are provided, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_smsB

Send an SMS message via web2sms.ro Romanian SMS gateway

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesRecipient phone number (Romanian format: 07XXXXXXXX or +407XXXXXXXX)
senderNoCustom sender ID (optional, uses default from config if not provided)
api_keyNoOverride web2sms.ro API key (optional, uses WEB2SMS_API_KEY env var if not provided)
messageYesSMS message body
api_secretNoOverride web2sms.ro API secret (optional, uses WEB2SMS_SECRET env var if not provided)
force_gsm7NoTransliterate message to GSM-7 charset before sending (strips diacritics and non-GSM characters). Default: false

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'send an SMS message' without mentioning potential side effects such as carrier costs, required authorization, delivery status, or failure modes. The mutating nature is implied but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that states the purpose without any unnecessary words. It is appropriately front-loaded and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 6 parameters and no output schema, the description provides no information about return values, error handling, or operational context. It does not explain what happens after sending, such as response codes or delivery confirmation, leaving a significant gap for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 6 parameters, so the schema already documents each parameter's meaning. The description adds no additional parameter semantics, and per the rubric, the baseline for high coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Send an SMS message via web2sms.ro Romanian SMS gateway', which specifies the action and resource. This distinguishes it from sibling tools check_status and check_balance, which are obviously different in function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description is purely definitional and does not mention check_status or check_balance, nor does it provide prerequisites, exclusions, or context for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct operation: sending, status checking, and balance checking. There is no overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: send_sms, check_status, check_balance. This is predictable and easy to understand.

Tool Count5/5

With 3 tools, the server is well-scoped for its stated purpose of SMS management. Each tool is essential and the count fits within the ideal 3-15 range.

Completeness4/5

The core lifecycle of sending an SMS and tracking it is covered: send, check status, and check balance. A minor gap is lack of additional management features like message history, but these three operations are sufficient for the primary use case.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Integrates with the Promotexter SMS API to enable sending single SMS messages and performing detailed account balance inquiries. It provides a secure way for models to manage SMS communications and track transaction costs and credits.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates the LigueLead API to enable sending SMS, Flash SMS, and voice campaigns to Brazilian phone numbers. It provides tools for managing audio uploads and triggering bulk communication workflows through either stdio or HTTP transports.
    27
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    MCP server for sending SMS messages via SmsManager.cz HTTP API, supporting high, economy, and low delivery gateways.
    1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pibot-Dev/sms-web2sms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server