Skip to content
Agentmart
Submit a tool

MailFlat

Real email inboxes for AI agents: open an address, read the one-time code, send mail.

Connector by MailFlat · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Chalk Labs

Need help deploying MailFlat?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/mailflat-mailflat-mcp

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.

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.

We use your email only for this newsletter. Privacy

About

Real email inboxes for AI agents: open an address, read the one-time code, send mail.

No 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, install config and code. Checked Oct 26, 2026.

Tools
6 read · 10 write · 3 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 19

Read from the source code; the running server may list different tools.

Read 6 · Look things up without changing anything.

  • get_calendar_feed
  • list_calendar_events
  • list_inboxes
  • read_messages
  • wait_for_otp
  • wait_until_sent

Write 10 · Create, change, send or run things.

  • cancel_calendar_event
  • create_calendar_event
  • create_inbox
  • mark_read
  • reply
  • rotate_calendar_feed
  • rsvp_to_invite
  • send_email
  • update_calendar_event
  • wait_for_message

Delete 3 · Delete, drop, revoke or wipe things.

  • burn_inbox
  • delete_inbox
  • delete_message

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • MAILFLAT_API_KEY

Other settings (environment variables or headers).

  • MAILFLAT_API_URL

Network hosts it talks to 4

  • errors.pydantic.dev · found in code
  • github.com · found in code
  • glama.ai · found in code
  • mailflat.net · found in code

Files it touches

  • /tmp/invoice.pdf
  • Any path the agent passes to its tools

Tools (19)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • burn_inbox

    Delete every message in an inbox but KEEP the address. Use between scenarios: the address stays registered wherever you already used it.

  • cancel_calendar_event

    Cancel a meeting this inbox organized; it disappears from every attendee's calendar.

  • create_calendar_event

    Schedule a meeting from this inbox and email the invitations (you are the organizer). Attendees get a normal invitation with Yes / No / Maybe buttons in Gmail, Outlook or Apple Calendar. Their answers show up in list_calendar_events under `attendees[].status`. `start`: ISO 8601 with an offset ("2026-10-06T14:00:00-04:00"), or without one plus `timezone` ("America/New_York"). Set `end` or `duration_minutes` (default 30 minutes). For an all-day event set all_day=true and use dates ("2026-10-06"); `end` is exclusive. `message` is a short note at the top of the invitation email. `in_reply_to` (a …

  • create_inbox

    Open an email inbox and return its address. Use this when you need an address to sign up for a service or to receive a one-time code. The address is permanent and stays until you delete it, so a test suite can reuse one address across runs instead of opening a new inbox each time. Only the messages inside expire, on the retention window you choose. `label` needs a paid plan; on free it is reported back in `ignored_fields`. `retention_hours` is optional (0 = your plan's max); requests above your plan are capped. `subdomain` picks the part after the @ on mailflat.net (`prefix@subdomain.mailfla…

  • delete_inbox

    Delete an inbox and all its messages by address. Irreversible.

  • delete_message

    Delete a single message in an inbox by its id (the inbox itself stays).

  • get_calendar_feed

    Read-only subscribe link for this inbox's calendar, to give to a human. They add it in Google Calendar, Apple Calendar or Outlook and see this inbox's meetings there, with attendees and their answers. Calling again returns the SAME link, so sharing it twice never breaks a subscription. `subscribe_links` holds one-click add links per app. Google refreshes subscribed calendars every 8 to 24 hours; for live state use list_calendar_events.

  • list_calendar_events

    List the meetings on an inbox's calendar, soonest first. Events come from calendar invitations this inbox received (Google Calendar, Outlook, ...). Each has an `id`, `title`, `start`/`end` in UTC, `organizer`, `attendees`, `status` ("confirmed" or "cancelled") and `my_status` (this inbox's answer: "needs-action", "accepted", "declined" or "tentative"). If the organizer moves a meeting, the event is updated in place and `my_status` goes back to "needs-action". Messages that carry an invitation also show it under `calendar_event` in read_messages.

  • list_inboxes

    List all inboxes available to this API key.

  • mark_read

    Mark one message as read so later polls can skip it.

  • read_messages

    Read messages in the given inbox address (newest first). `direction` is "in" for received mail (default), "out" for mail sent from this address, or "all" for both. Received mail is the default so that a reply you are waiting for is not confused with a message you just sent.

  • reply

    Reply to a message so it stays in the SAME conversation. Prefer this over send_email when answering: it fills in the recipient, an `Re:` subject and the threading headers. A plain send_email starts a new conversation in the recipient's client, which does not look like a reply.

  • rotate_calendar_feed

    Replace this inbox's calendar subscribe link; the old link stops working at once. Use only when the link leaked. Everyone subscribed has to add the new link.

  • rsvp_to_invite

    Answer a calendar invitation: response is "accepted", "declined" or "tentative". Sends a standard calendar reply email to the organizer, so their Google or Outlook calendar shows your answer. `event_id` comes from list_calendar_events (or `calendar_event.event_id` on a message). Call it ONCE per answer: the reply is queued like any email; use wait_until_sent with the returned `message_id` to confirm delivery.

  • send_email

    Send an email FROM the given inbox address (DKIM-signed via MailFlat's MTA). Use for replies or outbound automation. `html` is optional. Returns once the mail is ACCEPTED for delivery, not once it is delivered: delivery runs on a queue and the result arrives via webhook or by reading the message back. `cc` addresses appear in the mail's headers; `bcc` addresses never do — not even in their own copy. Attachments are not available here; send those from the SDK.

Show 4 more tools
  • update_calendar_event

    Change a meeting this inbox organized; attendees get the updated invitation. Pass only what changes (empty = unchanged). Moving `start` keeps the duration. A new time resets every attendee's answer to "needs-action" (they are asked again). The same event is updated in their calendars, no duplicate. Invitations you RECEIVED cannot be changed here; answer those with rsvp_to_invite.

  • wait_for_message

    Poll the inbox until a new message ARRIVES (or timeout). Returns {email}. Only received mail counts, so you can send to a peer and then wait for their reply without matching your own outgoing message.

  • wait_for_otp

    Poll the inbox until an OTP code arrives (or timeout). Returns {otp_code, email}.

  • wait_until_sent

    Find out whether a mail you sent was actually delivered. send_email only means "accepted for delivery"; the mail goes out later on a queue. Call this with the message_id send_email returned to learn the outcome. Returns `delivered: true` once it went out. If it is still queued when the timeout elapses you get `timed_out: true` with `delivered: false` — that is NOT a failure and you must NOT send the mail again; the queue is still retrying. `status` tells you whether it has been attempted yet (`queued`) or attempted and rescheduled (`retrying`), and `error` carries what the last attempt repor…

Signals

Stars
0
Forks
0
Open issues
0
Weekly downloads
89
Last commit
Oct 5, 2026 (26 days ago)
Last release
Sep 29, 2026 (1 month ago)
Last package publish
Oct 2, 2026 (29 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.MailFlat/mailflat-mcp
Version
0.9.2
Auth
API key
Packages
pypi mailflat-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get MailFlat running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying MailFlat?

CallGet help
Cite this page

MailFlat MCP server. Agent Mart. https://agentmart.dev/connectors/mailflat-mailflat-mcp (last updated 2026-10-24)