MailBluster MCP by usefulapi

Manage MailBluster leads, custom fields, products and orders: look up, add and update records.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
90%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,397Tokens (Tool-Definitionen)
~1.9 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.65% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "mailbluster": {
      "url": "https://mailbluster.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://mailbluster.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (13)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢mailbluster_list_fields

List the brand's custom lead fields: id, label and merge tag. Use the merge tags as keys of `fields` when creating or updating leads. GET /fields.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡mailbluster_create_field(field_label, field_merge_tag)

WRITE: create a custom lead field. The merge tag is the key used in lead `fields` and in email templates. Creating a field changes the brand's data model but sends nothing. POST /fields.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "field_label": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Display label, e.g. Gender."
    },
    "field_merge_tag": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Merge tag, e.g. gender."
    }
  },
  "required": [
    "field_label",
    "field_merge_tag"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢mailbluster_get_lead(email, lead_hash)

Get one lead by email address (the server computes the MD5 id MailBluster uses): name, custom fields, timezone, subscribed and opt-in status, tags, created/updated dates. MailBluster has no list-leads endpoint. GET /leads/{md5(email)}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "description": "The lead's email address (preferred).",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "lead_hash": {
      "description": "Alternative to email: the 32-character MD5 hex of the lowercased email.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mailbluster_create_lead(email, first_name, last_name, fields, timezone, ...)

WRITE: add a lead (contact) to the brand. `subscribed` defaults to FALSE: the lead is stored but is not subscribed to email. Only set subscribed=true when the person has given consent to receive email from this brand (the user is responsible for lawful consent); this server never subscribes anyone on its own. No email is sent by this tool (double opt-in is not offered). If the lead already exists the call fails unless overwrite_existing=true, which replaces the stored data (then `subscribed` must be given explicitly). POST /leads.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "description": "Email address."
    },
    "first_name": {
      "type": "string",
      "maxLength": 190
    },
    "last_name": {
      "type": "string",
      "maxLength": 190
    },
    "fields": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "description": "Custom field values keyed by the field's MERGE TAG (see mailbluster_list_fields), e.g. {\"company\": \"Pied Piper\"}."
    },
    "timezone": {
      "description": "IANA timezone, e.g. America/Los_Angeles.",
      "type": "string",
      "maxLength": 100
    },
    "ip_address": {
      "description": "Lead's IP address; MailBluster derives country/city/timezone from it.",
      "type": "string",
      "maxLength": 64
    },
    "subscribed": {
      "description": "Default false. true only with the lead's consent to receive email.",
      "type": "boolean"
    },
    "tags": {
      "description": "Tag names to attach (created if missing).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "overwrite_existing": {
      "description": "Default false. true overwrites an existing lead with the same email.",
      "type": "boolean"
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mailbluster_update_lead(email, lead_hash, new_email, first_name, last_name, ...)

WRITE: change an existing lead's name, custom fields, email, timezone, IP address, subscription flag or tags (send only what should change). `subscribed` is left alone unless you pass it; false unsubscribes the lead, true re-subscribes. Only set subscribed=true when the person has given consent to receive email from this brand (the user is responsible for lawful consent); this server never subscribes anyone on its own. PUT /leads/{md5(email)}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Current email of the lead to update (preferred).",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "lead_hash": {
      "description": "Alternative to email: the 32-character MD5 hex of the lowercased current email.",
      "type": "string"
    },
    "new_email": {
      "description": "Change the lead's email address to this.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "first_name": {
      "type": "string",
      "maxLength": 190
    },
    "last_name": {
      "type": "string",
      "maxLength": 190
    },
    "fields": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "description": "Custom field values keyed by the field's MERGE TAG (see mailbluster_list_fields), e.g. {\"company\": \"Pied Piper\"}."
    },
    "timezone": {
      "type": "string",
      "maxLength": 100
    },
    "ip_address": {
      "type": "string",
      "maxLength": 64
    },
    "subscribed": {
      "description": "Only pass to change the subscription. true only with the lead's consent.",
      "type": "boolean"
    },
    "add_tags": {
      "description": "Tag names to attach (created if missing). Applied before remove_tags.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "remove_tags": {
      "description": "Tag names to detach.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢mailbluster_list_products(page_no, per_page)

List product records (id, name, dates) the brand has registered for e-commerce tracking. Paged: the reply's meta has total and nextPageNo (null on the last page). GET /products.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "page_no": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's meta.nextPageNo.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (MailBluster default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢mailbluster_get_product(product_id)

Get one product record by the id you registered it under. GET /products/{product_id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Product id."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡mailbluster_create_product(product_id, name)

WRITE: register a product record (your own id plus a name) so orders can reference it. Sends nothing to anyone and charges nothing. POST /products.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Your unique product id."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Product name."
    }
  },
  "required": [
    "product_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mailbluster_update_product(product_id, name)

WRITE: rename a product record. PUT /products/{product_id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Product id."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "New product name."
    }
  },
  "required": [
    "product_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢mailbluster_list_orders(page_no, per_page)

List order records (id, currency, total price, customer lead, campaign, line items). These are records kept in MailBluster for tracking; no payment is involved. Paged: see meta.nextPageNo. GET /orders.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "page_no": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's meta.nextPageNo.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (MailBluster default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢mailbluster_get_order(order_id)

Get one order record by the id it was created with. GET /orders/{order_id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Order id."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mailbluster_create_order(order_id, customer, campaign_id, currency, total_price, ...)

WRITE: record an order (a tracking record: it does not take payment, charge a card or send email). The customer's email becomes a lead if none exists, and the lead's tags are merged. `customer.subscribed` is REQUIRED because MailBluster would otherwise default it to true: pass false unless the customer has consented to email. For a customer who already exists, the value may replace their stored subscription state. Only set subscribed=true when the person has given consent to receive email from this brand (the user is responsible for lawful consent); this server never subscribes anyone on its own. POST /orders.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Your unique order id."
    },
    "customer": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "minLength": 3,
          "maxLength": 320,
          "description": "Email address."
        },
        "first_name": {
          "type": "string",
          "maxLength": 190
        },
        "last_name": {
          "type": "string",
          "maxLength": 190
        },
        "fields": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "description": "Custom field values keyed by the field's MERGE TAG (see mailbluster_list_fields), e.g. {\"company\": \"Pied Piper\"}."
        },
        "timezone": {
          "type": "string",
          "maxLength": 100
        },
        "ip_address": {
          "type": "string",
          "maxLength": 64
        },
        "tags": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          }
        },
        "subscribed": {
          "type": "boolean",
          "description": "Required. true only with the customer's consent to receive email; otherwise false."
        }
      },
      "required": [
        "email",
        "subscribed"
      ]
    },
    "campaign_id": {
      "description": "Id of the campaign that led to the order, if any.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO currency code, e.g. USD."
    },
    "total_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "Order total, e.g. 10.64."
    },
    "items": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 190,
            "description": "Your id of the product (a product record with this id is created in MailBluster if it does not exist)."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 190,
            "description": "Product name."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000,
            "description": "Unit price, e.g. 3.15."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 1000000
          }
        },
        "required": [
          "id",
          "name",
          "price",
          "quantity"
        ]
      },
      "description": "Ordered products."
    }
  },
  "required": [
    "order_id",
    "customer",
    "currency",
    "total_price",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mailbluster_update_order(order_id, campaign_id, currency, total_price, items)

WRITE: change an order record's campaign, currency, total or items (send only what should change; `items`, when given, REPLACES all previous items). The customer cannot be changed here. No payment or email is involved. PUT /orders/{order_id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 190,
      "description": "Order id."
    },
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO currency code, e.g. USD."
    },
    "total_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "New order total."
    },
    "items": {
      "description": "New complete item list; replaces the previous items.",
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 190,
            "description": "Your id of the product (a product record with this id is created in MailBluster if it does not exist)."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 190,
            "description": "Product name."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000,
            "description": "Unit price, e.g. 3.15."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 1000000
          }
        },
        "required": [
          "id",
          "name",
          "price",
          "quantity"
        ]
      }
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet13 Tools