MCP

The Duobox MCP server

Connect ChatGPT, Claude, Cursor or any MCP client to your company email. Your agent reads mail, writes and sends it, and manages the team, with the permissions you choose.

MCPhttps://mcp.duobox.io/v1/mcpOAuth
Paste this address into your MCP client and sign in with your account. There is no API key.

1.0  Access

It signs in with your account, not a key

The agent signs in over OAuth with your Duobox mail account: the same address and password you open your inbox with.

  • When you connect it, Duobox shows you what it asks for. Everything starts checked: take off what you don't want.
  • If a tool needs a permission you took off, you are asked for it again.
  • In your mail, Agents → Connections lists every connected app, since when, and the last time it came in. Cut off access shuts it out right now.
  • Manage the company doesn't replace your role: if you don't administer the company, those tools answer no.

It can

  • Read your mailSee the emails you receive.mail:read
  • Save draftsLeave them ready, without sending.mail:draft
  • Send mailSend from your addresses.mail:send
  • Manage the companyThe team, the plan and the inboxes.company
Sending mail includes saving drafts, and saving drafts includes reading.

For developers

Transport
HTTP, POST /v1/mcp
Authentication
OAuth with PKCE. Dynamic client registration or Client ID Metadata Documents.
Metadata
https://mcp.duobox.io/.well-known/oauth-protected-resource
Protocol
The 2026 version, and 2025-11-25 too.

2.0  Connect

Connect it where you already work

The steps for each one, with the text to paste. When it asks you to sign in, use your Duobox mail account.

  1. 1Open Customize, then Connectors, and add a connector.
  2. 2Paste the address. Leave sign-in on so it asks for your account.
Address
https://mcp.duobox.io/v1/mcp
  1. 1Open Plugins and add an MCP server.
  2. 2Paste the address and choose OAuth.
Address
https://mcp.duobox.io/v1/mcp
  1. 1Open Settings, then MCP, and add a server. Or paste this into .cursor/mcp.json.
File
{
  "mcpServers": {
    "duobox": {
      "url": "https://mcp.duobox.io/v1/mcp"
    }
  }
}
  1. 1Run this in the project folder. It lands in .mcp.json.
Terminal
claude mcp add --transport http duobox https://mcp.duobox.io/v1/mcp
  1. 1In the command palette, MCP: Add Server. Or paste this into .vscode/mcp.json.
File
{
  "servers": {
    "duobox": {
      "type": "http",
      "url": "https://mcp.duobox.io/v1/mcp"
    }
  }
}
  1. 1In Cascade, open Manage MCPs. Or paste this into ~/.codeium/windsurf/mcp_config.json.
File
{
  "mcpServers": {
    "duobox": {
      "serverUrl": "https://mcp.duobox.io/v1/mcp"
    }
  }
}
  1. 1Run this. It lands in ~/.gemini/settings.json.
Terminal
gemini mcp add --transport http duobox https://mcp.duobox.io/v1/mcp
  1. 1Run this. It lands in ~/.codex/config.toml.
Terminal
codex mcp add duobox --url https://mcp.duobox.io/v1/mcp
  1. 1If it asks for an address, paste the server's. If it asks for a file, paste this. If it asks for the type, it's http.
File
{
  "mcpServers": {
    "duobox": {
      "url": "https://mcp.duobox.io/v1/mcp"
    }
  }
}

The same steps are in your mail, under Settings → MCP.

3.0  Tools

What it can do

35 tools, grouped by task. Each one tells the app whether it only reads, whether it can't be undone and whether it sends something outside your account, and the app uses that to decide when to ask you.

  • list_my_mailboxesRead onlymail:read

    The inboxes your account can open.

  • list_messagesRead onlymail:read

    Lists an inbox by folder, with search and filters by alias, date and thread owner.

  • get_messageRead onlymail:read

    Reads a whole email, with its thread, its attachments and, in a shared inbox, who has it.

  • get_folder_countsRead onlymail:read

    How many emails are in Inbox, Drafts and Spam, and how many of the agent's proposals wait for your OK.

  • download_attachmentRead onlymail:read

    Downloads an attachment of up to 25 MB, with a link that expires in 10 minutes.

  • save_draftmail:draft

    Saves a draft marked as the agent's, without sending it.

  • send_messageSends outsideCan't be undonemail:send

    Writes an email or a reply. Unless told otherwise, it returns a preview and doesn't send.

  • confirm_messageSends outsideCan't be undonemail:send

    Sends the preview exactly as it was shown, after you approved it.

  • mark_messagemail:draft

    Marks it read or unread, for everyone who shares the inbox.

  • assign_threadmail:draft

    Gives a thread an owner: the agent, a person in the inbox, or nobody.

  • add_notemail:draft

    Leaves a note for the team on the thread. The customer doesn't see it.

  • list_skillsRead onlymail:read

    Your skills: instructions that rewrite an email's body before it goes out.

  • create_skillmail:draft

    Creates a skill: the tone, the language, the length, what always has to be said.

  • update_skillCan't be undonemail:draft

    Edits a skill's instructions, its description, or whether it always applies.

  • delete_skillCan't be undonemail:draft

    Deletes a skill. Mail already sent with it doesn't change.

  • list_aliasesRead onlymail:read

    The aliases that deliver into an inbox.

  • create_aliasmail:draft

    Adds an alias to the inbox, on its same domain. Up to five.

  • delete_aliasCan't be undonemail:draft

    Removes an alias. The inbox stays.

  • get_forwardRead onlymail:read

    An inbox's forwarding rules, and whether they are active yet.

  • set_forwardSends outsideCan't be undonemail:send

    Forwards what arrives: everything, mail from one sender, or mail sent to one address. An outside address stays pending until it confirms.

  • delete_forwardCan't be undonemail:send

    Removes a forwarding rule.

  • list_organizationsRead onlymail:read

    The companies on your account.

  • list_organization_mailboxesRead onlycompany

    Every inbox in the company and who opens it.

  • create_mailboxcompany

    Creates an inbox, personal or shared.

  • retry_mailboxcompany

    Tries again an inbox that couldn't be created.

  • report_mailboxCan't be undonecompany

    Tells support about an inbox that couldn't be created.

  • delete_mailboxCan't be undonecompany

    Deletes an inbox and its aliases.

  • list_membersRead onlycompany

    The people in the company and their role.

  • list_invitationsRead onlycompany

    The invitations not accepted yet.

  • create_invitationSends outsideCan't be undonecompany

    Invites someone: they get an email with a link to pick their password.

  • resend_invitationSends outsideCan't be undonecompany

    Sends an invitation again. The previous link stops working.

  • delete_invitationCan't be undonecompany

    Cancels an invitation not accepted yet.

  • get_meRead onlymail:read

    Your account: name, email and language.

  • set_localemail:read

    The language of the emails we send you.

  • get_entitlementsRead onlycompany

    How many people, domains and inboxes the plan allows, and how many are used.

It also publishes four prompts with the step by step of each task —mail, addresses, team and account— and ready examples, like summarizing what's unread or replying to an email.

4.0  Sending

The agent proposes, you send

send_message doesn't send: it leaves the email as the agent's draft and hands the app the preview, exactly as it would go out. confirm_message sends it untouched.

  • If you asked it not to check with you, send_message with auto sends it in the same step.
  • Each inbox decides whether the agent can send on its own: Send without your OK, under Settings → MCP. On new inboxes it starts off, and the proposal waits for a person to send it.
  • What it proposes sits in Drafts with Waiting for your OK. What it did, in Agents → Activity.

The agent signs in with a mail account

The account is born in the hub: you create the company, turn on mail for your domain and create your address. The agent signs in with that address.

Create account

Something not working? Write to us