sms-web2sms-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sms-web2sms-mcp-serverSend 'Hello' to 0722123456"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildDocker
docker build -t sms-web2sms-mcp .
docker run -e WEB2SMS_API_KEY=xxx -e WEB2SMS_SECRET=yyy sms-web2sms-mcpConfiguration
Environment Variable | Required | Description |
| Yes* | API key from web2sms.ro dashboard |
| Yes* | API secret from web2sms.ro dashboard |
| No | Default sender ID |
| 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 |
| string | Yes | Recipient number (07XXXXXXXX or +407XXXXXXXX) |
| string | Yes | SMS body |
| string | No | Custom sender ID |
| string | No | Override API key |
| string | No | Override API secret |
check_status
Check delivery status of a sent message.
Parameter | Type | Required | Description |
| string | Yes | Message ID from send_sms |
| string | No | Override API key |
| string | No | Override API secret |
Status values: pending, sent, delivered, failed, unknown
check_balance
Check prepaid credit balance.
Parameter | Type | Required | Description |
| string | No | Override API key |
| string | No | Override API secret |
Provider
This server integrates with the web2sms.ro REST API:
Send:
POST https://www.web2sms.ro/prepaid/messageBalance:
BALANCE https://www.web2sms.ro/prepaid/messageStatus: 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 toolscheck_balanceA
Check prepaid SMS credit balance on web2sms.ro
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Override web2sms.ro API key (optional) | |
| api_secret | No | Override web2sms.ro API secret (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Override web2sms.ro API key (optional) | |
| api_secret | No | Override web2sms.ro API secret (optional) | |
| message_id | Yes | Message ID returned by send_sms |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Recipient phone number (Romanian format: 07XXXXXXXX or +407XXXXXXXX) | |
| sender | No | Custom sender ID (optional, uses default from config if not provided) | |
| api_key | No | Override web2sms.ro API key (optional, uses WEB2SMS_API_KEY env var if not provided) | |
| message | Yes | SMS message body | |
| api_secret | No | Override web2sms.ro API secret (optional, uses WEB2SMS_SECRET env var if not provided) | |
| force_gsm7 | No | Transliterate message to GSM-7 charset before sending (strips diacritics and non-GSM characters). Default: false |
TDQS
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.
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.
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.
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.
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.
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
Each tool targets a distinct operation: sending, status checking, and balance checking. There is no overlap in purpose, making selection unambiguous.
All tool names follow a consistent verb_noun pattern: send_sms, check_status, check_balance. This is predictable and easy to understand.
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.
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
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
Send SMS, manage contacts and groups, and read delivery reports. OAuth 2.1 SureSMS login.
Send and schedule SMS and WhatsApp messages, manage contacts and templates, and track delivery.
Send SMS/MMS, manage contacts, and read campaigns, messages and media on SimpleTexting.
Twilio MCP Pack — send SMS, list messages, make calls via Twilio REST API.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates 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.2MIT
- AlicenseNot gradedqualityCmaintenanceIntegrates 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.271MIT
- AlicenseAqualityAmaintenanceEnables sending SMS, querying delivery reports, and managing senders and blacklists through the iletiMerkezi SMS API.11342MIT
- FlicenseAqualityDmaintenanceMCP server for sending SMS messages via SmsManager.cz HTTP API, supporting high, economy, and low delivery gateways.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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