# sms-marketing

SMS marketing MCP server for AI agents. Send SMS, manage contacts, templates, and campaigns programmatically. Sign up at oblipali.app, generate an API key, buy prepaid SMS credits, and connect your a…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add oblipali/sms-marketing

# Browse available tools
npx -y @smithery/cli@latest tool list oblipali/sms-marketing

# Get full schema for a tool
npx -y @smithery/cli@latest tool get oblipali/sms-marketing list_templates

# Call a tool
npx -y @smithery/cli@latest tool call oblipali/sms-marketing list_templates '{}'
```

## Direct MCP Connection

Endpoint: `https://sms-marketing--oblipali.run.tools`

**Optional config:**
- `api_key` (header) — Your Oblipali API key (obli_xxx). Get one at https://oblipali.app/api-keys

## Tools (22)

- `list_templates` — List all SMS templates in your workspace. Returns an array of template objects with id, name, body, is_active, created_…
- `create_template` — Create a new reusable SMS template. Supports variables that are replaced at send time: {{first_name}}, {{last_name}}, {…
- `update_template` — Update an existing SMS template by its UUID. Only provided fields are modified; others remain unchanged.
- `delete_template` — Permanently delete an SMS template by its UUID. This action cannot be undone. Campaigns referencing this template will …
- `list_contacts` — List contacts in your workspace with pagination and optional filters. Returns contacts with id, phone, first_name, last…
- `create_contact` — Add a new contact to your workspace. The phone number is automatically normalized to E.164 international format. French…
- `update_contact` — Update an existing contact by UUID. Only provided fields are modified. Use this to change names, email, tags, or metada…
- `delete_contact` — Permanently delete a contact by UUID. This removes the contact and all associated data. Cannot be undone.
- `import_contacts` — Bulk import up to 1,000 contacts at once. Uses upsert on phone number: existing contacts are updated, new ones are crea…
- `list_campaigns` — List all SMS campaigns in your workspace. Optionally filter by status. Returns campaigns with id, name, message, status…
- `create_campaign` — Create a new SMS campaign in draft status. Provide either a direct message or a template_id. Use send_campaign to actua…
- `update_campaign` — Update a draft or scheduled campaign. Only draft and scheduled campaigns can be modified. Sent or cancelled campaigns c…
- `delete_campaign` — Permanently delete a campaign. Only campaigns in 'draft' or 'cancelled' status can be deleted. Sent campaigns are prese…
- `send_campaign` — Send a draft campaign immediately to all matching contacts. Each SMS sent costs 1 credit per SMS part. This action is i…
- `send_sms` — Send a single SMS message to a phone number immediately. Costs 1 credit per SMS part (160 chars = 1 part, longer messag…
- `list_logs` — List SMS sending logs with pagination and optional filters. Returns log entries with phone, message, status (pending/se…
- `list_optouts` — List all phone numbers that have opted out of receiving SMS. These contacts will be automatically excluded from campaig…
- `create_optout` — Add a phone number to the opt-out list. This contact will no longer receive any SMS. The corresponding contact record i…
- `delete_optout` — Remove a phone number from the opt-out list, allowing them to receive SMS again. The corresponding contact is also mark…
- `get_workspace` — Get your workspace information including name, plan status, SMS credit balance, billing cycle start date, and timezone.…
- `get_stats` — Get aggregated SMS sending statistics for a date range. Returns counts by status: pending, sent, delivered, failed, and…
- `count_sms_parts` — Calculate how many SMS parts a message will use and the character count. Does NOT send anything — this is a free, read-…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get oblipali/sms-marketing <tool-name>
```
