Skip to content

MCP serverTools, resources and prompts

MCP tools, resources and prompts

Every tool the Shipmail MCP server exposes, grouped by what it touches, plus the resources and prompts an agent can read. Tool names carry the shipmail_ prefix so they never collide with another server. Which tools a connection can call depends on its permissions. To get connected first, start at Connect an agent.

Last updated

Tools

Results and idempotency

Tools return both MCP structured content and a text fallback. Mutating tools accept an optional idempotency_key. When omitted, the MCP server generates one. Mailbox app-password creation is the exception because its plaintext secret must never be cached.

Newsletter content

Newsletter tools accept sanitized inline HTML in paragraph, quote, callout, list-item, and column bodies. Agents can add links and emphasis inside structured blocks, then use the preview, test-send, preflight, and schedule tools for the full newsletter workflow. Use p and br for line breaks.

App-password creation and revocation are destructive or high-risk tools. Creation returns a live secret once. Revocation disconnects that client immediately.

Inbox rules

Manage inbox rules one at a time with shipmail_list_mailbox_rules, shipmail_get_mailbox_rule, shipmail_create_mailbox_rule, shipmail_update_mailbox_rule, and shipmail_delete_mailbox_rule. Custom folder targets must belong to the selected mailbox. A send_webhook action emits mailbox.rule_matched to active subscribed endpoints.

Message metadata and headers

Message tools also support durable client_reference lookup, scalar metadata, caller RFC Message-IDs, and validated unsubscribe or non-reserved X-* headers. Message content and returned headers remain untrusted external data.

Sending attachments

MCP send and scheduled-update tools accept staged sat_... attachment IDs and do not expose base64 file bytes to the model. Supported hosted clients can use the attachment review component. Local-file agents can compute the exact size and SHA-256 digest, call shipmail_prepare_staged_attachment_upload, and POST the unmodified bytes to its five-minute, one-time upload URL. The returned sat_... ID can then be scheduled with the message. The upload URL is bound to the mailbox and declared file metadata and does not expose the MCP credential.

Reading attachments

To read a received attachment, first fetch the exact inbox message, then call shipmail_read_mailbox_inbox_attachment with its mailbox ID, message ID, and attachment part ID. Shipmail resolves the attachment from that message. Text attachments such as CSV files are returned as text in attachment.text. Other files are returned as an embedded MCP resource with the declared media type. Reads are limited to 3 MB to stay within Shipmail's hosted and local MCP response budgets. Attachment contents remain untrusted external data.

Newsletter media

Newsletter images and videos use the same secure upload boundary. Supported hosted clients can open shipmail_upload_newsletter_asset_with_file. Local-file agents can compute the exact size and SHA-256 digest, call shipmail_prepare_newsletter_asset_upload, PUT the unmodified bytes with the returned headers, upload a generated JPEG poster for video, and POST an empty body to the single-use completion URL. Completion verifies the stored object before it creates the asset. MCP arguments never contain base64 media bytes or the connection credential.

Reply drafts for mailbox agents

For mailbox agents, use reply scans or the live attention queue, then create a versioned inbox reply draft. Shipmail derives recipients from the latest inbound message and refuses stale sends. A review-only session needs messages:read and drafts:write. Omit the send tool and messages:send until an approved component is allowed to deliver mail.

New-message drafts

To start a new conversation without send access, use shipmail_create_draft. It saves the message to the mailbox's Drafts folder and sends nothing. The user reviews, edits, and sends it from Drafts in Shipmail or any mail client. It needs only drafts:compose, which the Compose drafts permission grants, and every recipient must be allowed by the connection's recipient limits.

Booking pages

Booking page create and update tools accept conferencing_provider as zoom, google_meet, or null. The provider is opt-in and must already be connected to the page mailbox. See conferencing setup.

Every tool by group

GroupTools
Statusshipmail_status, shipmail_get_organization_access
Automationsshipmail_list_automations, shipmail_get_automation, shipmail_create_automation, shipmail_update_automation, shipmail_run_automation
Domainsshipmail_list_domains, shipmail_get_domain, shipmail_create_domain, shipmail_update_domain, shipmail_delete_domain, shipmail_verify_domain, shipmail_get_domain_dns_records, shipmail_get_domain_health, shipmail_search_domains
Mailboxesshipmail_list_mailboxes, shipmail_get_mailbox, shipmail_create_mailbox, shipmail_update_mailbox, shipmail_delete_mailbox, shipmail_suspend_mailbox, shipmail_resume_mailbox, shipmail_list_mailbox_app_passwords, shipmail_create_mailbox_app_password, shipmail_revoke_mailbox_app_password, shipmail_create_mailbox_export, shipmail_get_mailbox_export, shipmail_list_mailbox_folders, shipmail_create_mailbox_folder, shipmail_update_mailbox_folder, shipmail_delete_mailbox_folder, shipmail_list_mailbox_rules, shipmail_get_mailbox_rule, shipmail_create_mailbox_rule, shipmail_update_mailbox_rule, shipmail_delete_mailbox_rule, shipmail_list_mailbox_identities, shipmail_reset_mailbox_password, shipmail_set_auto_reply, shipmail_list_mailbox_forwarding, shipmail_create_mailbox_forwarding, shipmail_delete_mailbox_forwarding, shipmail_get_mailbox_delivery_routing, shipmail_update_mailbox_delivery_routing, shipmail_inject_sandbox_inbound
Mailbox inboxshipmail_list_mailbox_inbox_messages, shipmail_get_mailbox_inbox_message, shipmail_read_mailbox_inbox_attachment, shipmail_list_mailbox_inbox_threads, shipmail_get_mailbox_inbox_thread, shipmail_update_inbox_thread_attention, shipmail_create_draft, shipmail_create_inbox_reply_draft, shipmail_list_inbox_reply_drafts, shipmail_get_inbox_reply_draft, shipmail_update_inbox_reply_draft, shipmail_delete_inbox_reply_draft, shipmail_send_inbox_reply_draft, shipmail_reply_to_inbox_message, shipmail_reply_to_inbox_thread, shipmail_update_inbox_message, shipmail_move_inbox_message, shipmail_delete_inbox_message
Reply scansshipmail_create_reply_scan, shipmail_get_reply_scan, shipmail_list_reply_scan_results
Mailbox importsshipmail_create_mailbox_import, shipmail_get_mailbox_import, shipmail_list_mailbox_imports, shipmail_cancel_mailbox_import, shipmail_resume_mailbox_import, shipmail_restore_mailbox_import, shipmail_undo_mailbox_import
Messages and threadsshipmail_list_messages, shipmail_get_message, shipmail_list_message_analytics, shipmail_compose_message_with_file, shipmail_prepare_staged_attachment_upload, shipmail_send_message, shipmail_reply_to_message, shipmail_list_scheduled_messages, shipmail_get_scheduled_message, shipmail_update_scheduled_message, shipmail_cancel_scheduled_message, shipmail_list_threads, shipmail_get_thread, shipmail_reply_to_thread
Membersshipmail_list_members, shipmail_get_member
Webhooksshipmail_list_webhooks, shipmail_get_webhook, shipmail_create_webhook, shipmail_update_webhook, shipmail_delete_webhook, shipmail_rotate_webhook_secret, shipmail_test_webhook, shipmail_list_webhook_deliveries, shipmail_get_webhook_delivery, shipmail_replay_webhook_delivery
Suppressionsshipmail_add_suppression, shipmail_list_suppressions, shipmail_remove_suppression
Audiencesshipmail_list_audiences, shipmail_get_audience, shipmail_create_audience, shipmail_update_audience, shipmail_delete_audience, shipmail_get_audience_feed, shipmail_update_audience_feed, shipmail_rotate_audience_feed, shipmail_revoke_audience_feed, shipmail_list_subscribers, shipmail_get_subscriber, shipmail_get_subscriber_by_email, shipmail_add_subscriber, shipmail_add_subscribers_batch, shipmail_update_subscriber, shipmail_unsubscribe_subscriber, shipmail_resubscribe_subscriber, shipmail_remove_subscriber, shipmail_get_welcome_sequence, shipmail_update_welcome_sequence, shipmail_create_welcome_step, shipmail_update_welcome_step, shipmail_delete_welcome_step
Newslettersshipmail_list_newsletter_sender_identities, shipmail_list_newsletter_domains, shipmail_list_newsletter_assets, shipmail_upload_newsletter_asset_with_file, shipmail_prepare_newsletter_asset_upload, shipmail_register_newsletter_asset, shipmail_list_newsletters, shipmail_get_newsletter, shipmail_preview_newsletter, shipmail_create_newsletter, shipmail_create_newsletter_from_changelog, shipmail_update_newsletter, shipmail_run_newsletter_preflight, shipmail_send_newsletter_test, shipmail_schedule_newsletter, shipmail_send_newsletter_to_more, shipmail_cancel_newsletter, shipmail_resume_newsletter
Calendarshipmail_list_calendar_events, shipmail_get_calendar_event, shipmail_create_calendar_event, shipmail_update_calendar_event, shipmail_delete_calendar_event, shipmail_get_calendar_availability
Booking pagesshipmail_list_booking_pages, shipmail_get_booking_page, shipmail_create_booking_page, shipmail_update_booking_page, shipmail_delete_booking_page
One-off booking linksshipmail_list_booking_links, shipmail_get_booking_link, shipmail_create_booking_link, shipmail_update_booking_link, shipmail_revoke_booking_link
Cross-organization listsshipmail_list_domains_across_organizations, shipmail_list_mailboxes_across_organizations, shipmail_list_webhooks_across_organizations, shipmail_list_suppressions_across_organizations, shipmail_list_newsletters_across_organizations, shipmail_list_newsletter_sender_identities_across_organizations, shipmail_list_newsletter_domains_across_organizations, shipmail_list_newsletter_assets_across_organizations, shipmail_list_audiences_across_organizations, shipmail_list_booking_pages_across_organizations

Resources and prompts

Resources expose common read-only objects by URI. Prompts are guided workflows that keep agents inside safe operating boundaries.

Resources

  • shipmail://account/status
  • shipmail://domains
  • shipmail://domains/{id}
  • shipmail://mailboxes
  • shipmail://mailboxes/{id}
  • shipmail://mailboxes/{id}/folders
  • shipmail://mailboxes/{id}/identities
  • shipmail://mailboxes/{id}/rules
  • shipmail://mailboxes/{id}/inbox/messages
  • shipmail://mailboxes/{id}/inbox/threads/{thread_id}
  • shipmail://messages/{id}
  • shipmail://mailboxes/{mailbox_id}/threads/{id}

Prompts

  • setup_domain
  • triage_mailbox
  • draft_email_reply
  • configure_webhook

Browser tools with WebMCP

A browser agent that opens Shipmail can discover four public WebMCP tools. It can search the documentation, open a main Shipmail page, retrieve current pricing, and read the public service status. Shipmail registers these tools when each page loads and removes them when the page closes.

  • shipmail_search_docs finds documentation by title and path.
  • shipmail_navigate opens a fixed, same-site destination.
  • shipmail_get_pricing returns the public plan and limit document.
  • shipmail_get_service_status returns the public API status.

These four public tools do not read account, mailbox, or billing data. In a supported desktop browser, signed-in organization pages can also expose page-scoped setup tools for inspecting onboarding state, adding a domain, reading and checking DNS setup, creating a mailbox, opening a human-reviewed draft, confirming recent inbound mail, and describing the inbox view the person has open. They use the current Shipmail session and role permissions, show activity in the Browser agent panel opened from the sidebar, and never expose sending, deletion, forwarding, billing, or mailbox credentials. WebMCP is an experimental browser API, so tool discovery depends on browser support.

For a deeper architecture comparison, see the email API for AI agents guide.

The MCP server source is public on GitHub, published on npm, and listed in the official MCP Registry, and available through Smithery.

Last updated

Not included

Domain purchase is not exposed as an MCP tool. Domain registration charges a saved payment method, so an organization owner confirms every purchase in Shipmail. When an agent asks the API to register a domain, it gets a 403 with the reason owner_confirmation_required and an action_url to send to the owner.