send_email
Send an email through the server SMTP (subject to server allowlists/limits). Costs 1 mcp_call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| body | Yes | ||
| is_html | No | ||
| subject | Yes |
Send an email through the server SMTP (subject to server allowlists/limits). Costs 1 mcp_call.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| body | Yes | ||
| is_html | No | ||
| subject | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose two genuinely useful behavioral facts beyond the schema: sends go through the server SMTP subject to allowlists/limits, and each call costs 1 mcp_call. It omits whether sending requires a verified sender/account, whether delivery is synchronous, and what errors (blocked recipient, quota) look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the core action front-loaded and no padding; the cost and constraint caveat are tucked into a parenthetical rather than buried. It is efficiently sized, though its brevity comes at the expense of the content covered in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter, no-output-schema mutation tool this is minimum viable: the agent knows what it does, roughly what it costs, and that allowlists apply. It is not complete enough to call confidently — the is_html flag and any required sender identity are undocumented anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not — it never mentions to, subject, body, or is_html. The names to/subject/body are self-explanatory, but is_html (the only parameter with non-obvious semantics, controlling HTML vs plain-text rendering) is completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Send an email") plus the transport ("through the server SMTP"), so an agent knows exactly what the tool does. No sibling tool in the list covers email, so no differentiation is needed, though the description stops short of noting anything about delivery semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical mentions allowlists/limits, which is a constraint rather than guidance on when to use the tool. There is no statement of prerequisites (e.g. an authenticated account or a validated sender), no when-not-to-use condition, and no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.