Model Context Protocol (MCP) server exposing all 391 SendGrid v3 API operations to AI agents through a search → describe → invoke meta-tool surface.
Four well-named tools with clear descriptions and explicit input schemas. Tool names follow verb_noun convention (search_, describe_, invoke_, read_). Descriptions are detailed (100-200 chars) and explain WHEN to use each tool. Input schemas are present with typed properties. However, parameter descriptions are sparse or missing in several tools, and output schemas are not documented. Error handling guidance is minimal. The invoke_operation tool accepts a broad object structure without field-level constraints, risking invalid payloads.
Describe one operation by id: params, required fields, a compact body example, cross-field constraints, and a compact response field-menu for chaining. Use before invoke_operation. expand=full returns the entire request + response schema.
Invoke an operation by id with {path_params, query, headers, body}. Optional: dry_run (preview), fields/max_items (trim the result), await (poll async jobs). Safety policy, validation, and secret redaction are enforced server-side; isError reflects failures.
Read this server's docs: the `using-the-server` skill and reference docs (side-effects, regions, async-jobs). Call with no args to list them, or pass {uri} to read one. Same content as the MCP resources.
Search the 391 SendGrid operations by keyword. Returns metadata-only hits (id, summary, method, path, side_effect, tags) ranked by relevance. START HERE.
invoke_operation accepts untyped object parameters (path_params, query, headers, body) without field-level schema constraints. LLMs cannot validate payloads before submission, risking API errors and wasted calls.
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., operation IDs for chaining). Agents must infer structure from trial and error.
Parameter descriptions are minimal or absent. 'id' in describe_operation lacks context (is it a SendGrid operation ID? format?). 'expand' is vague ('full for entire schema', what does 'entire' mean?). LLMs cannot infer valid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
invoke_operation lacks error recovery guidance. Description mentions 'Safety policy, validation, and secret redaction are enforced server-side' but does not explain what errors the LLM should expect or how to recover from them.
No dry-run or confirmation pattern documented for irreversible operations. invoke_operation supports dry_run flag, but the description does not explain when to use it or what the LLM should do with dry-run results before committing.