Skip to main content
Glama
Pibot-Dev

sms-web2sms-mcp-server

by Pibot-Dev
README.md
# sms-web2sms-mcp-server

MCP (Model Context Protocol) server for sending SMS via [web2sms.ro](https://www.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

## Quick Start

### With Claude Desktop / MCP Client

Add to your MCP client configuration:

```json
{
  "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

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

### Docker

```bash
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](https://www.web2sms.ro/documentatie-api-sms/):

- **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](https://www.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

TDQS

A3.8/5.0

Scored across 3 tools

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
ResponsivenessNo issues