Bento MCP Server
Connect your favorite AI assistant to Bento and manage your email marketing with natural language.
The Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude, Cursor, and others interact with external tools and services. The Bento MCP server gives your AI assistant direct access to your Bento account. It can look up subscribers, create broadcasts, track events, and more, all through natural conversation.
Whether you're drafting a campaign, importing subscribers, or checking your stats, you describe the task and your AI assistant runs the matching Bento tools.
npx skills add @bentonow/bento-skills. MCP gives the assistant live account tools; Skills gives it implementation and safety guidance.Before you begin, make sure you have:
- A Bento account with API access
- Your Bento API credentials (Publishable Key, Secret Key, Site UUID)
- An AI application that supports MCP (Claude Desktop, Cursor, VS Code, etc.)
- Node.js 18 or later only if your MCP client needs a local stdio bridge
Log into your Bento account and click on Settings in the left sidebar.
Open Settings -> API Keys and find your API keys.
You'll need three values:
| Credential | Description | Example |
|---|---|---|
| Publishable Key | Your public API key | pk_live_abc123... |
| Secret Key | Your private API key (keep this safe!) | sk_live_xyz789... |
| Site UUID | Your unique site identifier | site_uuid_here |
Bento runs a hosted MCP endpoint, so most people do not need to install or run a local MCP server.
https://mcp.bentonow.com/mcp
Your MCP client sends your Bento API credentials with each request. Bento MCP does not store credentials between requests.
Use these HTTP headers when your MCP client supports a hosted HTTP endpoint:
Use the hosted endpoint when your MCP client supports remote HTTP MCP servers with custom headers. If the client only supports local stdio servers, use the local npm server or a bridge such as mcp-remote.
Choose your AI application below. Hosted setup is the cleanest option when your client supports it. The local npm server is still available for clients that only launch stdio MCP servers.
The MCP server provides these tools that your AI assistant can use:
"Import these 50 subscribers with the 'webinar-attendee' tag"
Import up to 1000 subscribers at once
batch_import_subscribers"What tags do I have in Bento?"
List all tags in your account
list_tags"Create a tag called 'vip-customer'"
Create a new tag
create_tag"Show me my custom fields in Bento"
List all custom fields
list_fields"Create a custom field for 'company_name'"
Create a new custom field
create_field"Track a 'completed_onboarding' event for user@example.com"
Track a custom event (can trigger automations)
track_event"Show me my recent broadcasts"
List all broadcasts/campaigns
list_broadcasts"Create a broadcast for our spring sale announcement"
Create a new draft broadcast
create_broadcast"What automations do I have set up?"
List all automations, filtered by sequences, workflows, or all
list_automations"Show me all my email sequences"
List email sequences with their email templates
list_sequences"Add a new email to my Welcome Series sequence about setting up their profile"
Create a new email in a sequence by ID or name
create_sequence_email"Update the subject line on sequence email template 456"
Update a sequence email's subject or HTML content
update_sequence_email"Show me my workflows"
List workflows with their status and email templates
list_workflows"Show me template ID 123"
Get an email template's content by ID
get_email_template"Update template 123 with this new subject line"
Update a template's subject or content
update_email_template"How many subscribers do I have?"
Get overall site statistics
get_site_statsCreating an Email Broadcast
This is the most common workflow: drafting and creating an email campaign using natural language.
Create a broadcast called 'Summer Sale Announcement' with the subject 'Save 30% This Weekend Only'. Use HTML format. Send from 'Marketing Team' at marketing@mycompany.com. The content should announce our summer sale with a 30% discount code SUMMER30.
I'll create that broadcast for you.
create_broadcastrunning...The broadcast is now saved as a draft in your Bento dashboard.
Importing Subscribers
Perfect for moving subscribers from a spreadsheet or another platform.
Import these subscribers with the tag 'newsletter-2024':
• alice@example.com (Alice Smith)
• bob@example.com (Bob Jones)
• carol@example.com (Carol Williams)
I'll import those 3 subscribers with the 'newsletter-2024' tag.
batch_import_subscribersrunning...Pro Tips for Bulk Imports:
- You can import up to 1000 subscribers at once
- Custom fields are supported. Just mention them naturally
- Tags can be added or removed during import
- Existing subscribers will be updated (not duplicated)
Tracking Purchase Events
Track revenue and trigger purchase-based automations.
Track a $49.99 purchase for customer@example.com. Order ID is ORD-12345, product is 'Annual Pro Plan'.
I'll track that purchase event.
track_event$purchaserunning...Purchase Event Requirements: Purchase events must include:
value.amount: Amount in cents (4999 for $49.99)value.currency: ISO currency code (USD, EUR, etc.)unique.key: A unique identifier to prevent double-counting (order ID)
The MCP server will auto-generate a unique key if you don't provide one, but using your order ID is recommended.
Checking Your Stats
Get a quick overview of your Bento account performance.
How is my Bento account doing? Give me the key stats.
get_site_statsrunning...Your Bento account is healthy! You have 12,547 total subscribers with 95% active, and your average open rate is 42.3%.
Managing Your Subscriber Data
Look up and understand your subscribers.
Look up john.doe@example.com and tell me everything about them
get_subscriberjohn.doe@example.comrunning...John Doe is an active VIP customer from Acme Corp on the Enterprise plan. He's been subscribed since January 2024 and has the newsletter and customer tags.
Setting Up Custom Fields
Create the data structure for personalization.
I need to track company name, job title, and plan type for my subscribers. Create those fields.
I'll create those three custom fields for you.
create_field×3running...Fields are now available for use when importing subscribers or tracking events.
Building a Welcome Sequence
Create and populate an email sequence step by step using natural language.
Show me my sequences in Bento. I want to add emails to my welcome series.
list_sequencesrunning...I found your Welcome Series. I'll add a new email to it.
create_sequence_emailWelcome Seriesrunning...Set delivery timing with the delayInterval and delayIntervalCount parameters, or adjust in the Bento dashboard after creation.
{"{{ visitor.unsubscribe_url }}"} for compliance.Reviewing Workflows
Check on your workflow performance and email templates.
Show me my workflows and how they're performing.
list_workflowsrunning...You have 2 workflows. Post-Purchase Follow-up is live with 3 email templates. Trial Expiry Reminder is still in draft with 2 emails, and you can activate it from the Bento dashboard when ready.
Frequently Asked Questions
Find answers to common questions or contact our support team
Missing one or more required Bento credential headers
The hosted MCP endpoint did not receive all three Bento credential headers.
- Confirm the client sends
X-Bento-Publishable-Key,X-Bento-Secret-Key, andX-Bento-Site-UUID - For Codex, make sure
env_http_headerspoints to environment variable names, not literal credential values - For Claude Desktop with
mcp-remote, confirm theenvblock contains all three values - Restart your AI application after making changes
Bento rejected the provided credentials or site UUID
Your credentials were sent, but Bento could not authenticate them.
- Copy the publishable key, secret key, and site UUID again from Settings > API Keys
- Make sure the publishable key and secret key belong to the same Bento account
- Check that the site UUID matches the site you want the assistant to access
- Regenerate your API keys if you think the secret key was exposed
MCP server not showing up
Your AI application doesn't see the Bento MCP server.
- Verify the configuration file path is correct for your operating system
- Check JSON syntax. A single missing comma can break the config
- For Claude Desktop, ensure Node.js 18+ is installed because
mcp-remoteruns throughnpx - For Codex, run
codex mcp get bento-remoteand confirm the config block is in~/.codex/config.toml - For local stdio setup, try running the npm server manually to check for errors
- Restart your AI application completely
Testing Your Connection
For Codex hosted setup, run:
For local stdio setup, run the server manually:
Then ask your AI assistant:
If it works, you'll see your tags. If not, check your configuration.
Security
- Never share your Secret Key in public repositories, screenshots, or support tickets
- Use environment variables in CI/CD rather than hardcoding credentials
- Rotate API keys periodically, especially if you suspect they may have been exposed
Performance
- Use batch operations when importing multiple subscribers.
batch_import_subscribershandles up to 1000 at once - Be specific in your prompts to help the AI choose the right tool on the first try
- Review broadcasts in Bento before sending. The MCP creates drafts for safety
Workflow Tips
- Start with stats to understand your account state before making changes
- Test with a single subscriber before bulk importing
- Use descriptive broadcast names so they're easy to find in the Bento dashboard
- Leverage custom fields for personalization. Create them once, use them everywhere
Sequences & Workflows
- Always include an unsubscribe URL when updating sequence email HTML. Use
{"{{ visitor.unsubscribe_url }}"}(required by the update tools for compliance) - Reference sequences by name for readability, or by ID for precision
- Set delivery timing explicitly when creating sequence emails using
delayIntervalanddelayIntervalCount. No default delay is applied - Use
list_automationswith a type filter to narrow results to just sequences or just workflows
Subscriber Operations
"Look up [email] in Bento"
"Import these subscribers with tag [tag]: [list]"
Tag Operations
"What tags do I have?"
"Create a tag called [name]"
Broadcast Operations
"Show me my broadcasts"
"Create a broadcast called [name] about [topic]"
Sequence Operations
"Show me my sequences"
"Add an email to my [sequence name] sequence about [topic]"
"Update the subject on sequence email [id]"
Workflow Operations
"Show me my workflows"
"List only my workflows"
Event Tracking
"Track [event] for [email]"
"Log a $[amount] purchase for [email]"
Statistics
"Show me my Bento stats"
"How many subscribers do I have?"
For local stdio setup, you can keep credentials in your shell profile instead of each MCP config file.
1. Add to your shell profile (~/.zshrc or ~/.bashrc):
2. Use a simpler MCP config:
The local npm server will automatically pick up the environment variables from your shell.
- GitHub Issues: github.com/bentonow/bento-mcp/issues
- Documentation: docs.bentonow.com
- Discord: Join the community
- Email Support: support@bentonow.com
