MCP server for Cloudflare Browser Rendering crawl API integration
Server has 4 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (ping, crawl-start, crawl-status, crawl-cancel). Descriptions are present and adequate (50-150 chars). However, parameter descriptions lack actionable constraints (e.g., 'limit' has no min/max bounds despite API docs mentioning max 100000). Error handling returns generic text responses without recovery guidance. Output schemas are not documented, callers cannot predict response structure. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. crawl-start has 14 parameters, some with complex interdependencies (e.g., 'source' enum affects URL discovery) that are underdocumented.
Cancel a running Cloudflare crawl job.
Start a Cloudflare Browser Rendering crawl job. Returns a job ID for polling.
Get status and results of a Cloudflare crawl job.
Check if the server is alive
Parameter constraints missing: 'limit' accepts 1 - 100000 per API docs but schema has no min/max. LLMs may pass invalid values (0, negative, >100000) causing silent API failures.
Output schemas undocumented. crawl-start returns {jobId}, crawl-status returns paginated results, but LLMs cannot predict field names or structure. Downstream tool calls risk field mismatches.
Error responses are plain text ('Error: {message}') without recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
No tool annotations. crawl-cancel is destructive (REVERSIBLE risk) and crawl-start is stateful (WRITE risk), but no readOnlyHint/destructiveHint/idempotentHint metadata to guide agent planning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Parameter interdependencies underdocumented. 'source' enum (all|sitemaps|links) affects which URL discovery methods apply, but no description explains when to use each or how it interacts with includePatterns/excludePatterns.