SentFromAI

Email infrastructure for AI agents.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data

What it can do

  • Create Inbox: Create an email inbox for this tenant and return it (id, address, display_name, created_at). Uses the managed mail.sentfrom.ai domain unless domain_id names one of your verified custom d
  • List Inboxes: List every inbox in this tenant (id, address, display_name, created_at). Call this before create_inbox to reuse an existing address.
  • Delete Inbox: Permanently delete an inbox. Its address stops accepting mail immediately; messages already received stay searchable. Cannot be undone. Errors: 404 unknown inbox.

What data it sees

Do you need an account

An API key from the service settings is required

Email infrastructure for AI agents. Give your agent its own inbox: create inboxes on demand, send, reply in-thread, forward, search (keyword + semantic), drafts, custom domains, webhooks and allow/block rules. 21 tools, each annotated read-only / write / send / delete, with API errors returned as tool results.

Auth: your SentFromAI API key (sf_live_...) as the x-api-key parameter. Free plan: 5 inboxes, 5,000 emails/month, no card. Docs: https://docs.sentfrom.ai/guides/mcp

How to connect

How to connect SentFromAI to Claude

The server address to paste into Claude settings:

https://sentfromai--sentfromai.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect SentFromAI to ChatGPT

The server address to paste into ChatGPT settings:

https://sentfromai--sentfromai.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect SentFromAI to Cursor

The server address to paste into Cursor settings:

https://sentfromai--sentfromai.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (21)

Raw names from tools/list. Only developers need these.

create_inboxCreate an email inbox for this tenant and return it (id, address, display_name, created_at). Uses the managed mail.sentfrom.ai domain unless domain_id names one of your verified custom domains. The address is live immediately. Errors: 400 invalid local_part, 402 plan inbox limit reached, 409 address already taken.
list_inboxesList every inbox in this tenant (id, address, display_name, created_at). Call this before create_inbox to reuse an existing address.
delete_inboxPermanently delete an inbox. Its address stops accepting mail immediately; messages already received stay searchable. Cannot be undone. Errors: 404 unknown inbox.
send_messageSend a new email from one of your inboxes and return the created message (id, thread_id, delivery_status). Starts a new thread; to continue a conversation use reply_to_message so threading headers are set. Recipients matching a block rule are refused and addresses that previously bounced are suppressed. Pass client_id to make retries idempotent. Errors: 400 missing fields, 402 plan send limit reached, 413 message over 10 MB, 422 all recipients blocked or suppressed.
reply_to_messageReply inside an existing thread and return the created message. Sent from the inbox that received the original, to the original sender (or to everyone on the thread with reply_all), with the subject and In-Reply-To/References headers set so mail clients thread it correctly. Block rules and suppression apply. Errors: 404 unknown message, 402 plan send limit reached.
forward_messageForward a message to new recipients as a fresh thread, quoting the original and re-attaching its files, and return the created message. Useful for handing a conversation to a human. Errors: 404 unknown message, 402 plan send limit reached.
get_messageFetch one message by id: from/to/cc, subject, plain-text and HTML bodies, direction, delivery_status, thread_id, timestamps, and time-limited download URLs for attachments. Errors: 404 unknown message.
search_messagesSearch this tenant's messages, or list the most recent ones when query is omitted (the way to check for new mail). Returns up to limit message summaries (id, thread_id, direction, from_addr, to_addrs, subject, sent_at/received_at), newest first; use get_message for bodies. mode keyword matches words in subject and body, semantic finds messages by meaning, hybrid combines both.
list_threadsList conversation threads, most recently active first: id, subject, participants, message_count, last_message_at. Use get_thread to read the messages of one thread.
get_threadFetch a thread with all of its messages in chronological order, bodies included. Errors: 404 unknown thread.
create_draftCreate a draft without sending it and return it (id, status draft or scheduled). Set scheduled_at to have it sent automatically at that time, or send it later with send_draft. With reply_to_message_id the draft becomes a threaded reply: recipients and subject default to the original message. Errors: 404 unknown inbox or message.
send_draftSend an existing draft now and return the resulting message. Works for drafts in status draft or scheduled; a draft that was already sent cannot be sent again. Errors: 404 unknown draft, 409 already sent.
list_draftsList this tenant's drafts: id, inbox_id, to, subject, status (draft, scheduled, sent) and scheduled_at.
add_domainRegister a custom domain for sending and receiving and return it (id, status pending) together with the DNS records to add: DKIM CNAMEs, MX and SPF for the mail-from subdomain, and DMARC. SentFromAI re-checks DNS automatically and marks the domain verified once the records propagate; poll with get_domain. Errors: 400 invalid hostname, 409 already registered.
get_domainGet a domain's verification status (pending, verified, failed), the DKIM, SPF and DMARC check results, and the exact DNS records still required. Errors: 404 unknown domain.
create_webhookRegister an HTTPS endpoint that receives events as signed JSON POSTs and return it with its signing secret, which is shown only this once. Events: message.received (inbound mail, the default), message.delivered, message.bounced, message.complained, message.rejected. Failed deliveries are retried with backoff.
list_webhooksList webhook endpoints: id, url, events, created_at. Signing secrets are never returned after creation.
delete_webhookDelete a webhook endpoint. Event deliveries to it stop immediately. Cannot be undone. Errors: 404 unknown endpoint.
add_address_ruleAdd a rule for an email address or a whole domain and return it (id, kind, direction, pattern). Block rules are enforced server-side for every inbox in the tenant: matching senders are refused on receive and matching recipients are refused on send. Allow rules are recorded for reference and are not enforced as exceptions. Errors: 400 invalid kind or pattern.
list_address_rulesList this tenant's allow/block rules: id, kind, direction, pattern, created_at.
delete_address_ruleDelete an allow/block rule by id. Takes effect immediately. Cannot be undone. Errors: 404 unknown rule.