Metadata-Version: 2.4
Name: sendook-mcp
Version: 1.0.0
Summary: MCP Server for Sendook - AI Email Communication Platform
Project-URL: Homepage, https://www.sendook.com
Project-URL: Repository, https://github.com/StreamlinedStartup/sendook-mcp
Project-URL: Documentation, https://github.com/StreamlinedStartup/sendook-mcp#readme
Project-URL: Issues, https://github.com/StreamlinedStartup/sendook-mcp/issues
Author-email: The Streamlined Startup <hello@sendook.com>
License-Expression: MIT
Keywords: ai-agents,claude,email,mcp,model-context-protocol,sendook
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Communications :: Email
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.3.0; extra == 'dev'
Description-Content-Type: text/markdown

# Sendook MCP Server

MCP (Model Context Protocol) server for [Sendook](https://www.sendook.com) - an AI email communication platform that enables AI agents to send and receive emails programmatically.

## Features

- **Inbox Management**: Create, list, and delete managed email inboxes
- **Email Sending**: Send emails with HTML/text content, attachments, and CC/BCC
- **Message Handling**: List, retrieve, and reply to messages
- **Conversation Threads**: View and manage email conversation threads
- **Webhooks**: Configure real-time notifications for email events

## Installation

```bash
# Using uv (recommended)
cd sendook_mcp
uv sync

# Or using pip
pip install -e .
```

## Configuration

Set your Sendook API key as an environment variable:

```bash
export SENDOOK_API_KEY="your-api-key-here"
```

Optional: Set a custom API URL (defaults to production):

```bash
export SENDOOK_API_URL="https://api.sendook.com"
```

## Usage with Claude Desktop

Add to your Claude Desktop configuration (`~/.config/Claude/claude_desktop_config.json` on macOS/Linux or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):

```json
{
  "mcpServers": {
    "sendook": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/sendook_mcp", "python", "sendook_mcp.py"],
      "env": {
        "SENDOOK_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Or if installed globally:

```json
{
  "mcpServers": {
    "sendook": {
      "command": "sendook-mcp",
      "env": {
        "SENDOOK_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Available Tools

### Inbox Management

| Tool | Description |
|------|-------------|
| `sendook_create_inbox` | Create a new inbox for an AI agent |
| `sendook_list_inboxes` | List all inboxes in your organization |
| `sendook_get_inbox` | Get details for a specific inbox |
| `sendook_delete_inbox` | Delete an inbox (archives messages) |

### Message Operations

| Tool | Description |
|------|-------------|
| `sendook_send_message` | Send an email with optional attachments |
| `sendook_reply_to_message` | Reply to an existing message |
| `sendook_list_messages` | List messages in an inbox |
| `sendook_get_message` | Get full details of a message |

### Thread Operations

| Tool | Description |
|------|-------------|
| `sendook_list_threads` | List conversation threads in an inbox |
| `sendook_get_thread` | Get a thread with all its messages |

### Webhook Management

| Tool | Description |
|------|-------------|
| `sendook_create_webhook` | Create a webhook subscription |
| `sendook_list_webhooks` | List all configured webhooks |
| `sendook_get_webhook` | Get details of a webhook |
| `sendook_test_webhook` | Send a test event to a webhook |
| `sendook_delete_webhook` | Delete a webhook subscription |
| `sendook_list_webhook_attempts` | View webhook delivery history |

## Examples

### Send an Email

```
Use sendook_send_message with:
- inbox_id: "ibox_01J3ZKZ0BRQ9SSJK1GRSCX4N4Z"
- to: ["customer@example.com"]
- subject: "Your Order Confirmation"
- text: "Thank you for your order!"
```

### Create a Support Inbox

```
Use sendook_create_inbox with:
- name: "Customer Support Bot"
- email: "support@yourdomain.com"
```

### Set Up Webhook for Incoming Emails

```
Use sendook_create_webhook with:
- url: "https://your-app.com/webhooks/sendook"
- events: ["message.received", "message.delivered"]
```

## Response Formats

Most read operations support two response formats:

- **markdown** (default): Human-readable formatted output
- **json**: Machine-readable structured data

Set `response_format: "json"` for programmatic processing.

## Error Handling

The server provides actionable error messages:

- **401**: Authentication failed - check your API key
- **403**: Permission denied - verify API key permissions
- **404**: Resource not found - check the ID
- **429**: Rate limit exceeded - wait and retry

## Development

```bash
# Install dev dependencies
uv sync --extra dev

# Run linting
uv run ruff check .

# Run tests
uv run pytest
```

## License

MIT
