Render.com MCP server for AI assistants to manage services, deployments, environment variables, and custom domains on Render
Server has 8 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (list_, get_, deploy_, create_, delete_, manage_). Descriptions are present but brief (10-50 chars), below the 50-200 char LLM-optimized baseline. Schemas are well-formed with proper types and enums. Critical gap: no output schemas documented, no error handling guidance, no parameter descriptions for nested objects (e.g., envVars array items lack individual field descriptions). Tool composition is sound (each does one thing), but descriptions lack context on when to use each tool vs. alternatives.
Create a new service
Delete a service
Deploy a service
Get deployment history for a service
Get details of a specific service
List all services in your Render account
Manage custom domains for a service
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., serviceId from list_services response). Violates pattern:tool requirement.
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'List all services in your Render account' lacks context on when to call this vs. get_service, what fields are returned, or pagination behavior. Insufficient for LLM tool selection.
Nested parameter descriptions missing. envVars array items (key, value) have no descriptions. Nested properties in create_service (type enum values, plan enum values) lack context. LLMs cannot infer what 'web_service' vs 'static_site' means without descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Manage environment variables for a service
No error handling guidance. Tools like delete_service (DESTRUCTIVE) and deploy_service (WRITE) lack confirmation patterns or recovery instructions. No guidance on retryable vs. fatal errors. Violates pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. delete_service and deploy_service should be marked destructive/write.