https://mcp.paubox.com/mcp and the @paubox/mcp stdio package. How each one receives your API key is the only difference.
The optional
apiKey parameter listed on every tool below exists only on the HTTP transport. Over stdio the key comes from the PAUBOX_API_KEY environment variable and the parameter is not accepted; omit it. Over HTTP the key is resolved from the OAuth token, the x-paubox-api-key header, or that parameter.Parameters use camelCase (formId, subscriptionListId) even where the underlying REST API uses snake_case.send_secure_email
Sends a single HIPAA compliant email through the Paubox Email API. The sender address must belong to a domain you have verified in the Paubox dashboard.
Example payload
sourceTrackingId string you can pass to check_email_status.
check_email_status
Retrieves the current delivery status of a message sent viasend_secure_email.
Example payload
validate_credentials
Verifies that the Paubox API credentials are present and valid by making a live check against the Paubox API. Useful as a first step before sending email.
When connecting via stdio (Claude Code), the API key comes from an environment variable and no parameters are needed.
Example payload
Forms
The two tools below need no credentials. Everything after them manages forms and submissions and requires an API key carrying theforms scope, sent as a Bearer token; scoped keys are managed in the Paubox admin dashboard. See Forms authentication.
get_form
Retrieves the full definition of a Paubox Form, including its title, description, and field schema, so an agent can present the form questions in a conversation. No authentication is required for active forms. When an API key carrying theforms scope is available, inactive and archived forms become retrievable too.
Example payload
title, description, form_json (field definitions), and metadata fields (active, signable, submission_count, created_at, updated_at).
submit_form
Submits a completed response to a Paubox Form. No authentication is required for this tool.
Example payload: text fields only
list_forms
Lists a customer’s Paubox Forms with search, filtering, ordering, and pagination.
Example payload
create_form
Creates a new Paubox Form.
Example payload
update_form
Updates an existing Paubox Form. Only the fields you provide change; omitted fields stay as they are.
Example payload
archive_form
Archives a Paubox Form. This setsarchived to true and active to false.
Response: returns the archived form.
unarchive_form
Restores a previously archived Paubox Form.
Response: returns the restored form.
copy_form
Duplicates an existing Paubox Form under a new title.
Response: returns the new form, including its UUID.
get_form_stats
Returns aggregate Paubox Forms statistics: active form count, total submission count, and submissions in the last 7 days.
Response: returns
active_form_count, submission_count, and submissions_last_7_days.
list_form_submissions
Lists a form’s submissions, with each submission’sform_data parsed into structured key/value pairs.
Response: returns submissions with parsed field data, submitter email, and attachment info.
export_submissions_csv
Exports a form’s submissions as CSV text.
Response: returns CSV text.
export_submission_pdf
Exports a single form submission as a PDF.
Response: returns the PDF, base64-encoded.
Email Marketing
These tools read and write Paubox Email Marketing data. They use the same API key as the email tools — no additional scope is required — but the account must have Email Marketing provisioned. Callvalidate_marketing_access first if another marketing tool reports that no marketing customer was found.
This set is read-only plus safe subscriber and list writes. Campaign sending and bulk deletion are deliberately not exposed over MCP.
apiKey string parameter, which behaves as described above; it is omitted from the tables that have no other parameters.
validate_marketing_access
Checks whether the account has Email Marketing provisioned and returns the marketing customer profile. Example payloadfrom_name, from_email, physical address, and global unsubscribe setting.
list_subscribers
Lists Email Marketing subscribers. OmitsubscriptionListId to search the account’s default “All contacts” list.
Response: returns a paginated list of subscribers.
get_subscriber
Retrieves one subscriber by UUID, including custom field values and subscription list memberships.
Response: returns the subscriber object.
create_subscriber
Adds a subscriber. Requires an email address or a phone number. The subscriber always joins the default “All contacts” list, plussubscriptionListId when given. An existing subscriber matching the same email or phone is updated rather than duplicated. Custom field names that do not exist yet are created automatically.
* One of
email or phoneNumber is required.
Example payload
update_subscriber
Updates an existing subscriber by UUID. Only the fields you provide change.
Response: returns the updated subscriber.
get_subscribed_count
Counts currently subscribed contacts on a list, excluding unsubscribed and deleted contacts.
Response: returns the subscribed contact count.
list_subscriber_custom_fields
Lists the custom subscriber field types defined for the account. Use this to discover which custom field namescreate_subscriber and update_subscriber can set.
Example payload
list_marketing_lists
Lists all audiences — both static subscription lists and filter-based dynamic lists — in one view with subscriber counts. Uselist_subscription_lists or list_dynamic_lists when you need one kind specifically.
Response: returns all audiences with their kind, ID, and subscriber count.
list_subscription_lists
Lists static subscription lists with their integer IDs, subscriber counts, and which one is the default “All contacts” list. The IDs returned here are whatsubscriptionListId expects elsewhere.
Response: returns subscription lists with integer IDs and subscriber counts.
create_subscription_list
Creates a new, empty subscription list.
Response: returns the new list’s integer ID, for use with
create_subscriber and list_subscribers.
list_dynamic_lists
Lists dynamic lists — filter-based segments that recompute their membership — with their UUIDs, filter definitions, and subscriber counts.
Response: returns dynamic lists with UUIDs, filter definitions, and subscriber counts.
list_campaign_sends
Lists campaign sends — each time a marketing email went out to a list — with per-send counts for delivered, viewed, clicked, bounced, and unsubscribed.
Response: returns campaign sends with their integer IDs and per-send engagement counts.
list_campaign_deliveries
Lists individual deliveries — one row per recipient per campaign — showing what happened to each message.
Response: returns per-recipient delivery rows.
get_campaign_analytics
Runs an Email Marketing analytics report.
Example payload
get_marketing_bulk_job
Checks the progress of an asynchronous bulk job. Bulk subscriber imports and CSV exports return a job ID (jid or bid) instead of a result; pass it here.
Response: returns total, pending, and failed counts for the job.