An MCP server that sends emails via Resend with payment processing through x402 protocol, supporting EVM and Solana networks
Single tool 'send_email' has a clear action verb and reasonable description (73 chars). Input schema is present with Zod validation (subject: string min 1-200, body: string min 1). However, parameter descriptions are minimal, 'Email subject line' and 'Email body content' lack context about format, length rationale, or when to use the tool. No output schema is documented; the response is inferred from code (text content with email ID). Error handling exists but is generic ('Server not configured'). The tool is write-heavy (WRITE risk) but lacks idempotency guidance or confirmation pattern. No tool annotations (destructiveHint, idempotentHint) present. Overall: functional but below production baseline for parameter documentation and output clarity.
Send an email to the preconfigured recipient(s) (paid).
Parameter descriptions lack actionable detail. 'Email subject line' and 'Email body content' do not explain constraints, format expectations, or why minLength=1 on body (no maxLength). LLMs cannot infer whether body accepts HTML, markdown, or plaintext.
Output schema is not documented. Code shows response contains 'type: text' and 'text: ...' but no formal schema is declared. LLMs cannot plan downstream tool calls or extract structured data without knowing the response shape.
No tool annotations (destructiveHint, idempotentHint, readOnlyHint). send_email is a write operation with payment implications, agents need explicit guidance that this is destructive and non-idempotent (repeated calls send duplicate emails).
No confirmation or dry-run pattern. Sending email is irreversible and costs money. Agents should be able to preview or confirm before execution, but no such mechanism exists.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Error messages are generic. 'Server not configured' and 'Email provider error' do not guide recovery. Missing: actionable next steps, categorization (retryable vs fatal), or suggestions for fixing configuration.