PerspectPerspectDocs
Go to Admin
View as Markdown

Newsletters

This reference is auto-generated from the registered MCP tool providers in perspectapiworkers. It reflects the tools exposed by the per-site Perspect MCP server.

Connection

Use the per-site MCP endpoint:

https://perspect.com/mcp/{siteName}

Authenticate with OAuth or an MCP API key using Authorization: Bearer sk_mcp_....

Tools

newsletter_campaign_create

Title: Create Campaign

Create a newsletter campaign. Content is Markdown. Use newsletter_list_list to get list IDs for targeting. Campaigns start as draft — set status='scheduled' with a scheduled_at datetime to send (requires newsletters.publish permission). Use newsletter_statistics to review subscriber counts before sending.

Required permission: newsletters.create

Parameters

Parameter Type Required Default Description
campaign_name string Yes — Campaign name
slug string No — Campaign slug (auto-generated if omitted)
slug_prefix string No — Optional slug prefix for archive paths
subject string Yes — Email subject line
markdown_content string Yes — Campaign markdown body
status string No "draft" Campaign status Allowed: draft, scheduled, cancelled.
scheduled_at string No — Scheduled local datetime (YYYY-MM-DDTHH:MM[:SS])
preview_text string No — Preview/preheader text
from_name string No — From name override
from_email string No — From email override
reply_to_email string No — Reply-to email override
template_id string No — Newsletter template version ID
series_id string No — Series ID
list_ids array<string> No — Target list IDs
tags array<string> No — Campaign tags
notes string No — Internal notes

Example call

{
  "tool": "newsletter_campaign_create",
  "arguments": {
    "campaign_name": "string",
    "subject": "string",
    "markdown_content": "string",
    "status": "draft"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_campaign_delete

Title: Delete Campaign

Delete a newsletter campaign and related placements

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
campaignId string Yes — Campaign ID

Example call

{
  "tool": "newsletter_campaign_delete",
  "arguments": {
    "campaignId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_campaign_get

Title: Get Campaign

Get a specific newsletter campaign by ID

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
campaignId string Yes — Campaign ID

Example call

{
  "tool": "newsletter_campaign_get",
  "arguments": {
    "campaignId": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_campaign_list

Title: List Campaigns

List newsletter campaigns with optional status filter

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
limit number No 20 Maximum number of results (1-100)
offset number No 0 Number of results to skip
status string No — Filter by campaign status Allowed: draft, scheduled, sending, sent, cancelled.

Example call

{
  "tool": "newsletter_campaign_list",
  "arguments": {
    "limit": 20,
    "offset": 0
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "pagination": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number"
        },
        "offset": {
          "type": "number"
        },
        "total": {
          "type": "number"
        },
        "pages": {
          "type": "number"
        }
      },
      "required": [
        "limit",
        "offset",
        "total",
        "pages"
      ]
    }
  },
  "required": [
    "items",
    "pagination"
  ]
}

newsletter_campaign_update

Title: Update Campaign

Update a newsletter campaign. Setting status='scheduled' requires newsletters.publish permission.

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
campaignId string Yes — Campaign ID
campaign_name string Yes — Campaign name
slug string No — Campaign slug
slug_prefix string No — Optional slug prefix for archive paths
subject string Yes — Email subject line
markdown_content string Yes — Campaign markdown body
status string No "draft" Campaign status Allowed: draft, scheduled, cancelled.
scheduled_at string No — Scheduled local datetime (YYYY-MM-DDTHH:MM[:SS])
preview_text string No — Preview/preheader text
from_name string No — From name override
from_email string No — From email override
reply_to_email string No — Reply-to email override
template_id string No — Newsletter template version ID
series_id string No — Series ID
list_ids array<string> No — Target list IDs
tags array<string> No — Campaign tags
notes string No — Internal notes

Example call

{
  "tool": "newsletter_campaign_update",
  "arguments": {
    "campaignId": "string",
    "campaign_name": "string",
    "subject": "string",
    "markdown_content": "string",
    "status": "draft"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_list_add_subscriber

Title: Add Subscriber to List

Add a subscription to a newsletter list

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
subscriptionId string Yes — Subscription ID to add
listId string Yes — List ID to add the subscription to

Example call

{
  "tool": "newsletter_list_add_subscriber",
  "arguments": {
    "subscriptionId": "string",
    "listId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_list_create

Title: Create Newsletter List

Create a new newsletter list

Required permission: newsletters.create

Parameters

Parameter Type Required Default Description
list_name string Yes — Display name of the list
slug string Yes — URL-friendly slug
description string No — List description
is_public boolean No true Whether the list is visible to subscribers
is_default boolean No false Whether new subscribers are added to this list by default
double_opt_in boolean No true Require email confirmation
welcome_email_enabled boolean No true Send welcome email on subscription

Example call

{
  "tool": "newsletter_list_create",
  "arguments": {
    "list_name": "string",
    "slug": "string",
    "is_public": true,
    "is_default": false,
    "double_opt_in": true,
    "welcome_email_enabled": true
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_list_delete

Title: Archive Newsletter List

Archive a newsletter list (soft delete). Valid from: active.

Required permission: newsletters.delete

Parameters

Parameter Type Required Default Description
listId string Yes — List ID

Example call

{
  "tool": "newsletter_list_delete",
  "arguments": {
    "listId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_list_get

Title: Get Newsletter List

Get a specific newsletter list by ID

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
listId string Yes — List ID

Example call

{
  "tool": "newsletter_list_get",
  "arguments": {
    "listId": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_list_list

Title: List Newsletter Lists

List all newsletter lists for a site

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
status string No — Filter by list status Allowed: active, archived.

Example call

{
  "tool": "newsletter_list_list",
  "arguments": {}
}

Output schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "pagination": {
      "type": "object",
      "properties": {
        "total": {
          "type": "number"
        }
      },
      "required": [
        "total"
      ]
    }
  },
  "required": [
    "items",
    "pagination"
  ]
}

newsletter_list_remove_subscriber

Title: Remove Subscriber from List

Remove a subscription from a newsletter list

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
subscriptionId string Yes — Subscription ID to remove
listId string Yes — List ID to remove the subscription from

Example call

{
  "tool": "newsletter_list_remove_subscriber",
  "arguments": {
    "subscriptionId": "string",
    "listId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_list_update

Title: Update Newsletter List

Update an existing newsletter list

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
listId string Yes — List ID
list_name string No — Display name
slug string No — URL-friendly slug
description string No — List description
is_public boolean No — Whether the list is visible to subscribers
is_default boolean No — Default list for new subscribers
double_opt_in boolean No — Require email confirmation
welcome_email_enabled boolean No — Send welcome email
status string No — List status Allowed: active, archived.

Example call

{
  "tool": "newsletter_list_update",
  "arguments": {
    "listId": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_series_create

Title: Create Newsletter Series

Create a newsletter series

Required permission: newsletters.create

Parameters

Parameter Type Required Default Description
series_name string Yes — Series name
description string No — Optional description
status string No "active" Series status (active = sending enabled, paused = sends skipped) Allowed: active, paused, archived.
cadence string No "manual" Send cadence; use 'manual' to trigger sends explicitly Allowed: manual, daily, weekly, monthly.
timezone string No — IANA timezone (e.g. America/New_York)
send_time string No — Send time (HH:MM)
day_of_week number No — Day of week for weekly cadence (0=Sun ... 6=Sat)
day_of_month number No — Day of month for monthly cadence (1-31)
next_send_at string No — Next send local datetime (YYYY-MM-DDTHH:MM[:SS])
list_ids array<string> No — Default list IDs for this series
from_name string No — Default from name
from_email string No — Default from email
reply_to_email string No — Default reply-to email
subject_prefix string No — Default subject prefix
tags array<string> No — Series tags
notes string No — Internal notes

Example call

{
  "tool": "newsletter_series_create",
  "arguments": {
    "series_name": "string",
    "status": "active",
    "cadence": "manual"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_series_delete

Title: Archive Newsletter Series

Archive a newsletter series. Valid from: active, paused.

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
seriesId string Yes — Series ID

Example call

{
  "tool": "newsletter_series_delete",
  "arguments": {
    "seriesId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_series_get

Title: Get Newsletter Series

Get a specific newsletter series by ID

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
seriesId string Yes — Series ID

Example call

{
  "tool": "newsletter_series_get",
  "arguments": {
    "seriesId": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_series_list

Title: List Newsletter Series

List newsletter series for the connected site

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
status string No — Filter by series status Allowed: active, paused, archived.

Example call

{
  "tool": "newsletter_series_list",
  "arguments": {}
}

Output schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "pagination": {
      "type": "object",
      "properties": {
        "total": {
          "type": "number"
        }
      },
      "required": [
        "total"
      ]
    }
  },
  "required": [
    "items",
    "pagination"
  ]
}

newsletter_series_update

Title: Update Newsletter Series

Update an existing newsletter series

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
seriesId string Yes — Series ID
series_name string Yes — Series name
description string No — Optional description
status string No "active" Series status (active = sending enabled, paused = sends skipped) Allowed: active, paused, archived.
cadence string No "manual" Send cadence; use 'manual' to trigger sends explicitly Allowed: manual, daily, weekly, monthly.
timezone string No — IANA timezone (e.g. America/New_York)
send_time string No — Send time (HH:MM)
day_of_week number No — Day of week for weekly cadence (0=Sun ... 6=Sat)
day_of_month number No — Day of month for monthly cadence (1-31)
next_send_at string No — Next send local datetime (YYYY-MM-DDTHH:MM[:SS])
list_ids array<string> No — Default list IDs for this series
from_name string No — Default from name
from_email string No — Default from email
reply_to_email string No — Default reply-to email
subject_prefix string No — Default subject prefix
tags array<string> No — Series tags
notes string No — Internal notes

Example call

{
  "tool": "newsletter_series_update",
  "arguments": {
    "seriesId": "string",
    "series_name": "string",
    "status": "active",
    "cadence": "manual"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_statistics

Title: Newsletter Statistics

Get newsletter statistics including subscriber counts by status and recent activity

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
startDate string No — Start date for activity period (ISO 8601)
endDate string No — End date for activity period (ISO 8601)
listId string No — Filter stats to a specific list

Example call

{
  "tool": "newsletter_statistics",
  "arguments": {}
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_subscription_bulk_update

Title: Bulk Update Subscriptions

Perform a bulk action on multiple subscriptions

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
ids array<string> Yes — Array of subscription IDs (max 100)
action string Yes — Action to perform Allowed: confirm, unsubscribe, delete, add_to_list, remove_from_list.
listId string No — List ID (required for add_to_list / remove_from_list)

Example call

{
  "tool": "newsletter_subscription_bulk_update",
  "arguments": {
    "ids": [
      "string"
    ],
    "action": "confirm"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_subscription_delete

Title: Delete Subscription

Permanently delete a newsletter subscription and remove from all lists

Required permission: newsletters.delete

Parameters

Parameter Type Required Default Description
subscriptionId string Yes — Subscription ID

Example call

{
  "tool": "newsletter_subscription_delete",
  "arguments": {
    "subscriptionId": "string"
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "required": [
    "message"
  ]
}

newsletter_subscription_get

Title: Get Subscription

Get a specific newsletter subscription by ID

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
subscriptionId string Yes — Subscription ID

Example call

{
  "tool": "newsletter_subscription_get",
  "arguments": {
    "subscriptionId": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_subscription_get_by_email

Title: Find Subscription by Email

Look up a newsletter subscription by email address

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
email string Yes — Email address to look up

Example call

{
  "tool": "newsletter_subscription_get_by_email",
  "arguments": {
    "email": "string"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

newsletter_subscription_list

Title: List Subscriptions

List newsletter subscriptions with optional filters (status, search, list, date range)

Required permission: newsletters.read

Parameters

Parameter Type Required Default Description
limit number No 20 Maximum number of results (1-100)
offset number No 0 Number of results to skip
status string No — Filter by subscription status Allowed: pending, confirmed, unsubscribed, bounced, complained.
listId string No — Filter by newsletter list ID
search string No — Search by email or name
startDate string No — Filter subscriptions created after this date (ISO 8601)
endDate string No — Filter subscriptions created before this date (ISO 8601)

Example call

{
  "tool": "newsletter_subscription_list",
  "arguments": {
    "limit": 20,
    "offset": 0
  }
}

Output schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "pagination": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number"
        },
        "offset": {
          "type": "number"
        },
        "total": {
          "type": "number"
        },
        "pages": {
          "type": "number"
        }
      },
      "required": [
        "limit",
        "offset",
        "total",
        "pages"
      ]
    }
  },
  "required": [
    "items",
    "pagination"
  ]
}

newsletter_subscription_update_status

Title: Update Subscription Status

Update a subscription's status (confirm, unsubscribe, mark as bounced or complained). Valid from: pending, confirmed, unsubscribed, bounced, complained.

Required permission: newsletters.update

Parameters

Parameter Type Required Default Description
subscriptionId string Yes — Subscription ID
status string Yes — New status Allowed: confirmed, unsubscribed, bounced, complained.
notes string No — Optional notes (e.g., unsubscribe reason)

Example call

{
  "tool": "newsletter_subscription_update_status",
  "arguments": {
    "subscriptionId": "string",
    "status": "confirmed"
  }
}

Output schema

{
  "type": "object",
  "additionalProperties": true
}

This page is generated from the registered MCP tool providers. Do not edit it by hand.