# How to give Zed's AI agent its own email address

Zed's agent can have its own email address with Botmail. Let the agent claim
an address like `ada-dev@botmail.pro`, approve it, then add
`https://botmail.pro/mcp` as a remote MCP server in **Settings > AI > MCP
Servers**. With no `Authorization` header set, Zed signs in with the standard
MCP OAuth flow, and the agent can check, search, draft, send and reply.

## Why Zed's agent should have its own address

Email shows up in coding work more than you'd think. With its own address,
the agent in your editor can:

- **Test the emails your app sends.** Sign up on your dev server with its
  Botmail address, then read the welcome or password-reset email and check
  the links point where they should.
- **Finish sign-ups for tools you approve.** It can register for a service and
  [read the verification code](https://botmail.pro/guides/ai-agent-verification-emails) without
  touching your inbox.
- **Answer the person who reported a bug.** Draft a reply to the bug report in
  its inbox once the fix is in, for you to review.
- **Work the same inbox from any agent.** Zed forwards its MCP servers to
  external agents too, so the same mailbox is there when you switch agents.

## Step 1: Let the agent claim a mailbox

Open the Agent Panel and paste:

```text
Read https://botmail.pro/skill.md and claim a mailbox for yourself. Send the invite to my email, then wait for me to approve it.
```

The agent fetches Botmail's instructions and runs a few terminal commands to
solve a small proof-of-work challenge and claim a name. Zed asks you to
confirm each command by default. Botmail then emails you an approval link:
open it, sign in with GitHub or Google, and accept. Unapproved mailboxes are
deleted after 24 hours.

## Step 2: Add the Botmail server

### From the Settings Editor

1. Run `agent: open settings`, or open **Settings > AI**, then **MCP
   Servers**.
2. Click **Add Server**, then **Add Remote Server**.
3. Enter `https://botmail.pro/mcp` and use `botmail` as the server name.
   Don't add an Authorization header.

### In settings.json

The Settings Editor writes this to your settings file (`zed: open settings
file`). You can add it there directly:

```json
{
  "context_servers": {
    "botmail": {
      "url": "https://botmail.pro/mcp"
    }
  }
}
```

Zed then prompts you to authenticate. Back in **MCP Servers**, a green dot
next to botmail with the tooltip "Server is active" means it's connected.

## Step 3: Approve access

Authenticating opens a Botmail page in your browser. Sign in with GitHub or
Google, then choose:

- **Permissions.** Read mail, Send mail, and Manage. The agent only sees tools
  for what you grant. For testing sign-up emails, Read is enough.
- **Mailboxes.** All, or only the one for this project.

Press **Allow**.

## Things to ask the agent

Mention Botmail by name. Zed's docs note that naming the server helps the
model pick its tools.

```text
Using Botmail, sign up at http://localhost:4000/register with your address, wait for the confirmation email, and tell me if the link uses the right host.
```

```text
Check your Botmail inbox for the password-reset email we just triggered and show me its plain-text body.
```

```text
Using Botmail, draft a reply to the latest email from priya@lumen.dev saying the date-picker bug is fixed in today's build. Don't send it. Give me the review link.
```

A draft's review link opens a page with the email and Send and Discard
buttons, so first emails to new people wait for you.

## Control what runs without asking

Zed asks before every tool call by default (`"confirm"`). To let reading tools
run freely while sends still ask, add per-tool rules. MCP tools use the key
`mcp:<server>:<tool_name>`:

```json
{
  "agent": {
    "tool_permissions": {
      "tools": {
        "mcp:botmail:check_inbox": { "default": "allow" },
        "mcp:botmail:search_mail": { "default": "allow" },
        "mcp:botmail:read_conversation": { "default": "allow" },
        "mcp:botmail:send_email": { "default": "confirm" },
        "mcp:botmail:reply": { "default": "confirm" }
      }
    }
  }
}
```

This needs Zed v0.224.0 or later. Earlier versions used the single
`agent.always_allow_tool_actions` switch instead.

## Things to know

- **API key instead of OAuth.** If you add an `Authorization` header, Zed
  skips OAuth and sends it on every request:
  `"headers": { "Authorization": "Bearer bm_your_key" }`. The key then lives
  in plain text in your settings file, so don't put it in a project's
  `.zed/settings.json` that you commit.
- **External agents.** Zed forwards configured MCP servers to external agents
  over the Agent Client Protocol. Terminal threads that run another CLI use
  that CLI's own MCP config instead.
- **The model ignores the tools.** Some models don't call MCP tools reliably.
  Name Botmail in the prompt, or make an agent profile that turns on only the
  Botmail tools.
- **The dot isn't green.** Hover it for the reason. If the consent page listed
  no mailboxes, the claim from Step 1 isn't approved yet.

Setting up another editor too? See [Email MCP server](https://botmail.pro/guides/email-mcp-server),
or read [how Botmail works](https://botmail.pro/ai-agent-email).

## Questions

### How do I add a remote MCP server in Zed?

Open Settings > AI > MCP Servers, click Add Server, choose Add Remote Server and enter the URL. It's saved under context_servers in your settings file.

### Does Zed support OAuth for MCP servers?

Yes. When a remote MCP server has no Authorization header configured, Zed prompts you to authenticate with the standard MCP OAuth flow.

### Can Zed's agent use MCP tools without asking each time?

Yes. Add per-tool rules under agent.tool_permissions using keys like mcp:botmail:check_inbox with a default of allow, and keep send tools on confirm.

---

Source: https://botmail.pro/guides/zed-email
Agent instructions: https://botmail.pro/skill.md
All guides: https://botmail.pro/llms.txt
