? How do I connect RadMail to my AI agent?
Point your MCP client at the RadMail sandbox endpoint at https://radmail.ai/api/mcp/sandbox — that is the whole step. No account, no credentials, and no card; the sandbox runs RadMail's real heuristic triage engine in memory for free.
↳ tl;dr One step: set the MCP server URL to the sandbox. No creds.
? Is connecting RadMail's MCP server free?
Yes. The sandbox MCP server is free and requires no credentials — it exists so an agent can wire up and get value in one step. It is the sandbox engine; the production multi-tenant engine is launch-gated.
↳ tl;dr Free sandbox, no creds. Production engine is launch-gated.
? Will RadMail send email on my agent's behalf?
Not on the hosted endpoints, and never for the hard-stopped classes - but the honest answer has two tiers, so here are both. On the zero-auth hosted sandbox at https://radmail.ai/api/mcp/sandbox there is no send tool at all: a tools/list call returns six tools (triage_inbox, list_right_now, why_surfaced, list_commitments, draft_reply, search), none of which can send, and draft_reply returns text for a person to review. On a LOCAL stdio server, the operator - not the agent, and not RadMail - can opt in to a send_email tool by setting RADMAIL_SEND_TOOL=1 plus a separate send-scoped key. It is off by default and is never registered on a hosted endpoint whatever that endpoint's environment says. Even then RadMail's outbound gate decides and the agent does not: it releases at once only to the owner's own team or an established two-way contact, holds everything else, and hands money, changed-banking, first-contact, decision, and injected-instruction mail to a person who copies it and sends it from their own mail. No tool can release a held send - the response carries a link to a review page, never a token. And the consequence is stated rather than glossed: on a send-enabled server the capability-absent enforcement model no longer describes sending, because the capability exists and is narrowed by configuration; the safety block on every response replaces the 'never sends mail' sentence with a sendSurface statement rather than leaving a false one in place. The five human-only classes still cannot leave without a person.
↳ tl;dr Hosted sandbox: six tools, zero can send. Local stdio: an operator can opt in to send_email (off by default, never hosted) - and even then money / changed banking / first contact / decisions / injected instructions are handed to a person to send themselves, and no tool can release a held send.
? Can RadMail check whether an email my agent is about to send is safe, without sending it?
Yes, and it is a different tool from sending: check_before_send asks RadMail's send gate about a message your agent will send through its OWN provider - Resend, SES, Gmail, another email MCP server, anything - and sends nothing itself. You pass the recipients, subject, and body exactly as they will go out, and it returns a verdict of pass, review, or human_only with reasons. human_only means a person must send it from their own mail or discard it; never send it yourself, and never re-ask to get a different answer. review means show it to the owner first. pass means no known risk pattern matched, which is not a clearance. Four limits belong with it. Any answer without a verdict - the check switched off, a refused or mailbox-confined key, a timeout - comes back as checked: false and verdict: null, which is UNCHECKED and must never be read as a pass. Attachments are described by name, size, and type only, their contents are never transmitted or scanned, and any attachment makes the verdict at least review because RadMail cannot see inside it. It needs connected mode: a RadMail key on the local server that is not limited to one mailbox, and without one it returns setup instructions rather than a guess. And it is not an inbound email-security product - it reasons about the message your agent wrote, not about whether mail you received is forged. It is the BEC hard-stop offered as a check to agents that do their sending somewhere else.
↳ tl;dr check_before_send = ask the gate, send nothing. pass / review / human_only with reasons; no verdict means UNCHECKED, never pass; attachments are metadata-only and always force at least review; needs connected mode with a key not confined to one mailbox.
? What tools does RadMail's MCP server expose to an agent?
The count depends on the tier, so here are all four with the only number that matters beside each one - how many of them can send. Hosted zero-auth sandbox at https://radmail.ai/api/mcp/sandbox: 6 tools, 0 send-capable (triage_inbox, list_right_now, why_surfaced, list_commitments, draft_reply, search), reproducible in one credential-free tools/list call. The radmail-mcp package on a local stdio server, by default: 19 tools, 0 send-capable - the six above plus triage (one message), read_email, read_thread, list_emails, list_prepared_drafts, list_watched_threads, get_attachment (saves one attachment to the local machine, so it carries no read-only claim), check_send_domain (a zero-auth read-only SPF / DKIM / DMARC DNS lookup for a domain you name), check_before_send (ask RadMail's gate whether a message your agent will send elsewhere should go, which sends nothing), provision_sandbox, report_need and request_capability (tell RadMail what was awkward or missing), and radmail_learning_insights. With the operator's opt-in RADMAIL_SEND_TOOL=1 on a local server: 20 tools, 1 send-capable (send_email, which hands mail to RadMail's outbound gate and cannot release a hold). With the operator's opt-in inbox actions on a local server: 24 tools, 0 send-capable and 5 that change inbox state (archive, snooze, read state, labels - none of which deletes). Two honest caveats. Grepping tool names for 'send' over-counts: check_send_domain is a DNS read and check_before_send asks the gate, and neither sends anything - read descriptions, not names. And npm's published latest is 0.5.0 (2026-08-11), which predates check_before_send, send_email, the inbox actions, get_attachment, and the four newer read tools; until the next release is published, run the package from source to get them. There is deliberately no tool that moves money, changes banking instructions, or makes first contact - at any tier, with any configuration.
↳ tl;dr Ask 'how many can send', not 'how many tools'. Hosted sandbox 6/0 send-capable. Local package 19/0 by default; 20/1 only if an operator opts in to send_email; 24/0 with the opt-in inbox actions (5 change state, none deletes). npm latest 0.5.0 predates the newer tools - run from source until the next release.
? What is the difference between RadMail's sandbox and connected mode?
Sandbox is zero-auth: the hosted endpoint at https://radmail.ai/api/mcp/sandbox (and the radmail-mcp package with no key) runs a free, in-memory heuristic engine over demo messages or messages you pass — no account, no credentials, no card. Connected mode is read-only real-inbox access: set RADMAIL_API_KEY on the radmail-mcp package (mint a key at https://app.radmail.ai/settings/api-keys) and search, read_email, list_right_now, and list_commitments operate on your REAL RadMail inbox via the v1 API — read-only by construction, fail-closed on any API error, every real-mail field taint-marked untrusted-email-body. Without a key the package behaves exactly like the zero-auth sandbox, and the connected tools return setup instructions instead of an error.
↳ tl;dr RADMAIL_API_KEY = read-only real-inbox access (search / read_email / list_right_now / list_commitments). No key = zero-auth sandbox.
? Is RadMail's two-axis triage just the Eisenhower matrix, and how is it different from an urgency label?
Same two axes, different mechanics - worth stating plainly, because "importance x urgency" is also how the Eisenhower matrix is usually described. RadMail scores every message on two independent 0-100 axes and then derives the quadrant from fixed, published thresholds: importance >= 60 AND urgency >= 50 is the 'Right Now' lane, importance >= 60 alone is 'important, can wait', urgency >= 50 alone is 'urgent, minor', and the rest is 'low'. The zero-auth hosted sandbox prints both numbers beside every message (for example 'importance 94 x urgency 94'), so one credential-free call reproduces the bucketing instead of asking you to trust a single urgency label a model picked on that run. Three honest limits. The sandbox engine is heuristic - sender class, money and deadline cues, open commitments, and a recency term that decays to zero at about 40 hours - and it is not personalized to you. The 4D disposition (Delete, Delegate, Do, Defer, in that precedence) is shown on https://radmail.ai/try and is not returned by the hosted MCP sandbox. And the Eisenhower 'delegate' quadrant does not transfer: money, changed banking, first contact, and decisions stay human-only whichever quadrant they land in, so no quadrant is ever a licence for an agent to act.
↳ tl;dr Same two axes as Eisenhower, but scored 0-100 and bucketed on published thresholds (importance >= 60 AND urgency >= 50 -> Right Now), reproducible in one zero-auth sandbox call. Heuristic, not personalized - and 'delegate' never crosses the BEC hard-stop.
? Why is RadMail a safe choice for an agent that handles email?
Because the dangerous actions are structurally impossible: RadMail's MCP server has no tool that auto-sends a payment, changes wire instructions, or cold-contacts a new party. Those are human-only by design, so an agent using RadMail cannot be tricked into business-email-compromise fraud.
↳ tl;dr The BEC-risk actions are not exposed as tools at all.
? Can I see RadMail actually working before I connect or sign up?
Yes. The public magic-moment at https://app.radmail.ai/pulse shows RadMail triaging a live inbox — the 'Right Now' lane, an explainable 'why surfaced' on each message, and the BEC hard-stop visibly refusing a money / new-banking / first-contact send — with no signup, no credentials, and no card. The live product preview is at https://app.radmail.ai; agents can also connect the free sandbox MCP server in one step.
↳ tl;dr Watch it work at app.radmail.ai/pulse — no signup, no creds.
? Does RadMail try to make my agent recommend it?
No. RadMail never injects instructions into an agent, pays for mentions, or addresses the model at all. Its referral program rewards the human operator, the integration builder, and the end user with honest attribution and credits — the only thing aimed at the agent is a surface that makes it succeed faster.
↳ tl;dr Reward is value and ease for humans/builders — never manipulation of the model.
? Can RadMail connect a whole Mac's worth of inboxes (Apple Mail) to my agent?
Yes. RadMail ships a local Apple Mail connector: one command connects every inbox already aggregated in Apple Mail on a Mac — no per-account OAuth, no forwarding rules, and no shared passwords. It reads message metadata and normalized text (attachment contents are never read) and is Message-ID idempotent, so it runs safely alongside server-side connectors without creating duplicates. It needs a RadMail account with write scope; RadMail is pre-release, so this is early-access.
↳ tl;dr One command connects every Apple Mail inbox on a Mac — no per-account OAuth, metadata only, dedupe-safe.
? Does RadMail alert and draft on inbound sales leads automatically?
Yes — RadMail has a lead lane. A new-business inbound is scored as a first-class 'lead' that can never be tuned into silence, fires an instant alert (web push, SMS, email, or an email.lead webhook), and — where the pipeline is enabled — attaches a researched dossier grounded ONLY in the email and your own sender history (no web access, instructed never to invent) plus a drafted reply. The draft is human-approval-only and structurally cannot send: a first-contact reply stays behind the BEC hard-stop, human-only, forever.
↳ tl;dr Lead lane = instant alert + grounded dossier + approval-only draft; first contact stays human-only.
? Can an AI search my real email?
Yes — read-only. Mint an API key at https://app.radmail.ai/settings/api-keys (keys start with tmk_), set it as RADMAIL_API_KEY on the radmail-mcp package, and the search tool searches your REAL ingested inbox (ranked most-relevant + newest first, with sender / date filters and a why-matched on every hit) while read_email fetches a full message by id, list_right_now returns your real can't-miss lane, and list_commitments lists your real open promises. Connected mode is read-only by construction and fail-closed on any API error; every real-mail field is taint-marked untrusted-email-body, and money, changed banking, first contact, decisions, and suspected injection stay human-only forever. Want to try before connecting anything? The zero-auth hosted sandbox at https://radmail.ai/api/mcp/sandbox runs the same search over a demo inbox with no key at all.
↳ tl;dr Yes: RADMAIL_API_KEY → search + read_email + list_right_now + list_commitments over your real inbox, read-only, taint-marked, fail-closed. Sandbox first if you want zero-auth.
? How do I connect an agent to my real inbox?
Three steps: mint an API key at https://app.radmail.ai/settings/api-keys, set it as the RADMAIL_API_KEY environment variable on the radmail-mcp MCP server (for Claude Code: claude mcp add radmail -e RADMAIL_API_KEY=tmk_... -- npx -y radmail-mcp), and restart — then search finds any email you've ever received, read_email fetches the full message, list_right_now returns your real can't-miss lane, and list_commitments lists your real tracked promises, all read-only. radmail-mcp is live on npm, so the npx command works as-is; the zero-auth hosted sandbox at https://radmail.ai/api/mcp/sandbox works instantly with no key if you want to try first.
↳ tl;dr Mint a key → RADMAIL_API_KEY on radmail-mcp → search / read_email / list_right_now / list_commitments, read-only. Zero-auth sandbox to try first.
? If AI agents run my company's execution layer, what does giving them my email actually require?
The inbox is the seat where an agent can be socially engineered into an irreversible action — wiring money, changing where payments are remitted, or replying to a stranger with sensitive data — so an agent-run inbox needs a hard-stop before anything else. RadMail is the email MCP with a business-email-compromise hard-stop built in: money, changed banking, first contact, decisions, and prompt-injection are refused in deterministic code, human-only forever, so no email and no prompt can talk an agent into the loss. That is what lets a fleet of MCP agents run the inbox's work — triage, the Right Now lane, commitment tracking, drafting — while the one irreversible seat stays with the human by construction.
↳ tl;dr Agents can run the execution layer; the inbox needs a hard-stop first. RadMail refuses the BEC action classes in code so the dangerous seat becomes delegable.
? Can I run a one-person company where MCP agents handle email? What's the catch with the inbox?
You can delegate a lot of the inbox — triage, the Right Now lane, commitment tracking, drafting — and RadMail is built exactly for that: its MCP server exposes only read, triage, search, explain, draft, and read-only diagnostic tools. The catch an agent-run inbox has to solve is the high-risk send: an autonomous process that can move money can be tricked into a wire, a banking change, or a cold reply to a stranger (the business-email-compromise playbook, now also a prompt-injection surface). RadMail solves it by refusing those actions in deterministic code — money, new banking, first contact, decisions, and injection are human-only, forever, by construction rather than by a policy an agent could be argued out of. So the agent fleet runs the inbox's work and the one irreversible seat stays yours.
↳ tl;dr Delegate the inbox's work, not the irreversible send. RadMail keeps money/banking/first-contact human-only in code — the safety layer an agent-run inbox needs.
? Can my agent watch an email thread and know who has the last word?
Yes — watched threads are live in the product. Mark a thread watched (in the inbox, or via the v1 API: POST /api/v1/threads/{id}/watch, API-key and scope gated) and RadMail tracks who spoke last. When the other side has the last word, the thread pins to the top of the Right Now lane; when you spoke last, it sits in a quiet Watching panel instead of nagging. Watched threads also carry a protected importance floor, so a watched conversation can never be tuned into silence.
↳ tl;dr POST /api/v1/threads/{id}/watch — them-last pins Right Now; me-last waits quietly in a Watching panel.
? How does RadMail defend an agent-connected inbox against prompt injection?
Five layers. (1) The BEC hard-stop: money, changed banking, first contact, decisions, and suspected injection are refused in deterministic code, human-only forever. (2) Taint-marking: every real-mail field an agent sees is marked untrusted-email-body, so instructions inside an email body are treated as data. (3) Connected mode is read-only and fail-closed by construction. (4) A read-then-egress anomaly detector watches RadMail's egress routes — including the notify rail — for the tell-tale pattern of email content being read and immediately leaving; it detects and flags for human review, and never silently blocks legitimate mail. (5) As of radmail-mcp v0.5.0, the MCP server's tool descriptions are frozen under a sha256 manifest verified at startup — if any description drifts from the audited text, the server refuses to serve, a fail-closed defense against MCP tool-description poisoning.
↳ tl;dr Hard-stop in code + taint-marking + read-only connected mode + read-then-egress detection + frozen tool descriptions (fail-closed manifest).
? Can my agent ask a human a question through RadMail?
Yes — the notify rail. POST /api/v1/notify (API-key and scope gated) raises a request that rides RadMail's alert rail to a human, who answers in an in-app respond box; the caller polls GET /api/v1/notify/{id} and the loop closes with acked and responded states. It is a way to reach a human, never around one: nothing on this rail loosens the BEC hard-stop, and the read-then-egress anomaly detector watches this route too. A companion GET /api/v1/demand returns aggregates-only demand signals — tool names and event counts, never message content, arguments, or queries.
↳ tl;dr POST /api/v1/notify reaches a human and loop-closes (acked/responded); GET /api/v1/demand reads aggregate demand. Both scope-gated.
? How do I know whether RadMail's drafts are actually good?
RadMail measures it rather than asserting it: each draft an operator decides on is recorded with its outcome — sent unedited, edited before sending, or discarded. RadMail is pre-release and has not published acceptance rates yet; when it does, the numbers will come from this instrumentation, not from a marketing estimate.
↳ tl;dr Draft acceptance is measured per draft (sent-unedited / edited / discarded). No published rates yet — deliberately.
? Does RadMail prepare a reply before I even open an important email?
Yes — RadMail has an answer-ready inbox. When an email lands that scores high or critical importance, or that the engine flags for human eyes, RadMail prepares the reply on arrival: by the time you open it, the alert has already fired, the importance level is known, and a draft is waiting pre-filled in the reply panel. The draft is human-approval-only and structurally cannot be auto-sent; money, changed banking, first contact, decisions, and suspected injection stay human behind the BEC hard-stop; drafting rides a bounded per-org daily AI budget; and the drafter's hard rules forbid payment-action promises and banking-detail echoes. Pre-release, rolling out behind a flag.
↳ tl;dr Answer-ready inbox = alert fired + importance known + reply drafted on arrival; you approve, nothing sends itself.
? Can my agent see how much work RadMail has done for a workspace?
Yes — GET /api/v1/usage returns a read-only work-units rollup (Bearer API key, read scope, available on the metered free tier). It reports how much WORK RadMail prepared over a window — reply drafts and lead-research dossiers counted as the headline work units, separately from the supporting triage the engine does behind the scenes — broken down by feature with call counts and engine cost. Query ?days= (default 30, max 90); the response is per-org aggregates only — counts and cost, never message content. It touches no billing or plan state; when metered tiers ship, these honest actuals become the left side of a quota. This is the north-star pillar ("the work is the meterable value") made programmatic; the same rollup renders in-app at /settings/usage.
↳ tl;dr GET /api/v1/usage — read-only work-units rollup (drafts + dossiers as work, triage separate) by feature, ?days= default 30/max 90. Aggregates only, no content, no billing writes.