MCP server for the Xcatcher Agent Skill - provides tools for crawling X (Twitter) user data with support for normal and deep analysis modes
17 tools with consistent verb-noun naming (get_, create_, list_, wait_). All have descriptions (avg 85 chars, within baseline 34-392). Input schemas present with type definitions and enums for mode parameters. However, output schemas are undocumented, LLMs cannot predict response structure for chaining. Parameter descriptions are minimal (10-30 chars); many lack format/constraint details. Error handling is absent from tool definitions. No tool annotations (readOnlyHint/destructiveHint). create_crawl_task is the only WRITE operation but lacks confirmation/dry-run pattern. Pagination implemented (limit/offset) but total_count not documented. Security: API keys injected server-side (good), but no permission gates or scope declarations visible.
Create a new crawl task for X handles
Download results from a direct crawl request
Get a direct crawl quote without creating a task (HTTP 402 payment protocol)
Get results from a direct crawl request
Get status of a direct crawl request
Download results from an authenticated crawl task
Get authenticated user account information
Get service capabilities and features
Output schemas undocumented. Tool definitions lack response structure documentation. LLMs cannot predict what fields are returned (e.g., does get_task_results return task_id, status, results array?), forcing blind chaining and context loss.
Parameter descriptions are minimal (10-30 chars). 'Maximum number of tasks to return' lacks format/constraint details. Descriptions should state ranges (e.g., '1-100'), defaults, and format (e.g., 'ISO 8601 date'). Current descriptions do not meet the 50-200 char LLM-optimized baseline.
No error handling guidance in tool definitions. Tools lack recovery hints (e.g., 'If task not found, call list_tasks() to verify task_id'). Error responses will not guide LLM recovery, violating pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Get a synthetic sample result for demonstration purposes
Get service information and capabilities
Get results from a completed crawl task
Get the status of a crawl task
Get a payment quote for crawling X handles using HTTP 402 payment protocol
Check the health status of the Xcatcher service
List crawl tasks for the authenticated user
Validate X handles and estimate crawl cost before creating a task
Wait for a crawl task to complete
create_crawl_task (WRITE operation) lacks confirmation/dry-run pattern. No dry-run mode or explicit warning that this operation is irreversible. Agents may accidentally create duplicate tasks without a safety gate.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe tools from destructive ones without explicit hints. create_crawl_task should be marked destructiveHint=true; all GET tools should be marked readOnlyHint=true.