@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.
- package/README.md +178 -32
- package/dist/index.js +1384 -1343
- package/package.json +13 -2
package/README.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
# @sendly/mcp
|
|
2
2
|
|
|
3
|
-
SMS for AI agents —
|
|
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": "
|
|
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
|
|
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": "
|
|
42
|
+
"SENDLY_API_KEY": "sk_test_v1_your_key"
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
```
|
|
42
48
|
|
|
43
|
-
###
|
|
49
|
+
### OpenClaw
|
|
44
50
|
|
|
45
|
-
|
|
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
|
-
|
|
55
|
+
Then ask your agent: *"Send a test SMS to +15005550000 saying Hello from my agent"*
|
|
48
56
|
|
|
49
|
-
|
|
57
|
+
## All 82 Tools
|
|
58
|
+
|
|
59
|
+
### Messaging (6)
|
|
50
60
|
|
|
51
61
|
| Tool | Description |
|
|
52
62
|
|------|-------------|
|
|
53
|
-
| `send_sms` | Send an SMS
|
|
54
|
-
| `list_messages` | List
|
|
55
|
-
| `get_message` | Get details
|
|
56
|
-
| `schedule_sms` | Schedule
|
|
57
|
-
| `cancel_scheduled_message` | Cancel
|
|
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
|
-
###
|
|
70
|
+
### Batch Messaging (4)
|
|
60
71
|
|
|
61
72
|
| Tool | Description |
|
|
62
73
|
|------|-------------|
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
|
|
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
|
-
###
|
|
197
|
+
### Credits (2)
|
|
72
198
|
|
|
73
199
|
| Tool | Description |
|
|
74
200
|
|------|-------------|
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
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` |
|
|
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,
|
|
90
|
-
- **Live keys** (`sk_live_v1_...`) — real SMS delivery
|
|
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
|
-
|
|
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
|
|
240
|
+
| `SENDLY_BASE_URL` | No | API base (default: `https://sendly.live`) |
|
|
100
241
|
|
|
101
242
|
## Links
|
|
102
243
|
|
|
103
|
-
- [
|
|
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
|