Bento MCP Server
The Bento MCP Server connects AI assistants to your Bento account using the Model Context Protocol. This lets you manage subscribers, update email sequences, track events, and send emails using natural language commands.
Works with:
- Claude Desktop
- Cursor
- OpenCode
- Any MCP-compatible AI assistant
Install globally via npm:
npm install -g @bentonow/bento-mcp
Or run directly with npx (no installation required):
npx @bentonow/bento-mcp
You'll need three values from your Bento account:
| Variable | Where to Find It |
|---|---|
BENTO_PUBLISHABLE_KEY | Team Settings → Your Private API Keys |
BENTO_SECRET_KEY | Team Settings → Your Private API Keys |
BENTO_SITE_UUID | Team Settings → Site UUID |
Choose your AI assistant below and add the configuration:
Claude Desktop
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"bento": {
"command": "npx",
"args": ["-y", "@bentonow/bento-mcp"],
"env": {
"BENTO_PUBLISHABLE_KEY": "your-publishable-key",
"BENTO_SECRET_KEY": "your-secret-key",
"BENTO_SITE_UUID": "your-site-uuid"
}
}
}
}
Cursor
Add to your Cursor MCP settings (Settings → MCP):
{
"mcpServers": {
"bento": {
"command": "npx",
"args": ["-y", "@bentonow/bento-mcp"],
"env": {
"BENTO_PUBLISHABLE_KEY": "your-publishable-key",
"BENTO_SECRET_KEY": "your-secret-key",
"BENTO_SITE_UUID": "your-site-uuid"
}
}
}
}
OpenCode
Add to your opencode.json:
{
"mcp": {
"bento": {
"type": "local",
"command": ["npx", "-y", "@bentonow/bento-mcp"],
"environment": {
"BENTO_PUBLISHABLE_KEY": "your-publishable-key",
"BENTO_SECRET_KEY": "your-secret-key",
"BENTO_SITE_UUID": "your-site-uuid"
}
}
}
}
Once configured, you can ask your AI assistant to perform any Bento operation using natural language. Here are real examples:
Update Email Sequences
You: "Review our welcome sequence emails and make them more engaging. Add personalization where it makes sense."
AI: Lists your sequences, reads each email template, suggests improvements, and updates the content with your approval.
You: "Update the subject line of email #1234 to be more compelling"
AI: Fetches the template, shows current subject, proposes alternatives, and updates it.
Manage Subscribers
You: "Look up john@example.com and show me their tags and purchase history"
AI: Retrieves subscriber details including tags, fields, and events.
You: "Tag all these emails as 'vip-customer': john@example.com, jane@example.com, bob@example.com"
AI: Adds the tag to each subscriber.
Track Events & Purchases
You: "Track a $299 purchase for order #12345 from customer@example.com"
AI: Records the purchase with the order ID for LTV tracking.
Get Statistics
You: "Show me our site stats and how our last broadcast performed"
AI: Fetches site statistics and broadcast performance data.
Create Broadcasts
You: "Create a broadcast announcing our Black Friday sale to subscribers tagged 'newsletter'"
AI: Creates a draft broadcast with your content targeting the specified tag.
Send Transactional Emails
You: "Send a password reset email to user@example.com with reset link https://..."
AI: Sends a transactional email immediately.
The MCP server provides these tools that your AI assistant can use:
Subscriber Management
| Tool | Description |
|---|---|
bento_get_subscriber | Look up a subscriber by email or UUID |
bento_create_subscriber | Create a new subscriber |
bento_upsert_subscriber | Create or update subscriber with fields and tags |
bento_add_subscriber | Subscribe a user (triggers automations) |
bento_remove_subscriber | Unsubscribe a user |
Tagging
| Tool | Description |
|---|---|
bento_tag_subscriber | Add a tag to a subscriber (triggers automations) |
bento_remove_tag | Remove a tag from a subscriber |
bento_list_tags | List all tags in your account |
bento_create_tag | Create a new tag |
Event Tracking
| Tool | Description |
|---|---|
bento_track_event | Track a custom event (e.g., $pageView, signup_completed) |
bento_track_purchase | Track a purchase for LTV calculations |
Field Management
| Tool | Description |
|---|---|
bento_update_fields | Update custom fields on a subscriber |
bento_list_fields | List all custom fields |
bento_create_field | Create a new custom field |
Sequences & Workflows
| Tool | Description |
|---|---|
bento_list_sequences | List all email sequences with their templates |
bento_list_workflows | List all automation workflows with their templates |
bento_get_email_template | Get full content of an email template by ID |
bento_update_email_template | Update a template's subject and/or HTML content |
bento_list_sequences or bento_list_workflows first to discover template IDs, then use bento_get_email_template to read the content and bento_update_email_template to make changes.Email & Broadcasts
| Tool | Description |
|---|---|
bento_send_email | Send a transactional email |
bento_list_broadcasts | List all broadcasts/campaigns |
bento_create_broadcast | Create a new broadcast (as draft) |
bento_batch_import_subscribers | Bulk import up to 1,000 subscribers |
Statistics
| Tool | Description |
|---|---|
bento_get_site_stats | Get overall site statistics |
bento_get_segment_stats | Get statistics for a specific segment |
bento_get_report_stats | Get statistics for a broadcast/report |
Experimental
| Tool | Description |
|---|---|
bento_validate_email | Validate an email address |
bento_guess_gender | Guess gender from a first name |
bento_geolocate_ip | Get location data for an IP address |
bento_check_blacklist | Check if domain/IP is blacklisted |
bento_moderate_content | AI content moderation |
Forms
| Tool | Description |
|---|---|
bento_get_form_responses | Get all responses for a Bento form |
Improving Your Welcome Sequence
Here's a step-by-step example of how you might work with your AI assistant to improve emails:
Step 1: Ask to see your sequences
"Show me all my email sequences in Bento"
Step 2: Review a specific sequence's emails
"Read all the emails in the Welcome Sequence and summarize them"
Step 3: Get suggestions
"How can we make email #2 more engaging? It has a low open rate."
Step 4: Make updates
"Update email #1234 with that new subject line and the improved copy you suggested"
Bulk Operations
"Import these 50 subscribers from my spreadsheet and tag them all as 'webinar-attendee'"
"Find all subscribers tagged 'trial-expired' and add the tag 'win-back-campaign'"
Analytics Deep Dive
"Compare the performance of our last 3 broadcasts - which had the best click rate?"
"What's the subscriber count for the 'active-customers' segment?"
-
Start with lookups - Before making changes, ask your AI to show you the current state. "Show me the welcome sequence" before "Update the welcome sequence."
-
Be specific with IDs - When you know a template or subscriber ID, mention it directly for faster operations.
-
Batch when possible - For multiple subscribers, use batch import instead of adding one at a time.
-
Review before sending - For broadcasts and transactional emails, ask your AI to show you the content before sending.
-
Use tags strategically - Tags trigger automations, so be intentional about when you add them.
Common Issues
| Issue | Solution |
|---|---|
| "Missing environment variables" | Ensure all three env vars are set in your config |
| "Not Authorized" | Double-check your API keys are correct |
| "Rate Limited" | Wait a moment and try again, or batch operations together |
| AI can't find the tool | Restart your AI assistant after config changes |
Verifying the Connection
Ask your AI assistant:
"Can you connect to Bento? Try listing my tags."
If it works, you'll see your tags. If not, check your configuration.
