MCP server for useSend email platform API integration. Enables LLMs to interact with the useSend email platform, providing tools for managing emails, contacts, campaigns, and domains.
Create a new email campaign. Creates an email campaign that can be sent to all contacts in a contact book. Supports immediate sending or scheduling for later. Args: - name (string): Name of the campaign (required) - from (string): Sender email address (must be from a verified domain) - subject (string): Email subject line (required) - previewText (string): Preview text shown in email clients - contactBookId (string): ID of the contact book to send to (required) - content (string): Plain text content of the email (required) - html (string): HTML content of the email (required) - replyTo (string | string[]): Reply-to email address(es) - cc (string | string[]): CC recipient(s) - bcc (string | string[]): BCC recipient(s) - sendNow (boolean): If true, sends the campaign immediately - scheduledAt (string): ISO 8601 datetime or natural language (e.g., 'tomorrow 9am') - batchSize (number): Emails to send per batch (1-100000) Returns: - Campaign details including id, status, and metrics Examples: - Create draft campaign: name="Welcome Campaign", from="[email protected]", subject="Welcome!", contactBookId="cb_123", content="Welcome to our service", html="<h1>Welcome!</h1>" - Create and send immediately: add sendNow=true - Schedule campaign: add scheduledAt="2024-01-15T10:00:00Z"
Create a new contact book. Creates a new contact book to organize and manage contacts. Args: - name (string): The name of the contact book (required) - emoji (string): An emoji to associate with the contact book (e.g., '📙') - properties (object): Custom properties as key-value pairs Returns: - Created contact book with id, name, and timestamps Examples: - Create basic: name="Newsletter Subscribers" - Create with emoji: name="VIP Customers", emoji="⭐" - Create with properties: name="Leads", emoji="🎯", properties={"source": "website"}
Register a new domain for sending emails. Creates a new domain in useSend. After creation, you'll need to add the returned DNS records to your domain's DNS configuration, then verify the domain. Args: - name (string): Domain name (e.g., 'example.com' or 'mail.example.com') - region (string): AWS region for the domain (default: 'us-east-1') - Options: 'us-east-1', 'us-west-2', 'eu-west-1', etc. Returns: - Domain details including required DNS records to configure Examples: - Create domain: name="example.com", region="us-east-1" - Create subdomain: name="mail.example.com", region="eu-west-1" Next steps after creation: 1. Add the returned DNS records to your domain's DNS configuration 2. Wait for DNS propagation (usually 5-30 minutes) 3. Use usesend_verify_domain to verify ownership
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 8 | 2026-07-28+ | v2 |
Delete a contact book. Permanently removes a contact book and all its contacts. This action cannot be undone. Args: - contactBookId (string): The unique identifier of the contact book to delete Returns: - success: Boolean indicating successful deletion - message: Confirmation message Examples: - Delete contact book: contactBookId="clx1234567890" Warning: This action is permanent and will delete all contacts in the book.
Delete a domain from useSend. Permanently removes a domain from your useSend account. After deletion, you will no longer be able to send emails from this domain. Args: - domainId (number): The unique identifier of the domain to delete Returns: - success: Boolean indicating successful deletion Examples: - Delete domain: domainId=123 Warning: This action is permanent and cannot be undone. After deletion, any emails configured to send from this domain will fail.
Get detailed information about a campaign including metrics. Retrieves full details of a campaign including content, status, and delivery metrics such as sent, delivered, opened, clicked, bounced, and complained counts. Args: - campaignId (string): The unique identifier of the campaign - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: - Campaign details including: - Basic info: id, name, from, subject, status - Content: html, content, previewText - Scheduling: scheduledAt, batchSize, batchWindowMinutes - Metrics: total, sent, delivered, opened, clicked, bounced, hardBounced, unsubscribed, complained - Calculated rates: delivery rate, open rate, click rate, bounce rate Examples: - Get campaign details: campaignId="cmp_abc123"
Get detailed information about a specific contact book. Retrieves full details of a contact book including name, properties, and contact count. Args: - contactBookId (string): The unique identifier of the contact book - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: - Contact book details: id, name, emoji, properties, contact count, timestamps Examples: - Get contact book: contactBookId="clx1234567890"
Get detailed information about a specific domain. Retrieves full details of a domain including verification status, DNS records, and tracking configuration. Args: - domainId (number): The unique identifier of the domain - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: - Domain details including: - Basic info: id, name, teamId, status, region - Configuration: clickTracking, openTracking, publicKey - DNS status: dkimStatus, spfDetails, dmarcAdded - Verification: isVerifying, errorMessage, verificationError - DNS records: type, name, value, ttl, priority, status, recommended Examples: - Get domain details: domainId=123
List all contact books accessible by the API key. Retrieves all contact books in your account with their names, IDs, and contact counts. Args: - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: - List of contact books with id, name, emoji, contact count, and timestamps Examples: - List all contact books: (no parameters required) - Get as JSON: response_format="json"
List all domains configured for sending emails. Retrieves all domains accessible with your API key, including their verification status, DNS records, and configuration. Args: - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: - List of domains with: - Basic info: id, name, status, region - Configuration: clickTracking, openTracking, dmarcAdded - DNS records: required DNS records and their verification status Examples: - List all domains: (no parameters required) - Get JSON output: response_format="json"
Pause an active campaign. Temporarily stops an in-progress campaign from sending more emails. The campaign can be resumed later with usesend_resume_campaign. Args: - campaignId (string): The unique identifier of the campaign to pause Returns: - success: Boolean indicating the campaign was paused Examples: - Pause campaign: campaignId="cmp_123" Note: Only active/sending campaigns can be paused.
Resume a paused campaign. Restarts a campaign that was previously paused, continuing to send emails to remaining recipients. Args: - campaignId (string): The unique identifier of the campaign to resume Returns: - success: Boolean indicating the campaign was resumed Examples: - Resume campaign: campaignId="cmp_123" Note: Only paused campaigns can be resumed.
Schedule a campaign for sending at a specific time. Sets or updates the scheduled send time for a campaign. Supports both ISO 8601 datetime format and natural language scheduling. Args: - campaignId (string): The unique identifier of the campaign to schedule - scheduledAt (string): When to send - ISO 8601 datetime or natural language - Examples: "2024-01-15T10:00:00Z", "tomorrow 9am", "next monday 10:30" - batchSize (number): Number of emails to send per batch (1-100000) Returns: - success: Boolean indicating the campaign was scheduled Examples: - Schedule for specific time: campaignId="cmp_123", scheduledAt="2024-01-15T10:00:00Z" - Schedule with natural language: campaignId="cmp_123", scheduledAt="tomorrow 9am" - Schedule with batching: campaignId="cmp_123", scheduledAt="2024-01-15T10:00:00Z", batchSize=1000
Update an existing contact book. Modifies a contact book's name, emoji, or properties. Only provided fields will be updated. Args: - contactBookId (string): The unique identifier of the contact book to update - name (string): New name for the contact book - emoji (string): New emoji for the contact book - properties (object): Updated custom properties Returns: - Updated contact book details Examples: - Update name: contactBookId="clx123", name="Premium Subscribers" - Update emoji: contactBookId="clx123", emoji="🌟" - Update properties: contactBookId="clx123", properties={"region": "EMEA"}
Verify domain ownership by checking DNS records. Triggers a verification check for the domain. This will validate that the required DNS records have been properly configured. Args: - domainId (number): The unique identifier of the domain to verify Returns: - Verification status message Examples: - Verify domain: domainId=123 Prerequisites: - Domain must be created first with usesend_create_domain - Required DNS records must be added to your DNS configuration - DNS changes may take 5-30 minutes to propagate If verification fails: - Double-check DNS records are correctly configured - Wait for DNS propagation and try again - Use usesend_get_domain to check current DNS record status