MCP server for sending emails using Resend email service
Single tool 'send-email' has a well-structured schema with proper email format validation and comprehensive parameters. Descriptions are present and moderately detailed (avg ~150 chars per param). However, several parameters include prescriptive LLM instructions ('You MUST ask the user...') which belong in system prompts, not tool descriptions. Conditional parameter requirements (from, replyTo) are documented but could be clearer. Output schema is implicit (returns text content) but not formally documented. Error handling is basic (throws on missing from/replyTo, API errors) without recovery guidance.
Send an email using Resend
Tool description contains prescriptive LLM instructions ('You MUST ask the user...') that should be in system prompts, not tool metadata. This violates separation of concerns and wastes tokens in every tool invocation.
Conditional parameter requirements (from, replyTo) are implemented via schema spread but not clearly documented in parameter descriptions. LLMs may not understand when these become required vs optional.
Output schema is not formally documented. Tool returns {content: [{type: 'text', text: string}]} but this structure is implicit in code, not declared in tool metadata. LLMs cannot reliably parse the response structure.
Error messages lack recovery guidance. When 'from' is missing, error says 'from argument must be provided' but doesn't guide the LLM on how to recover (e.g., 'Set SENDER_EMAIL_ADDRESS env var or pass from parameter').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No rate limiting, timeout handling, or retry guidance documented. Resend API calls could hang or fail; tool provides no guidance on retryability or backoff strategy.