Manage Benchmark Email lists and contacts, and read campaign reports: opens, clicks, bounces.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add one contact to a list (or update it if the email is already there, as the vendor decides). It does not send any email. Only add people who agreed to get email. POST /Contact/{list_id}/ContactDetails.
Email address.
Contact list id (digits only, as returned by the list tools).
Last name.
First name.
Set true only if the person has given email permission (EmailPerm 1).
Middle name.
Custom list columns by slot, e.g. {"Field1": "12 High St"}. Slot names come from benchmark_get_list (Field1Name ...).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add one contact to a list (or update it if the email is already there, as the vendor decides). It does not send any email. Only add people who agreed to get email. POST /Contact/{list_id}/ContactDetails.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email address. |
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
| last_name | string | Last name. |
| first_name | string | First name. |
| permission | boolean | Set true only if the person has given email permission (EmailPerm 1). |
| middle_name | string | Middle name. |
| custom_fields | object | Custom list columns by slot, e.g. {"Field1": "12 High St"}. Slot names come from benchmark_get_list (Field1Name ...). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id",
"email"
],
"properties": {
"email": {
"type": "string",
"pattern": "^[^\\s@]+@[^\\s@]+$",
"maxLength": 320,
"minLength": 3,
"description": "Email address."
},
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
},
"last_name": {
"type": "string",
"maxLength": 200,
"description": "Last name."
},
"first_name": {
"type": "string",
"maxLength": 200,
"description": "First name."
},
"permission": {
"type": "boolean",
"description": "Set true only if the person has given email permission (EmailPerm 1)."
},
"middle_name": {
"type": "string",
"maxLength": 200,
"description": "Middle name."
},
"custom_fields": {
"type": "object",
"description": "Custom list columns by slot, e.g. {\"Field1\": \"12 High St\"}. Slot names come from benchmark_get_list (Field1Name ...).",
"propertyNames": {
"type": "string",
"pattern": "^Field([1-9]|1\\d|2[0-4])$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
}
}
}WRITE: create an empty contact list. POST /Contact/.
| Argument | Type | Description |
|---|---|---|
| name* | string | List name. |
| description | string | List description. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "List name."
},
"description": {
"type": "string",
"maxLength": 500,
"description": "List description."
}
}
}The Benchmark Email account this token belongs to: client id, name, company, email, status, plan products, contact count and emails sent. GET /Client/ProfileDetails.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}One contact of a list with all its fields (Field1 ... Field24 hold the custom columns). GET /Contact/{list_id}/ContactDetails/{contact_id}.
| Argument | Type | Description |
|---|---|---|
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
| contact_id* | string | Contact id (the ID of a list or search row) (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id",
"contact_id"
],
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
},
"contact_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact id (the ID of a list or search row) (digits only, as returned by the list tools)."
}
}
}One email campaign: subject, sender, target and excluded lists, dates and settings. GET /Emails/{email_id}.
| Argument | Type | Description |
|---|---|---|
| email_id* | string | Email id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
}
}
}Which addresses bounced for an email: contact, email address, time and bounce type. GET /Emails/{email_id}/Report/Bounces.
| Argument | Type | Description |
|---|---|---|
| email_id* | string | Email id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
}
}
}Who clicked a link in an email: contact, email address and time. GET /Emails/{email_id}/Report/Clicks.
| Argument | Type | Description |
|---|---|---|
| email_id* | string | Email id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
}
}
}Who opened an email: contact, email address, time and device. GET /Emails/{email_id}/Report/Opens.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| email_id* | string | Email id (digits only, as returned by the list tools). |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}The report summary of one email: recipients, opens, clicks, bounces, unsubscribes, forwards, complaints and rates. GET /Emails/{email_id}/Report.
| Argument | Type | Description |
|---|---|---|
| email_id* | string | Email id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
}
}
}Who unsubscribed after an email: contact, email address, time and reason, with a count per reason. GET /Emails/{email_id}/Report/Unsubscribes.
| Argument | Type | Description |
|---|---|---|
| email_id* | string | Email id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email_id"
],
"properties": {
"email_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Email id (digits only, as returned by the list tools)."
}
}
}One contact list: name, description, active contact count and its custom field names (Field1Name ...). GET /Contact/{list_id}.
| Argument | Type | Description |
|---|---|---|
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
}
}
}The column names of a contact list (email, firstname, lastname and the custom fields). GET /Contact/{list_id}/Fields.
| Argument | Type | Description |
|---|---|---|
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
}
}
}The account's email plan, add-ons and contact usage (active, account and total contacts, percent used). GET /Client/Plan.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Default sender settings: from name and email, signature, footer, time zone, language and company address. The API token in the reply is removed. GET /Client/Setting.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}One signup form with its settings and target lists. GET /SignupForm/{form_id}.
| Argument | Type | Description |
|---|---|---|
| form_id* | string | Signup form id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"form_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Signup form id (digits only, as returned by the list tools)."
}
}
}The public link of a signup form. GET /SignupForm/{form_id}/Link.
| Argument | Type | Description |
|---|---|---|
| form_id* | string | Signup form id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"form_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Signup form id (digits only, as returned by the list tools)."
}
}
}List the contacts of one list with email, name, dates and id. Filter by status (subscribed, unsubscribed, hard_bounced) or search a column. GET /Contact/{list_id}/ContactDetails.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Search text. |
| status | string | Only contacts with this status (subscribed = all except unsubscribed and hard bounced). |
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
| order_by | string | Sort column. |
| page_size | integer | Results per page, 1-100 (default 25). |
| sort_order | string | Sort order. |
| search_type | string | How `search` matches (default: the vendor's default). |
| search_field | string |
Report summaries of sent emails: sends, opens, clicks, bounces, unsubscribes and complaints per campaign. GET /Emails/Report.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Only emails whose name matches this text. |
| page_size | integer | Results per page, 1-100 (default 25). |
| sort_order | string | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only emails whose name matches this text."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order."
}
}
}List email campaigns with id, name, subject, type, status, dates and target lists. GET /Emails/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Only emails whose name matches this text. |
| status | string | Status filter as the vendor spells it (e.g. Draft, Scheduled, Sent). |
| order_by | string | Sort column, e.g. date, name. |
| page_size | integer | Results per page, 1-100 (default 25). |
| sort_order | string | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only emails whose name matches this text."
},
"status": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Status filter as the vendor spells it (e.g. Draft, Scheduled, Sent)."
},
"order_by": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Sort column, e.g. date, name."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order."
}
}
}List contact lists with id, name, description, contact count and dates. Use the ids with the contact tools. GET /Contact/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Only lists whose name matches this text. |
| order_by | string | Sort column as the vendor documents it: date, count, email or schedule. |
| page_size | integer | Results per page, 1-100 (default 25). |
| sort_order | string | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only lists whose name matches this text."
},
"order_by": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Sort column as the vendor documents it: date, count, email or schedule."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order."
}
}
}List the saved segments (filtered subsets of lists) with id and name. GET /Contact/Segments.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List signup forms with id, name, date and the lists they feed. GET /SignupForm/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Only forms whose name matches this text. |
| order_by | string | Sort column. |
| page_size | integer | Results per page, 1-100 (default 25). |
| sort_order | string | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only forms whose name matches this text."
},
"order_by": {
"enum": [
"name",
"date",
"size"
],
"type": "string",
"description": "Sort column."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order."
}
}
}Find an email address across all lists: one row per list it is on, with the list name, contact id and master-unsubscribe flag. GET /Contact/ContactDetails.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email address to search for. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"maxLength": 320,
"minLength": 1,
"description": "Email address to search for."
}
}
}WRITE: move a contact to the Do Not Contact (master unsubscribe) list, so no campaign reaches it again. The API has no undo for this. DELETE /Contact/{list_id}/MoveToDNC/{contact_id}.
| Argument | Type | Description |
|---|---|---|
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
| contact_id* | string | Contact id (digits only, as returned by the list tools). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id",
"contact_id"
],
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
},
"contact_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact id (digits only, as returned by the list tools)."
}
}
}WRITE: change fields of one contact in one list. Only the fields you pass are sent. PATCH /Contact/{list_id}/ContactDetails/{contact_id}.
| Argument | Type | Description |
|---|---|---|
| string | Email address. | |
| list_id* | string | Contact list id (digits only, as returned by the list tools). |
| last_name | string | Last name. |
| contact_id* | string | Contact id (digits only, as returned by the list tools). |
| first_name | string | First name. |
| middle_name | string | Middle name. |
| custom_fields | object | Custom list columns by slot, e.g. {"Field1": "12 High St"}. Slot names come from benchmark_get_list (Field1Name ...). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id",
"contact_id"
],
"properties": {
"email": {
"type": "string",
"pattern": "^[^\\s@]+@[^\\s@]+$",
"maxLength": 320,
"minLength": 3,
"description": "Email address."
},
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
},
"last_name": {
"type": "string",
"maxLength": 200,
"description": "Last name."
},
"contact_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact id (digits only, as returned by the list tools)."
},
"first_name": {
"type": "string",
"maxLength": 200,
"description": "First name."
},
"middle_name": {
"type": "string",
"maxLength": 200,
"description": "Middle name."
},
"custom_fields": {
"type": "object",
"description": "Custom list columns by slot, e.g. {\"Field1\": \"12 High St\"}. Slot names come from benchmark_get_list (Field1Name ...).",
"propertyNames": {
"type": "string",
"pattern": "^Field([1-9]|1\\d|2[0-4])$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
}
}
}| Column to search, e.g. email, firstname, lastname. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search text."
},
"status": {
"enum": [
"subscribed",
"unsubscribed",
"hard_bounced"
],
"type": "string",
"description": "Only contacts with this status (subscribed = all except unsubscribed and hard bounced)."
},
"list_id": {
"type": "string",
"pattern": "^\\d{1,19}$",
"description": "Contact list id (digits only, as returned by the list tools)."
},
"order_by": {
"enum": [
"email",
"firstname",
"lastname",
"date"
],
"type": "string",
"description": "Sort column."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order."
},
"search_type": {
"enum": [
"starts_with",
"exact",
"contains",
"ends_with"
],
"type": "string",
"description": "How `search` matches (default: the vendor's default)."
},
"search_field": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Column to search, e.g. email, firstname, lastname."
}
}
}