MCP server for Verodat AI platform providing tools for data consumption, dataset design, and workspace management across three operational categories (CONSUME, DESIGN, MANAGE)
Server defines 10 tools with explicit schemas and descriptions. Naming follows verb_noun convention (get-*, create-*, upload-*). However, descriptions are verbose and example-heavy rather than concise; many exceed 200 chars and include sample JSON that LLMs may reuse literally. Parameter descriptions are present but inconsistent in detail. Output schemas are not documented, critical for agent planning. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (8 READ_ONLY, 2 WRITE). Composition is reasonable but lacks idempotency guarantees and chaining metadata.
Creates a new dataset in a workspace with specified target fields and configuration.
Executes an AI-generated query against datasets in a workspace to retrieve analyzed data.
WHEN TO USE: - At the start of consumption operations to identify available accounts - When needing to select an account for data analysis - When validating user access permissions for data consumption - When displaying account selection options to users before data analysis - When needing the account ID for other consumption operations Tool Description: Retrieves available accounts for the authenticated user to select for data consumption activities.
Retrieves AI context information for a workspace to understand available data structures and query capabilities.
WHEN TO USE: - When analyzing data for reporting or visualization - When you need to read and consume actual data stored in a dataset - When validating data quality or completeness before analysis - When searching for specific records within a dataset for consumption - When filtering data for specific analysis needs - Use default filter = 'vscope=PUBLISHED and vstate=ACTIVE' for consumption operations Tool Description: Retrieves actual data records from a dataset for consumption and analysis purposes. Required parameters: - datasetId: dataset ID to get data output for - workspaceId: Workspace ID to query - accountId: where workspace is located - filter: vscope and vstate value Optional parameters: - max: Maximum records (default: 9999) - offset: Pagination offset (default: 0) Example usage: Getting customer data for analysis: { "accountId": 123, "workspaceId": 123, "datasetId": 456, "filter": "vscope=PUBLISHED and vstate=ACTIVE", "max": 1000 }
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., does get-datasets return dataset_id for use in get-dataset-output?). Breaks tool chaining.
Descriptions are verbose (200-400+ chars) and include example JSON payloads. LLMs tend to reuse example values literally (e.g., accountId: 123) rather than adapt to context, causing failures.
No tool annotations despite clear risk profile: 8 tools are READ_ONLY, 2 are WRITE. Missing readOnlyHint and destructiveHint prevents agents from reasoning about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
WHEN TO USE: - When you need to understand the structure of a dataset before consumption - When validating field types before running analysis - When planning queries and need to know available fields - When you need to understand which fields are required for analysis - When reviewing field descriptions to properly interpret data Tool Description: Retrieves target fields configuration for a specific dataset to understand its structure for consumption. Required parameters: - accountId: Account ID where the workspace belongs - workspaceId: Workspace ID containing the dataset - datasetId: Dataset ID to fetch target fields from Optional parameters: - max: Maximum records to return (default: 1000) - offset: Pagination offset (default: 0) - filter: Filter string with prefix 'name contains ' for target fields - sort: Sort criteria with optional direction Example usage: { "accountId": 123, "workspaceId": 178, "datasetId": 3328, "filter": "name contains 'count'", "sort": "name,asc" }
WHEN TO USE: - When viewing all available datasets in a workspace for data consumption - When checking if specific datasets exist for analysis - When you need to know the last update time of datasets before consuming data - For identifying published datasets that are ready for consumption - Before performing queries or data analysis operations - Use default filter = 'vscope=PUBLISHED and vstate=ACTIVE' when filter is not available from request Tool Description: Retrieves available datasets from a workspace for data consumption purposes. Required parameters: - workspaceId: Workspace ID to query - accountId: accountId where workspace is located - filter: vscope and vstate value Optional parameters: - max: Maximum records to return (default: 9999) - offset: Pagination offset (default: 0) Common filter patterns: - Published & Active: "vscope=PUBLISHED and vstate=ACTIVE" Example usage: Getting active published datasets: { "accountId": 123, "workspaceId": 123, "filter": "vscope=PUBLISHED and vstate=ACTIVE" }
WHEN TO USE: - When looking for existing queries to re-use for data analysis - When checking common analysis patterns used in the workspace - When reviewing historical queries for data consumption - When you need ideas for new analyses based on existing queries Tool Description: Retrieves existing AI queries that can be used for data consumption and analysis.
WHEN TO USE: - After selecting an account to view available workspaces for consumption - When switching between different workspaces for data analysis - When validating workspace access permissions for data consumption - Before performing dataset operations that require workspace ID - When displaying workspace selection options to users Tool Description: Lists all workspaces within a specified account available for data consumption. Required parameters: - accountId: Target account ID Example usage: { "accountId": 123 }
Uploads data rows to an existing dataset in a workspace.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., what happens if a dataset is not found? Should the agent search first?
Parameter 'filter' in get-datasets and get-dataset-output has a default but no enum or validation. LLMs may pass invalid filter syntax. Constraint should be formalized, not just documented.