Source profile for Mailtrap. Its purpose and connection details need verification against the maintainer’s documentation.
This Mailtrap source profile is awaiting review. The previous overview contained a logo or badge fragment rather than a usable description. Check the linked maintainer documentation for the server’s purpose and connection details.
The documented npm package is mcp-mailtrap. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.
The example declares MAILTRAP_API_TOKEN, DEFAULT_FROM_EMAIL, MAILTRAP_ACCOUNT_ID, MAILTRAP_SANDBOX_ID. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| from | optional): Sender. Rejected for Mailtrap-hosted inboxes; required for custom-domain inboxes |
| to | required): At least one recipient (bare email string or { email, name? }, or an array) |
| cc | optional): Array of CC recipients as { email, name? } objects (bare email strings also accepted at runtime). |
| bcc | optional): Array of BCC recipients as { email, name? } objects (bare email strings also accepted at runtime). |
| subject | required): Email subject line (max 255 chars). Supports merge tags, e.g. Hi {{first_name}} |
| text | conditional): Email body text. Required (alongside or instead of html) for inline sends; must be omitted when template_uuid is set. |
| html | conditional): HTML version of the email body. Required (alongside or instead of text) for inline sends; must be omitted when template_uuid is set. |
| category | optional): Message category |
| template_uuid | optional): Use a Mailtrap email template instead of inline content. When set, subject / text / html / category must be omitted. |
| template_variables | optional): Object of variables substituted into the template referenced by template_uuid. Only allowed together with template_uuid. |
| base | optional), requests (required): See batch-send-transactional-email above. |
| reply_to | optional): Reply-To address parts (display_name, local_part, domain) |
| custom_variables | optional): Default custom variables (string-valued). |
| headers | optional): Default custom headers. |
| requests | required): Non-empty array of per-recipient messages. Each entry has: |
| Inline | subject/text/html/category) or template (template_uuid/template_variables) overrides; any field omitted falls back to the matching base value. |
| search_after | optional): Pagination cursor from the previous response's next_page_cursor |
| sent_after | optional): ISO 8601 date/time; only logs sent after this time |
| sent_before | optional): ISO 8601 date/time; only logs sent before this time |
| from_email | optional): Filter by sender email; use with from_operator (default: ci_equal) |
| to_email | optional): Filter by recipient email; use with to_operator (default: ci_equal) |
| status | optional): Filter by delivery status: delivered, not_delivered, enqueued, opted_out; use with status_operator (default: equal) |
| sending_domain_id | required): Sending domain ID |
| sending_stream | optional, email_sending only): "transactional" or "bulk" |
| events | optional): Filter by event type(s): delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; use with events_operator… |
| email_service_provider_response | optional): Filter by provider response text; use with _operator (ci_contain, etc.) |
| email_service_provider | optional): Filter by provider (exact); use with _operator: equal, not_equal |
| recipient_mx | optional): Filter by recipient MX; use with recipient_mx_operator (ci_contain, etc.) |
| message_id | required): ID of the message to forward |
| include_content | optional): When true, fetches the raw EML (if raw_message_url is available) and appends parsed HTML and plain-text body sections, similar to… |
| start_date | optional): Start of the aggregation window (inclusive), YYYY-MM-DD. Defaults to the day the campaign was last started |
| end_date | optional): End of the aggregation window (inclusive), YYYY-MM-DD. Defaults to the current date |
| breakdown | optional): How to break down the stats: aggregated (default), by_domain, by_category, by_email_service_provider, or by_date |
| sending_domain_ids | optional): Limit results to these sending domain IDs (array of integers) |
| sending_streams | optional): Limit to transactional and/or bulk (array of strings) |
| categories | optional): Limit to these email categories (array of strings) |
| email_service_providers | optional): Limit to these providers, e.g. Google, Yahoo, Outlook (array of strings) |
| template_id | required): ID of the template to delete |
| sandbox_id | optional): Sandbox ID. Falls back to MAILTRAP_SANDBOX_ID. |
| test_inbox_id | optional): Legacy alias for sandbox_id. |
| page | optional): Page number for pagination (minimum: 1) |
| last_id | optional): Pagination cursor from a previous response's last_id |
| search | optional): Filter campaigns by name (case-insensitive partial match) |
| project_id | required): ID of the project to update |
| required): Contact email address | |
| is_read | required): true marks as read, false marks as unread |
| attachment_id | required): ID of the attachment to fetch |
| include_setup_instructions | optional): If true, append DNS setup instructions to the response. Default: false |
| domain_name | required): Domain name (e.g. example.com) |
| open_tracking_enabled | optional): Track opens on emails sent from this domain |
| click_tracking_enabled | optional): Track clicks on links in emails sent from this domain |
| tracking_opt_out_enabled | optional): Add the tracking opt-out link to tracked emails. Requires open or click tracking |
| auto_unsubscribe_link_enabled | optional): Automatically add an unsubscribe link to emails |
| inbound_enabled | optional): Allow the domain to be attached to an inbound inbox as a catch-all |
| address | required): Street address |
| city | required): City |
| country | required): Country |
| zip_code | required): ZIP or postal code |
| website_url | required): Company website URL |
| phone | optional): Phone number |
| privacy_policy_url | optional): URL of the privacy policy page |
| terms_of_service_url | optional): URL of the terms of service page |
| info_level | optional): business or individual |
| domain_id | optional): Attach to a custom sending domain (catch-all inbox). Omit for a Mailtrap-hosted inbox |
| suppression_id | required): ID of the suppression to delete |
| start_time | optional): Only opt-outs created at or after this time (ISO 8601) |
| end_time | optional): Only opt-outs created at or before this time (ISO 8601) |
| tracking_opt_out_id | required): ID of the tracking opt-out to delete |
| webhook_id | required): ID of the webhook to delete |
| url | optional): New webhook URL |
| webhook_type | required): "email_sending", "audit_log", or "inbound_receiving" |
| active | optional, boolean): Enable or disable the webhook |
| payload_format | optional): "json" or "jsonlines" |
| event_types | optional, email_sending only): array of delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject |
| inbound_inbox_id | optional, inbound_receiving only): ID of the inbound inbox the webhook is linked to |
| contact_identifier | required): Contact ID or email |
| fields | optional): Custom field values keyed by merge tag (string or number values) |
| list_ids | optional): Replace membership set with this exact list |
| unsubscribed | optional, boolean): Set to unsubscribed (true) or subscribed (false) |
| list_ids_included | optional): List IDs to add the contact to |
| list_ids_excluded | optional): List IDs to remove the contact from |
| params | required): Object of arbitrary key/value pairs. Values may be string, number, boolean, or null |
| list_id | required): ID of the contact list to delete |
| field_id | required): ID of the contact field to delete |
| merge_tag | optional): New merge tag (must remain unique) |
| data_type | optional): One of text, number, boolean, date |
| contacts | required): Array of contact entries. Each entry needs: |
| import_id | required): ID of the contact import job |
| filters | required): Array of filter objects. Each has: |
| operator | required): One of equal, not_equal, contains, not_contains, is_empty, is_not_empty |
| value | required): Comparison value (string, number, boolean, or array) |
| export_id | required): ID of the contact export job |
| token | optional): Page number to retrieve (page-token pagination). Defaults to 1 |
| per_page | optional): Number of campaigns per page. Defaults to 50, maximum 100 |
| email_campaign_id | required): ID of the email campaign |
| from_local_part | required): Local part (before the @) of the From address |
| template_attributes | required): Inline email template. Has: |
| body_html | optional): HTML body (the design). Required before the campaign can be scheduled or started. Include an unsubscribe link via an anchor whose href contains… |
| body_text | optional): Plain-text alternative of the email body |
| merge_tags | optional): Bare names of the merge tags referenced in the subject/body, e.g. ["first_name"] |
| from_display_name | optional): Display name shown in the From header |
| delivery_mode | optional): rapid (send as fast as possible) or gradual (throttle to delivery_options.emails_per_hour) |
| delivery_options | optional): Delivery throttling options (emails_per_hour) |
| contact_list_ids | optional): IDs of contact lists to send to (treated as the full set of included lists) |
| contact_segment_ids | optional): IDs of contact segments to send to (treated as the full set of included segments) |
| datetime | required): When to send the campaign (ISO 8601). Must be in the future and no more than 1 month ahead |
| domain_uuids | optional): Filter by sending domain UUIDs (array of strings) |
| inbox_ids | optional): Filter by sandbox inbox IDs (array of strings) |
| project_ids | optional): Filter by sandbox project IDs (array of strings) |
| account_access_id | required): Target account access ID |
| permissions | required): Array of permission entries. Each has: |
| resource_id | required): ID of the resource |
| resource_type | required): One of account, project, inbox, domain, billing |
| access_level | required): 100 (admin) or 10 (viewer) |
| destroy | optional, boolean): When true, removes this permission instead of creating/updating it |
| expires_at | optional): Expiration for the new token as an ISO 8601 date-time. Omit for the server default (1 year); pass an explicit null for a token that never expires.… |
| resources | optional): Array of resource permissions to scope the token to. Each entry has: |
| api_token_id | required): ID of the API token to delete |
| folder_id | required): ID of the inbound folder |
| inbox_id | required): ID of the inbox |
| attachments | optional): Array of { content (base64), filename, type?, disposition?, content_id? } |
| thread_id | required): ID of the thread |
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": [
"-y",
"mcp-mailtrap"
],
"env": {
"MAILTRAP_API_TOKEN": "YOUR_MAILTRAP_API_TOKEN",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| MAILTRAP_API_TOKEN | Declared in the maintainer’s client configuration. | Yes |
| DEFAULT_FROM_EMAIL | Declared in the maintainer’s client configuration. | Check documentation |
| MAILTRAP_ACCOUNT_ID | Declared in the maintainer’s client configuration. | Yes |
| MAILTRAP_SANDBOX_ID | Declared in the maintainer’s client configuration. | Yes |
Your assistant inside the workspace — read channels, search history, post messages and tame the noise.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Inbox intelligence — search, read, draft and send Gmail through your assistant with OAuth auto-setup.
Read and write Jira, Confluence, Bitbucket, JSM and Compass from your AI client — with your own permissions.
Read and send Telegram messages through your assistant — chats, channels and history via the client API.
Enables Discord bot integration with Model Context Protocol (MCP) compatible applications like Claude Desktop.