# How to integrate Benchmark email MCP with Autogen

```json
{
  "title": "How to integrate Benchmark email MCP with Autogen",
  "toolkit": "Benchmark email",
  "toolkit_slug": "benchmark_email",
  "framework": "AutoGen",
  "framework_slug": "autogen",
  "url": "https://composio.dev/toolkits/benchmark_email/framework/autogen",
  "markdown_url": "https://composio.dev/toolkits/benchmark_email/framework/autogen.md",
  "updated_at": "2026-05-12T10:02:47.298Z"
}
```

## Introduction

This guide walks you through connecting Benchmark email to AutoGen using the Composio tool router. By the end, you'll have a working Benchmark email agent that can list all confirmed sender email addresses, get your benchmark account plan details, fetch company profile and contact limits through natural language commands.
This guide will help you understand how to give your AutoGen agent real control over a Benchmark email account through Composio's Benchmark email MCP server.
Before we dive in, let's take a quick look at the key ideas and tools involved.

## Also integrate Benchmark email with

- [OpenAI Agents SDK](https://composio.dev/toolkits/benchmark_email/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/benchmark_email/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/benchmark_email/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/benchmark_email/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/benchmark_email/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/benchmark_email/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/benchmark_email/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/benchmark_email/framework/cli)
- [Google ADK](https://composio.dev/toolkits/benchmark_email/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/benchmark_email/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/benchmark_email/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/benchmark_email/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/benchmark_email/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/benchmark_email/framework/crew-ai)

## TL;DR

Here's what you'll learn:
- Get and set up your OpenAI and Composio API keys
- Install the required dependencies for Autogen and Composio
- Initialize Composio and create a Tool Router session for Benchmark email
- Wire that MCP URL into Autogen using McpWorkbench and StreamableHttpServerParams
- Configure an Autogen AssistantAgent that can call Benchmark email tools
- Run a live chat loop where you ask the agent to perform Benchmark email operations

## What is AutoGen?

Autogen is a framework for building multi-agent conversational AI systems from Microsoft. It enables you to create agents that can collaborate, use tools, and maintain complex workflows.
Key features include:
- Multi-Agent Systems: Build collaborative agent workflows
- MCP Workbench: Native support for Model Context Protocol tools
- Streaming HTTP: Connect to external services through streamable HTTP
- AssistantAgent: Pre-built agent class for tool-using assistants

## What is the Benchmark email MCP server, and what's possible with it?

The Benchmark email MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Benchmark Email account. It provides structured and secure access to your email marketing data, so your agent can retrieve account info, manage contacts, handle lists, and automate campaign administration on your behalf.
- Automated contact and list management: Effortlessly add, update, or delete contacts and lists, keeping your subscriber base organized and up to date.
- Campaign cleanup and maintenance: Direct your agent to delete obsolete email campaigns or remove unneeded webhooks to keep your workspace tidy.
- Account insights and configuration retrieval: Have the agent fetch client details, plan information, and account settings—perfect for reporting or reviewing your workspace setup.
- Confirmed email address retrieval: Quickly pull all verified sender email addresses for compliance and seamless campaign sending.
- Agency account and webhook control: Manage linked agency accounts and webhooks by deleting or updating them when no longer needed for more secure integrations.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `BENCHMARK_EMAIL_ADD_EMAIL_IN_AUTOMATION` | Add Email in Automation | Tool to add an email to an automation workflow. Use when configuring automation sequences for email campaigns. |
| `BENCHMARK_EMAIL_ADD_EMAIL_TO_ARCHIVE` | Add Email to Archive | Tool to add an email to the archive page. Use when you need to archive an email campaign by its ID. |
| `BENCHMARK_EMAIL_ADD_EMAIL_TO_COMMUNITY` | Add Email to Community | Tool to add an email campaign to the public community with category and keywords. Use after creating an email campaign to publish it to the community platform. |
| `BENCHMARK_EMAIL_ADD_REMOVE_INBOX_TESTS_FROM_SUB_ACCOUNT` | Add/Remove Inbox Tests from Sub-Account | Tool to add or remove inbox tests from a sub-account. Use when you need to allocate or deallocate inbox testing credits for a child account. |
| `BENCHMARK_EMAIL_CHECK_IF_RESPONSIVE` | Check if responsive | Tool to check if the client is responsive. Use when verifying client responsiveness status. |
| `BENCHMARK_EMAIL_CLEAN_CONTACT_LIST` | Clean Contact List | Tool to clean a contact list by removing invalid or bounced email addresses. Use when you need to improve list quality. |
| `BENCHMARK_EMAIL_COMPARE_CONTACTS` | Compare Contacts | Tool to compare contacts across multiple contact lists. Use when you need to identify shared or unique contacts between lists. |
| `BENCHMARK_EMAIL_CONNECT_SERVICE` | Connect Third-Party Service | Tool to get the OAuth authorization URL for connecting a third-party e-commerce or CRM service. Use when integrating with ETSY, EBAY, SHOPIFY, or SALESFORCE. |
| `BENCHMARK_EMAIL_COPY_BULK_CONTACTS` | Copy Bulk Contacts | Tool to copy multiple contacts in bulk to target lists. Use when you need to duplicate contacts across lists without moving them. |
| `BENCHMARK_EMAIL_COPY_CONTACTS` | Copy Contacts | Tool to copy a contact to a specific list. Use when you need to duplicate a contact from one list to another. |
| `BENCHMARK_EMAIL_COPY_EMAIL_IN_AUTOMATION` | Copy Email in Automation | Tool to create a copy of an automation email. Use when duplicating an email within an automation workflow. |
| `BENCHMARK_EMAIL_COPY_EXISTING_EMAIL` | Copy Existing Email | Tool to copy an existing email. Use when duplicating an email campaign by its ID. The copied email will have a new ID and the specified name. |
| `BENCHMARK_EMAIL_COPY_IMAGE_TO_SUB_ACCOUNT` | Copy Image to Sub-Account | Tool to copy an image to one or more sub-accounts. Use when sharing an image with specific sub-accounts by providing comma-separated client IDs. |
| `BENCHMARK_EMAIL_COPY_SIGNUP_FORM` | Copy Signup Form | Tool to copy an existing signup form. Use when you need to duplicate a signup form with a new name. |
| `BENCHMARK_EMAIL_CREATE_AUTOMATION_COPY` | Create Automation Copy | Tool to create a copy of an existing automation. Use after confirming the automation ID to duplicate. |
| `BENCHMARK_EMAIL_CREATE_INBOX` | Create Inbox | Tool to create a new inbox for email testing. Use when you need to set up an inbox for testing email campaigns. |
| `BENCHMARK_EMAIL_CREATE_SEGMENT_FROM_CONTACT_IDS` | Create Segment from Contact IDs | Tool to create a segment from a list of contact IDs. Use after collecting contact IDs to group them into a segment. |
| `BENCHMARK_EMAIL_CREATE_SIGNUP_FORM` | Create Signup Form | Tool to create a new signup form for collecting email subscribers. Use when you need to set up a subscription form with associated contact lists. |
| `BENCHMARK_EMAIL_DELETE_ABSPLIT_CAMPAIGN` | Delete ABSplit Campaign | Tool to delete an ABSplit campaign configuration from an email. Use when removing A/B split test settings from a campaign by its ID. |
| `BENCHMARK_EMAIL_DELETE_AB_TEST_EMAIL` | Delete AB Test Email | Tool to move an AB test email to trash. Use when removing an AB split test by its ID. |
| `BENCHMARK_EMAIL_DELETE_A_POLL` | Delete A Poll | Tool to delete a poll by its ID. Use when removing a poll from the system. |
| `BENCHMARK_EMAIL_DELETE_A_SURVEY` | Delete A Survey | Tool to delete a survey by its ID. Use when removing a survey from the system. |
| `BENCHMARK_EMAIL_DELETE_AUTOMATION` | Delete Automation | Tool to delete an automation by its ID. Use when removing an automation workflow after confirming the automation ID is correct. |
| `BENCHMARK_EMAIL_DELETE_AUTOMATION_EMAIL` | Delete Automation Email | Tool to delete an automation email from an automation workflow. Use when removing a specific email from an automation sequence by providing both the automation ID and automation email ID. |
| `BENCHMARK_EMAIL_DELETE_CONTACT_FROM_ALL_LISTS_BY_ID` | Delete Contact From All Lists By ID | Tool to delete a specific contact from all lists by list ID and contact ID. Use when you need to remove a contact globally from all lists using the contact details page. |
| `BENCHMARK_EMAIL_DELETE_CONTACT_FROM_LIST` | Delete Contact From List | Tool to delete a contact from a specific list by ContactID. Use when you have list and contact IDs. Example: "Delete contact 2040826674 from list 15257899" |
| `BENCHMARK_EMAIL_DELETE_CONTACT_FROM_SEARCH` | Delete Contact From Search | Tool to delete a contact from the search contact page. Use when you need to remove a contact by its ContactID directly from the search results. |
| `BENCHMARK_EMAIL_DELETE_CONTACT_LIST` | Delete Contact List | Tool to delete a contact list. Use after confirming that the list is no longer in use. |
| `BENCHMARK_EMAIL_DELETE_CONTACTS_FROM_ALL_LISTS` | Delete Contacts From All Lists | Tool to delete selected contacts from all lists. Use when you need to remove contacts globally across all lists, optionally filtered by search or filter criteria. |
| `BENCHMARK_EMAIL_DELETE_CONTACTS_FROM_CURRENT_LISTS` | Delete Contacts From Current Lists | Tool to delete selected contacts from current lists. Use when you need to remove contacts from current lists, filtered by search or filter criteria. |
| `BENCHMARK_EMAIL_DELETE_EMAIL` | Delete Email Campaign | Tool to delete an email campaign. Use when removing a campaign by its ID. Use after confirming the campaign ID is correct. |
| `BENCHMARK_EMAIL_DELETE_EMAIL_FROM_ARCHIVE` | Delete Email from Archive | Tool to delete an email from the archive. Use when removing an archived email by its archive ID. |
| `BENCHMARK_EMAIL_DELETE_EMAIL_FROM_TRASH` | Permanently Delete Email from Trash | Tool to permanently delete an email from trash. Use when permanently removing a trashed email by its ID. This action cannot be undone. |
| `BENCHMARK_EMAIL_DELETE_IMAGE` | Delete Image | Tool to delete an image by its ID. Use when removing an image from the Benchmark Email account after confirming the image ID is correct. |
| `BENCHMARK_EMAIL_DELETE_INBOX` | Delete Inbox | Tool to delete an inbox by its ID. Use after confirming the inbox ID is correct. |
| `BENCHMARK_EMAIL_DELETE_LINK_ACCOUNT` | Delete Linked Agency Account | Tool to delete a linked agency account. Use when revoking a linked agency account by its ID. Use after confirming the account ID is correct. |
| `BENCHMARK_EMAIL_DELETE_LIST` | Delete List | Tool to delete one or more contact lists by their IDs. Use after confirming that the lists are no longer needed. |
| `BENCHMARK_EMAIL_DELETE_PRODUCT_ASSOCIATION` | Delete Product Association | Tool to delete a Shopify product association from Benchmark Email. Use when removing a product integration between Shopify and Benchmark Email. |
| `BENCHMARK_EMAIL_DELETE_SEGMENT` | Delete Segment | Tool to delete a contact segment by its ID. Use after confirming the segment ID is correct. |
| `BENCHMARK_EMAIL_DELETE_SEGMENT_CRITERIA` | Delete Segment Criteria | Tool to delete criteria from a segment. Use after confirming the segment ID exists. |
| `BENCHMARK_EMAIL_DELETE_TRASH_LIST` | Delete Trash List | Tool to delete all trash contacts from a list. Use when cleaning up trash contacts from a specific list. |
| `BENCHMARK_EMAIL_DELETE_VIDEO` | Delete Video | Tool to delete one or more videos by their IDs. Use when removing videos from the Benchmark Email account after confirming the video IDs are correct. |
| `BENCHMARK_EMAIL_DELETE_WEBHOOK` | Delete Webhook | Tool to delete a webhook from a contact list by its ID. Use when removing obsolete or invalid webhooks after confirming list and webhook details. |
| `BENCHMARK_EMAIL_DISCONNECT_EBAY` | Disconnect eBay Integration | Tool to disconnect the eBay integration from the authenticated account. Use when removing eBay integration or revoking eBay access. |
| `BENCHMARK_EMAIL_DISCONNECT_ETSY_INTEGRATION` | Disconnect Etsy Integration | Tool to disconnect Etsy integration from the Benchmark Email account. Use when removing the connection between Benchmark Email and Etsy e-commerce platform. |
| `BENCHMARK_EMAIL_DISCONNECT_EVENTBRITE` | Disconnect Eventbrite Integration | Tool to disconnect the Eventbrite integration from Benchmark Email account. Use when removing Eventbrite integration to stop syncing event attendees. |
| `BENCHMARK_EMAIL_DISCONNECT_FACEBOOK` | Disconnect Facebook Integration | Tool to disconnect Facebook integration from Benchmark Email account. Use when revoking Facebook integration. Returns status 1 on success, -1 on error. |
| `BENCHMARK_EMAIL_DISCONNECT_FACEBOOK_EVENTS` | Disconnect Facebook Events | Tool to disconnect the Facebook Events integration from Benchmark Email. Use when removing the Facebook Events connection from the account. |
| `BENCHMARK_EMAIL_DISCONNECT_INSTAGRAM` | Disconnect Instagram Integration | Tool to disconnect the Instagram integration from Benchmark Email account. Use when revoking Instagram access or removing the Instagram connection. |
| `BENCHMARK_EMAIL_DISCONNECT_LINKED_IN` | Disconnect LinkedIn Integration | Tool to disconnect the LinkedIn integration from the Benchmark Email account. Use when removing LinkedIn social media integration. |
| `BENCHMARK_EMAIL_DISCONNECT_PINTEREST_CONNECTION` | Disconnect Pinterest Connection | Tool to disconnect the Pinterest integration from the Benchmark Email account. Use when removing Pinterest connection or revoking Pinterest access. |
| `BENCHMARK_EMAIL_DISCONNECT_SALESFORCE` | Disconnect Salesforce Integration | Tool to disconnect the Salesforce integration from Benchmark Email account. Use when revoking the Salesforce CRM connection. |
| `BENCHMARK_EMAIL_DISCONNECT_SHOPIFY` | Disconnect Shopify | Tool to disconnect Shopify integration from Benchmark Email. Use when removing the connection between Shopify and Benchmark Email accounts. |
| `BENCHMARK_EMAIL_DISCONNECT_TWITTER` | Disconnect Twitter Integration | Tool to disconnect Twitter integration from Benchmark Email account. Use when removing Twitter integration. |
| `BENCHMARK_EMAIL_DOWNLOAD_CONTACT_REPORT` | Download Contact Report | Tool to download contact list report. Use when you need to export or download contact data for a specific list. |
| `BENCHMARK_EMAIL_GENERATE_TICKET` | Generate Support Ticket | Tool to generate a support ticket. Use when you need to create a help desk ticket for customer support or technical assistance. |
| `BENCHMARK_EMAIL_GET_AB_SPLIT_DETAILS` | Get AB Split Details | Tool to get details for an AB split test by email ID. Use when you need to retrieve A/B test configuration and status for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_AB_SPLIT_RESULTS` | Get AB Split Results | Tool to get the results for an AB split test. Use when retrieving performance metrics and outcomes of A/B test campaigns. |
| `BENCHMARK_EMAIL_GET_AB_TEST_REPORT` | Get AB Test Report | Tool to retrieve AB split test reports with pagination. Use when you need to fetch A/B test campaign results. |
| `BENCHMARK_EMAIL_GET_ABUSE_CAMPAIGN_REPORT_BY_EMAIL_ID` | Get Abuse Campaign Report By Email ID | Tool to get abuse campaign report for an email by ID. Use when you need to retrieve abuse report data for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_ABUSE_REPORT` | Get Abuse Report | Tool to get abuse report containing statistics about email abuse complaints. Use when you need to review abuse complaint metrics and rates. |
| `BENCHMARK_EMAIL_GET_A_CAMPAIGN_LIST_OF_ENGAGEMENT` | Get Campaign Engagement List | Tool to retrieve campaign engagement statistics. Use when you need to analyze campaign performance metrics including opens, clicks, bounces, and unsubscribes. |
| `BENCHMARK_EMAIL_GET_ACCOUNT_SUMMARY` | Get account summary | Tool to get account summary including plan type and image storage limit. Use when checking available image storage space. |
| `BENCHMARK_EMAIL_GET_ACTIVE_CONTACT_COUNT` | Get Active Contact Count | Tool to get the total count of all active contacts/emails in the account. Use when you need to retrieve the active contact count. |
| `BENCHMARK_EMAIL_GET_A_LIST_OF_AB_TESTS` | Get a List of AB Tests | Tool to retrieve a list of AB tests with optional filtering and pagination. Use when you need to list or search AB test campaigns. |
| `BENCHMARK_EMAIL_GET_A_LIST_OF_IMAGES` | Get a list of images | Tool to retrieve a list of images. Use when you need to list or search images from the account. |
| `BENCHMARK_EMAIL_GET_ALL_CONFIRMED_EMAILS` | Get All Confirmed Emails | Tool to retrieve all confirmed email addresses for the client account. Use after user completes email confirmation flows to fetch final list. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_DOMAIN_NAME` | Get Archive Domain Name | Tool to get the archive domain name for the client. Use when you need to retrieve the configured domain name for email archives. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_EMAIL_DETAILS` | Get Archive Email Details | Tool to get details of an archived email by its ArchiveID. Use when you need to retrieve information about a specific archived email. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_EMAILS` | Get Archive Emails | Tool to retrieve a list of emails from the archive. Use when you need to list or search archived emails. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_HOME_DATA` | Get Archive Home Data | Tool to get archive home data for a specific domain and type. Use when retrieving details of an archived email by its domain identifier. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_HOME_PAGE` | Get Archive Home Page | Tool to get the archive home page containing archive entries. Use when retrieving archive listing or home page data. |
| `BENCHMARK_EMAIL_GET_ARCHIVE_PAGES` | Get Archive Pages | Tool to retrieve list of archive pages. Use when you need to view or list all archive pages in the account. |
| `BENCHMARK_EMAIL_GET_AUTOMATION_DETAILS` | Get automation details | Tool to get details of an automation by its ID. Use when you need to retrieve information about a specific automation workflow. |
| `BENCHMARK_EMAIL_GET_AUTOMATION_EMAIL_DETAILS` | Get Automation Email Details | Tool to get details for an automation email. Use when retrieving configuration and settings of a specific email in an automation workflow. |
| `BENCHMARK_EMAIL_GET_AUTOMATION_SUMMARY_REPORT` | Get automation summary report | Tool to get summary report of an automation by ID. Use when you need to retrieve performance metrics and statistics for a specific automation workflow. |
| `BENCHMARK_EMAIL_GET_BADGES_LIST` | Get Badges List | Tool to retrieve all available email badges. Use when you need to list or view badge information. |
| `BENCHMARK_EMAIL_GET_BOUNCES_REPORT_BY_EMAIL_ID` | Get Bounces Report By Email ID | Tool to get bounces report for an email campaign by ID. Use when you need to retrieve information about bounced emails for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_CAMPAIGN_HISTORY_BY_EMAIL_ID` | Get Campaign History By Email ID | Tool to get campaign history for an email by ID. Use when you need to retrieve historical campaign data for a specific email. |
| `BENCHMARK_EMAIL_GET_CLICK_CONTACT_COUNT` | Get Click Contact Count | Tool to get click contact count for email campaigns. Use when you need to retrieve the count of contacts who clicked on emails. |
| `BENCHMARK_EMAIL_GET_CLICK_HEATMAP_BY_EMAIL_ID` | Get Click HeatMap By Email ID | Tool to get click heatmap report for an email by ID. Use when you need to analyze the click patterns and visualize which links in an email campaign received the most engagement. |
| `BENCHMARK_EMAIL_GET_CLICK_PERFORMANCE_BY_EMAIL_ID` | Get Click Performance By Email ID | Tool to get click performance report for an email by ID. Use when you need to retrieve click performance metrics for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_CLICK_PERFORMANCE_DETAILS_BY_EMAIL` | Get Click Performance Details By Email | Tool to get click performance details for an email campaign by ID. Use when you need detailed click tracking data including who clicked, when, and which links were clicked. |
| `BENCHMARK_EMAIL_GET_CLICKS_REPORT_BY_EMAIL_ID` | Get Clicks Report By Email ID | Tool to get clicks report for an email by ID. Use when you need to retrieve the list of contacts who clicked links in a specific email campaign. |
| `BENCHMARK_EMAIL_GET_CLICK_URL_CONTACT_COUNT` | Get Click URL Contact Count | Tool to get click URL contact count of engagement metrics. Use when you need to retrieve engagement statistics for campaign URLs. |
| `BENCHMARK_EMAIL_GET_CLIENT_ACCOUNT_SETTINGS` | Get Client Account Settings | Tool to get client account settings such as company, language, timezone, and sender info. Use when you need to fetch account configuration before sending campaigns. |
| `BENCHMARK_EMAIL_GET_CLIENT_DETAILS` | Get client details | Tool to get client details including profile data, contact count, and plan information. Use when verifying account profile and limits. |
| `BENCHMARK_EMAIL_GET_CLIENT_FILTER_DOMAIN` | Get client filter domain | Tool to get client filter domains. Use when you need to retrieve the list of whitelisted domains. |
| `BENCHMARK_EMAIL_GET_CLIENT_PLAN_INFORMATION` | Get Client Plan Information | Tool to get client's plan information including addons, email plan, and total contacts. Use when you need the current plan details before managing upgrades or billing. |
| `BENCHMARK_EMAIL_GET_CLIENT_PROFILE_DETAILS` | Get client profile details | Tool to get client's profile details like business city, country, phone, and company. Use after confirming authentication to fetch client profile info. |
| `BENCHMARK_EMAIL_GET_CLIENTS_RATING_RANGE` | Get clients rating range | Tool to get clients rating range including min, max, and current rating values. Use when you need to retrieve rating information for the authenticated client. |
| `BENCHMARK_EMAIL_GET_COMMISSION_LIST` | Get Commission List | Tool to get the partner commission list. Use when you need to retrieve commission information for partners. |
| `BENCHMARK_EMAIL_GET_COMMUNITY_CATEGORY` | Get Community Category | Tool to retrieve a list of available community categories. Use when you need to get available category options before adding an email to the community. |
| `BENCHMARK_EMAIL_GET_COMMUNITY_DOMAIN` | Get community domain | Tool to get the community domain name for the client. Use when you need to retrieve the configured domain for the community. |
| `BENCHMARK_EMAIL_GET_COMMUNITY_EMAIL_BY_ID` | Get Community Email By ID | Tool to get details of a community email by ID. Use when you need to retrieve information about a specific community email. |
| `BENCHMARK_EMAIL_GET_CONTACT_AUDIT_HISTORY` | Get Contact Audit History | Tool to retrieve audit history for contacts in a specific list. Use when you need to track changes and actions performed on contacts. |
| `BENCHMARK_EMAIL_GET_CONTACT_AUDIT_HISTORY_DETAIL` | Get Contact Audit History Detail | Tool to get detailed audit history for a specific batch and group of contact changes. Use after getting BatchID and GroupID from the audit history endpoint to retrieve detailed information about contact modifications. |
| `BENCHMARK_EMAIL_GET_CONTACT_DETAILS` | Get Contact Details | Tool to retrieve detailed information for a specific contact including custom field values and rating. Use when you need complete contact details from a list. |
| `BENCHMARK_EMAIL_GET_CONTACT_IMPORT_STATUS` | Get Contact Import Status | Tool to get the status of contact import operations. Use when you need to check the progress or results of a contact import. |
| `BENCHMARK_EMAIL_GET_CONTACT_LIST_DEEP_VIEW` | Get Contact List Deep View | Tool to fetch deep view of contact list(s) including all fields and field types. Use when you need comprehensive list metadata and structure information. |
| `BENCHMARK_EMAIL_GET_CONTACT_LIST_DETAILS` | Get Contact List Details | Tool to fetch detailed information for a contact list. Use after confirming the list ID to retrieve all metadata. |
| `BENCHMARK_EMAIL_GET_CONTACT_LIST_FIELD_NAMES` | Get Contact List Field Names | Tool to retrieve field names and attributes for a contact list. Use when you need to get available fields for a specific list. |
| `BENCHMARK_EMAIL_GET_CONTACT_LISTS` | Get Contact Lists | Tool to retrieve all contact lists. Use when you need to list or select a contact list. |
| `BENCHMARK_EMAIL_GET_CONTACT_LISTS_SHOPIFY` | Get Contact Lists for Shopify | Tool to get Shopify integration contact lists and configuration. Use when retrieving Shopify integration settings or verifying connected contact lists for Shopify. |
| `BENCHMARK_EMAIL_GET_CONTACT_LIST_SUMMARY` | Get contact list summary | Tool to get summary details and performance metrics of a contact list. Use when you need to retrieve statistics and counts for a specific contact list. |
| `BENCHMARK_EMAIL_GET_CONTACT_MERGE_LIST` | Get Contact Merge List | Tool to retrieve a list of contact lists that can be merged with a specified list. Use when you need to find compatible lists for merging contacts. |
| `BENCHMARK_EMAIL_GET_CONTACT_REPORT_HISTORY` | Get Contact Report History | Tool to get engagement history for a specific contact by email address. Use when you need to review which campaigns a contact has interacted with and their engagement metrics. |
| `BENCHMARK_EMAIL_GET_CONTACTS_COUNT` | Get Contacts Count | Tool to get the count of contacts in specified lists and segments. Use when you need to know how many contacts exist in particular lists or segments without retrieving the full contact data. |
| `BENCHMARK_EMAIL_GET_CONTACTS_IN_LIST` | Get Filtered Contacts in List | Tool to fetch filtered and paginated contacts from a list by ListID. Use when narrowing a list via search, filters, and paging. |
| `BENCHMARK_EMAIL_GET_CURRENT_EMAIL_AT_TIME_OF_RESET` | Get Current Email at Time of Reset | Tool to get the current email address at the time of a reset request. Use when verifying the email associated with a password reset or email change operation. |
| `BENCHMARK_EMAIL_GET_DELETE_LIST_CHECK` | Get Delete List Check | Tool to check if contact lists can be deleted. Use before attempting to delete lists to verify deletion eligibility. |
| `BENCHMARK_EMAIL_GET_DETAILS_ABOUT_ARCHIVE_PAGE` | Get Details About Archive Page | Tool to get details about the archive page including URLs, share settings, and domain. Use when you need to retrieve archive page configuration and URLs. |
| `BENCHMARK_EMAIL_GET_DETAILS_OF_POLL` | Get Details Of Poll | Tool to retrieve details of a specific poll by ID. Use when you need information about a poll including its question, embed code, and share links. |
| `BENCHMARK_EMAIL_GET_DIGIOH_USERNAME` | Get Digioh Username | Tool to get Digioh username for the authenticated account. Use when checking Digioh integration status or retrieving the associated username. |
| `BENCHMARK_EMAIL_GET_DMARC_LIST` | Get DMARC List | Tool to retrieve DMARC (Domain-based Message Authentication, Reporting & Conformance) list for the client account. Use when you need to view domain authentication records. |
| `BENCHMARK_EMAIL_GET_DOWNLOAD_REPORT` | Get Download Report | Tool to get download report for a contact list. Use when you need to retrieve the download URL or status for a specific contact list. |
| `BENCHMARK_EMAIL_GET_DOWNLOAD_SEGMENT_DATA` | Get download segment data | Tool to retrieve segment data for download. Use when you need to export or download contact data from a specific segment. |
| `BENCHMARK_EMAIL_GET_EBAY_SELLER_ID` | Get eBay Seller ID | Tool to get the eBay Seller ID for the authenticated account. Use when retrieving eBay integration details or verifying eBay connection status. |
| `BENCHMARK_EMAIL_GET_EBAY_SITE_LIST` | Get eBay Site List | Tool to retrieve a list of available eBay sites for integration. Use when you need to get eBay site options for connecting eBay accounts. |
| `BENCHMARK_EMAIL_GET_EDITOR_INTEGRATION_CONNECTION_LIST` | Get Integration Connection List | Tool to retrieve the list of editor integration connections. Use when you need to view or list connected integrations. |
| `BENCHMARK_EMAIL_GET_EMAIL_DETAILS` | Get email campaign details | Tool to get details for a specific email campaign by ID. Use when needing campaign information such as subject, sender, schedule, and contact lists. |
| `BENCHMARK_EMAIL_GET_EMAIL_OPENS_BY_COUNTRY_REGION` | Get Email Opens by Country and Region | Tool to get a list of contacts who opened an email from a specific country and region. Use when you need geographic engagement data for email campaigns. |
| `BENCHMARK_EMAIL_GET_EMAIL_PREVIEW` | Get Email Preview | Tool to get the preview of an email campaign. Use when you need to view the email content before sending. |
| `BENCHMARK_EMAIL_GET_EMAIL_RECIPIENT_COUNT` | Get Email Recipient Count | Tool to get the recipient count for an email campaign. Use when you need to know how many contacts will receive or have received a specific email campaign. |
| `BENCHMARK_EMAIL_GET_EMAIL_REPORT` | Get Email Report | Tool to get email reports with pagination and filtering options. Use when you need to retrieve a list of email campaign reports. |
| `BENCHMARK_EMAIL_GET_EMAIL_REPORT_FORWARDS` | Get Email Report Forwards | Tool to get forwards report for an email campaign. Use after campaign send to export its forwards. |
| `BENCHMARK_EMAIL_GET_EMAIL_SPAM_CHECK` | Get Email Spam Check | Tool to check spam score for an email campaign by ID. Use when you need to verify if an email campaign passes spam filters before sending. |
| `BENCHMARK_EMAIL_GET_ETSY_STORE_NAME` | Get Etsy Store Name | Tool to get the connected Etsy store name. Use when verifying Etsy integration status or retrieving store details. |
| `BENCHMARK_EMAIL_GET_EVENTBRITE_USERNAME` | Get Eventbrite Username | Tool to get the Eventbrite username associated with the Benchmark Email account. Use when verifying Eventbrite integration status or retrieving connected username. |
| `BENCHMARK_EMAIL_GET_FACEBOOK_ACCOUNT_HOLDER` | Get Facebook Account Holder | Tool to get Facebook account holder information. Use when you need to retrieve details about the connected Facebook account. |
| `BENCHMARK_EMAIL_GET_FACEBOOK_ACCOUNT_NAME` | Get Facebook Account Name | Tool to get the Facebook account name from Facebook Events integration. Use when retrieving the connected Facebook account information. |
| `BENCHMARK_EMAIL_GET_FILTERED_CONTACTS_WITH_EXTRA_FIELDS` | Get Filtered Contacts with Extra Fields | Tool to fetch filtered and paginated contacts with custom/extra fields from a list by ListID. Use when you need contact data including custom field values along with standard contact information. |
| `BENCHMARK_EMAIL_GET_FORWARDS_REPORT_BY_EMAIL_ID` | Get Forwards Report By Email ID | Tool to get forwards report for an email campaign by ID. Use when you need to retrieve the list of contacts who forwarded a specific email. |
| `BENCHMARK_EMAIL_GET_FULL_REPORT_OF_SURVEY` | Get Full Report of Survey | Tool to retrieve the full report of a survey including all responses and answers. Use when you need to analyze survey results and response data. |
| `BENCHMARK_EMAIL_GET_HTML_FOR_ARCHIVE_NEWSLETTER` | Get HTML for Archive Newsletter | Tool to get HTML content for an archive newsletter by domain and URL. Use when you need to retrieve the HTML content of an archived email campaign. |
| `BENCHMARK_EMAIL_GET_HTML_FOR_BUTTON` | Get HTML for Button | Tool to get HTML content for a button URL from the archive. Use when you need to retrieve the HTML markup for a specific button by its ID. |
| `BENCHMARK_EMAIL_GET_HTML_SIGNUP_FORM` | Get HTML Signup Form | Tool to retrieve HTML and JavaScript embed code for a Tumbler signup form. Use when you need to get the complete embed code including jQuery dependencies and colorbox popup functionality for newsletter signup integration. |
| `BENCHMARK_EMAIL_GET_IMAGE_DETAILS` | Get image details | Tool to get details of a specific image by its ID. Use when retrieving information about a single image including its URL, size, and dates. |
| `BENCHMARK_EMAIL_GET_IMAGE_FOR_BUTTON` | Get Image for Button | Tool to get HTML code for an 'Image' style archive button. This returns a pre-defined HTML snippet with an embedded image button for newsletter archive access. Similar to GetHtmlForButton but specifically returns the 'Image' button style variant. |
| `BENCHMARK_EMAIL_GET_INBOX_DETAIL_RESULT` | Get Inbox Detail Result | Tool to get inbox detail test statistics including total purchases, tests used, and remaining balance. Use when you need to check inbox testing capacity and usage. |
| `BENCHMARK_EMAIL_GET_INBOX_LIST` | Get Inbox List | Tool to retrieve inbox list with optional filtering and pagination. Use when you need to list or search inbox entries. |
| `BENCHMARK_EMAIL_GET_INBOX_MASTER_RESULT` | Get inbox master result | Tool to get Inbox Master Result by ID. Use when retrieving inbox information for a specific inbox identifier. |
| `BENCHMARK_EMAIL_GET_INDIVIDUAL_QUESTION_RESULT_DETAIL_IN` | Get Individual Question Result Detail in Survey | Tool to get individual question result details for a specific respondent in a survey by email address. Use when retrieving detailed survey response data for a single participant. |
| `BENCHMARK_EMAIL_GET_INTEGRATION_AUTH_URL` | Get Integration Authorization URL | Tool to get the OAuth authorization URL for integrating with third-party platforms. Use when setting up integrations with services like SurveyMonkey, EventBrite, Instagram, Facebook, or Twitter. |
| `BENCHMARK_EMAIL_GET_LAYOUT_LIST` | Get layout list | Tool to retrieve a list of email layouts. Use when you need to list or select a layout for email campaigns. |
| `BENCHMARK_EMAIL_GET_LINK_ACCOUNT_DETAILS` | Get Linked Agency Account Details | Tool to get details of a linked agency account. Use when retrieving info for a specific linked account by ID after confirming the account exists. |
| `BENCHMARK_EMAIL_GET_LINK_DETAIL_BY_EMAIL_ID` | Get Link Detail By Email ID | Tool to get link detail report for an email campaign by ID. Use when you need to retrieve detailed link click statistics for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_LINKED_IN_TOKEN` | Get LinkedIn Token | Tool to get LinkedIn integration token information. Use when checking LinkedIn connection status or retrieving LinkedIn token details. |
| `BENCHMARK_EMAIL_GET_LIST_LINK_ACCOUNTS` | Get Linked Agency Accounts | Tool to get list of linked agency accounts. Use after linking agency accounts to retrieve all associated accounts. |
| `BENCHMARK_EMAIL_GET_LIST_MAPPING` | Get list mapping | Tool to get the field mapping of an uploaded contact list file. Use when you need to retrieve how the uploaded file fields are mapped to Benchmark Email list fields. |
| `BENCHMARK_EMAIL_GET_LIST_OF_CONFIRMED_EMAILS` | Get List of Confirmed Emails | Tool to retrieve a list of confirmed email addresses for the client account. Use when you need a simple list of confirmed emails without detailed metadata. |
| `BENCHMARK_EMAIL_GET_LIST_OF_EMAILS` | Get List of Emails | Tool to retrieve all email campaigns with optional filters and pagination. Use when you need to list, search, or select an email campaign. |
| `BENCHMARK_EMAIL_GET_LIST_OF_GIPHY_IMAGES` | Get list of Giphy images | Tool to retrieve a list of Giphy images. Use when you need to list or search Giphy images available in the account. |
| `BENCHMARK_EMAIL_GET_LIST_OF_HELP_TOPICS` | Get List of Help Topics | Tool to retrieve help topics from Benchmark Email. Use when you need to browse or search available help resources. |
| `BENCHMARK_EMAIL_GET_LIST_OF_POLLS` | Get List of Polls | Tool to retrieve a list of polls. Use when you need to list or search polls from the account. |
| `BENCHMARK_EMAIL_GET_LIST_SHOPIFY_PRODUCTS` | Get List of Shopify Products | Tool to get a list of Shopify products in HTML format. Use when you need to retrieve Shopify product data for integration purposes. |
| `BENCHMARK_EMAIL_GET_LIST_UPLOAD_TERMS` | Get List Upload Terms | Tool to get list upload terms from Benchmark Email. Use when retrieving terms and conditions for list uploads. |
| `BENCHMARK_EMAIL_GET_MAGENTO_HTML_DROP` | Get Magento HTML dropdown | Tool to get Magento signup form dropdown HTML. Use when integrating Magento with email marketing campaigns. |
| `BENCHMARK_EMAIL_GET_MAGENTO_HTML_SELECTED` | Get Magento HTML Selected | Tool to retrieve Magento HTML code for a selected signup form. Use when you need to get the HTML and JavaScript code to integrate a Benchmark Email signup form with a Magento store's newsletter subscription. |
| `BENCHMARK_EMAIL_GET_NON_CONTACT_COUNT` | Get Non Contact Count | Tool to get the count of non-contacts based on email IDs and filter criteria. Use when you need to count recipients who are not in the contact list for specific campaigns. |
| `BENCHMARK_EMAIL_GET_NOTIFICATION` | Get notification | Tool to get client notifications from Benchmark Email. Use when checking for account alerts or messages. |
| `BENCHMARK_EMAIL_GET_OPEN_CONTACT_COUNT` | Get Open Contact Count | Tool to get the count of contacts who opened specified email campaigns. Use when you need to retrieve engagement metrics for email campaigns by counting unique contacts who opened one or more emails. |
| `BENCHMARK_EMAIL_GET_OPENS_HOURLY_REPORT_BY_EMAIL` | Get Opens Hourly Report By Email | Tool to get hourly opens report for an email campaign by ID. Use when you need to analyze the hour-by-hour pattern of email opens for a specific campaign. |
| `BENCHMARK_EMAIL_GET_OPENS_LOCATION_REPORT` | Get Opens Location Report | Tool to get a list of contacts by location for an email campaign's opens. Use when you need geographic distribution data of email opens. |
| `BENCHMARK_EMAIL_GET_OPENS_LOCATION_REPORT_BY_EMAIL` | Get Opens Location Report By Email | Tool to get a list of contacts who opened an email from a specific country. Use when you need geographic engagement data for email campaigns by country. |
| `BENCHMARK_EMAIL_GET_OPENS_REPORT` | Get Opens Report | Tool to get opens report for an email campaign by ID. Use when you need to retrieve information about contacts who opened a specific email campaign. |
| `BENCHMARK_EMAIL_GET_PARTNER_PROFILE_DETAILS` | Get Partner Profile Details | Tool to get partner profile details including company information and payment settings. Use when you need to fetch partner account configuration and payment preferences. |
| `BENCHMARK_EMAIL_GET_PAYPAL_LINK` | Get PayPal Integration Link | Tool to retrieve the PayPal integration callback URL for a specific contact list. Use when you need to get the PayPal integration link for a list. |
| `BENCHMARK_EMAIL_GET_PAYPAL_LISTS` | Get PayPal Contact Lists | Tool to get contact lists formatted for PayPal integration. Returns HTML select dropdown with available contact lists. |
| `BENCHMARK_EMAIL_GET_PINTEREST_USERNAME` | Get Pinterest Username | Tool to retrieve the Pinterest username associated with the Benchmark Email account. Use when checking Pinterest integration status or fetching connected Pinterest username. |
| `BENCHMARK_EMAIL_GET_POLL_RESPONSE_REPORT` | Get Poll Response Report | Tool to retrieve the response report of a poll by ID. Use when you need to analyze poll results and response data. |
| `BENCHMARK_EMAIL_GET_PREVIEW_OF_A_POLL` | Get Preview of a Poll | Tool to get a preview/render of a poll by its ID. Use when you need to see how a poll will appear. |
| `BENCHMARK_EMAIL_GET_REFERRALS_LEVEL1_LIST` | Get referrals level 1 list | Tool to get level 1 referrals list for a specific month and year. Use when you need to retrieve partner referral data. |
| `BENCHMARK_EMAIL_GET_REFERRALS_LIST` | Get Referrals List | Tool to retrieve the list of partner referrals. Use when you need to view referral information for commission tracking. |
| `BENCHMARK_EMAIL_GET_REPORT_ANSWER_COMMENT_IN_SURVEY` | Get Report Answer Comment in Survey | Tool to retrieve comment answers from a survey report for a specific question. Use when analyzing open-ended or comment-type responses from survey participants. |
| `BENCHMARK_EMAIL_GET_REPORT_ANSWER_OTHER_IN_SURVEY` | Get Report Answer Other in Survey | Tool to retrieve 'other' text answers from survey questions that have an 'other' option. Use when you need to analyze free-text responses that don't fit predefined answer choices. |
| `BENCHMARK_EMAIL_GET_REPORT_ANSWER_TEXT_IN_SURVEY` | Get Report Answer Text in Survey | Tool to retrieve text answers from survey questions. Use when you need to analyze free-text responses to survey questions. |
| `BENCHMARK_EMAIL_GET_REPORT_DETAILS_BY_AB_TEST` | Get Report Details By AB Test | Tool to get report details for a specific AB split test by ID and ABID. Use when you need to retrieve detailed metrics and statistics for a particular A/B test campaign. |
| `BENCHMARK_EMAIL_GET_REPORT_DETAILS_BY_EMAIL_ID` | Get Report Details By Email ID | Tool to get detailed report summary for an email campaign by ID. Use when you need to review performance metrics like opens, clicks, bounces, and unsubscribes for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_REPORT_DOWNLOAD` | Get Report Download | Tool to download email campaign report by type. Use when you need to export clicks, forwards, bounces, complaints, or unsubscribe data for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_REPORT_LIST_OF_SURVEY` | Get Report List of Survey | Tool to retrieve a paginated list of survey reports. Use when you need to view or analyze survey report data across multiple surveys. |
| `BENCHMARK_EMAIL_GET_REPORT_OF_SURVEY_INDIVIDUAL_RESULT` | Get Report of Survey Individual Result | Tool to retrieve paginated individual survey results showing who responded and when. Use when you need to list all survey participants and their response metadata. |
| `BENCHMARK_EMAIL_GET_REPORTS_FOR_AUTORESPONDERS` | Get Reports for Autoresponders | Tool to get reports for autoresponders with pagination and filtering options. Use when you need to retrieve automation campaign reports or analyze autoresponder performance. |
| `BENCHMARK_EMAIL_GET_RESEND_CONFIRM_EMAIL` | Resend Confirm Email | Tool to resend confirmation email to a specific email address. Use when an email address needs to receive a new confirmation link. |
| `BENCHMARK_EMAIL_GET_RSS_HISTORY_BY_EMAIL_ID` | Get RSS History By Email ID | Tool to get RSS history for an email campaign by ID. Use when you need to retrieve RSS feed history for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_SALESFORCE_INTEGRATION` | Get Salesforce Integration Status | Tool to get Salesforce integration status and details from Benchmark Email account. Use when checking if Salesforce CRM is connected. |
| `BENCHMARK_EMAIL_GET_SAVE_AS_LIST` | Get save as list | Tool to retrieve save-as-list data with optional filters. Use when you need to query lists that were saved from email campaigns, events, or AB tests. |
| `BENCHMARK_EMAIL_GET_SCHEME` | Get Scheme | Tool to retrieve color schemes with optional filtering. Use when fetching default or saved color schemes for email templates. |
| `BENCHMARK_EMAIL_GET_SEGMENT_AUTO_GENERATE_NAME` | Get Segment Auto Generate Name | Tool to get an auto-generated segment name for a list. Use when creating segments to get a default name suggestion. |
| `BENCHMARK_EMAIL_GET_SEGMENT_BY_ID` | Get Segment by ID | Tool to retrieve details of a specific contact segment by its ID. Use when you need to get information about a particular segment. |
| `BENCHMARK_EMAIL_GET_SEGMENT_DETAILS` | Get Segment Details | Tool to retrieve contact details from a specific segment with optional filtering, pagination, and sorting. Use when you need to access the contacts within a segment. |
| `BENCHMARK_EMAIL_GET_SEGMENT_LIST` | Get Segment List | Tool to retrieve segment lists for a specific contact list by ListID. Use when you need to get all segments associated with a particular contact list. |
| `BENCHMARK_EMAIL_GET_SEGMENTS` | Get Segments | Tool to retrieve a paginated list of contact segments. Use when you need to list or find segments with optional filtering and sorting. |
| `BENCHMARK_EMAIL_GET_SHOPIFY_PRODUCT_LIST_TABULAR` | Get Shopify Product List Tabular | Tool to get Shopify product list in tabular (HTML) format. Use when you need to retrieve product data from a Shopify integration. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_BUTTON_CODE` | Get Signup Form Button Code | Tool to get the code for the signup form button. Use when you need to retrieve the HTML/JavaScript code snippet for embedding a signup form button on a website. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_CONTACT_FIELDS` | Get Signup Form Contact Fields | Tool to get the contact fields of a signup form by ID. Use when you need to retrieve the list of contact fields configured for a specific signup form. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_DETAILS` | Get Signup Form Details | Tool to get details for a specific signup form by ID. Use when needing information about a signup form's configuration and associated contact lists. |
| `BENCHMARK_EMAIL_GET_SIGNUPFORM_FOR_MAGENTO` | Get SignupForm for Magento | Tool to get SignupForm data for Magento integration. Use when you need to retrieve signup form configuration for integrating with a Magento store. |
| `BENCHMARK_EMAIL_GET_SIGNUPFORM_FOR_UNBOUNCE` | Get SignupForm For Unbounce | Tool to retrieve signup form integration data for Unbounce. Use when you need to get the Unbounce integration URL or configuration for a specific contact master ID. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_LINK` | Get Signup Form Link | Tool to get the link URL for a specific signup form. Use when needing the public URL for a signup form to share or embed. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_LIST` | Get Signup Form List | Tool to retrieve all signup forms (listbuilder forms). Use when you need to list available signup forms for the account. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_LIST_CONTACT` | Get Signup Forms for Contact List | Tool to get a list of signup forms associated with a specific contact list. Use when needing to identify which signup forms feed into a particular contact list. |
| `BENCHMARK_EMAIL_GET_SIGNUP_FORM_TUMBLER` | Get SignupForm Tumbler | Tool to get third-party SignupForm Tumbler query string parameters. Use when you need to retrieve Tumbler integration parameters for a signup form. |
| `BENCHMARK_EMAIL_GET_SOCIAL_PERFORMANCE_REPORT` | Get Social Performance Report | Tool to get social performance report for an email campaign by ID. Use when you need to retrieve social sharing metrics and statistics for a specific email campaign. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNT_BALANCE` | Get sub-account balance | Tool to get the balance (plan limit) for a specific sub-account by ID. Use when needing to check the contact limit or plan balance of a child account. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNT_DETAILS` | Get sub-account details | Tool to get details for a specific sub-account by ID. Use when needing profile and plan info of a child account. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNT_HISTORY` | Get Sub-Account History | Tool to get sub-account history. Use after listing sub-accounts to retrieve each account's billing history. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNT_HISTORY_DETAILS` | Get sub-account history details | Tool to get detailed history information for a specific sub-account billing cycle. Use when you need billing cycle details for a particular history record. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNTS` | Get Sub-Accounts | Tool to retrieve all sub-accounts for the client. Use when you need to view or manage sub-accounts. |
| `BENCHMARK_EMAIL_GET_SUB_ACCOUNTS_PLAN_LIST` | Get Sub-Accounts Plan List | Tool to retrieve available plans for a sub-account. Use when you need to determine list and email limits for a specific sub-account client ID. |
| `BENCHMARK_EMAIL_GET_SURVEY_DETAILS` | Get Survey Details | Tool to retrieve details of a specific survey by ID. Use when you need information about a survey including its questions and metadata. |
| `BENCHMARK_EMAIL_GET_SURVEY_REPORT_DETAIL` | Get survey report detail | Tool to get detailed report of a survey including questions, responses, and response counts. Use when needing survey analytics and response data. |
| `BENCHMARK_EMAIL_GET_TEMPLATE_BY_TEMPLATE_ID` | Get template by template ID | Tool to get details for a specific email template by ID. Use when needing template information such as name, subject, content, and metadata. |
| `BENCHMARK_EMAIL_GET_TEMPLATE_CATEGORY_BY_CATEGORY_ID` | Get template category by ID | Tool to get details for a specific email template category by ID. Use when needing information about a template category. |
| `BENCHMARK_EMAIL_GET_TEMPLATE_CATEGORY_LIST` | Get Template Category List | Tool to retrieve template category list with optional filters. Use when you need to browse or select email template categories. |
| `BENCHMARK_EMAIL_GET_TEMPLATE_LIST_OF_SURVEY` | Get Template List of Survey | Tool to retrieve the list of survey templates. Use when you need to view available survey templates. |
| `BENCHMARK_EMAIL_GET_TEMPLATES` | Get Email Templates | Tool to retrieve email templates from Benchmark Email. Use when you need to list or select an email template for campaigns. |
| `BENCHMARK_EMAIL_GET_TEMPLATES_FOR_SIGNUP_FORM_CLASSIC` | Get Templates for Signup Form Classic | Tool to retrieve templates for Signup Forms (Classic Only). Use when you need to list available signup form templates for the classic editor. |
| `BENCHMARK_EMAIL_GET_THE_CLEAN_COUNT` | Get the clean count | Tool to get the clean count for a contact list. Use when you need to retrieve clean count statistics for a specific list. |
| `BENCHMARK_EMAIL_GET_TRASH_COUNT` | Get Trash Count | Tool to get the count of contacts in the trash. Use when you need to retrieve the number of deleted contacts. |
| `BENCHMARK_EMAIL_GET_TUMBLER_LISTS` | Get Tumbler Lists | Tool to get Tumbler signup form lists in HTML format. Use when you need to retrieve the list of signup forms for Tumbler integration. |
| `BENCHMARK_EMAIL_GET_TWITTER_LOGIN` | Get Twitter Login Status | Tool to get Twitter login/integration status for the authenticated Benchmark Email account. Use when checking if Twitter is connected or retrieving Twitter account details. |
| `BENCHMARK_EMAIL_GET_UNBOUNCE_LINK` | Get Unbounce Link | Tool to get the Unbounce integration URL for a specific contact list. Use when you need to retrieve the Unbounce URL for integrating a contact list with Unbounce landing pages. |
| `BENCHMARK_EMAIL_GET_UNBOUNCE_LISTS` | Get Unbounce Lists | Tool to get Unbounce contact lists in HTML format. Use when integrating with Unbounce to retrieve available signup form lists. |
| `BENCHMARK_EMAIL_GET_UNIQUE_COUNT` | Get unique contact count | Tool to get the total count of unique contacts in the account. Use when needing the unique contact count. |
| `BENCHMARK_EMAIL_GET_UNOPENS_REPORT_BY_EMAIL_ID` | Get Unopens Report By Email ID | Tool to get unopens report for an email campaign by ID. Use when you need to retrieve a list of contacts who did not open a specific email campaign. |
| `BENCHMARK_EMAIL_GET_UNSUBSCRIBE_REPORT_BY_EMAIL_ID` | Get Unsubscribe Report By Email ID | Tool to get unsubscribe report for an email campaign by ID. Use when you need to review recipients who unsubscribed from a specific email campaign. |
| `BENCHMARK_EMAIL_GET_URL_LIST_BY_EMAIL_ID` | Get URL List By Email ID | Tool to get URL list for a specific email campaign by ID. Use when you need to retrieve all URLs included in an email campaign. |
| `BENCHMARK_EMAIL_GET_URL_LIST_OF_ENGAGEMENT` | Get URL Engagement List | Tool to retrieve URL engagement statistics for email campaigns. Use when you need to analyze which URLs in your emails were clicked and their engagement metrics. |
| `BENCHMARK_EMAIL_GET_VIDEO_DETAILS` | Get Video Details | Tool to get details for a specific video by its ID. Use when needing information about a video in the Benchmark Email account. |
| `BENCHMARK_EMAIL_GET_WEBHOOKS` | Get Webhooks | Tool to retrieve all webhooks for a contact list. Use when you need to view or list webhooks configured for a specific list. |
| `BENCHMARK_EMAIL_GET_WEB_PAGE_ADS_DETAIL` | Get web page ads detail | Tool to get web page ads detail from the Partner API. Use when you need to retrieve information about web page advertisements. |
| `BENCHMARK_EMAIL_INITIATE_EMAIL_SCREEN_CAPTURE` | Initiate Email Screen Capture | Tool to initiate the screen capture process for an email campaign. Use when you need to generate a screen capture of a specific email by its ID. |
| `BENCHMARK_EMAIL_LINK_ACCOUNT` | Link Agency Account | Tool to link an agency account to your Benchmark Email account. Use when you need to connect and manage another account with the provided credentials. |
| `BENCHMARK_EMAIL_LOG_OUT_TWITTER_TWEETS` | Log Out Twitter Tweets | Tool to log out of Twitter Tweets integration from Benchmark Email account. Use when removing Twitter Tweets posting integration. |
| `BENCHMARK_EMAIL_MERGE_CONTACTS_INTO_EXISTING_LIST` | Merge Contacts Into Existing List | Tool to merge contacts from source list(s) into an existing target list. Use when you need to consolidate contacts from one or more lists into another list. |
| `BENCHMARK_EMAIL_MERGE_CONTACTS_INTO_NEW_LIST` | Merge Contacts Into New List | Tool to merge contacts from multiple lists into a new list. Use when you need to consolidate contacts from different lists into a single new list. |
| `BENCHMARK_EMAIL_MOVE_BULK_CONTACTS` | Move Bulk Contacts | Tool to move contacts in bulk from a source list to one or more target lists. Use when you need to transfer contacts between lists, removing them from the source. |
| `BENCHMARK_EMAIL_MOVE_CONTACTS` | Move Contacts | Tool to move contacts from one list to another. Use when you need to relocate contacts between lists. |
| `BENCHMARK_EMAIL_MOVE_CONTACT_TO_DO_NOT_CONTACT` | Move Contact to Do Not Contact List | Tool to move a contact to the Do Not Contact (Master Unsubscribe) list. Use when you need to permanently unsubscribe a contact from all communications. |
| `BENCHMARK_EMAIL_PATCH_ADD_UPDATE_SCHEME` | Add / Update Scheme | Tool to add or update a color scheme. Use when creating new schemes or modifying existing ones with color hex codes. |
| `BENCHMARK_EMAIL_PATCH_CHANGE_PASSWORD` | Change Password | Tool to change the password for the client account. Use when updating account credentials after validating new and confirm passwords match. |
| `BENCHMARK_EMAIL_PATCH_SAVE_SECURITY_PIN` | Save Security PIN | Tool to save a new security PIN for the client account. Use when you need to update the account PIN after confirming both entries match. |
| `BENCHMARK_EMAIL_PATCH_SEND_RESET_EMAIL` | Send Reset Email | Tool to send a reset email link to change the primary email address. Use when initiating an email-based reset of the account’s primary email after user request. |
| `BENCHMARK_EMAIL_PATCH_UPDATE_CLIENT_SETTINGS` | Patch Update Client Settings | Tool to update client account settings. Use after fetching current settings. Updates company info, timezone, language, sender defaults, and signature details. |
| `BENCHMARK_EMAIL_PATCH_UPDATE_CONTACT_LIST` | Update Contact List | Tool to update an existing contact list. Use after confirming list ID and desired modifications to name, description, labels, or custom fields. |
| `BENCHMARK_EMAIL_PATCH_UPDATE_EDIT_PROFILE` | Update/Edit Profile | Tool to update or edit profile information such as first name, last name, and phone number. Use after retrieving profile details to apply changes. |
| `BENCHMARK_EMAIL_PATCH_UPDATE_WEBHOOK` | Update Webhook | Tool to update a webhook for a contact list by webhook ID. Use after retrieving or creating a webhook to modify its event settings such as cleaned-address, email-change, profile-update, subscribe, and unsubscribe callbacks. |
| `BENCHMARK_EMAIL_POST_ADD_CONTACT_TO_LIST` | Add Contact to List | Tool to add a new contact to a specific list. Use after verifying the list ID exists. |
| `BENCHMARK_EMAIL_POST_ASSIGN_PRODUCT_LIST` | Assign Product to List | Tool to assign a Shopify product to a list where purchasers are added. Use when integrating Shopify purchases with email lists. |
| `BENCHMARK_EMAIL_POST_CHANGE_SECURITY_PIN` | Change Security PIN | Tool to change security PIN for the client account. Use after confirming your current PIN to rotate your PIN. |
| `BENCHMARK_EMAIL_POST_COPY_POLL` | Copy Poll | Tool to copy an existing poll. Use when you need to duplicate a poll with a new name. |
| `BENCHMARK_EMAIL_POST_CREATE_CONTACT_LIST` | Create Contact List | Tool to create a new contact list. Use after planning list name and optional description. |
| `BENCHMARK_EMAIL_POST_CREATE_POLL` | Create Poll | Tool to create a new poll in Benchmark Email. Use when you need to create a poll for collecting responses. |
| `BENCHMARK_EMAIL_POST_CREATE_SEGMENT_CRITERIA` | Create Segment Criteria | Tool to create criteria for a segment. Use after confirming the segment ID exists and defining filter rules. |
| `BENCHMARK_EMAIL_POST_CREATE_WEBHOOK` | Create Webhook | Tool to create a new webhook for a contact list. Use when you need to get callbacks for list events after list creation. |
| `BENCHMARK_EMAIL_POST_DISABLE_SECURITY_PIN` | Disable Security PIN | Tool to disable security PIN for the client account. Use when revoking the current PIN to remove PIN protection. |
| `BENCHMARK_EMAIL_POST_LOGIN_REDIRECT_USING_TOKEN` | Login Redirect Using Token | Tool to acquire a temporary token to an account. Use when you need to authenticate and get redirected to a specific path in the application using a token-based login. |
| `BENCHMARK_EMAIL_POST_SAVE_WEBSITE_DOMAIN` | Save Website Domain | Tool to save a website domain for your Benchmark Email account. Use after account setup to register your domain for link tracking. |
| `BENCHMARK_EMAIL_POST_SEND_CONFIRM_EMAIL_VERIFICATION` | Send Confirm Email Verification | Tool to send confirm email verification. Use when unverified addresses must receive verification emails after signup. |
| `BENCHMARK_EMAIL_POST_SEND_PIN_EMAIL` | Send PIN via Email | Tool to send PIN via email. Use when you forgot your security PIN and need it emailed to you. |
| `BENCHMARK_EMAIL_POST_SHOPIFY_PURCHASE_LIST` | Configure Shopify Purchase List | Tool to configure Shopify purchase list integration. Use when setting up or updating the contact list for Shopify purchase tracking. |
| `BENCHMARK_EMAIL_RESEND_EMAILS` | Resend Emails to Contacts | Tool to resend confirmation emails to contacts in a specific list. Use when you need to resend verification or confirmation emails to contacts. |
| `BENCHMARK_EMAIL_RESTORE_EMAIL_FROM_TRASH` | Restore Email From Trash | Tool to restore an email from trash. Use when you need to recover a deleted email campaign by moving it out of trash. |
| `BENCHMARK_EMAIL_RESTORE_TRASH_LIST` | Restore Trash List | Tool to restore deleted contact lists from trash. Use after confirming the list IDs to recover. |
| `BENCHMARK_EMAIL_SAVE_EMAIL_ADDRESS` | Save Email Address | Tool to save email address(es) to a contact list in CSV format. Use when you need to add or update email addresses in a specific list. |
| `BENCHMARK_EMAIL_SAVE_VERIFIED_EMAIL_ADDRESSES` | Save Verified Email Addresses | Tool to save email addresses which have verified URLs to a contact list. Use when you need to mark specific email addresses as verified in a list. |
| `BENCHMARK_EMAIL_SCHEDULE_EMAIL` | Schedule Email Campaign | Tool to schedule an email campaign for sending at a specific date and time. Use when you need to schedule a verified email campaign for future delivery. |
| `BENCHMARK_EMAIL_SEARCH_CONTACT_DETAILS_BY_EMAIL` | Search Contact Details by Email | Tool to search for contact details by email address and show lists they belong to and status. Use when you need to find a contact's membership information across lists. |
| `BENCHMARK_EMAIL_SEND_SUPPORT_FEEDBACK` | Send Support Feedback | Tool to send support feedback or inquiry to Benchmark Email support team. Use when users need to contact support with questions, issues, or feedback. |
| `BENCHMARK_EMAIL_SEND_TEST_EMAIL_FOR_SIGNUP_FORM` | Send Test Email for Signup Form | Tool to send a test email for a signup form. Use when you need to test the signup form email configuration before going live. |
| `BENCHMARK_EMAIL_SET_RESPONSIVE` | Set Responsive | Tool to set the client's responsive status. Use when enabling or disabling responsive mode for the client account. |
| `BENCHMARK_EMAIL_SHARE_LISTS_WITH_SUBACCOUNTS` | Share Lists with SubAccounts | Tool to share contact lists with sub-accounts. Use when you need to grant sub-accounts access to a specific list. |
| `BENCHMARK_EMAIL_SHARE_TEMPLATE_TO_SUB_ACCOUNTS` | Share Template to Sub-Accounts | Tool to share an email template with sub-accounts. Use when distributing templates across sub-accounts. |
| `BENCHMARK_EMAIL_SHARE_VIDEO` | Share Video | Tool to share/copy a video to other client accounts. Use when you need to duplicate a video across multiple client accounts. |
| `BENCHMARK_EMAIL_TEST_EBAY_INTEGRATION` | Test eBay Integration | Tool to test eBay integration and verify connection status. Use when validating eBay account connectivity and retrieving integration details. |
| `BENCHMARK_EMAIL_TEST_ETSY_INTEGRATION` | Test Etsy Integration | Tool to test the Etsy integration connection with Benchmark Email. Use when verifying if the Etsy integration is properly configured and working. |
| `BENCHMARK_EMAIL_TEST_EVENTBRITE_INTEGRATION` | Test Eventbrite Integration | Tool to test the Eventbrite integration connection with Benchmark Email. Use when verifying if Eventbrite is properly connected and syncing. |
| `BENCHMARK_EMAIL_TEST_FACEBOOK_EVENTS_INTEGRATION` | Test Facebook Events Integration | Tool to test Facebook Events integration in Benchmark Email. Use when verifying the Facebook Events connection is working properly. |
| `BENCHMARK_EMAIL_TEST_FACEBOOK_INTEGRATION` | Test Facebook Integration | Tool to test Facebook integration status for the Benchmark Email account. Use when verifying Facebook connection. Returns status 1 on success, -1 on error, with an HTML-formatted message describing the result. |
| `BENCHMARK_EMAIL_TEST_LINKED_IN_CONNECTION` | Test LinkedIn Connection | Tool to test the LinkedIn integration connection status. Use when verifying if LinkedIn is properly connected to the Benchmark Email account. |
| `BENCHMARK_EMAIL_TEST_PINTEREST_INTEGRATION` | Test Pinterest Integration | Tool to test the Pinterest integration connection for the Benchmark Email account. Use when verifying Pinterest integration status or troubleshooting connection issues. |
| `BENCHMARK_EMAIL_TEST_SALESFORCE_INTEGRATION` | Test Salesforce Integration | Tool to test the Salesforce integration connection. Use when verifying that Salesforce CRM is properly connected and accessible. |
| `BENCHMARK_EMAIL_TEST_TWITTER_INTEGRATION` | Test Twitter Integration | Tool to test the Twitter/X integration connection. Use when verifying that Twitter (X) is properly connected and accessible. |
| `BENCHMARK_EMAIL_TEST_TWITTER_TWEETS` | Test Twitter Tweets | Tool to test Twitter tweets integration and retrieve follower information. Use to verify Twitter connection and get follower statistics in HTML format. |
| `BENCHMARK_EMAIL_UPDATE_ARCHIVE_HOME_PAGE` | Update Archive Home Page | Tool to add an email to the archive home page with a specific view order. Use when you need to feature an archived email on the archive home page. |
| `BENCHMARK_EMAIL_UPDATE_ARCHIVE_HOME_PAGE_DATA` | Update Archive Home Page Data | Tool to update archive home page data like page title, logo, header, and footer. Use when modifying the appearance or content of the archive home page. |
| `BENCHMARK_EMAIL_UPDATE_CONTACT_DETAILS` | Update Contact Details | Tool to update contact details in a specific list. Use when you need to modify a contact's email, name, or rating. |
| `BENCHMARK_EMAIL_UPDATE_EMAIL` | Update Email Campaign | Tool to update an existing email campaign. Use to modify campaign properties such as name, subject, sender name, sender email, or reply-to address. |
| `BENCHMARK_EMAIL_UPDATE_EMAIL_CONTENT_FOR_AUTOMATION` | Update Email Content for Automation | Tool to update email content for an automation workflow. Use when modifying the subject, template content, or sender details of an existing automation email. |
| `BENCHMARK_EMAIL_UPDATE_LINK_ACCOUNT` | Update Linked Agency Account | Tool to update a linked agency account. Use when modifying login credentials or alias for an existing linked account by its ID. |
| `BENCHMARK_EMAIL_UPDATE_LIST_COMPILATION_DETAILS` | Update List Compilation Details | Tool to update the compilation details for a contact list file upload. Use when changing the file upload compilation URL after uploading contacts to a list. |
| `BENCHMARK_EMAIL_UPDATE_PARTNER_PROFILE` | Update Partner Profile | Tool to update partner profile details including company name, email, phone, and PayPal email. Use when you need to modify partner account information. PayPalEmail is required. |
| `BENCHMARK_EMAIL_UPDATE_POLL` | Update Poll | Tool to update an existing poll in Benchmark Email. Use when you need to modify a poll's name or question. |
| `BENCHMARK_EMAIL_UPDATE_RESET_EMAIL` | Update/Reset Email | Tool to reset the primary email address using a GUID from the reset email link. Use when completing the email change process after the reset link has been sent. |
| `BENCHMARK_EMAIL_UPDATE_SEGMENT` | Update Segment | Tool to update an existing contact segment. Use when you need to modify a segment's name, description, or associated list ID. |
| `BENCHMARK_EMAIL_UPDATE_SURVEY_STATUS` | Update Survey Status | Tool to update the status of a survey. Use when activating, deactivating, or removing a survey. |
| `BENCHMARK_EMAIL_UPLOAD_VIDEO` | Upload Video | Tool to upload a video via URL. Use when adding videos from external sources (YouTube, Vimeo, etc.) to the Benchmark Email account. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Benchmark email MCP server is an implementation of the Model Context Protocol that connects your AI agents and assistants directly to Benchmark email. Instead of manually wiring Benchmark email APIs, OAuth, and scopes yourself, you get a structured, tool-based interface that an LLM can call safely.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

You will need:
- A Composio API key
- An OpenAI API key (used by Autogen's OpenAIChatCompletionClient)
- A Benchmark email account you can connect to Composio
- Some basic familiarity with Autogen and Python async

### 1. Getting API Keys for OpenAI and Composio

OpenAI API Key
- Go to the [OpenAI dashboard](https://platform.openai.com/settings/organization/api-keys) and create an API key. You'll need credits to use the models, or you can connect to another model provider.
- Keep the API key safe.
Composio API Key
- Log in to the [Composio dashboard](https://dashboard.composio.dev?utm_source=toolkits&utm_medium=framework_docs).
- Navigate to your API settings and generate a new API key.
- Store this key securely as you'll need it for authentication.

### 2. Install dependencies

Install Composio, Autogen extensions, and dotenv.
What's happening:
- composio connects your agent to Benchmark email via MCP
- autogen-agentchat provides the AssistantAgent class
- autogen-ext-openai provides the OpenAI model client
- autogen-ext-tools provides MCP workbench support
```bash
pip install composio python-dotenv
pip install autogen-agentchat autogen-ext-openai autogen-ext-tools
```

### 3. Set up environment variables

Create a .env file in your project folder.
What's happening:
- COMPOSIO_API_KEY is required to talk to Composio
- OPENAI_API_KEY is used by Autogen's OpenAI client
- USER_ID is how Composio identifies which user's Benchmark email connections to use
```bash
COMPOSIO_API_KEY=your-composio-api-key
OPENAI_API_KEY=your-openai-api-key
USER_ID=your-user-identifier@example.com
```

### 4. Import dependencies and create Tool Router session

What's happening:
- load_dotenv() reads your .env file
- Composio(api_key=...) initializes the SDK
- create(...) creates a Tool Router session that exposes Benchmark email tools
- session.mcp.url is the MCP endpoint that Autogen will connect to
```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Benchmark email session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["benchmark_email"]
    )
    url = session.mcp.url
```

### 5. Configure MCP parameters for Autogen

Autogen expects parameters describing how to talk to the MCP server. That is what StreamableHttpServerParams is for.
What's happening:
- url points to the Tool Router MCP endpoint from Composio
- timeout is the HTTP timeout for requests
- sse_read_timeout controls how long to wait when streaming responses
- terminate_on_close=True cleans up the MCP server process when the workbench is closed
```python
# Configure MCP server parameters for Streamable HTTP
server_params = StreamableHttpServerParams(
    url=url,
    timeout=30.0,
    sse_read_timeout=300.0,
    terminate_on_close=True,
    headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
)
```

### 6. Create the model client and agent

What's happening:
- OpenAIChatCompletionClient wraps the OpenAI model for Autogen
- McpWorkbench connects the agent to the MCP tools
- AssistantAgent is configured with the Benchmark email tools from the workbench
```python
# Create model client
model_client = OpenAIChatCompletionClient(
    model="gpt-5",
    api_key=os.getenv("OPENAI_API_KEY")
)

# Use McpWorkbench as context manager
async with McpWorkbench(server_params) as workbench:
    # Create Benchmark email assistant agent with MCP tools
    agent = AssistantAgent(
        name="benchmark_email_assistant",
        description="An AI assistant that helps with Benchmark email operations.",
        model_client=model_client,
        workbench=workbench,
        model_client_stream=True,
        max_tool_iterations=10
    )
```

### 7. Run the interactive chat loop

What's happening:
- The script prompts you in a loop with You:
- Autogen passes your input to the model, which decides which Benchmark email tools to call via MCP
- agent.run_stream(...) yields streaming messages as the agent thinks and calls tools
- Typing exit, quit, or bye ends the loop
```python
print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
print("Ask any Benchmark email related question or task to the agent.\n")

# Conversation loop
while True:
    user_input = input("You: ").strip()

    if user_input.lower() in ["exit", "quit", "bye"]:
        print("\nGoodbye!")
        break

    if not user_input:
        continue

    print("\nAgent is thinking...\n")

    # Run the agent with streaming
    try:
        response_text = ""
        async for message in agent.run_stream(task=user_input):
            if hasattr(message, "content") and message.content:
                response_text = message.content

        # Print the final response
        if response_text:
            print(f"Agent: {response_text}\n")
        else:
            print("Agent: I encountered an issue processing your request.\n")

    except Exception as e:
        print(f"Agent: Sorry, I encountered an error: {str(e)}\n")
```

## Complete Code

```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Benchmark email session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["benchmark_email"]
    )
    url = session.mcp.url

    # Configure MCP server parameters for Streamable HTTP
    server_params = StreamableHttpServerParams(
        url=url,
        timeout=30.0,
        sse_read_timeout=300.0,
        terminate_on_close=True,
        headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
    )

    # Create model client
    model_client = OpenAIChatCompletionClient(
        model="gpt-5",
        api_key=os.getenv("OPENAI_API_KEY")
    )

    # Use McpWorkbench as context manager
    async with McpWorkbench(server_params) as workbench:
        # Create Benchmark email assistant agent with MCP tools
        agent = AssistantAgent(
            name="benchmark_email_assistant",
            description="An AI assistant that helps with Benchmark email operations.",
            model_client=model_client,
            workbench=workbench,
            model_client_stream=True,
            max_tool_iterations=10
        )

        print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
        print("Ask any Benchmark email related question or task to the agent.\n")

        # Conversation loop
        while True:
            user_input = input("You: ").strip()

            if user_input.lower() in ['exit', 'quit', 'bye']:
                print("\nGoodbye!")
                break

            if not user_input:
                continue

            print("\nAgent is thinking...\n")

            # Run the agent with streaming
            try:
                response_text = ""
                async for message in agent.run_stream(task=user_input):
                    if hasattr(message, 'content') and message.content:
                        response_text = message.content

                # Print the final response
                if response_text:
                    print(f"Agent: {response_text}\n")
                else:
                    print("Agent: I encountered an issue processing your request.\n")

            except Exception as e:
                print(f"Agent: Sorry, I encountered an error: {str(e)}\n")

if __name__ == "__main__":
    asyncio.run(main())
```

## Conclusion

You now have an Autogen assistant wired into Benchmark email through Composio's Tool Router and MCP. From here you can:
- Add more toolkits to the toolkits list, for example notion or hubspot
- Refine the agent description to point it at specific workflows
- Wrap this script behind a UI, Slack bot, or internal tool
Once the pattern is clear for Benchmark email, you can reuse the same structure for other MCP-enabled apps with minimal code changes.

## How to build Benchmark email MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/benchmark_email/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/benchmark_email/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/benchmark_email/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/benchmark_email/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/benchmark_email/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/benchmark_email/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/benchmark_email/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/benchmark_email/framework/cli)
- [Google ADK](https://composio.dev/toolkits/benchmark_email/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/benchmark_email/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/benchmark_email/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/benchmark_email/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/benchmark_email/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/benchmark_email/framework/crew-ai)

## Related Toolkits

- [Reddit](https://composio.dev/toolkits/reddit) - Reddit is a social news platform with thriving user-driven communities (subreddits). It's the go-to place for discussion, content sharing, and viral marketing.
- [Facebook](https://composio.dev/toolkits/facebook) - Facebook is a social media and advertising platform for businesses and creators. It helps you connect, share, and manage content across your public Facebook Pages.
- [Linkedin](https://composio.dev/toolkits/linkedin) - LinkedIn is a professional networking platform for connecting, sharing content, and engaging with business opportunities. It's the go-to place for building your professional brand and unlocking new career connections.
- [Active campaign](https://composio.dev/toolkits/active_campaign) - ActiveCampaign is a marketing automation and CRM platform for managing email campaigns, sales pipelines, and customer segmentation. It helps businesses engage customers and drive growth through smart automation and targeted outreach.
- [ActiveTrail](https://composio.dev/toolkits/active_trail) - ActiveTrail is a user-friendly email marketing and automation platform. It helps you reach subscribers and automate campaigns with ease.
- [Ahrefs](https://composio.dev/toolkits/ahrefs) - Ahrefs is an SEO and marketing platform for site audits, keyword research, and competitor insights. It helps you improve search rankings and drive organic traffic.
- [Amcards](https://composio.dev/toolkits/amcards) - AMCards lets you create and mail personalized greeting cards online. Build stronger customer relationships with easy, automated card campaigns.
- [Beamer](https://composio.dev/toolkits/beamer) - Beamer is a news and changelog platform for in-app announcements and feature updates. It helps companies boost user engagement by sharing news where users are most active.
- [Bigmailer](https://composio.dev/toolkits/bigmailer) - BigMailer is an email marketing platform for managing multiple brands with white-labeling and automation. It helps teams streamline campaigns and simplify integration with Amazon SES.
- [Brandfetch](https://composio.dev/toolkits/brandfetch) - Brandfetch is an API that delivers company logos, colors, and visual branding assets. It helps marketers and developers keep brand visuals consistent everywhere.
- [Brevo](https://composio.dev/toolkits/brevo) - Brevo is an all-in-one email and SMS marketing platform for transactional messaging, automation, and CRM. It helps businesses engage customers and streamline communications through powerful campaign tools.
- [Campayn](https://composio.dev/toolkits/campayn) - Campayn is an email marketing platform for creating, sending, and managing campaigns. It helps businesses engage contacts and grow audiences with easy-to-use tools.
- [Cardly](https://composio.dev/toolkits/cardly) - Cardly is a platform for creating and sending personalized direct mail to customers. It helps businesses break through the digital clutter by getting real engagement via physical mailboxes.
- [ClickSend](https://composio.dev/toolkits/clicksend) - ClickSend is a cloud-based SMS and email marketing platform for businesses. It streamlines communication by enabling quick message delivery and contact management.
- [Crustdata](https://composio.dev/toolkits/crustdata) - CrustData is an AI-powered data intelligence platform for real-time company and people data. It helps B2B sales teams, AI SDRs, and investors react to live business signals.
- [Curated](https://composio.dev/toolkits/curated) - Curated is a platform for collecting, curating, and publishing newsletters. It streamlines content aggregation and distribution for creators and teams.
- [Customerio](https://composio.dev/toolkits/customerio) - Customer.io is a customer engagement platform for targeted messaging across email, SMS, and push. Easily automate, segment, and track communications with your audience.
- [Cutt ly](https://composio.dev/toolkits/cutt_ly) - Cutt.ly is a URL shortening service for managing and analyzing links. Streamline your workflows with quick, trackable, and branded short URLs.
- [Demio](https://composio.dev/toolkits/demio) - Demio is webinar software built for marketers, offering both live and automated sessions with interactive features. It helps teams engage audiences and optimize lead generation through detailed analytics.
- [Doppler marketing automation](https://composio.dev/toolkits/doppler_marketing_automation) - Doppler marketing automation is a platform for creating, sending, and tracking email campaigns. It helps you automate marketing workflows and manage subscriber lists for better engagement.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Benchmark email MCP?

With a standalone Benchmark email MCP server, the agents and LLMs can only access a fixed set of Benchmark email tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Benchmark email and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Autogen?

Yes, you can. Autogen fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Benchmark email tools.

### Can I manage the permissions and scopes for Benchmark email while using Tool Router?

Yes, absolutely. You can configure which Benchmark email scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Benchmark email data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
