# Unosend MCP Server
Send emails from AI assistants using the Unosend API. Works with Claude Desktop, Cursor, and other MCP clients.
## Features
- βοΈ Send plain text and HTML emails
- π
Schedule emails for future delivery
- π₯ Add CC and BCC recipients
- β©οΈ Configure reply-to addresses
- π Customizable sender email (requires verified domain)
## Installation
```bash
# Clone and build
git clone https://github.com/unosend/mcp-server.git
cd mcp-server
npm install
npm run build
```
## Setup
### 1. Get your API Key
1. Go to [Unosend Dashboard](https://www.unosend.co/api-keys)
2. Create a new API key
3. Copy the key (starts with `un_`)
### 2. Verify your domain
To send emails from your own domain, [verify it first](https://www.unosend.co/domains).
## Configuration
### Cursor
Open Cursor Settings β MCP β Add new global MCP server:
```json
{
"mcpServers": {
"unosend": {
"type": "command",
"command": "node /path/to/unosend-mcp/build/index.js --key=un_YOUR_API_KEY --sender=hello@yourdomain.com"
}
}
}
```
### Claude Desktop
Open Claude Desktop settings β Developer β Edit Config:
```json
{
"mcpServers": {
"unosend": {
"command": "node",
"args": ["/path/to/unosend-mcp/build/index.js"],
"env": {
"UNOSEND_API_KEY": "un_YOUR_API_KEY",
"SENDER_EMAIL_ADDRESS": "hello@yourdomain.com",
"REPLY_TO_EMAIL_ADDRESS": "support@yourdomain.com"
}
}
}
}
```
## Arguments
| Argument | Environment Variable | Description |
|----------|---------------------|-------------|
| `--key` | `UNOSEND_API_KEY` | Your Unosend API key (required) |
| `--sender` | `SENDER_EMAIL_ADDRESS` | Default sender email (optional) |
| `--reply-to` | `REPLY_TO_EMAIL_ADDRESS` | Default reply-to email (optional) |
## Usage
Once configured, you can ask Claude or Cursor to send emails:
> "Send an email to <john@example.com> with the subject 'Meeting Tomorrow' and let him know we're meeting at 3pm"
> "Email the team a summary of today's work"
> "Schedule an email to be sent tomorrow at 9am reminding me about the deadline"
## Available Tools
### Email Tools
| Tool | Description |
|------|-------------|
| `send_email` | Send an email with HTML/text, CC/BCC, scheduling |
| `get_email` | Get details and status of a sent email |
| `list_emails` | List recent emails from your account |
| `cancel_email` | Cancel a scheduled email |
### SMS Tools
| Tool | Description |
|------|-------------|
| `send_sms` | Send an SMS message ($0.0075/segment) |
| `get_sms` | Get details of an SMS message |
### Validation Tools
| Tool | Description |
|------|-------------|
| `validate_email` | Validate an email address ($0.01/validation) |
### Domain Tools
| Tool | Description |
|------|-------------|
| `list_domains` | List all verified domains |
| `get_domain` | Get domain details and DNS records |
### Audience & Contact Tools
| Tool | Description |
|------|-------------|
| `list_audiences` | List all audiences (contact lists) |
| `create_contact` | Add a contact to an audience |
| `list_contacts` | List contacts in an audience |
### Utility Tools
| Tool | Description |
|------|-------------|
| `check_api_status` | Verify API connectivity and key validity |
## send_email Parameters
| Parameter | Required | Description |
|-----------|----------|-------------|
| `to` | Yes | Recipient email(s), comma-separated |
| `subject` | Yes | Email subject |
| `html` | No | HTML content |
| `text` | No | Plain text content |
| `from` | No | Sender email (uses default if not provided) |
| `cc` | No | CC recipients |
| `bcc` | No | BCC recipients |
| `reply_to` | No | Reply-to address |
| `scheduled_at` | No | ISO 8601 datetime for scheduling |
## Example
Create an `email.md` file:
```markdown
to: john@example.com
subject: Weekly Report
# Weekly Report
Here's what we accomplished this week:
- Launched new feature
- Fixed 12 bugs
- Improved performance by 30%
Best,
Your Team
```
Then tell your AI: "Send this as an email"
## License
MIT