Skip to main content
Glama
sendook-mcp

sendook-mcp

Sendook MCP Server

MCP (Model Context Protocol) server for Sendook - 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

Related MCP server: Sendmux Email Inbox API + Sending

Installation

# Using uvx (recommended)
uvx sendook-mcp

# Or using pip
pip install sendook-mcp

Configuration

Set your Sendook API key as an environment variable:

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

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

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):

{
  "mcpServers": {
    "sendook": {
      "command": "uvx",
      "args": ["sendook-mcp"],
      "env": {
        "SENDOOK_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or if installed via pip:

{
  "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

# Install dev dependencies
uv sync --extra dev

# Run linting
uv run ruff check .

# Run tests
uv run pytest

License

MIT

Available Tools

16 tools
sendook_create_inboxA

Create a new inbox for an AI agent to send and receive emails.

Creates a managed inbox with a unique email address. Each inbox has independent message storage and can have webhooks configured for real-time notifications.

Args: params: CreateInboxInput containing: - name (Optional[str]): Display name for the inbox - email (Optional[str]): Custom email address; auto-generated if omitted

Returns: str: JSON with the created inbox details including id, name, email, and createdAt

Examples: - Create support inbox: name="Customer Support Bot" - Create with custom email: email="support@agents.example.com"

Inputs: params (required). Returns: result

sendook_create_webhookA

Create a webhook to receive real-time event notifications.

Webhooks notify your endpoint when events occur (message received, delivered, etc.). The endpoint must be HTTPS and respond within 15 seconds with a 2xx status.

Available events:

  • inbox.created, inbox.deleted, inbox.updated

  • message.sent, message.received, message.delivered

  • message.bounced, message.complained, message.rejected

Args: params: CreateWebhookInput containing: - url: HTTPS endpoint for webhook delivery - events: List of event types to subscribe to

Returns: str: Created webhook details including id and subscribed events

Inputs: params (required). Returns: result

sendook_delete_inboxA
DestructiveIdempotent

Delete an inbox and archive its messages.

WARNING: This action revokes sending access and archives all historical messages. The inbox email address will no longer receive messages.

Args: params: InboxIdInput containing: - inbox_id: The inbox identifier to delete

Returns: str: Confirmation of deleted inbox

Inputs: params (required). Returns: result

sendook_delete_webhookA
DestructiveIdempotent

Delete a webhook subscription.

Removes the webhook and stops all event deliveries to its endpoint.

Args: params: WebhookIdInput containing: - webhook_id: Webhook to delete

Returns: str: Confirmation of deleted webhook

Inputs: params (required). Returns: result

sendook_get_inboxA
Read-onlyIdempotent

Get details for a specific inbox.

Args: params: InboxIdInput containing: - inbox_id: The inbox identifier

Returns: str: Inbox details including id, name, email, and createdAt

Inputs: params (required). Returns: result

sendook_get_messageA
Read-onlyIdempotent

Get full details of a specific message.

Returns complete message content including subject, body (text and HTML), labels, and timestamps.

Args: params: GetMessageInput containing: - inbox_id: Inbox containing the message - message_id: Message to retrieve - response_format: 'markdown' or 'json'

Returns: str: Full message details in requested format

Inputs: params (required). Returns: result

sendook_get_threadA
Read-onlyIdempotent

Get a full conversation thread with all messages.

Returns the complete thread including all messages in chronological order. Useful for understanding the full context of a conversation.

Args: params: GetThreadInput containing: - inbox_id: Inbox containing the thread - thread_id: Thread to retrieve - response_format: 'markdown' or 'json'

Returns: str: Thread with all messages in requested format

Inputs: params (required). Returns: result

sendook_get_webhookA
Read-onlyIdempotent

Get details of a specific webhook.

Args: params: WebhookIdInput containing: - webhook_id: Webhook identifier

Returns: str: Webhook details including URL, events, and timestamps

Inputs: params (required). Returns: result

sendook_list_inboxesA
Read-onlyIdempotent

List all inboxes in your Sendook organization.

Returns all inboxes with their IDs, names, email addresses, and creation dates. Use this to discover available inboxes before sending messages or configuring webhooks.

Args: params: ListInboxesInput containing: - response_format: 'markdown' or 'json'

Returns: str: List of inboxes in requested format

Inputs: params (required). Returns: result

sendook_list_messagesA
Read-onlyIdempotent

List messages in a Sendook inbox.

Returns messages with subject, labels, and timestamps. Use the query parameter to filter messages by content or metadata.

Args: params: ListMessagesInput containing: - inbox_id: Inbox to list messages from - query: Optional filter expression - limit: Maximum messages to return (default 20) - response_format: 'markdown' or 'json'

Returns: str: List of messages in requested format

Inputs: params (required). Returns: result

sendook_list_threadsA
Read-onlyIdempotent

List conversation threads in an inbox.

Threads group related messages (replies and forwards) together. Each thread contains all messages in the conversation.

Args: params: ListThreadsInput containing: - inbox_id: Inbox to list threads from - limit: Maximum threads to return (default 20) - response_format: 'markdown' or 'json'

Returns: str: List of threads in requested format

Inputs: params (required). Returns: result

sendook_list_webhook_attemptsA
Read-onlyIdempotent

List recent delivery attempts for a webhook.

Shows the history of webhook deliveries including successes and failures. Useful for debugging webhook endpoint issues.

Args: params: WebhookIdInput containing: - webhook_id: Webhook to check attempts for

Returns: str: List of delivery attempts with status and details

Inputs: params (required). Returns: result

sendook_list_webhooksA
Read-onlyIdempotent

List all configured webhooks.

Returns all webhook subscriptions with their URLs, events, and status.

Args: params: ListWebhooksInput containing: - response_format: 'markdown' or 'json'

Returns: str: List of webhooks in requested format

Inputs: params (required). Returns: result

sendook_reply_to_messageA

Reply to an existing message in a conversation thread.

Sends a reply that maintains the conversation thread context. The reply will be threaded with the original message.

Args: params: ReplyToMessageInput containing: - inbox_id: Inbox containing the message - message_id: Original message to reply to - text: Plain text reply body (optional) - html: HTML reply body (optional)

Returns: str: Confirmation with reply message ID

Inputs: params (required). Returns: result

sendook_send_messageA

Send an email message from a Sendook inbox.

Sends an email to specified recipients with optional CC, BCC, attachments, and custom labels. Supports both plain text and HTML content.

Args: params: SendMessageInput containing: - inbox_id: Inbox to send from - to: List of recipient email addresses - subject: Email subject line - text: Plain text body (optional) - html: HTML body (optional) - cc: CC recipients (optional) - bcc: BCC recipients (optional) - labels: Custom labels (optional) - attachments: File attachments as base64 (optional)

Returns: str: Confirmation with message ID and details

Examples: - Simple email: to=["user@example.com"], subject="Hello", text="Hi there!" - With attachments: Include attachments list with base64 content

Inputs: params (required). Returns: result

sendook_test_webhookA
Read-onlyIdempotent

Send a test event to a webhook endpoint.

Verifies that your endpoint is correctly configured and responding. A test payload will be sent to the webhook URL.

Args: params: WebhookIdInput containing: - webhook_id: Webhook to test

Returns: str: Test result indicating success or failure

Inputs: params (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 16 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: inbox management, message operations, thread retrieval, and webhook configuration. No two tools could be confused for the same operation.

    Naming Consistency5/5

    All tools follow a consistent 'sendook_verb_noun' pattern in snake_case (e.g., sendook_create_inbox, sendook_get_message), making the naming predictable and easy to navigate.

    Tool Count5/5

    16 tools is well-scoped for an email service, covering essential CRUD for inboxes, messages, threads, and webhooks without being too many or too few.

    Completeness4/5

    Covers core email workflows (inbox lifecycle, send/reply, message listing, webhooks). Minor gaps like updating an inbox or deleting a message do not significantly hinder typical agent tasks.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      A
      maintenance
      Sendmux is an email inbox API and email API for AI agents. Use this MCP server to let authorised agents work with Sendmux mailboxes, inbound email, clean JSON parsing, webhooks, outbound sending, provider routing, logs, billing, and team controls.
      104
      56
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A production-ready MCP server that empowers AI agents to securely send emails via SMTP, supporting plain text, HTML, and attachments.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      MCP server for SentVia that provides email infrastructure for AI agents, enabling them to create inboxes, send, reply, forward, search messages, manage drafts, domains, webhooks, and allow/block rules through 21 tools.
      21
      164 npm
      MIT