MCP server for Hadoop Hue REST API - Execute SQL queries and manage HDFS files
The Hue MCP server has 4 tools with complete schemas and descriptions. Tool naming uses action verbs appropriately (execute, run, export, list), and all tools have descriptions exceeding 50 characters. However, there are significant gaps in parameter descriptions, missing error handling guidance, and no tool annotations. The server uses Pydantic models for structured output (QueryResult, DirectoryListing, OperationResult), which is excellent. The lack of detailed parameter constraints (enums, ranges, format specs) and minimal error recovery guidance pull the score down to the 'fair' range. Most tools follow a single-responsibility principle, but there are composition concerns (e.g., hue_export_and_download combines query execution with file download).
Execute a SQL query on Hue and return the results. This tool executes a SQL statement, waits for completion, and fetches all results. Use this for SELECT queries where you want to retrieve data.
Execute an INSERT OVERWRITE DIRECTORY query and download the results. This tool is for queries that write output to HDFS (like INSERT OVERWRITE DIRECTORY), then downloads the resulting files to the local filesystem.
List files and directories in an HDFS path. Use this to browse the contents of HDFS directories.
Execute a SQL query and save results directly to a CSV file. This is a convenience method that combines query execution with CSV export. Ideal for exporting large result sets to files.
Parameter descriptions lack format and constraint details. 'dialect' accepts 'hive', 'sparksql', or 'impala' but is documented as free-form string without enum constraint. timeout and batch_size accept any integer with no stated minimum/maximum bounds, risking absurd values (negative timeout, batch_size=999999).
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). hue_run_query_to_csv and hue_export_and_download are marked as WRITE risk but lack destructiveHint annotation to signal this to clients.
Error handling provides generic RuntimeError with query context but does not guide recovery or classify errors as retryable vs. fatal. No guidance for LLM on next steps if query times out, authentication fails, or directory does not exist.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
hue_export_and_download combines two responsibilities: executing an INSERT OVERWRITE query and downloading HDFS files. This violates single-responsibility principle. Should be split into hue_execute_hdfs_write (query execution) and download_hdfs_files (file retrieval) so agent can compose as needed.
Parameter 'file_pattern' in hue_export_and_download is optional but its behavior is underspecified. Is it a regex? Glob? Shell glob? No format constraint or example provided, risking invalid patterns.
Pagination support missing from hue_list_directory. If HDFS directory contains >1000 items (page_size default), response is truncated with no indication of total count or way to fetch next page. Large directories become unusable.