A comprehensive toolkit for working with Hex: SDK, CLI, and MCP integration
The server demonstrates good overall definition quality with clear naming conventions, comprehensive parameter schemas, and detailed descriptions. All five tools follow the verb_noun pattern (hex_list, hex_get, hex_run, hex_cancel) and include Pydantic models with full type annotations. Descriptions range from 100-200 chars, meeting best practices. However, output schemas are not explicitly documented, and error handling lacks actionable recovery guidance. The code shows strong foundational work but misses some production refinements.
Cancel a running Hex project execution. Returns confirmation of the cancellation request.
Get detailed metadata about a specific Hex project. Returns comprehensive project information including status, timestamps, analytics, schedules, and optionally sharing permissions.
Get the current status of a Hex project run. Returns status information including state (PENDING, RUNNING, COMPLETED, FAILED, etc.), timestamps, and any error messages.
List Hex projects with optional filtering and search. Returns a list of projects with their metadata including ID, name, status, owner, and timestamps.
Trigger a run of the latest published version of a Hex project. Returns run information including run ID and URLs to monitor the execution.
Output schemas not documented. Tools return dict[str, Any] without specifying what fields the LLM should expect. This forces LLMs to infer response structure and prevents proper chaining to downstream tools.
Error handling lacks actionable recovery guidance. The code catches HexAPIError but does not categorize errors as retryable, user-fixable, or fatal. LLMs receive raw exception data without guidance on next steps.
Parameter descriptions lack format/constraint details. For example, 'limit' accepts 1-100 but description does not explicitly state minimum/maximum bounds. LLMs may pass invalid values like 0 or 500.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 11 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
No pagination metadata in list response. hex_list_projects returns results but likely does not include total_count or next_cursor. Without pagination info, agents cannot iterate through large result sets efficiently.
input_params in hex_run_project accepts dict[str, Any] without documentation of valid keys/structure. LLMs cannot validate inputs and may pass malformed parameters.
No confirmation/dry-run precedent established. hex_cancel_run and hex_run_project are reversible/destructive operations but lack explicit confirmation patterns or recovery tools.