@bentonow/bento-mcp 1.0.0 → 1.0.1
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 +55 -43
- package/build/index.js +505 -773
- package/build/index.js.map +1 -1
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -4,14 +4,14 @@ A Model Context Protocol (MCP) server for [Bento](https://bentonow.com) - the em
|
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Subscriber Management** -
|
|
8
|
-
- **Tagging** -
|
|
9
|
-
- **Event Tracking** - Track custom events
|
|
10
|
-
- **Field Management** -
|
|
11
|
-
- **Email Sending** - Send transactional emails
|
|
7
|
+
- **Subscriber Management** - Import, update, and lookup subscribers with full custom field support
|
|
8
|
+
- **Tagging** - Create and manage tags
|
|
9
|
+
- **Event Tracking** - Track custom events that can trigger automations
|
|
10
|
+
- **Field Management** - Create and list custom fields
|
|
12
11
|
- **Broadcasts** - Create and list email campaigns
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
12
|
+
- **Automations** - View sequences and workflows
|
|
13
|
+
- **Email Templates** - Read and update email template content
|
|
14
|
+
- **Statistics** - Get site-level stats
|
|
15
15
|
|
|
16
16
|
## Installation
|
|
17
17
|
|
|
@@ -102,83 +102,89 @@ Add to your Cursor MCP settings:
|
|
|
102
102
|
|
|
103
103
|
## Available Tools
|
|
104
104
|
|
|
105
|
-
###
|
|
105
|
+
### Subscribers
|
|
106
106
|
|
|
107
107
|
| Tool | Description |
|
|
108
108
|
|------|-------------|
|
|
109
|
-
| `bento_get_subscriber` | Look up
|
|
110
|
-
| `
|
|
111
|
-
| `bento_upsert_subscriber` | Create or update subscriber with fields and tags |
|
|
112
|
-
| `bento_add_subscriber` | Subscribe a user (triggers automations) |
|
|
113
|
-
| `bento_remove_subscriber` | Unsubscribe a user |
|
|
109
|
+
| `bento_get_subscriber` | Look up subscriber details by email or UUID |
|
|
110
|
+
| `bento_batch_import_subscribers` | Import or update up to 1000 subscribers with custom fields and tags |
|
|
114
111
|
|
|
115
|
-
###
|
|
112
|
+
### Tags
|
|
116
113
|
|
|
117
114
|
| Tool | Description |
|
|
118
115
|
|------|-------------|
|
|
119
|
-
| `bento_tag_subscriber` | Add a tag to a subscriber (triggers automations) |
|
|
120
|
-
| `bento_remove_tag` | Remove a tag from a subscriber |
|
|
121
116
|
| `bento_list_tags` | List all tags in your account |
|
|
122
117
|
| `bento_create_tag` | Create a new tag |
|
|
123
118
|
|
|
124
|
-
###
|
|
119
|
+
### Fields
|
|
125
120
|
|
|
126
121
|
| Tool | Description |
|
|
127
122
|
|------|-------------|
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
123
|
+
| `bento_list_fields` | List all custom fields |
|
|
124
|
+
| `bento_create_field` | Create a new custom field |
|
|
130
125
|
|
|
131
|
-
###
|
|
126
|
+
### Events
|
|
132
127
|
|
|
133
128
|
| Tool | Description |
|
|
134
129
|
|------|-------------|
|
|
135
|
-
| `
|
|
136
|
-
| `bento_list_fields` | List all custom fields |
|
|
137
|
-
| `bento_create_field` | Create a new custom field |
|
|
130
|
+
| `bento_track_event` | Track a custom event for a subscriber (can trigger automations) |
|
|
138
131
|
|
|
139
|
-
###
|
|
132
|
+
### Statistics
|
|
140
133
|
|
|
141
134
|
| Tool | Description |
|
|
142
135
|
|------|-------------|
|
|
143
|
-
| `
|
|
144
|
-
| `bento_list_broadcasts` | List all broadcasts/campaigns |
|
|
145
|
-
| `bento_create_broadcast` | Create a new broadcast |
|
|
146
|
-
| `bento_batch_import_subscribers` | Bulk import subscribers (up to 1000) |
|
|
136
|
+
| `bento_get_site_stats` | Get site statistics including subscriber and broadcast counts |
|
|
147
137
|
|
|
148
|
-
###
|
|
138
|
+
### Broadcasts
|
|
149
139
|
|
|
150
140
|
| Tool | Description |
|
|
151
141
|
|------|-------------|
|
|
152
|
-
| `
|
|
153
|
-
| `
|
|
154
|
-
| `bento_get_report_stats` | Get statistics for a broadcast/report |
|
|
142
|
+
| `bento_list_broadcasts` | List all broadcasts/campaigns |
|
|
143
|
+
| `bento_create_broadcast` | Create a draft broadcast |
|
|
155
144
|
|
|
156
|
-
###
|
|
145
|
+
### Automations
|
|
157
146
|
|
|
158
147
|
| Tool | Description |
|
|
159
148
|
|------|-------------|
|
|
160
|
-
| `
|
|
161
|
-
| `bento_guess_gender` | Guess gender from a first name |
|
|
162
|
-
| `bento_geolocate_ip` | Get location data for an IP address |
|
|
163
|
-
| `bento_check_blacklist` | Check if domain/IP is blacklisted |
|
|
164
|
-
| `bento_moderate_content` | AI content moderation |
|
|
149
|
+
| `bento_list_automations` | List sequences and/or workflows with their templates |
|
|
165
150
|
|
|
166
|
-
###
|
|
151
|
+
### Email Templates
|
|
167
152
|
|
|
168
153
|
| Tool | Description |
|
|
169
154
|
|------|-------------|
|
|
170
|
-
| `
|
|
155
|
+
| `bento_get_email_template` | Get email template content by ID |
|
|
156
|
+
| `bento_update_email_template` | Update email template subject and/or content |
|
|
171
157
|
|
|
172
158
|
## Example Prompts
|
|
173
159
|
|
|
174
160
|
Once configured, you can ask your AI assistant things like:
|
|
175
161
|
|
|
176
162
|
- "Look up the subscriber john@example.com in Bento"
|
|
177
|
-
- "
|
|
178
|
-
- "Track a purchase of $99.99 for order #12345 for customer@example.com"
|
|
163
|
+
- "Import these 5 subscribers with the 'newsletter' tag"
|
|
179
164
|
- "Show me the site statistics from Bento"
|
|
180
|
-
- "Create a new broadcast email for users tagged as 'newsletter'"
|
|
181
165
|
- "What are all the tags in my Bento account?"
|
|
166
|
+
- "Create a new broadcast for the spring sale"
|
|
167
|
+
- "List all my email sequences"
|
|
168
|
+
- "Track a 'feature_used' event for user@example.com"
|
|
169
|
+
|
|
170
|
+
## Response Format
|
|
171
|
+
|
|
172
|
+
All tool responses are formatted to be informative for both humans and LLMs:
|
|
173
|
+
|
|
174
|
+
- **Success responses** include context about the operation performed and structured data
|
|
175
|
+
- **Error responses** include the `isError` flag and helpful error messages with suggested fixes
|
|
176
|
+
- **Empty results** are clearly indicated (e.g., "No items found")
|
|
177
|
+
- **Batch operations** report both successful and total counts
|
|
178
|
+
|
|
179
|
+
## Error Handling
|
|
180
|
+
|
|
181
|
+
The server provides helpful error messages for common issues:
|
|
182
|
+
|
|
183
|
+
- **Missing credentials**: Clear message about which environment variables are missing
|
|
184
|
+
- **Authentication failures**: Guidance to check API keys
|
|
185
|
+
- **Rate limiting**: Information about waiting before retrying
|
|
186
|
+
- **Not found errors**: Clear indication when resources don't exist
|
|
187
|
+
- **API errors**: Helpful messages for temporary service issues
|
|
182
188
|
|
|
183
189
|
## Development
|
|
184
190
|
|
|
@@ -193,6 +199,12 @@ npm install
|
|
|
193
199
|
# Build
|
|
194
200
|
npm run build
|
|
195
201
|
|
|
202
|
+
# Lint
|
|
203
|
+
npm run lint
|
|
204
|
+
|
|
205
|
+
# Format
|
|
206
|
+
npm run format
|
|
207
|
+
|
|
196
208
|
# Run locally
|
|
197
209
|
BENTO_PUBLISHABLE_KEY=xxx BENTO_SECRET_KEY=xxx BENTO_SITE_UUID=xxx npm start
|
|
198
210
|
```
|