Email OS for agents - real-inbox search, triage, commitments, and a verifiable BEC hard-stop.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Draft a reply for a thread. It returns text for a human to review — it does not and cannot send it.
An id from triage_inbox to draft a reply for.
Optional steer for the draft. Never sent — review-only.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Draft a reply for a thread. It returns text for a human to review — it does not and cannot send it.
| Argument | Type | Description |
|---|---|---|
| guidance | string | Optional steer for the draft. Never sent — review-only. |
| message_id* | string | An id from triage_inbox to draft a reply for. |
{
"type": "object",
"required": [
"message_id"
],
"properties": {
"guidance": {
"type": "string",
"description": "Optional steer for the draft. Never sent — review-only."
},
"message_id": {
"type": "string",
"description": "An id from triage_inbox to draft a reply for."
}
},
"additionalProperties": false
}Extract the open commitments in the correspondence, both owed by you and owed to you, with who and by-when.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Return only the 'Right Now' lane — the most recent and most important messages that genuinely can't be missed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Find a specific message by sender, subject, or content. Results come back most-relevant + newest first, and every hit says where it matched (from / subject / body) and why. On this hosted sandbox it searches the built-in demo inbox; run the radmail-mcp package with RADMAIL_API_KEY set and the same tool searches your REAL ingested inbox read-only (with from / after / before filters) via the v1 search API.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max hits to return (default 10). |
| query* | string | Words to find, matched against from / subject / body. Every word must appear somewhere in a message. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max hits to return (default 10)."
},
"query": {
"type": "string",
"description": "Words to find, matched against from / subject / body. Every word must appear somewhere in a message."
}
},
"additionalProperties": false
}Rank a mailbox on two axes (importance x urgency) and return what needs a human now versus what can wait or is already handled — with each thread's open commitment (the promise you owe or are owed, and whether it's overdue) surfaced inline, so the follow-through is visible on the very first call.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Explain in plain English why a given message was surfaced — the signals (sender, urgency, commitment) behind its rank.
| Argument | Type | Description |
|---|---|---|
| message_id* | string | An id from triage_inbox, e.g. m_001. |
{
"type": "object",
"required": [
"message_id"
],
"properties": {
"message_id": {
"type": "string",
"description": "An id from triage_inbox, e.g. m_001."
}
},
"additionalProperties": false
}