Self-hosted REST API and web UI for all your mailboxes (IMAP, JMAP, POP3, Gmail, Microsoft 365, Outlook.com), with a Python client and an MCP server so AI agents read, sort, draft and send mail, only within the rights, folders and send limits you grant. Change feed, signed webhooks, audit.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add benethos-mailbox --env MAILBOX_SERVICE_TOKEN='<MAILBOX_SERVICE_TOKEN>' -- uvx benethos-mailbox-mcp~/.codex/config.toml
[mcp_servers.benethos-mailbox]
command = "uvx"
args = ["benethos-mailbox-mcp"]
env = { MAILBOX_SERVICE_TOKEN = "<MAILBOX_SERVICE_TOKEN>" }
# codex mcp add benethos-mailbox --env MAILBOX_SERVICE_TOKEN='<MAILBOX_SERVICE_TOKEN>' -- uvx benethos-mailbox-mcp~/.cursor/mcp.json
{
"mcpServers": {
"benethos-mailbox": {
"command": "uvx",
"args": [
"benethos-mailbox-mcp"
],
"env": {
"MAILBOX_SERVICE_TOKEN": "<MAILBOX_SERVICE_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"benethos-mailbox": {
"type": "stdio",
"command": "uvx",
"args": [
"benethos-mailbox-mcp"
],
"env": {
"MAILBOX_SERVICE_TOKEN": "<MAILBOX_SERVICE_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"benethos-mailbox": {
"command": "uvx",
"args": [
"benethos-mailbox-mcp"
],
"env": {
"MAILBOX_SERVICE_TOKEN": "<MAILBOX_SERVICE_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"benethos-mailbox": {
"command": "uvx",
"args": [
"benethos-mailbox-mcp"
],
"env": {
"MAILBOX_SERVICE_TOKEN": "<MAILBOX_SERVICE_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"benethos-mailbox": {
"command": "uvx",
"args": [
"benethos-mailbox-mcp"
],
"env": {
"MAILBOX_SERVICE_TOKEN": "<MAILBOX_SERVICE_TOKEN>"
}
}
}
}Environment variables
MAILBOX_SERVICE_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.