Community Gmail server with auto-auth: search, read and send email via MCP.
Mailtrap is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Official MCP Server for Mailtrap
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --env 'MAILTRAP_API_TOKEN=${MAILTRAP_API_TOKEN}' --transport stdio mailtrap-mcp '--' npx -y mcp-mailtrap
# 2 — ask your agent for something these tools do
# send-email, batch-send-transactional-email, batch-send-bulk-email and 122 more
It needs MAILTRAP_API_TOKEN: this reads it from your environment, so export it first.
Mailtrap costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Mailtrap as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. Claude Code reads MAILTRAP_API_TOKEN (Mailtrap API token from https://mailtrap.io/api-tokens) from your environment each time it starts the server, so the value stays out of its config: export it in your shell profile (macOS, Linux), or run setx MAILTRAP_API_TOKEN … and open a new terminal (Windows). The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user --env 'MAILTRAP_API_TOKEN=${MAILTRAP_API_TOKEN}' --transport stdio mailtrap-mcp '--' npx -y mcp-mailtrapReconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: MAILTRAP_API_TOKEN — Mailtrap API token from https://mailtrap.io/api-tokens. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
125 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Send an email to your recipient email address using Mailtrap Email API. You can send emails to multiple recipients at once.
No parameter schema on file.
Send a batch of transactional emails in one Mailtrap API call. Shared fields go on base; per-recipient overrides go in requests[]. Each request must include to.
No parameter schema on file.
Send a batch of bulk emails (Mailtrap bulk-stream API) in one call. Shared fields go on base; per-recipient overrides go in requests[]. Each request must include at least one of to/cc/bcc.
No parameter schema on file.
Create a new email template
No parameter schema on file.
List all email templates
No parameter schema on file.
Get a single email template by ID, including subject, category, and HTML/text body.
No parameter schema on file.
Update an existing email template
No parameter schema on file.
Delete an existing email template
No parameter schema on file.
Send an email in sandbox mode to a test inbox without delivering to your recipients
No parameter schema on file.
Send a batch of emails in sandbox mode to a test inbox in one Mailtrap API call. Shared fields go on base; per-recipient overrides go in requests[]. Requires sandbox_id or the MAILTRAP_SANDBOX_ID env var.
No parameter schema on file.
Get list of messages from the sandbox test inbox
No parameter schema on file.
Show sandbox email message details and content from the sandbox test inbox. Optionally include spam report (SpamAssassin score) and HTML analysis (client compatibility) for email testing workflows.
No parameter schema on file.
List all sandbox projects and their inboxes in your Mailtrap account
No parameter schema on file.
Create a new sandbox project to group test inboxes
No parameter schema on file.
Get a sandbox project by ID, including its inboxes and email counts
No parameter schema on file.
Rename an existing sandbox project
No parameter schema on file.
Delete a sandbox project and all its inboxes
No parameter schema on file.
Create a new sandbox test inbox within a project. Returns SMTP credentials for the new inbox.
No parameter schema on file.
Get sandbox inbox details including SMTP credentials, email counts, and status
No parameter schema on file.
Update a sandbox inbox name or email username
No parameter schema on file.
Delete a sandbox inbox and all its messages
No parameter schema on file.
Delete all messages from a sandbox inbox without deleting the inbox itself
No parameter schema on file.
List all sandboxes accessible to the API token across projects
No parameter schema on file.
Mark all messages in a sandbox as read
No parameter schema on file.
Reset the SMTP credentials for a sandbox
No parameter schema on file.
Enable the receive-by-email address for a sandbox
No parameter schema on file.
Generate a new receive-by-email address for a sandbox
No parameter schema on file.
Forward a sandbox message to an email address (counts against your monthly forwarding quota)
No parameter schema on file.
Mark a sandbox message as read or unread
No parameter schema on file.
Delete a single sandbox message
No parameter schema on file.
Get the SpamAssassin spam report for a sandbox message (score, rules, report).
No parameter schema on file.
Get HTML analysis for a sandbox message (client compatibility, problematic elements).
No parameter schema on file.
Get the parsed mail headers for a sandbox message.
No parameter schema on file.
Get the rendered HTML body of a sandbox message.
No parameter schema on file.
Get the plain-text body of a sandbox message.
No parameter schema on file.
Get the raw message (MIME-formatted) for a sandbox message.
No parameter schema on file.
Get a sandbox message as an EML file payload.
No parameter schema on file.
Get the unrendered HTML source of a sandbox message.
No parameter schema on file.
List all attachments on a sandbox message.
No parameter schema on file.
Get the metadata and download URL for a single sandbox attachment.
No parameter schema on file.
Get email sending statistics (delivery, bounce, open, click, spam rates) for a date range. Optionally break down by domain, category, email service provider, or date.
No parameter schema on file.
List sent email logs (delivery history) with optional pagination and filters; use to debug delivery issues.
No parameter schema on file.
Get a single email log message by ID (UUID) to inspect delivery status and event history.
No parameter schema on file.
List sending domains and their DNS verification status
No parameter schema on file.
Get a sending domain by ID and its verification status. Optionally include DNS setup instructions via include_setup_instructions.
No parameter schema on file.
Create a new sending domain
No parameter schema on file.
Update a sending domain's tracking and inbound settings.
No parameter schema on file.
Delete a sending domain
No parameter schema on file.
Email DNS setup instructions for a sending domain to a given address.
No parameter schema on file.
Get the company info of a sending domain, used for domain compliance verification.
No parameter schema on file.
Set the company info of a sending domain, required for domain compliance verification.
No parameter schema on file.
Update the company info of a sending domain.
No parameter schema on file.
List or search suppressions. Optionally filter by email. Returns up to 1000 suppressions per call.
No parameter schema on file.
Add an email address to the account's suppression list, so Mailtrap stops delivering to it.
No parameter schema on file.
Delete a suppression by ID. Mailtrap will resume delivery to this email unless it gets suppressed again.
No parameter schema on file.
List email addresses excluded from open and click tracking. Returns up to 1000 records per call.
No parameter schema on file.
Exclude an email address from open and click tracking for a sending domain.
No parameter schema on file.
Remove an email address from the tracking opt-out list, so open and click tracking applies to it again.
No parameter schema on file.
List all webhooks for the account.
No parameter schema on file.
Get a single webhook by ID.
No parameter schema on file.
Create a webhook. webhook_type may be email_sending, audit_log, or inbound_receiving; for inbound_receiving, inbound_inbox_id is optional (scopes the webhook to one inbox — omit to apply to all inboxes). The response includes a signing_secret for verifying webhook payload signatures…
No parameter schema on file.
Update a webhook's mutable fields (url, active, payload_format, event_types, inbound_inbox_id). webhook_type, sending_stream, and domain_id cannot be changed after creation.
No parameter schema on file.
Permanently delete a webhook by ID. Returns the deleted webhook record.
No parameter schema on file.
Get a contact by ID or email address. Returns the full contact record including list memberships, status, and custom fields.
No parameter schema on file.
Create a new contact. Requires email; optionally accepts custom fields, list_ids to subscribe to, and unsubscribed to start in unsubscribed status.
No parameter schema on file.
Update a contact (identified by ID or email). list_ids replaces the membership set; list_ids_included/list_ids_excluded add/remove without disturbing the rest.
No parameter schema on file.
Permanently delete a contact by ID or email. Returns the deleted contact record when available.
No parameter schema on file.
Record a contact event (by name + arbitrary params) against a contact ID or email. Used to trigger automations.
No parameter schema on file.
List all contact lists for the account. Optionally filter by name with search (case-insensitive match).
No parameter schema on file.
Get a contact list by ID.
No parameter schema on file.
Create a new contact list.
No parameter schema on file.
Rename an existing contact list.
No parameter schema on file.
Permanently delete a contact list by ID.
No parameter schema on file.
List all contact field definitions for the account.
No parameter schema on file.
Get a contact field definition by ID.
No parameter schema on file.
Create a new contact field definition. merge_tag must be unique and is used in template variables.
No parameter schema on file.
Update a contact field definition. Any combination of name, merge_tag, or data_type can be changed.
No parameter schema on file.
Permanently delete a contact field definition by ID.
No parameter schema on file.
Bulk import contacts. Returns an import job record; poll status via get-contact-import.
No parameter schema on file.
Get the status of a contact import job, including created/updated/over-limit counts.
No parameter schema on file.
Export contacts matching a set of AND-combined filters. Returns an export job; poll status with get-contact-export to retrieve the download URL.
No parameter schema on file.
Get the status of a contact export job. Once status is finished, the url field holds the download link.
No parameter schema on file.
List the account's email campaigns, newest first, with page-token pagination (token, per_page). Optionally filter by name with search.
No parameter schema on file.
Get an email campaign by ID.
No parameter schema on file.
Create a new email campaign in the draft state; requires name, domain_id, from_local_part, and a template_attributes.subject.
No parameter schema on file.
Update a draft email campaign; only the provided fields change, and campaigns in any other state cannot be updated.
No parameter schema on file.
Delete an email campaign by ID; only a campaign in the draft state can be deleted.
No parameter schema on file.
Start sending a draft email campaign immediately; only draft campaigns can be started.
No parameter schema on file.
Schedule a draft email campaign to start sending at datetime (ISO 8601, must be in the future and no more than 1 month ahead); only draft campaigns can be scheduled.
No parameter schema on file.
Cancel a scheduled email campaign, returning it to draft; only scheduled campaigns can be cancelled.
No parameter schema on file.
Terminate an email campaign that is currently sending (started, queued, or paused), aborting the in-flight send.
No parameter schema on file.
Reset a scheduled email campaign back to draft; only scheduled campaigns can be reset.
No parameter schema on file.
Get aggregated performance statistics for an email campaign; optionally narrow the window with start_date/end_date (YYYY-MM-DD).
No parameter schema on file.
List Mailtrap accounts accessible to the API token, with each account's access levels.
No parameter schema on file.
Get the current billing cycle usage for the account (sending and testing plans, limits, and current counts).
No parameter schema on file.
List account accesses (users, invites, API tokens) for the account. Optionally scope by domain UUIDs, inbox IDs, or project IDs. Requires account admin/owner permissions.
No parameter schema on file.
Remove an account access by ID. For User specifiers this revokes permissions; for Invite or ApiToken specifiers it removes the specifier itself. Requires admin/owner.
No parameter schema on file.
Get all resources (inboxes, projects, domains, billing, account) to which the API token has admin access, nested by hierarchy.
No parameter schema on file.
Bulk create, update, or destroy permissions for an account access. Existing (resource_type, resource_id) pairs are updated; new ones are created. Set destroy: true to remove.
No parameter schema on file.
List all API tokens for the account.
No parameter schema on file.
Create a new API token. The response includes the secret token value — this is the only time the full token is returned, so store it immediately.
No parameter schema on file.
Get an API token by ID. The secret token value is NOT returned here — only the metadata (name, last 4 digits, resources).
No parameter schema on file.
Reset (rotate) an API token by ID. The response includes the new secret token value — returned only on this call, so store it immediately. The previous token is invalidated.
No parameter schema on file.
Permanently delete an API token by ID. The token can no longer authenticate after deletion.
No parameter schema on file.
List sub-accounts in the organization. Requires MAILTRAP_ORGANIZATION_ID env var and sub-account management permissions.
No parameter schema on file.
Create a new sub-account under the organization. Requires MAILTRAP_ORGANIZATION_ID and sub-account management permissions.
No parameter schema on file.
List all inbound folders in the account.
No parameter schema on file.
Get a single inbound folder by ID.
No parameter schema on file.
Create a new inbound folder.
No parameter schema on file.
Rename an inbound folder.
No parameter schema on file.
Permanently delete an inbound folder along with all of its inboxes.
No parameter schema on file.
List all inboxes in an inbound folder.
No parameter schema on file.
Get a single inbound inbox by ID.
No parameter schema on file.
Create a new inbound inbox in a folder. Omit domain_id for a Mailtrap-hosted inbox; pass it for a custom-domain (catch-all) inbox.
No parameter schema on file.
Rename an inbound inbox.
No parameter schema on file.
Permanently delete an inbound inbox.
No parameter schema on file.
List received messages in an inbound inbox (paginated). Pass last_id from a previous response to fetch the next page.
No parameter schema on file.
Get a single inbound message with its full body and attachment download URLs.
No parameter schema on file.
Permanently delete an inbound message.
No parameter schema on file.
Reply to an inbound message (sends to the original sender). Sends a real email.
No parameter schema on file.
Reply to an inbound message and copy the original's other recipients. Sends a real email.
No parameter schema on file.
Forward an inbound message to new recipients (at least one to is required). Sends a real email.
No parameter schema on file.
List conversation threads in an inbound inbox (paginated). Pass last_id from a previous response to fetch the next page.
No parameter schema on file.
Get a single inbound thread with its messages embedded (oldest first).
No parameter schema on file.
Permanently delete an inbound thread.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Mailtrap or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (125 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| send-email | external-sink | external-sink: keyword "send_email" |
| batch-send-transactional-email | no tags | |
| batch-send-bulk-email | no tags | |
| create-template | no tags | |
| list-templates | no tags | |
| get-template | no tags | |
| update-template | state-write | state-write: declares destructiveHint: true |
| delete-template | state-write | state-write: declares destructiveHint: true |
| send-sandbox-email | no tags | |
| batch-send-sandbox-email | no tags | |
| get-sandbox-messages | no tags | |
| show-sandbox-email-message | no tags | |
| list-sandbox-projects | no tags | |
| create-sandbox-project | no tags | |
| get-sandbox-project | no tags | |
| update-sandbox-project | state-write | state-write: declares destructiveHint: true |
| delete-sandbox-project | state-write | state-write: declares destructiveHint: true |
| create-sandbox-inbox | no tags | |
| get-sandbox-inbox | no tags | |
| update-sandbox-inbox | state-write | state-write: declares destructiveHint: true |
| delete-sandbox-inbox | state-write | state-write: declares destructiveHint: true |
| clean-sandbox-inbox | state-write | state-write: declares destructiveHint: true |
| list-sandboxes | no tags | |
| mark-sandbox-as-read | state-write | state-write: declares destructiveHint: true |
| reset-sandbox-credentials | state-write | state-write: declares destructiveHint: true |
| enable-sandbox-email-address | state-write | state-write: declares destructiveHint: true |
| reset-sandbox-email-address | state-write | state-write: declares destructiveHint: true |
| forward-sandbox-message | no tags | |
| update-sandbox-message | state-write | state-write: declares destructiveHint: true |
| delete-sandbox-message | state-write | state-write: declares destructiveHint: true |
| get-sandbox-message-spam-score | no tags | |
| get-sandbox-message-html-analysis | no tags | |
| get-sandbox-message-headers | no tags | |
| get-sandbox-message-html | no tags | |
| get-sandbox-message-text | no tags | |
| get-sandbox-message-raw | no tags | |
| get-sandbox-message-eml | no tags | |
| get-sandbox-message-html-source | no tags | |
| list-sandbox-attachments | no tags | |
| get-sandbox-attachment | untrusted-input | untrusted-input: keyword "download" |
| get-sending-stats | no tags | |
| list-email-logs | no tags | |
| get-email-log-message | no tags | |
| list-sending-domains | no tags | |
| get-sending-domain | no tags | |
| create-sending-domain | no tags | |
| update-sending-domain | state-write | state-write: declares destructiveHint: true |
| delete-sending-domain | state-write | state-write: declares destructiveHint: true |
| send-sending-domain-setup-instructions | no tags | |
| get-company-info | no tags | |
| create-company-info | no tags | |
| update-company-info | state-write | state-write: declares destructiveHint: true |
| list-suppressions | no tags | |
| create-suppression | no tags | |
| delete-suppression | state-write | state-write: declares destructiveHint: true |
| list-tracking-opt-outs | no tags | |
| create-tracking-opt-out | no tags | |
| delete-tracking-opt-out | state-write | state-write: declares destructiveHint: true |
| list-webhooks | no tags | |
| get-webhook | no tags | |
| create-webhook | external-sink | external-sink: keyword "webhook" |
| update-webhook | external-sinkstate-write | external-sink: keyword "webhook"; state-write: declares destructiveHint: true |
| delete-webhook | external-sinkstate-write | external-sink: keyword "webhook"; state-write: declares destructiveHint: true |
| get-contact | no tags | |
| create-contact | no tags | |
| update-contact | state-write | state-write: declares destructiveHint: true |
| delete-contact | state-write | state-write: declares destructiveHint: true |
| create-contact-event | no tags | |
| list-contact-lists | no tags | |
| get-contact-list | no tags | |
| create-contact-list | no tags | |
| update-contact-list | state-write | state-write: declares destructiveHint: true |
| delete-contact-list | state-write | state-write: declares destructiveHint: true |
| list-contact-fields | no tags | |
| get-contact-field | no tags | |
| create-contact-field | no tags | |
| update-contact-field | state-write | state-write: declares destructiveHint: true |
| delete-contact-field | state-write | state-write: declares destructiveHint: true |
| create-contact-import | no tags | |
| get-contact-import | no tags | |
| create-contact-export | untrusted-input | untrusted-input: keyword "download" |
| get-contact-export | untrusted-input | untrusted-input: keyword "download" |
| list-email-campaigns | no tags | |
| get-email-campaign | no tags | |
| create-email-campaign | no tags | |
| update-email-campaign | state-write | state-write: declares destructiveHint: true |
| delete-email-campaign | state-write | state-write: declares destructiveHint: true |
| start-email-campaign | state-write | state-write: declares destructiveHint: true |
| schedule-email-campaign | state-write | state-write: declares destructiveHint: true |
| cancel-email-campaign | state-write | state-write: declares destructiveHint: true |
| terminate-email-campaign | state-write | state-write: declares destructiveHint: true |
| reset-email-campaign | state-write | state-write: declares destructiveHint: true |
| get-email-campaign-stats | no tags | |
| list-accounts | no tags | |
| get-billing-usage | no tags | |
| list-account-accesses | no tags | |
| remove-account-access | state-write | state-write: declares destructiveHint: true |
| get-permission-resources | no tags | |
| bulk-update-permissions | state-write | state-write: declares destructiveHint: true |
| list-api-tokens | no tags | |
| create-api-token | no tags | |
| get-api-token | no tags | |
| reset-api-token | state-write | state-write: declares destructiveHint: true |
| delete-api-token | state-write | state-write: declares destructiveHint: true |
| list-sub-accounts | no tags | |
| create-sub-account | no tags | |
| list-inbound-folders | no tags | |
| get-inbound-folder | no tags | |
| create-inbound-folder | no tags | |
| update-inbound-folder | state-write | state-write: declares destructiveHint: true |
| delete-inbound-folder | state-write | state-write: declares destructiveHint: true |
| list-inbound-inboxes | no tags | |
| get-inbound-inbox | no tags | |
| create-inbound-inbox | no tags | |
| update-inbound-inbox | state-write | state-write: declares destructiveHint: true |
| delete-inbound-inbox | state-write | state-write: declares destructiveHint: true |
| list-inbound-messages | untrusted-input | untrusted-input: keyword "fetch" |
| get-inbound-message | untrusted-input | untrusted-input: keyword "download" |
| delete-inbound-message | state-write | state-write: declares destructiveHint: true |
| reply-to-inbound-message | no tags | |
| reply-all-to-inbound-message | no tags | |
| forward-inbound-message | no tags | |
| list-inbound-threads | untrusted-input | untrusted-input: keyword "fetch" |
| get-inbound-thread | no tags | |
| delete-inbound-thread | state-write | state-write: declares destructiveHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.10.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Mailtrap can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.