Skip to main content
Glama
MCP Aruba Email & Calendar Server

MCP Aruba Email & Calendar Server

by eteocuenca

send_email

Compose and send a new email via SMTP with recipient, subject, body, optional CC, sender name, and attachments; use the reply tool for existing threads.

Instructions

Send a NEW email via SMTP (not a reply).

For replying to an existing email thread, use reply_email() instead.

Args: to: Recipient email address subject: Email subject body: Email body (plain text) cc: Optional CC email addresses (comma-separated) from_name: Sender display name (default: "" — uses email address only) attachments: Optional comma-separated file paths to attach (e.g., "/path/to/file.pdf,/path/to/image.png")

Returns: Send status with details

Example: send_email( to="christopher.caponi@emotion-team.com", subject="Ciao Christopher!", body="Come stai? Ti scrivo per...", attachments="/path/to/documento.pdf" )

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "to": "<to>",
      "subject": "<subject>",
      "body": "<body>"
    },
    "name": "send_email"
  }
}

Input Schema

NameRequiredDescriptionDefault
ccNo
toYes
bodyYes
subjectYes
from_nameNo
attachmentsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.1

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It adds useful context that delivery happens over SMTP and that the operation creates a new message, but it does not state whether sending is irreversible, what happens if an attachment path is invalid, whether credentials/configuration must already exist, or what failure looks like. The "Returns: Send status with details" line is vague, though an output schema exists.

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 lead sentence and sibling exclusion are front-loaded, then Args/Returns/Example organize the rest cleanly. The worked example is longer than strictly necessary and repeats information already in the Args block, but it does demonstrate the attachments format concretely.

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

Completeness4/5

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

For a six-parameter mutation tool with no annotations, the definition covers routing, every parameter's format, and an invocation example; an output schema exists so return values need no elaboration. The remaining shortfall is error and precondition behavior — invalid paths, auth requirements, and irreversibility — which an agent about to trigger an outbound message would want.

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?

Schema description coverage is 0%, so the description is the sole source of parameter meaning — and it delivers for all six: recipient address, subject, plain-text body, comma-separated cc, from_name defaulting to empty (email address only), and comma-separated attachment paths with a concrete example. The only gaps are edge semantics such as whether "to" accepts multiple addresses or whether attachment paths are validated.

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?

States a specific verb and resource ("Send a NEW email via SMTP") and immediately carves out the boundary against a named sibling (reply_email). An agent can distinguish this from reply_email, list_emails, and the draft-related siblings without opening a schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative tool and the condition that selects it: replying to an existing thread goes to reply_email(), not here. The "NEW" emphasis and the parenthetical "(not a reply)" reinforce the exclusion rather than leaving it to inference.

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