@bentonow/bento-mcp 1.0.0 → 1.0.2

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 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** - Create, lookup, and update subscribers
8
- - **Tagging** - Add and remove tags from subscribers
9
- - **Event Tracking** - Track custom events and purchases
10
- - **Field Management** - Manage custom subscriber fields
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
- - **Statistics** - Get site, segment, and report stats
14
- - **Experimental** - Email validation, gender guessing, geolocation, and more
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
- ### Subscriber Management
105
+ ### Subscribers
106
106
 
107
107
  | Tool | Description |
108
108
  |------|-------------|
109
- | `bento_get_subscriber` | Look up a subscriber by email or UUID |
110
- | `bento_create_subscriber` | Create a new subscriber |
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
- ### Tagging
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
- ### Event Tracking
119
+ ### Fields
125
120
 
126
121
  | Tool | Description |
127
122
  |------|-------------|
128
- | `bento_track_event` | Track a custom event |
129
- | `bento_track_purchase` | Track a purchase (for LTV calculations) |
123
+ | `bento_list_fields` | List all custom fields |
124
+ | `bento_create_field` | Create a new custom field |
130
125
 
131
- ### Field Management
126
+ ### Events
132
127
 
133
128
  | Tool | Description |
134
129
  |------|-------------|
135
- | `bento_update_fields` | Update custom fields on a subscriber |
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
- ### Email & Broadcasts
132
+ ### Statistics
140
133
 
141
134
  | Tool | Description |
142
135
  |------|-------------|
143
- | `bento_send_email` | Send a transactional email |
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
- ### Statistics
138
+ ### Broadcasts
149
139
 
150
140
  | Tool | Description |
151
141
  |------|-------------|
152
- | `bento_get_site_stats` | Get overall site statistics |
153
- | `bento_get_segment_stats` | Get statistics for a segment |
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
- ### Experimental
145
+ ### Automations
157
146
 
158
147
  | Tool | Description |
159
148
  |------|-------------|
160
- | `bento_validate_email` | Validate an email address |
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
- ### Forms
151
+ ### Email Templates
167
152
 
168
153
  | Tool | Description |
169
154
  |------|-------------|
170
- | `bento_get_form_responses` | Get responses for a Bento form |
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
- - "Add the tag 'premium-user' to jane@example.com"
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
  ```