Postfleet
Give an AI agent its own email address: send, reply, read, and wait for mail.
Connector by postfleet.aiOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/postfleet-ai-postfleet
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://api.postfleet.ai/api/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 7 read · 8 write · 1 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 16
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
get_draftlist_domainslist_draftslist_inboxlist_mailboxesread_emailwait_for_email
Write 8 · Create, change, send or run things.
create_domaincreate_draftcreate_mailboxreply_emailsend_draftsend_emailupdate_draftverify_domain
Delete 1 · Delete, drop, revoke or wipe things.
delete_draft
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
POSTFLEET_API_KEY
Other settings (environment variables or headers).
AuthorizationPOSTFLEET_API_URL
Network hosts it talks to 1
api.postfleet.ai· found in remote endpoint, install command
Tools (16)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
create_domainCreate domainRegister a NEW custom sending domain on this account. Call this when list_domains does not already include the domain you want to host mailboxes on. Returns the domain id, verification status, and the DNS records to add at your registrar. The domain stays pending until those records are in place — call verify_domain after publishing them. Custom domains require a paid plan. A name that is already registered with Postfleet or the email provider is a conflict, not a success; do not retry with the same name.
create_draftCreate draftPrepare an email as a draft without sending it. Call this when you want to stage a message for later or for a human to review before it goes out — send it afterward with send_draft. Same fields as send_email, or omit to/subject and pass reply_to_message_id to draft a threaded reply. Returns the draft id with status "draft".
create_mailboxCreate mailboxCreate a NEW email mailbox this agent owns. Call this when list_mailboxes shows you have no suitable mailbox yet — mailboxes persist across sessions, so creating a second one for the same purpose strands mail in the first. Returns a working address immediately. Optional slug personalizes the address (agent-<slug>@...). To create the mailbox on a custom domain instead of the shared one (<slug>@yourdomain.com), pass a domain_id from list_domains — the domain must be verified.
delete_draftDelete draftcan change or delete dataDiscard a draft by its id so it will never be sent. Call this when a staged or pending-approval message should be withdrawn — e.g. it is no longer needed or was created by mistake. A draft that is already sending or sent cannot be deleted.
get_draftGet draftread-onlyRead one draft in full by its id: recipient, subject, body text, attachment metadata (filename, type, size, and url when the file is URL-backed — never the bytes), and current status. Call this when you need the content of a specific draft — e.g. to review what is queued for approval after list_drafts, or before editing it with update_draft.
list_domainsList domainsread-onlyList the account's custom sending domains with their id, name, and verification status. Call this when you want to create a mailbox on a custom domain (pass the id of a verified domain as create_mailbox's domain_id), or to check whether a domain has finished verifying. Only status "verified" domains can host mailboxes; an empty list means only the shared platform domain is available.
list_draftsList draftsread-onlyList the open drafts in a mailbox (status draft, pending_approval, or sending), newest first. Call this when you need to see messages you have staged or that are queued waiting on human approval, e.g. after a send returned status "pending_approval".
list_inboxList inboxread-onlyList recent messages in a mailbox, newest first, with comprehension status per message. Call this when checking what has arrived; use read_email for full content and extracted data.
list_mailboxesList mailboxesread-onlyList the mailboxes you can use, newest first, each with its id and email address. Call this when you need a mailbox_id for any other tool, or to check whether you already have a mailbox before creating one — it is usually the first call in a workflow. Returns every mailbox on the account, or just your own if your API key is scoped to a single mailbox. An empty list means you have none yet — use create_mailbox.
read_emailRead emailread-onlyRead one email in full: cleaned body, sanitization report (screened against known hidden-content patterns), classification, and data extracted to the mailbox schema. Call this when you need the content or extraction of a specific message.
reply_emailReply to emailReply to an email you received. Call this when answering an existing message — recipient, subject, and conversation threading are derived automatically from the original. Pass a client_id (any unique string you make up) and reuse the SAME client_id if you retry after an error — that guarantees the reply is sent at most once. If the mailbox requires human approval, the reply is queued as a draft and returns {draft_id, status:"pending_approval"} instead of a message id — that is NOT a failure and must NOT be retried; it is sent once a human approves it (check with list_drafts).
send_draftSend draftSend a draft you prepared, by its id. Call this when a staged draft is ready to go out. If the mailbox requires human approval, this returns 202 {draft_id, status:"pending_approval"} — the draft is queued for a human to approve, which is NOT a failure and must NOT be retried; it is sent once approved. Otherwise it sends immediately and returns the message id.
send_emailSend emailSend a new email from one of your mailboxes. Call this when starting a NEW conversation; to answer an email you received, use reply_email instead (it threads correctly). Pass a client_id (any unique string you make up) and reuse the SAME client_id if you retry after an error — that guarantees the email is sent at most once. If the mailbox requires human approval, the send is queued as a draft and returns {draft_id, status:"pending_approval"} instead of a message id — that is NOT a failure and must NOT be retried; the email goes out once a human approves it (check with list_drafts).
update_draftUpdate draftEdit the to, subject, text, or attachments of a draft that has not been sent yet — omitted fields keep their current value. Call this when a draft needs changes, e.g. a human declined to approve it and you are revising it. The reply target cannot be changed (create a new draft to reply to a different message), and a draft that is already sending or sent can no longer be edited.
verify_domainVerify domainRe-check DNS for a custom domain and refresh its verification status. Call this when you have added the records returned by create_domain, or when list_domains still shows pending and you believe DNS has propagated. Returns the current status (pending, verified, or failed). Only a verified domain can be passed to create_mailbox as domain_id.
Show 1 more tools
wait_for_emailWait for emailread-onlyBlock until a matching email arrives in a mailbox (or time out). Call this when you just sent an email and need the reply, or are expecting an inbound message — instead of polling list_inbox yourself. Returns the full message on match, or {timed_out:true}.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit
- Sep 28, 2026 (1 month ago)
- Last release
- Sep 2, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
ai.postfleet/postfleet- Version
- 0.1.4
- Auth
- Bearer token, API key
- Packages
- npm @postfleet/mcp
- License
- MIT
- Repository
- github.com/Thestral12/postfleet-mcp
- Website
- postfleet.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Postfleet MCP server. Agent Mart. https://agentmart.dev/connectors/postfleet-ai-postfleet (last updated 2026-10-24)