Server has 2 tools with complete schemas and descriptions. greet is trivial (simple greeting). send_email is substantive with comprehensive parameter coverage (recipients, content, attachments, scheduling, tags) and proper Zod validation. Both tools have descriptions and input schemas. However, descriptions are brief (greet: 24 chars, send_email: 77 chars) and lack actionable context for LLM selection. send_email lacks output schema documentation, callers cannot predict response structure. Error handling is present (missing API key, missing content) but generic. No tool annotations (readOnlyHint/destructiveHint). Parameter descriptions are minimal; many lack format/constraint guidance. Naming is clear (verb_noun pattern). No secrets exposed as parameters (API key extracted from headers). Composition is reasonable but send_email is complex with many optional parameters that could benefit from clearer dependency documentation.
A simple greeting tool
Send emails via Resend API. Provide html_content and/or text_content.
Output schemas not documented. send_email response structure is not specified, LLMs cannot predict what fields to extract or plan downstream calls.
Tool descriptions too brief and lack context. greet (24 chars) and send_email (77 chars) do not explain WHEN to use them or what they return. Baseline is 194 chars; these are 25-40% of that.
Parameter descriptions are sparse. Many parameters (html_content, text_content, cc_emails, bcc_emails, reply_to, scheduled_at, attachments, tags) have minimal or no guidance on format, constraints, or when to use them.
No tool annotations. send_email is destructive (sends emails) and should declare destructiveHint=true. greet is read-only and should declare readOnlyHint=true. Annotations guide agent safety reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Error messages are generic. Missing API key and missing content errors are present, but Resend API errors (response.ok check) are not handled, stack traces or raw API responses may leak to LLM.