{
  "service": "mailercloud",
  "displayName": "Mailercloud",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "MAILERCLOUD_API_KEY",
      "description": "Mailercloud API key sent with the Authorization request header. Generate or manage API keys from the Mailercloud dashboard under Integrations > API keys: https://support.mailercloud.com/en/articles/11452670-mcp-server-setup."
    }
  ],
  "homepageUrl": "https://www.mailercloud.com/",
  "actions": [
    {
      "id": "mailercloud.create_contact",
      "service": "mailercloud",
      "name": "create_contact",
      "description": "Create a Mailercloud contact in a recipient list with optional standard and custom fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 200,
            "description": "The contact's email address.",
            "format": "email"
          },
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Mailercloud list ID where the contact should be added."
          },
          "first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25,
            "description": "The contact's first name."
          },
          "middle_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25,
            "description": "The contact's middle name."
          },
          "last_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25,
            "description": "The contact's last name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25,
            "description": "The contact's phone number."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The contact's city."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The contact's state or province."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "The contact's country."
          },
          "postal_code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25,
            "description": "The contact's postal code."
          },
          "company_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 150,
            "description": "The contact's company name."
          },
          "job_title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The contact's job title."
          },
          "department": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The contact's department."
          },
          "industry": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The contact's industry."
          },
          "salary": {
            "type": "number",
            "description": "The contact's salary or numeric value used by Mailercloud segmentation."
          },
          "lead_source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "The source where this contact was collected."
          },
          "contact_type": {
            "type": "string",
            "enum": [
              "active",
              "bounce",
              "abuse",
              "unsubscribe",
              "suppressed",
              "spam complaints"
            ],
            "description": "The Mailercloud contact status to set."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Mailercloud contact tag."
            },
            "description": "Tags to attach to the contact."
          },
          "custom_fields": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "A string custom property value."
                },
                {
                  "type": "number",
                  "description": "A numeric custom property value."
                }
              ],
              "description": "A custom property value accepted by Mailercloud."
            },
            "description": "Custom contact property values keyed by Mailercloud property ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "email",
          "list_id"
        ],
        "description": "Input payload for creating a Mailercloud contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    },
    {
      "id": "mailercloud.create_contact_property",
      "service": "mailercloud",
      "name": "create_contact_property",
      "description": "Create a custom property for Mailercloud contact records.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 30,
            "description": "The name of the custom property."
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "number",
              "date",
              "textarea"
            ],
            "description": "The custom property type."
          },
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500,
            "description": "A description of the custom property's purpose."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "type"
        ],
        "description": "Input payload for creating a Mailercloud contact custom property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    },
    {
      "id": "mailercloud.create_list",
      "service": "mailercloud",
      "name": "create_list",
      "description": "Create a Mailercloud recipient list for storing and managing contacts.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100,
            "description": "The display name of the recipient list."
          },
          "list_type": {
            "const": 1,
            "type": "number",
            "description": "The Mailercloud list type. Use 1 for a normal list."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "list_type"
        ],
        "description": "Input payload for creating a Mailercloud recipient list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    },
    {
      "id": "mailercloud.delete_contact_property",
      "service": "mailercloud",
      "name": "delete_contact_property",
      "description": "Delete a Mailercloud contact custom property by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "property_id": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the custom property to delete."
          }
        },
        "additionalProperties": false,
        "required": [
          "property_id"
        ],
        "description": "Input payload for deleting a Mailercloud contact custom property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    },
    {
      "id": "mailercloud.list_contact_properties",
      "service": "mailercloud",
      "name": "list_contact_properties",
      "description": "List Mailercloud contact custom properties.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request."
          },
          "limit": {
            "type": "integer",
            "minimum": 10,
            "maximum": 100,
            "description": "The number of records to return per page."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Filter contact properties by name."
          },
          "type": {
            "type": "string",
            "enum": [
              "default",
              "custom"
            ],
            "description": "Filter contact properties by property source."
          }
        },
        "additionalProperties": false,
        "required": [
          "page",
          "limit"
        ],
        "description": "Input payload for listing Mailercloud contact properties."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    },
    {
      "id": "mailercloud.update_contact_property",
      "service": "mailercloud",
      "name": "update_contact_property",
      "description": "Update the name or description of a Mailercloud contact custom property.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "property_id": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the custom property to update."
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 30,
            "description": "The new custom property name."
          },
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500,
            "description": "The new custom property description."
          }
        },
        "additionalProperties": false,
        "required": [
          "property_id",
          "name"
        ],
        "description": "Input payload for updating a Mailercloud contact custom property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Mailercloud resource ID returned by create or update operations."
          },
          "success": {
            "type": "boolean",
            "description": "Whether Mailercloud accepted the request."
          },
          "message": {
            "type": "string",
            "description": "A response message returned by Mailercloud."
          },
          "error": {
            "type": "string",
            "description": "An error message returned by Mailercloud."
          },
          "count": {
            "type": "number",
            "description": "The total number of records returned by Mailercloud."
          },
          "data": {
            "description": "The response payload returned by Mailercloud."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "The field associated with the error."
                },
                "message": {
                  "type": "string",
                  "description": "The error message."
                }
              },
              "additionalProperties": true,
              "description": "A Mailercloud error item."
            },
            "description": "Errors returned by Mailercloud."
          }
        },
        "additionalProperties": true,
        "description": "A Mailercloud JSON response."
      }
    }
  ]
}
