MCP server for interacting with Contentful CMS to retrieve content types and entries
Critical gaps across all dimensions. Tool descriptions are minimal (10-40 chars, well below 194-char baseline). Parameters lack descriptions entirely, 'contentType' has no description explaining format/constraints. Input schemas use bare Zod types without JSON Schema structure or field documentation. No output schema documented. Error handling returns raw error messages without recovery guidance. No parameter validation, enums, or constraints. Responses are unstructured JSON dumps without field documentation. No pagination support despite potential for large result sets. Security: credentials injected via environment (correct), but no audit logging or permission gates.
get content types
Get entries for a specific content type
No parameter descriptions. 'contentType' parameter in get-entries has no description explaining what format is expected, valid values, or examples. LLMs cannot infer whether to pass 'blog_post', 'blogPost', or 'blog-post'.
Tool descriptions are too short (10-40 chars vs 194-char baseline). 'get content types' and 'Get entries for a specific content type' lack context on WHEN to use, WHAT to expect, and any prerequisites. LLMs cannot reliably select these tools.
No output schema documented. Responses return raw JSON.stringify() of API responses without field documentation. LLMs cannot plan downstream calls or extract required data reliably.
No input validation or constraints. get-entries accepts any string for contentType with no enum, regex, or format validation. Invalid values fail silently at the API level with unhelpful error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Error handling provides no recovery guidance. Errors return raw exception messages ('Error: http error! status 401') without telling the LLM what to do next or how to self-correct.