Skip to main content
Glama
unosend

Unosend MCP Server

Official
by unosend

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)

  • 📢 Create and send broadcast campaigns to contact lists

  • 📄 Manage reusable email templates with {{variable}} interpolation

Related MCP server: Inbound Email MCP Server

Installation

# 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

  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.

Configuration

Cursor

Open Cursor Settings → MCP → Add new global MCP server:

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

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

"Create a welcome email template with a first name variable, then send it to user@example.com"

"Create a broadcast to my newsletter audience with this month's update, then send it"

"List my recent broadcasts and show me the delivery stats for the last one"

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

Broadcast Tools

Tool

Description

list_broadcasts

List campaigns with optional status filter and pagination

get_broadcast

Get details and delivery stats for a campaign

create_broadcast

Create a draft campaign (audience, HTML/text, scheduling)

update_broadcast

Edit a draft or scheduled campaign

send_broadcast

Trigger immediate delivery to the audience

delete_broadcast

Delete a draft campaign

Template Tools

Tool

Description

list_templates

List all templates

get_template

Get full content and detected variables

create_template

Create a template with {{variable}} interpolation

update_template

Edit name, subject, or body

delete_template

Delete a template

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:

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

Available Tools

13 tools
cancel_emailA

Cancel a scheduled email before it is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe scheduled email ID to cancel

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the action ('cancel') but lacks details on behavioral traits like required permissions, whether cancellation is reversible, error conditions (e.g., if email is already sent), or side effects. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero waste. It efficiently conveys the core purpose without unnecessary elaboration, making it easy to parse and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks information on permissions, error handling, or return values, which are critical for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'id' documented as 'The scheduled email ID to cancel'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('cancel') and resource ('a scheduled email'), with the temporal constraint 'before it is sent' distinguishing it from siblings like 'send_email' or 'get_email'. It precisely defines the tool's function without redundancy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'before it is sent', indicating this tool is only applicable to scheduled emails. However, it does not explicitly mention when not to use it or name alternatives (e.g., for unsent emails that aren't scheduled), leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_api_statusA

Check if the Unosend API is accessible and the API key is valid.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the tool's purpose (checking API status and key validity) but doesn't add behavioral details like rate limits, error responses, or what 'accessible' entails (e.g., network reachability vs. service health). It's adequate but lacks rich context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without fluff. It's appropriately sized and front-loaded, making it easy to understand immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is complete enough for basic understanding. However, without annotations or output schema, it could benefit from more behavioral context (e.g., response format or error handling), but it's minimally viable for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's purpose instead. A baseline of 4 is applied since no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('Check') and resource ('Unosend API'), specifying both accessibility and API key validation. It distinguishes this tool from siblings that perform operations like sending emails, managing contacts, or validating emails by focusing on system health/authentication status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context—when you need to verify API connectivity and key validity—but doesn't explicitly state when not to use it or name alternatives. It's clear this is for diagnostic/health checks, but lacks explicit exclusions or sibling tool comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_contactC

Add a contact to an audience.

ParametersJSON Schema
NameRequiredDescriptionDefault
audience_idYesThe audience ID to add the contact to
emailYesContact email address
first_nameNoContact first name
last_nameNoContact last name
unsubscribedNoWhether the contact is unsubscribed

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add') but doesn't clarify if this creates a new contact or updates an existing one, what permissions are required, whether the operation is idempotent, or what happens on failure (e.g., invalid email). This leaves critical behavioral traits unspecified for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse. There's no wasted verbiage, and every word contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after adding (e.g., returns a contact ID, error responses), behavioral constraints, or how it interacts with sibling tools like 'list_contacts'. Given the complexity of creating a contact with multiple fields, more context is needed for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters clearly documented in the schema itself. The description adds no additional parameter semantics beyond implying that 'audience_id' and 'email' are involved. This meets the baseline of 3 since the schema adequately covers parameter meanings, but the description doesn't enhance understanding further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and resource ('a contact to an audience'), making the purpose immediately understandable. It distinguishes itself from siblings like 'list_contacts' or 'validate_email' by focusing on creation rather than retrieval or validation. However, it doesn't specify what constitutes a 'contact' beyond the parameters, leaving some ambiguity about the resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., audience must exist), exclusions (e.g., duplicate contacts), or related tools like 'list_audiences' for reference. The agent must infer usage from the tool name and parameters alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_domainB

Get details and DNS records for a specific domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe domain ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves details and DNS records, implying a read-only operation, but doesn't cover critical aspects like authentication requirements, rate limits, error handling, or what specific details are included (e.g., ownership, expiration). For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a read operation with one parameter) and the lack of annotations and output schema, the description is minimally adequate. It specifies what the tool does but doesn't cover behavioral traits, usage context, or return values. For a tool with no output schema, the description should ideally hint at what 'details and DNS records' include, but it doesn't, leaving gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'id' parameter documented as 'The domain ID'. The description doesn't add any meaning beyond this, such as explaining the format of the ID or where to obtain it. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting for parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get details and DNS records') and the resource ('for a specific domain'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_domains' or 'get_email', which would require more specific context about what distinguishes this domain lookup from other domain-related operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a domain ID), exclusions, or comparisons to siblings like 'list_domains' (which might list domains without details) or 'validate_email' (which could involve domain checks). This leaves the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_emailB

Get details and status of a sent email by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe email ID (returned from send_email)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'details and status' but doesn't specify what those details include, whether it's a read-only operation, potential error conditions, or authentication needs. This is a significant gap for a tool with no annotation coverage, though it implies a safe read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks usage guidelines and behavioral details. Without an output schema, it doesn't explain return values, which is a gap, but the simplicity keeps it from being severely incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'id' parameter documented as 'The email ID (returned from send_email)'. The description adds minimal value beyond this, only reiterating that the ID is for a sent email. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get details and status') and resource ('a sent email by its ID'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_emails' or 'send_email', which would require mentioning it retrieves individual email details rather than listing multiple emails or sending new ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an email ID from 'send_email'), exclusions, or comparisons to siblings like 'list_emails' for bulk retrieval or 'send_email' for creation. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_smsB

Get details of an SMS message by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe SMS message ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get details'), which implies it's likely non-destructive, but doesn't clarify permissions, rate limits, error conditions, or what 'details' include (e.g., content, metadata, status). This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple lookup tool with one parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description is minimally adequate but lacks completeness. It doesn't explain what 'details' are returned, error handling, or dependencies, which could be crucial for an agent to use it correctly without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'id' fully documented in the schema. The description adds no additional parameter semantics beyond implying the ID is for an SMS message, which the schema already covers. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get details') and resource ('SMS message by its ID'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'get_email' or 'send_sms' beyond the resource type, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an SMS ID), exclusions, or comparisons to sibling tools like 'list_emails' or 'send_sms', leaving usage context entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audiencesB

List all audiences (contact lists) in your account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all audiences' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('List all audiences') and adds clarifying context ('contact lists in your account') without any wasted words. Every part of the description earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does but lacks behavioral details (e.g., output format, authentication needs) and usage guidelines relative to siblings, making it minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description adds no parameter information, but with no parameters to explain, a baseline of 4 is appropriate as it doesn't need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('audiences (contact lists)'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'list_contacts' or 'list_emails', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_contacts' or 'list_emails'. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_contactsC

List contacts in an audience.

ParametersJSON Schema
NameRequiredDescriptionDefault
audience_idYesThe audience ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists contacts but doesn't describe what 'list' entails—e.g., whether it returns all contacts, supports pagination, includes filtering options beyond audience_id, or provides error handling for invalid IDs. For a read operation with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by clearly conveying the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of listing contacts (a read operation with potential for large datasets) and the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like pagination, error cases, or return format, which are crucial for effective use. For a tool with no structured output information, the description should provide more context to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'audience_id' documented as 'The audience ID'. The description adds no additional meaning beyond this, as it doesn't explain what an audience is, how to obtain an audience_id, or constraints on valid IDs. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract from the schema's information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('contacts in an audience'), providing a specific verb+resource combination. It distinguishes itself from siblings like 'list_audiences' or 'list_emails' by focusing on contacts within a specific audience context. However, it doesn't explicitly differentiate from 'create_contact' or other contact-related tools beyond the listing action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing audience), exclusions, or comparisons with sibling tools like 'list_audiences' (which might list audiences rather than contacts) or 'create_contact' (which creates rather than lists). Usage is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_domainsB

List all verified domains in your account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't specify if it returns all domains at once, uses pagination, requires specific permissions, or has rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('List all verified domains') without any wasted words. It's appropriately sized for a simple list tool with no parameters, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or usage context. For a list operation, this is a basic but incomplete description that leaves the agent with unanswered questions about the result structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Since there are no parameters to explain, a baseline of 4 is justified, as the description doesn't need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('verified domains in your account'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_domain' or 'list_contacts' beyond the resource name, so it doesn't reach the highest tier of sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_domain' (for specific domain details) or 'list_contacts' (for a different resource type). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_emailsC

List recent emails sent from your account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of emails to return (default: 10, max: 100)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool lists 'recent emails' but doesn't specify what 'recent' means (e.g., time range, sorting), whether it's paginated, if it requires authentication, or any rate limits. This leaves significant gaps in understanding how the tool behaves beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return values look like (e.g., email objects with fields), behavioral constraints like sorting or filtering, or how it differs from sibling tools. For a list operation with no structured output documentation, this leaves the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, fully documenting the 'limit' parameter with its type, default, and max value. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline score of 3 for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('list') and resource ('recent emails sent from your account'), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'get_email' or 'send_email' beyond the listing function, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_email' (for retrieving a specific email) or 'send_email' (for creating emails). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_emailB

Send an email using Unosend API. Supports HTML/text content, CC/BCC, reply-to, and scheduling.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address (or comma-separated list)
subjectYesEmail subject line
htmlNoHTML content of the email
textNoPlain text content (used if html not provided)
fromNoSender email (must be from verified domain)
ccNoCC recipient(s), comma-separated
bccNoBCC recipient(s), comma-separated
reply_toNoReply-to email address
scheduled_atNoISO 8601 datetime to schedule (e.g., "2026-01-28T10:00:00Z")

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but lacks critical behavioral details. It mentions scheduling and content types but omits information on permissions, rate limits, error handling, or what happens upon sending (e.g., confirmation, ID return). This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and efficiently lists key features in a single sentence. It avoids redundancy but could be slightly more structured by explicitly stating required parameters or common use cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It fails to address behavioral aspects like authentication needs, side effects, or response format, leaving significant gaps for an AI agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds minimal value by listing features like HTML/text content and scheduling, which align with parameters but do not provide additional semantic context beyond what the schema already specifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Send an email') and resource ('using Unosend API'), distinguishing it from sibling tools like send_sms or get_email. It specifies the core functionality with supporting features, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like send_sms or cancel_email. The description lists features but does not mention prerequisites, such as needing a verified domain for the 'from' field, or contextual cues for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_smsB

Send an SMS message. Charges from wallet at $0.0075 per segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number in E.164 format (e.g., +1234567890)
bodyYesSMS message content (160 chars = 1 segment)
fromNoSender phone number (if you have one)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It effectively reveals a critical behavioral trait: 'Charges from wallet at $0.0075 per segment' - indicating a financial transaction with specific pricing. However, it doesn't cover other important aspects like authentication requirements, rate limits, error conditions, or what happens on success/failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise - two sentences that each earn their place. The first states the core purpose, the second adds crucial behavioral context (charging). No wasted words, well-structured with the most important information first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does an adequate but incomplete job. It covers the core action and a critical side effect (charging), but lacks information about return values, error handling, authentication needs, or system constraints. Given the complexity of a paid SMS sending operation, more context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds marginal value by mentioning '160 chars = 1 segment' in relation to the body parameter, but this is essentially repeating schema information. No additional parameter semantics beyond what the schema provides are included.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send an SMS message') and resource ('SMS message'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'send_email' or 'get_sms', but the specificity of 'SMS' provides inherent distinction. The mention of charging adds context but doesn't fully articulate unique scope compared to alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'send_email' or 'get_sms'. It mentions charging implications, which could inform usage decisions, but lacks explicit when/when-not instructions or named alternatives. The agent must infer usage context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emailA

Validate an email address to check if it exists and is deliverable. Costs $0.01 per validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to validate

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it validates existence and deliverability (clarifying what 'validate' means) and includes cost per validation ($0.01), which is crucial for usage. However, it doesn't mention rate limits, error handling, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and followed by cost information. Every sentence earns its place with no waste, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is moderately complete. It covers purpose and cost, but lacks details on response format, error cases, or integration with sibling tools. For a validation tool with financial implications, more context on outputs or limitations would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'email' parameter adequately. The description doesn't add meaning beyond what the schema provides (e.g., no details on email format requirements or validation criteria). Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('validate') and resource ('email address'), and distinguishes its purpose from siblings by focusing on existence and deliverability checking rather than sending, listing, or other operations. It's precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (checking email validity) but doesn't explicitly state when to use this tool versus alternatives like 'get_email' or 'send_email'. It provides cost information which helps in decision-making, but lacks explicit comparisons or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a distinct purpose with no overlap: cancel_email, check_api_status, create_contact, get_domain, get_email, get_sms, list_audiences, list_contacts, list_domains, list_emails, send_email, send_sms, and validate_email all target specific resources and actions. An agent can easily differentiate between them.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as cancel_email, create_contact, get_domain, list_audiences, send_email, and validate_email. This uniformity makes the set predictable and easy to navigate.

Tool Count5/5

With 13 tools, the server is well-scoped for email and SMS marketing operations. Each tool serves a clear function, covering core workflows like sending, listing, getting details, and managing contacts without unnecessary bloat.

Completeness4/5

The toolset provides strong coverage for email and SMS operations, including CRUD-like actions for contacts, sending, and status checks. Minor gaps include no update or delete tools for contacts or audiences, but agents can work around this with existing tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables sending transactional emails through GetMailer from AI assistants. Supports email operations, template management, domain verification, analytics, suppression lists, and batch email jobs.
    14
    24
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables sending emails and managing email delivery through Resend's API, allowing users to compose and send emails using natural language.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to send emails, manage campaigns, subscribers, templates, and domains via the SendCraft email API.
    26
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/unosend/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server