A multi-server MCP agent that integrates weather and email services with LangChain and OpenAI for agentic reasoning
Two tools with minimal documentation. Both have basic parameter schemas with types and descriptions, but tool descriptions are extremely brief (10-12 chars), falling well below the 34-char p10 baseline. No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges). Missing idempotency and retry semantics for the destructive send_email tool. Naming is acceptable (verb_noun pattern), but descriptions fail to explain WHEN to use each tool or what the LLM should expect in responses.
Get current weather for provided coordinates.
Send email using SendGrid API.
Tool descriptions critically short (10-12 chars). Rubric baseline p10=34 chars. Descriptions must explain WHAT the tool does, WHEN to use it, and what it returns. Current descriptions lack context for LLM tool selection.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure. get_weather returns dict with 'current' key; send_email returns dict with 'status' and 'response' keys, neither documented.
send_email is destructive (WRITE risk) but lacks error handling guidance, retry semantics, or confirmation pattern. No indication whether the tool is idempotent. Agents cannot safely retry on transient failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
No parameter constraints. latitude/longitude accept any float with no range validation (should be -90 to 90, -180 to 180). to_email accepts any string with no format validation. subject and body have no length limits. Unbounded parameters invite invalid LLM inputs.
Credentials (SENDGRID_API_KEY, FROM_EMAIL) loaded from environment but no documentation of required secrets. Agents cannot know what configuration is needed. No audit trail or permission scopes declared.