MailBluster MCP by usefulapi

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
90%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,397Tokens (definiciones de herramientas)
~1.9 KBTamaño de respuesta típico
Impacto significativo en la atención (2.65% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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)}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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)}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas