# Let your agent do the sending

Bird's MCP server, CLI and skills give a coding agent the same email, SMS and verification operations you get from the API. One prompt wires all three into the agent you already use.

## Connect the client you already have

Same URL every time. What changes is where the config lives, who starts the sign-in, and what the answer looks like once it works.

**Terminal**

```bash
$ claude mcp add --transport http bird https://mcp.bird.com
```

**~/.cursor/mcp.json**

```json
{
  "mcpServers": {
    "bird": { "url": "https://mcp.bird.com" }
  }
}
```

**~/.codex/config.toml**

```toml
[mcp_servers.bird]
url = "https://mcp.bird.com"
```

**.vscode/mcp.json**

```json
{
  "servers": {
    "bird": { "type": "http", "url": "https://mcp.bird.com" }
  }
}
```

**Terminal**

```bash
$ droid mcp add bird https://mcp.bird.com --type http
```

**the client's server settings**

```text
URL  https://mcp.bird.com   ·   sign in when the client asks
```

## The patterns that keep it reliable

An agent-shaped API still needs the right loop around it. These are the failure modes that actually break agent integrations, and they read the same whether you drive the MCP server or the CLI.

- **01** One operation per call: Every tool returns structured JSON whose fields the next step checks. Read each exit condition from the previous step's output rather than inferring it.
- **02** Accepted is not delivered: A send returns 202 with status: accepted, which means Bird took the message. Delivery is asynchronous, so read the message back for the real outcome.
- **03** Branch on the exit code, not the message: 2 means fix the input, 3 means the id is wrong so don't retry, 4 means re-authenticate. No string matching.
- **04** Find the sender before sending: A from address needs a verified sending domain. DNS propagation is asynchronous, so verifying right after creating almost always still reads pending.
- **05** Retry safely: --dry-run previews the request, --example prints a valid body, and --idempotency-key makes the retry safe to repeat.

## An agent can open its own account. Focus on speed and simplicity.

No browser, no password, no dashboard. Three commands take an agent from nothing to a stored credential, and the MCP server exposes the same flow as the signup, verify_email and create_org tools.

**signup**

```bash
$ bird auth signup --email agent@example.com
  { "status": "pending_verification" }

$ bird auth verify-email --code 481920
  { "status": "verified" }

$ bird org create --name "Acme"
  { "org": "org_5Kd21", "region": "eu1", "credential": "stored" }

# the same three steps are the signup, verify_email
# and create_org tools on the MCP server
```

## Where Bird is already fully integrated and connected

Coding agents install the plugin and get the skills natively. App builders connect the same MCP server from their settings, and the agent mints the app's API key itself.

## Point your agent at Bird

Paste one prompt and watch the test email land in your own inbox. Free to start, and the first send takes about two minutes.