@sendly/mcp 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +178 -32
  2. package/dist/index.js +1384 -1343
  3. package/package.json +13 -2
package/README.md CHANGED
@@ -1,9 +1,15 @@
1
1
  # @sendly/mcp
2
2
 
3
- SMS for AI agents — send messages, manage conversations, verify phone numbers via [Model Context Protocol](https://modelcontextprotocol.io).
3
+ Full SMS platform for AI agents — 82 tools for messaging, contacts, campaigns, templates, webhooks, OTP verification, conversations, labels, drafts, and more via [Model Context Protocol](https://modelcontextprotocol.io).
4
4
 
5
5
  ## Quick Setup
6
6
 
7
+ ### Claude Code
8
+
9
+ ```bash
10
+ claude mcp add --env SENDLY_API_KEY=sk_test_v1_your_key sendly -- npx -y @sendly/mcp
11
+ ```
12
+
7
13
  ### Claude Desktop
8
14
 
9
15
  Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
@@ -15,16 +21,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
15
21
  "command": "npx",
16
22
  "args": ["-y", "@sendly/mcp"],
17
23
  "env": {
18
- "SENDLY_API_KEY": "sk_test_v1_your_key_here"
24
+ "SENDLY_API_KEY": "sk_test_v1_your_key"
19
25
  }
20
26
  }
21
27
  }
22
28
  }
23
29
  ```
24
30
 
25
- ### Cursor
31
+ ### Cursor / VS Code Copilot / Windsurf
26
32
 
27
- Add to `.cursor/mcp.json` in your project:
33
+ Add to your MCP config (`.cursor/mcp.json`, `.vscode/mcp.json`, or `~/.codeium/windsurf/mcp_config.json`):
28
34
 
29
35
  ```json
30
36
  {
@@ -33,73 +39,213 @@ Add to `.cursor/mcp.json` in your project:
33
39
  "command": "npx",
34
40
  "args": ["-y", "@sendly/mcp"],
35
41
  "env": {
36
- "SENDLY_API_KEY": "sk_test_v1_your_key_here"
42
+ "SENDLY_API_KEY": "sk_test_v1_your_key"
37
43
  }
38
44
  }
39
45
  }
40
46
  }
41
47
  ```
42
48
 
43
- ### VS Code / Windsurf
49
+ ### OpenClaw
44
50
 
45
- Same pattern — set `SENDLY_API_KEY` in the environment and run `npx @sendly/mcp` as the MCP server command.
51
+ ```bash
52
+ openclaw mcp set sendly '{"command":"npx","args":["-y","@sendly/mcp"],"env":{"SENDLY_API_KEY":"sk_test_v1_your_key"}}'
53
+ ```
46
54
 
47
- ## Available Tools
55
+ Then ask your agent: *"Send a test SMS to +15005550000 saying Hello from my agent"*
48
56
 
49
- ### Messaging
57
+ ## All 82 Tools
58
+
59
+ ### Messaging (6)
50
60
 
51
61
  | Tool | Description |
52
62
  |------|-------------|
53
- | `send_sms` | Send an SMS message to a phone number |
54
- | `list_messages` | List sent and received messages with pagination |
55
- | `get_message` | Get details of a specific message |
56
- | `schedule_sms` | Schedule a message for future delivery |
57
- | `cancel_scheduled_message` | Cancel a scheduled message (credits refunded) |
63
+ | `send_sms` | Send an SMS/MMS to a phone number |
64
+ | `list_messages` | List messages with full-text search (`q` param) |
65
+ | `get_message` | Get message details and delivery status |
66
+ | `schedule_sms` | Schedule for future delivery (5 min – 5 days) |
67
+ | `cancel_scheduled_message` | Cancel scheduled message, credits refunded |
68
+ | `list_scheduled_messages` | List pending scheduled messages |
58
69
 
59
- ### Conversations
70
+ ### Batch Messaging (4)
60
71
 
61
72
  | Tool | Description |
62
73
  |------|-------------|
63
- | `list_conversations` | List conversation threads by recent activity |
64
- | `get_conversation` | Get a conversation with optional message history |
65
- | `reply_to_conversation` | Reply within a conversation (auto-sets recipient) |
66
- | `update_conversation` | Update metadata or tags on a conversation |
67
- | `close_conversation` | Close a conversation (auto-reopens on new inbound) |
74
+ | `send_batch` | Send to multiple recipients in one call (up to 1,000) |
75
+ | `preview_batch` | Preview credit cost before sending |
76
+ | `get_batch` | Get batch status with per-message results |
77
+ | `list_batches` | List all batches |
78
+
79
+ ### Conversations (9)
80
+
81
+ | Tool | Description |
82
+ |------|-------------|
83
+ | `list_conversations` | List threads by recent activity |
84
+ | `get_conversation` | Get conversation with optional message history |
85
+ | `get_conversation_context` | LLM-ready formatted context with AI annotations |
86
+ | `reply_to_conversation` | Reply in a conversation (auto-sets recipient) |
87
+ | `update_conversation` | Update metadata or tags |
88
+ | `close_conversation` | Close (auto-reopens on new inbound) |
68
89
  | `reopen_conversation` | Reopen a closed conversation |
69
90
  | `mark_conversation_read` | Reset unread count to zero |
91
+ | `get_suggested_replies` | AI-generated replies in 3 tones |
92
+
93
+ ### Contacts (6)
94
+
95
+ | Tool | Description |
96
+ |------|-------------|
97
+ | `create_contact` | Create with phone, name, email, metadata |
98
+ | `list_contacts` | List with search and pagination |
99
+ | `get_contact` | Get contact with list memberships |
100
+ | `update_contact` | Update name, email, or metadata |
101
+ | `delete_contact` | Delete (removes from all lists) |
102
+ | `import_contacts` | Bulk import up to 10,000 contacts |
103
+
104
+ ### Contact Lists (7)
105
+
106
+ | Tool | Description |
107
+ |------|-------------|
108
+ | `create_contact_list` | Create a list for campaigns |
109
+ | `list_contact_lists` | List all lists with counts |
110
+ | `get_contact_list` | Get list with members |
111
+ | `update_contact_list` | Update name or description |
112
+ | `delete_contact_list` | Delete list (contacts preserved) |
113
+ | `add_list_contacts` | Add contacts to a list |
114
+ | `remove_list_contact` | Remove a contact from a list |
115
+
116
+ ### Campaigns (10)
117
+
118
+ | Tool | Description |
119
+ |------|-------------|
120
+ | `create_campaign` | Create with `{{variable}}` personalization |
121
+ | `list_campaigns` | List with status filter |
122
+ | `get_campaign` | Get with delivery stats |
123
+ | `update_campaign` | Update draft or scheduled campaign |
124
+ | `delete_campaign` | Delete draft or cancelled campaign |
125
+ | `preview_campaign` | Preview recipient count and credit cost |
126
+ | `send_campaign` | Send immediately |
127
+ | `schedule_campaign` | Schedule for future delivery |
128
+ | `cancel_campaign` | Cancel scheduled campaign, credits refunded |
129
+ | `clone_campaign` | Clone as new draft |
130
+
131
+ ### Templates (8)
132
+
133
+ | Tool | Description |
134
+ |------|-------------|
135
+ | `create_template` | Create with `{{variable}}` placeholders |
136
+ | `list_templates` | List custom and preset templates |
137
+ | `get_template` | Get template with variable definitions |
138
+ | `update_template` | Update name or text |
139
+ | `delete_template` | Delete custom template |
140
+ | `publish_template` | Publish for use with Verify API |
141
+ | `preview_template` | Preview with sample variable values |
142
+ | `list_template_presets` | List system OTP/2FA presets |
143
+
144
+ ### Labels (4)
145
+
146
+ | Tool | Description |
147
+ |------|-------------|
148
+ | `create_label` | Create with name and color |
149
+ | `list_labels` | List all workspace labels |
150
+ | `add_conversation_label` | Add labels to a conversation |
151
+ | `remove_conversation_label` | Remove a label from a conversation |
152
+
153
+ ### Auto-Label Rules (4)
154
+
155
+ | Tool | Description |
156
+ |------|-------------|
157
+ | `list_rules` | List auto-label rules |
158
+ | `create_rule` | Create rule (intent/sentiment → label) |
159
+ | `update_rule` | Update conditions, actions, or enabled state |
160
+ | `delete_rule` | Delete rule |
161
+
162
+ ### Drafts (4)
163
+
164
+ | Tool | Description |
165
+ |------|-------------|
166
+ | `create_draft` | Create draft for human review |
167
+ | `list_drafts` | List drafts by conversation or status |
168
+ | `approve_draft` | Approve and send as real SMS |
169
+ | `reject_draft` | Reject with reason |
170
+
171
+ ### Webhooks (9)
172
+
173
+ | Tool | Description |
174
+ |------|-------------|
175
+ | `create_webhook` | Create endpoint (returns signing secret) |
176
+ | `list_webhooks` | List all webhooks |
177
+ | `get_webhook` | Get webhook with delivery stats |
178
+ | `update_webhook` | Update URL, events, or active state |
179
+ | `delete_webhook` | Delete webhook |
180
+ | `test_webhook` | Send test event to verify endpoint |
181
+ | `list_webhook_deliveries` | Delivery history with statuses |
182
+ | `rotate_webhook_secret` | Rotate signing secret |
183
+ | `list_webhook_event_types` | List available event types |
184
+
185
+ ### OTP / Verify (7)
186
+
187
+ | Tool | Description |
188
+ |------|-------------|
189
+ | `send_otp` | Send verification code via SMS |
190
+ | `check_otp` | Verify the code user entered |
191
+ | `get_verification_status` | Check verification state |
192
+ | `resend_otp` | Resend if original not received |
193
+ | `list_verifications` | List recent verifications |
194
+ | `create_verify_session` | Hosted verification UI (zero frontend code) |
195
+ | `validate_verify_session` | Validate token from hosted session |
70
196
 
71
- ### OTP / Verification
197
+ ### Credits (2)
72
198
 
73
199
  | Tool | Description |
74
200
  |------|-------------|
75
- | `send_otp` | Send a one-time password via SMS |
76
- | `check_otp` | Verify an OTP code |
77
- | `get_verification_status` | Check verification status |
201
+ | `get_credits` | Current balance and reserved credits |
202
+ | `list_credit_transactions` | Transaction history |
78
203
 
79
- ### Account
204
+ ### Account (1)
80
205
 
81
206
  | Tool | Description |
82
207
  |------|-------------|
83
- | `get_account` | Get credit balance, verification status, rate limits |
208
+ | `get_account` | Credit balance, verification status, rate limits |
209
+
210
+ ### Enterprise (1)
211
+
212
+ | Tool | Description |
213
+ |------|-------------|
214
+ | `generate_business_page` | Generate hosted business page for verification *(enterprise only)* |
84
215
 
85
216
  ## Authentication
86
217
 
87
218
  Set `SENDLY_API_KEY` as an environment variable:
88
219
 
89
- - **Test keys** (`sk_test_v1_...`) — sandbox mode, messages simulated, OTP codes returned in response
90
- - **Live keys** (`sk_live_v1_...`) — real SMS delivery on verified phone numbers
220
+ - **Test keys** (`sk_test_v1_...`) — sandbox mode, no real SMS, OTP codes in response
221
+ - **Live keys** (`sk_live_v1_...`) — real SMS delivery, requires verified phone number
222
+
223
+ Get your key at [sendly.live](https://sendly.live) → Settings → API Keys.
224
+
225
+ ## Sandbox Testing
91
226
 
92
- Get your API key at [sendly.live](https://sendly.live) → Settings → API Keys.
227
+ With test keys, use magic numbers:
228
+
229
+ | Number | Behavior |
230
+ |--------|----------|
231
+ | +15005550000 | Always succeeds |
232
+ | +15005550001 | Invalid number |
233
+ | +15005550006 | Carrier rejected |
93
234
 
94
235
  ## Environment Variables
95
236
 
96
237
  | Variable | Required | Description |
97
238
  |----------|----------|-------------|
98
239
  | `SENDLY_API_KEY` | Yes | Your Sendly API key |
99
- | `SENDLY_BASE_URL` | No | API base URL (default: `https://sendly.live`) |
240
+ | `SENDLY_BASE_URL` | No | API base (default: `https://sendly.live`) |
100
241
 
101
242
  ## Links
102
243
 
103
- - [Documentation](https://sendly.live/docs)
244
+ - [MCP Tools Reference](https://sendly.live/docs/ai/mcp-tools) — all 82 tools with schemas
245
+ - [Agent Skills](https://sendly.live/skills) — SKILL.md files for 8 platforms
104
246
  - [API Reference](https://sendly.live/docs/api)
105
- - [Sendly Dashboard](https://sendly.live)
247
+ - [Sendly Dashboard](https://sendly.live/dashboard)
248
+
249
+ ## License
250
+
251
+ MIT