Skip to main content
Glama
Sendmux

Sendmux Email Inbox API + Sending

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SENDMUX_API_KEYNoFallback API key for single-key setups; smx_mbx_* or smx_root_*
SENDMUX_MCP_HOSTNoHTTP host127.0.0.1
SENDMUX_MCP_PATHNoHTTP path/mcp
SENDMUX_MCP_PORTNoHTTP port8765
OPENAPI_INPUT_DIRNoAlternative OpenAPI input directory
SENDMUX_APP_BASE_URLNoApp API base URLhttps://app.sendmux.ai/api/v1
SENDMUX_MCP_SURFACESNoComma-separated list of surfaces (mailbox, management, sending) for combined server
SENDMUX_MCP_TRANSPORTNoTransport (stdio, http, streamable-http)stdio
SENDMUX_MAILBOX_API_KEYNoMailbox API key (smx_mbx_*), required when mailbox surface is selected
SENDMUX_MCP_APP_OPENAPINoOverride app OpenAPI snapshot path or URL
SENDMUX_SENDING_API_KEYNoSending API key (smx_mbx_*), required when sending surface is selected
SENDMUX_SENDING_BASE_URLNoSending API base URLhttps://smtp.sendmux.ai/api/v1
SENDMUX_MANAGEMENT_API_KEYNoManagement API key (smx_root_*), required when management surface is selected
SENDMUX_MCP_ALLOWED_ORIGINSNoAllowed browser origins (comma-separated)
SENDMUX_MCP_SENDING_OPENAPINoOverride sending OpenAPI snapshot path or URL
SENDMUX_MCP_TIMEOUT_SECONDSNoRequest timeout in seconds30
SENDMUX_MCP_HTTP_BEARER_TOKENNoBearer token for HTTP transport (required unless SENDMUX_MCP_ALLOW_UNAUTHENTICATED_HTTP is true)
SENDMUX_MCP_OPENAPI_INPUT_DIRNoOverride OpenAPI input directory
SENDMUX_MCP_RETRY_MAX_ATTEMPTSNoMaximum retry attempts3
SENDMUX_MCP_ALLOW_UNAUTHENTICATED_HTTPNoAllow unauthenticated HTTP connectionsfalse

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
mailbox_get_attachmentA

Use this after finding a message attachment. It returns metadata plus a fresh short-lived download_url for that exact attachment; fetch the URL promptly, and call this tool again if it expires.

mailbox_read_attachmentA

Use this after finding a message attachment when you need the attachment contents. Text-like attachments are downloaded server-side and returned as text, so agents do not need a generic web_fetch tool. Binary or oversized attachments return metadata plus a fresh download link.

mailbox_upload_attachmentA

Use this before sending a mailbox attachment. Cheapest mode: file_path on local stdio MCP reads the user-approved local file without putting bytes in model context. Hosted or shell-capable agents should set presign_upload_url=true with filename, content_type, and size_bytes, then PUT the file to the returned short-lived URL promptly and send the returned blob_id. Inline content_base64 is a last resort for tiny agent-authored files only and is capped at 32 KiB decoded.

mailbox_wait_for_messageA

Use this to wait briefly for new mail instead of manual polling. It polls for up to 25 seconds, returns a matching message with attachment metadata when found, or a clean no_message result so you can call again.

mailbox_get_changesA

Use this to resume mailbox sync from a prior state cursor. Do not use it for ad hoc message search.

mailbox_list_foldersA

Use this to inspect mailbox folders before filing or moving messages. It is read-only.

mailbox_list_identitiesA

Use this to list sender identities available to the mailbox. Prefer mailbox_get_identity when only the default identity is needed.

mailbox_get_identityA

Use this to read the mailbox sender identity and display name. Use it before composing replies when the sender should match the mailbox identity.

mailbox_update_identityA

Use this only when the user explicitly asks to change sender identity details. Do not use it for one-off message composition.

mailbox_list_granted_mailboxesA

Use this first when the token can access more than one mailbox. It searches only the mailboxes granted to this connection and returns IDs to pass as mailbox_id.

mailbox_get_meA

Use this to identify the authenticated mailbox before acting on mail. It returns profile details for the mailbox key currently in use.

mailbox_list_messagesA

Use this to scan mailbox messages by cursor without fetching full bodies. Filter by folder_id, keyword/not_keyword, dates, sender/recipient, text query, unread state, or has_attachment; attachment metadata includes a short-lived download_url.

mailbox_batch_delete_messagesA

Use this only when the user explicitly asks to delete messages and supplies or confirms the message IDs. Deletion is a mailbox mutation.

mailbox_batch_get_messagesA

Use this when the user supplies several message IDs or a prior search returns multiple candidates. It avoids repeated single-message calls.

mailbox_batch_update_messagesA

Use this to mark, flag, move to a folder, or set keywords/labels on multiple messages after the user has confirmed the desired change. Do not use it for read-only tasks.

mailbox_get_messageA

Use this to fetch one message summary or detail by message_id. Use mailbox_list_body or mailbox_list_content when the body content is required.

mailbox_list_bodyA

Use this to read the raw or simplified body for a known message_id. Prefer it when the task needs message text but not every MIME detail.

mailbox_list_contentB

Use this to read structured content for a known message_id. Prefer it when headers, participants, or body parts affect the answer.

mailbox_count_messagesA

Use this to count messages matching mailbox filters without listing every result. Follow with mailbox_list_messages only when examples are needed.

mailbox_search_message_snippetsA

Use this to search message snippets by query text. Narrow with folder_id, keyword/not_keyword, dates, sender/recipient, unread state, or has_attachment; use returned message IDs with a read tool before making content-specific claims.

mailbox_send_messageA

Use this to send a message from the authenticated mailbox. For attachments, call mailbox_upload_attachment first using file_path, presign_upload_url, or tiny content_base64, then pass the returned blob_id. Include an Idempotency-Key for retries.

mailbox_get_sessionA

Use this before complex mailbox work to discover supported mailbox capabilities, limits, and endpoint metadata. Do not use it for message search.

mailbox_list_threadsA

Use this to scan conversation threads without loading every message. Continue with next_cursor only when additional threads are needed.

mailbox_get_threadA

Use this to read one thread summary by thread_id. Use mailbox_list_thread_messages when the task needs the messages in the thread.

mailbox_list_thread_messagesA

Use this to list messages inside a known thread. Use message body tools only for messages that need full content.

sending_upload_attachmentA

Use this before sending a Sending API attachment. Cheapest mode: file_path on local stdio MCP reads the user-approved local file without putting bytes in model context. Hosted agents should use sending_create_attachment_upload and PUT the file outside model context. Inline content_base64 is a last resort for tiny agent-authored files only and is capped at 32 KiB decoded.

sending_create_attachment_uploadA

Use this when a remote or shell-capable agent needs a short-lived upload URL for an outbound Sending API attachment. Provide filename, content_type, and exact size_bytes, PUT the file bytes outside model context with the returned headers, then pass the returned attachment_id to sending_send_email.

sending_get_attachmentA

Use this to inspect a temporary Sending attachment_id before sending. It returns metadata only, not file bytes.

sending_send_emailA

Use this to send one outbound email through the sending API. For attachments, call sending_upload_attachment first for local/tiny content or sending_create_attachment_upload for delegated file PUTs, then pass attachments as attachment_id refs. Inline base64 is only for tiny generated content. Include an Idempotency-Key so retries do not create duplicate sends.

sending_send_email_batchA

Use this to send multiple outbound emails in one request. For attachments, prefer uploaded attachment_id refs; avoid inline base64 except for tiny generated content. Use it only when the user confirms every recipient and message.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sendmux/sendmux-sdk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server