Mailrith Email Marketing
by mailrith.com · remote · local (npm) · no sign-in to list tools · v1.1.1 · published by com.mailrith
Manage Subscribers, Broadcasts, Sequences, Automations, and reporting in Mailrith.
55 tools: 20 can delete or cancel things, 5 do something that can't be undone, 7 change things and 23 only read.
Scanned Oct 21, 2026
- Deletes or cancels20Claude Code: deny: see these tools
- Can't be undone5Claude Code: ask: see these tools
- Changes things7Claude Code: ask: see these tools
- Only reads23Claude Code: allow: see these tools
7 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mailrith https://api.mailrith.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnbroadcasts_list
The server marks "broadcasts_list" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_list" says "broadcast": a word for sending, and what is sent cannot be taken back.
- Warnbroadcasts_get
The server marks "broadcasts_get" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_get" says "broadcast": a word for sending, and what is sent cannot be taken back.
The server marks "broadcasts_preflight" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_preflight" says "broadcast": a word for sending, and what is sent cannot be taken back.
The server marks "broadcasts_get_send_progress" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_get_send_progress" says "broadcast": a word for sending, and what is sent cannot be taken back.
The description mentions "credential".
What this check looks forMatched text
description: "...s available to the authenticated bearer credential. Permission: none. API reference: https..."
The description mentions "credentials".
What this check looks forMatched text
description: "...for Broadcasts and Sequences. Provider credentials and configuration are never returned. P..."
Show 1 more findingShow fewer
The description mentions "credentials".
What this check looks forMatched text
description: "...der type by stable identifier. Provider credentials and configuration are never returned. P..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
55 tools
Deletes or cancels 20Claude Code: deny
automations_send_testSends up to five selected saved Automation email steps to one explicit test address.No findings
Why it is in this group
- The name "automations_send_test" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Sends up to five selected saved Automation email steps to one explicit test address. This does not start the Automation or run other actions. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, subscribers:read, automations:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Send automation test messages
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
automations_updateUpdates an existing draft or paused Automation.No findings
Why it is in this group
- The name "automations_update" says "update": a word for a change.
- The description says "cannot be restored".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates an existing draft or paused Automation. Before changing a running Automation, read it by ID, retain its status in the current task only, pause it, apply the update, and use bounded direct item reads until is_updating is false. Run preflight, return it to running only if it was running before and preflight passes, and verify the final status. If the update fails before changing the Automation, restore its prior running status when preflight passes. If readiness or the prior status cannot be restored, leave it paused and immediately report the failure; never activate an Automation that was not already running. Effect: workspace-change. Retry after reading the current resource state. Permission: automations:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Update an automation
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
automations_update_statusStarts, pauses, or returns one Automation to draft without changing its definition.No findings
Why it is in this group
- The name "automations_update_status" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Starts, pauses, or returns one Automation to draft without changing its definition. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, automations:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Change an automation status
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
broadcasts_cancelRequests cancellation for delivery work that has not reached the provider.No findings
Why it is in this group
- The name "broadcasts_cancel" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Requests cancellation for delivery work that has not reached the provider. Provider-accepted emails cannot be recalled. Repeat the same request with the same idempotency key when the response is lost. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Cancel a broadcast send
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
broadcasts_scheduleSchedules a draft for future delivery, or changes the delivery time of an existing scheduled Broadcast.No findings
Why it is in this group
- The name "broadcasts_schedule" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Schedules a draft for future delivery, or changes the delivery time of an existing scheduled Broadcast. This uses Mailrith's durable scheduled-send path and does not start delivery immediately. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Schedule or reschedule a broadcast
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
broadcasts_sendImmediately creates durable preparation for a broadcast draft or scheduled send.No findings
Why it is in this group
- The name "broadcasts_send" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Immediately creates durable preparation for a broadcast draft or scheduled send. Mailrith calculates the exact Subscriber total and checks provider readiness in the background before delivery. A 202 response means the durable send was accepted, not that provider delivery is complete. Reuse the same idempotency key if the response is lost. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Send a broadcast now
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
broadcasts_send_testSends a test message from an existing Broadcast that has an email delivery connection.No findings
Why it is in this group
- The name "broadcasts_send_test" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Sends a test message from an existing Broadcast that has an email delivery connection. Provide a saved Subscriber ID for personalization; use subscribers_list to find one when needed. The recipient may be any test inbox and does not have to match the saved Subscriber. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, subscribers:read, broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Send a broadcast test email
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
broadcasts_unscheduleReturns a scheduled Broadcast to draft state before delivery starts.No findings
Why it is in this group
- The name "broadcasts_unschedule" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Returns a scheduled Broadcast to draft state before delivery starts. Effect: workspace-change. Retry after reading the current resource state. Permissions: live_actions:write, broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Unschedule a broadcast
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
broadcasts_updateUpdates an existing Broadcast draft.No findings
Why it is in this group
- The name "broadcasts_update" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The description says "cannot be restored".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates an existing Broadcast draft. Scheduled, running, completed, and failed Broadcasts cannot be changed here. Before changing a scheduled Broadcast, read it by ID and retain its scheduled_at in the current task only. If the saved time is no longer safely in the future, ask the user for a new time before unscheduling. Otherwise unschedule it, apply the update, reschedule it for the same time, and verify both status and scheduled_at. If the update fails after unscheduling, restore the unchanged Broadcast to the same future time when possible. If the schedule cannot be restored, leave it as a Draft and immediately report that it will not send; never choose a replacement time without the user. Effect: workspace-change. Retry after reading the current resource state. Permission: broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Update a broadcast
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
email_templates_updateUpdates the content or enabled state of an existing email template.No findings
Why it is in this group
- The name "email_templates_update" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates the content or enabled state of an existing email template. Effect: workspace-change. Retry after reading the current resource state. Permission: email_templates:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Update an email template
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
sequences_send_testSends up to five selected saved Sequence emails to one explicit test address.No findings
Why it is in this group
- The name "sequences_send_test" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Sends up to five selected saved Sequence emails to one explicit test address. This does not enroll a Subscriber, start the Sequence, or write delivery activity. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, subscribers:read, sequences:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Send sequence test messages
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
sequences_updateUpdates an existing paused Sequence.No findings
Why it is in this group
- The name "sequences_update" says "update": a word for a change.
- The description says "cannot be restored".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates an existing paused Sequence. Before changing a running Sequence, read it by ID, retain its status in the current task only, pause it, apply the update, and use bounded direct item reads until is_updating is false. Run preflight, return it to running only if it was running before and preflight passes, and verify the final status. If the update fails before changing the Sequence, restore its prior running status when preflight passes. If readiness or the prior status cannot be restored, leave it paused and immediately report the failure; never activate a Sequence that was not already running. Effect: workspace-change. Retry after reading the current resource state. Permission: sequences:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Update a sequence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
sequences_update_statusStarts or pauses one Sequence without changing its content or delivery settings.No findings
Why it is in this group
- The name "sequences_update_status" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Starts or pauses one Sequence without changing its content or delivery settings. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, sequences:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Activate or pause a sequence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
subscribers_add_tagAdds the selected Tag to a Subscriber.No findings
Why it is in this group
- The name "subscribers_add_tag" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Adds the selected Tag to a Subscriber. If the Subscriber already has the Tag, the API returns the Subscriber unchanged. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Add a Tag to a Subscriber
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
subscribers_add_to_sequenceAdds the selected subscriber to the selected sequence.No findings
Why it is in this group
- The name "subscribers_add_to_sequence" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Adds the selected subscriber to the selected sequence. If the subscriber is already in the sequence, the API returns the subscriber unchanged. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Add a subscriber to a sequence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
subscribers_remove_from_sequenceRemoves the selected subscriber from the selected sequence.No findings
Why it is in this group
- The name "subscribers_remove_from_sequence" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Removes the selected subscriber from the selected sequence. If the subscriber is not in the sequence, the API returns the subscriber unchanged. Effect: subscriber-change. Retry after reading the current resource state. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Remove a subscriber from a sequence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
subscribers_remove_tagRemoves the selected tag from a subscriber.No findings
Why it is in this group
- The name "subscribers_remove_tag" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Removes the selected tag from a subscriber. If the subscriber does not have the tag, the API returns the subscriber unchanged. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Remove a tag from a subscriber
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
subscribers_updateUpdates profile fields, status, custom fields, tags, or sequence assignments for one subscriber.No findings
Why it is in this group
- The name "subscribers_update" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates profile fields, status, custom fields, tags, or sequence assignments for one subscriber. Fields omitted from the request stay unchanged. Blank optional custom field values also leave saved values unchanged, and filled-in invalid values are rejected. Effect: subscriber-change. Retry after reading the current resource state. Permission: subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Update a subscriber
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
subscribers_update_statusChanges the delivery status for one Subscriber without changing profile, targeting, or Sequence enrollment fields.No findings
Why it is in this group
- The name "subscribers_update_status" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Changes the delivery status for one Subscriber without changing profile, targeting, or Sequence enrollment fields. Making a Subscriber Active requires consent_evidence; its collected_at value must include the correct UTC offset and must not be later than Mailrith's server time. Effect: external-email. Retry after reading the current resource state. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Change Subscriber sending eligibility
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
subscribers_upsertCreates a new subscriber when the email does not exist in the workspace.No findings
Why it is in this group
- The name "subscribers_upsert" says "upsert": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Creates a new subscriber when the email does not exist in the workspace. If the email already exists, the API updates the existing subscriber unless create_only is true. Effect: external-email. Retry with the same idempotency_key. Permissions: live_actions:write, subscribers:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create or upsert a subscriber
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Can't be undone 5Claude Code: ask
broadcasts_createCreates a broadcast draft in the authenticated workspace.No findings
Why it is in this group
- The name "broadcasts_create" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Creates a broadcast draft in the authenticated workspace. Effect: workspace-change. Retry with the same idempotency_key. Permission: broadcasts:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create a broadcast
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
broadcasts_getReturns a broadcast draft, scheduled send, active send, or completed send.1 finding
Why it is in this group
- The name "broadcasts_get" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "broadcasts_get" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_get" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Returns a broadcast draft, scheduled send, active send, or completed send. Permission: broadcasts:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a broadcast
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
broadcasts_get_send_progressReturns bounded delivery progress, current rates, timing, outcome counts, and pause state.1 finding
Why it is in this group
- The name "broadcasts_get_send_progress" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "broadcasts_get_send_progress" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_get_send_progress" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Returns bounded delivery progress, current rates, timing, outcome counts, and pause state. Poll until terminal is true; use 5 to 10 second intervals while progress changes and back off to 30 seconds when unchanged. Permission: broadcasts:read. Polling: wait at least 2 seconds, use exponential backoff up to 30 seconds, stop at a terminal state, and stop after 15 minutes. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get broadcast send progress
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
broadcasts_listReturns broadcast drafts, scheduled sends, active sends, and completed sends.1 finding
Why it is in this group
- The name "broadcasts_list" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "broadcasts_list" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_list" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Returns broadcast drafts, scheduled sends, active sends, and completed sends. Permission: broadcasts:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List broadcasts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
broadcasts_preflightOptionally checks the current Subscriber estimate, provider capacity, sender setup, event tracking, and blocking issues.1 finding
Why it is in this group
- The name "broadcasts_preflight" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "broadcasts_preflight" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcasts_preflight" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Optionally checks the current Subscriber estimate, provider capacity, sender setup, event tracking, and blocking issues. This diagnostic is not required before starting a durable send. Permission: broadcasts:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Inspect broadcast readiness
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Changes things 7Claude Code: ask
analytics_create_reportRuns from compact rollups.No findings
Why it is in this group
- The name "analytics_create_report" says "create": a word for a change.
Description, as the server wrote it Runs from compact rollups. Ranges through 31 days complete inline; longer ranges are queued. Results expire after 24 hours and never exceed 100 rows. Effect: workspace-change. Retry with the same idempotency_key. Permission: analytics:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create or reuse an analytics report
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
automations_createCreates an automation in the authenticated workspace.No findings
Why it is in this group
- The name "automations_create" says "create": a word for a change.
Description, as the server wrote it Creates an automation in the authenticated workspace. Effect: workspace-change. Retry with the same idempotency_key. Permission: automations:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create an automation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
automations_preflightChecks the saved Automation definition and email delivery prerequisite without running any action.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Checks the saved Automation definition and email delivery prerequisite without running any action. Permission: automations:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Check automation readiness
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
email_templates_createCreates a reusable email template scoped to the authenticated workspace.No findings
Why it is in this group
- The name "email_templates_create" says "create": a word for a change.
Description, as the server wrote it Creates a reusable email template scoped to the authenticated workspace. Effect: workspace-change. Retry with the same idempotency_key. Permission: email_templates:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create an email template
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
sequences_createCreates a sequence in the authenticated workspace.No findings
Why it is in this group
- The name "sequences_create" says "create": a word for a change.
Description, as the server wrote it Creates a sequence in the authenticated workspace. Effect: workspace-change. Retry with the same idempotency_key. Permission: sequences:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create a sequence
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
sequences_preflightChecks the saved Sequence, its published emails, and its email delivery connection without changing data or sending email.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Checks the saved Sequence, its published emails, and its email delivery connection without changing data or sending email. Permission: sequences:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Check sequence readiness
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tags_createCreates a new tag in the authenticated workspace.No findings
Why it is in this group
- The name "tags_create" says "create": a word for a change.
Description, as the server wrote it Creates a new tag in the authenticated workspace. The GDPR consent tag names can be created and applied like other tags when you need to apply consent collected outside Mailrith. Tag-level double opt-in fields are no longer accepted; configure double opt-in on forms and landing pages instead. Effect: workspace-change. Retry with the same idempotency_key. Permission: tags:write. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Create a tag
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 23Claude Code: allow
analytics_get_reportReturns one unexpired bounded analytics report by identifier.No findings
Why it is in this group
- The name "analytics_get_report" says "get": a word for reading.
Description, as the server wrote it Returns one unexpired bounded analytics report by identifier. Permission: analytics:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get an analytics report
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
automations_getReturns one automation from the authenticated workspace.No findings
Why it is in this group
- The name "automations_get" says "get": a word for reading.
Description, as the server wrote it Returns one automation from the authenticated workspace. Permission: automations:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get an automation
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
automations_listReturns automations in the authenticated workspace.No findings
Why it is in this group
- The name "automations_list" says "list": a word for reading.
Description, as the server wrote it Returns automations in the authenticated workspace. Permission: automations:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List automations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
automations_preview_journeyShows the bounded path a selected Subscriber would take through the current saved conditions without running actions or writing history.No findings
Why it is in this group
- The name "automations_preview_journey" says "preview": a word for reading.
Description, as the server wrote it Shows the bounded path a selected Subscriber would take through the current saved conditions without running actions or writing history. Permissions: subscribers:read, automations:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Preview an automation journey
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
custom_fields_getReturns one custom field from the authenticated workspace, including its exact ready-to-use email personalization token.No findings
Why it is in this group
- The name "custom_fields_get" says "get": a word for reading.
Description, as the server wrote it Returns one custom field from the authenticated workspace, including its exact ready-to-use email personalization token. Permission: custom_fields:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a custom field
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
custom_fields_listReturns a bounded page of custom fields in the authenticated workspace, including each field's exact ready-to-use email personalization token.No findings
Why it is in this group
- The name "custom_fields_list" says "list": a word for reading.
Description, as the server wrote it Returns a bounded page of custom fields in the authenticated workspace, including each field's exact ready-to-use email personalization token. Permission: custom_fields:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List custom fields
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
discovery_get_capabilitiesReturns the current workspace context, discovery URLs, shared request conventions, supported webhook events, and public resource operations available to the authenticated bearer cr…1 finding
Why it is in this group
- The name "discovery_get_capabilities" says "get": a word for reading.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...s available to the authenticated bearer credential. Permission: none. API reference: https..."
Description, as the server wrote it Returns the current workspace context, discovery URLs, shared request conventions, supported webhook events, and public resource operations available to the authenticated bearer credential. Permission: none. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get authenticated API capabilities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
email_templates_getReturns a reusable email template linked to the authenticated workspace.No findings
Why it is in this group
- The name "email_templates_get" says "get": a word for reading.
Description, as the server wrote it Returns a reusable email template linked to the authenticated workspace. Permission: email_templates:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get an email template
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
email_templates_listReturns reusable email templates linked to the authenticated workspace.No findings
Why it is in this group
- The name "email_templates_list" says "list": a word for reading.
Description, as the server wrote it Returns reusable email templates linked to the authenticated workspace. Permission: email_templates:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List email templates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
email_templates_previewRenders one template using a saved Subscriber's name, email, and custom fields without sending or saving anything.No findings
Why it is in this group
- The name "email_templates_preview" says "preview": a word for reading.
Description, as the server wrote it Renders one template using a saved Subscriber's name, email, and custom fields without sending or saving anything. Permissions: subscribers:read, email_templates:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Preview an email template for a Subscriber
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
segments_getReturns one saved segment from the authenticated workspace.No findings
Why it is in this group
- The name "segments_get" says "get": a word for reading.
Description, as the server wrote it Returns one saved segment from the authenticated workspace. Permission: segments:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a segment
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
segments_listReturns saved segments from the authenticated workspace.No findings
Why it is in this group
- The name "segments_list" says "list": a word for reading.
Description, as the server wrote it Returns saved segments from the authenticated workspace. Permission: segments:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List segments
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
segments_previewReturns subscriber counts for an unsaved segment definition.No findings
Why it is in this group
- The name "segments_preview" says "preview": a word for reading.
Description, as the server wrote it Returns subscriber counts for an unsaved segment definition. Include `current_segment_id` when previewing edits to an existing segment so circular segment references are rejected before saving. Permission: segments:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Preview a segment definition
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sender_identities_getReturns one enabled sender name, address, and provider type by stable identifier.1 finding
Why it is in this group
- The name "sender_identities_get" says "get": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...der type by stable identifier. Provider credentials and configuration are never returned. P..."
Description, as the server wrote it Returns one enabled sender name, address, and provider type by stable identifier. Provider credentials and configuration are never returned. Permission: workspace:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a sender identity
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sender_identities_listReturns a bounded page of enabled sender names, addresses, and provider types that can be selected for Broadcasts and Sequences.1 finding
Why it is in this group
- The name "sender_identities_list" says "list": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...for Broadcasts and Sequences. Provider credentials and configuration are never returned. P..."
Description, as the server wrote it Returns a bounded page of enabled sender names, addresses, and provider types that can be selected for Broadcasts and Sequences. Provider credentials and configuration are never returned. Permission: workspace:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List sender identities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sequences_getReturns one sequence from the authenticated workspace.No findings
Why it is in this group
- The name "sequences_get" says "get": a word for reading.
Description, as the server wrote it Returns one sequence from the authenticated workspace. Permission: sequences:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a sequence
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sequences_listReturns sequences in the authenticated workspace.No findings
Why it is in this group
- The name "sequences_list" says "list": a word for reading.
Description, as the server wrote it Returns sequences in the authenticated workspace. Permission: sequences:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List sequences
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sequences_preview_journeyReturns the bounded saved email timeline and shows which messages a selected Subscriber is eligible to receive, without enrolling the Subscriber or sending email.No findings
Why it is in this group
- The name "sequences_preview_journey" says "preview": a word for reading.
Description, as the server wrote it Returns the bounded saved email timeline and shows which messages a selected Subscriber is eligible to receive, without enrolling the Subscriber or sending email. Permissions: subscribers:read, sequences:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Preview a sequence journey
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
subscribers_getReturns one Subscriber by its stable identifier from the authenticated workspace.No findings
Why it is in this group
- The name "subscribers_get" says "get": a word for reading.
Description, as the server wrote it Returns one Subscriber by its stable identifier from the authenticated workspace. Permission: subscribers:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a subscriber
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
subscribers_listReturns subscribers in the authenticated workspace, sorted from newest to oldest.No findings
Why it is in this group
- The name "subscribers_list" says "list": a word for reading.
Description, as the server wrote it Returns subscribers in the authenticated workspace, sorted from newest to oldest. Permission: subscribers:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List subscribers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tags_getReturns one Tag from the authenticated workspace.No findings
Why it is in this group
- The name "tags_get" says "get": a word for reading.
Description, as the server wrote it Returns one Tag from the authenticated workspace. Permission: tags:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get a tag
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tags_listReturns tags in the authenticated workspace.No findings
Why it is in this group
- The name "tags_list" says "list": a word for reading.
Description, as the server wrote it Returns tags in the authenticated workspace. Permission: tags:read. Pagination: use bounded pages and returned cursors. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: List tags
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
workspace_getReturns the authenticated workspace profile and mailing context used by broadcasts, sequences, automations, forms, and magic links.No findings
Why it is in this group
- The name "workspace_get" says "get": a word for reading.
Description, as the server wrote it Returns the authenticated workspace profile and mailing context used by broadcasts, sequences, automations, forms, and magic links. Permission: workspace:read. API reference: https://mailrith.com/developers/api-reference.
Annotations the server declares
- title: Get the current workspace
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http mailrith https://api.mailrith.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mailrith__discovery_get_capabilities",
"mcp__mailrith__workspace_get",
"mcp__mailrith__sender_identities_list",
"mcp__mailrith__sender_identities_get",
"mcp__mailrith__analytics_get_report",
"mcp__mailrith__subscribers_list",
"mcp__mailrith__subscribers_get",
"mcp__mailrith__tags_list",
"mcp__mailrith__tags_get",
"mcp__mailrith__custom_fields_list",
"mcp__mailrith__custom_fields_get",
"mcp__mailrith__segments_list",
"mcp__mailrith__segments_get",
"mcp__mailrith__segments_preview",
"mcp__mailrith__sequences_list",
"mcp__mailrith__sequences_get",
"mcp__mailrith__sequences_preview_journey",
"mcp__mailrith__automations_list",
"mcp__mailrith__automations_get",
"mcp__mailrith__automations_preview_journey",
"mcp__mailrith__email_templates_list",
"mcp__mailrith__email_templates_get",
"mcp__mailrith__email_templates_preview"
],
"ask": [
"mcp__mailrith__analytics_create_report",
"mcp__mailrith__tags_create",
"mcp__mailrith__broadcasts_list",
"mcp__mailrith__broadcasts_create",
"mcp__mailrith__broadcasts_get",
"mcp__mailrith__broadcasts_preflight",
"mcp__mailrith__broadcasts_get_send_progress",
"mcp__mailrith__sequences_create",
"mcp__mailrith__sequences_preflight",
"mcp__mailrith__automations_create",
"mcp__mailrith__automations_preflight",
"mcp__mailrith__email_templates_create"
],
"deny": [
"mcp__mailrith__subscribers_upsert",
"mcp__mailrith__subscribers_update",
"mcp__mailrith__subscribers_update_status",
"mcp__mailrith__subscribers_add_tag",
"mcp__mailrith__subscribers_remove_tag",
"mcp__mailrith__subscribers_add_to_sequence",
"mcp__mailrith__subscribers_remove_from_sequence",
"mcp__mailrith__broadcasts_update",
"mcp__mailrith__broadcasts_send_test",
"mcp__mailrith__broadcasts_schedule",
"mcp__mailrith__broadcasts_unschedule",
"mcp__mailrith__broadcasts_send",
"mcp__mailrith__broadcasts_cancel",
"mcp__mailrith__sequences_update",
"mcp__mailrith__sequences_send_test",
"mcp__mailrith__sequences_update_status",
"mcp__mailrith__automations_update",
"mcp__mailrith__automations_send_test",
"mcp__mailrith__automations_update_status",
"mcp__mailrith__email_templates_update"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mailrith. Review it before you use it.