The server defines 16 tools with generally good structure and comprehensive schemas. Most tools have descriptions and input parameter definitions. However, there are significant issues: (1) descriptions lack LLM-optimization guidance and dependency hints, (2) output schemas are not documented, (3) error handling is not visible in the definitions, (4) several tools use ambiguous names or could benefit from clearer parameter constraints. The 'instructions' tool is a prompt, not a traditional tool. Most tools follow verb_noun conventions but lack the operational context (state-modifying vs read-only hints, prerequisites, chaining requirements) that would elevate them to A-grade. The 'instructions' tool has a typo in its description ('guidliness' vs 'guidelines'). Tools like 'get_file_content' and 'resource_to_dataframe' have complex parameter schemas but descriptions could be more explicit about failure modes and when to use one vs the other.
Get details of a specific datasets.
Downloads file content for given resource IDs. `media_type` for the resource must be 'file'. Available file formats can be listed with `list_file_formats` tool. Maximum number of resources in one request is 100. Don't use if resource has tabular data available. Use `resource_to_dataframe` tool instead.
Get details of a specific institutions.
Get details of a specific resources.
Get details of specific showcases.
Search and filter tabular data within a specific resource using advanced query capabilities. Returns metadata and rows as a list of dictionaries. It's useful when grouping or aggregating data isn't necessary.
Output schemas are not documented for any tool. LLMs cannot plan downstream tool calls or extract data without knowing what fields and structure to expect.
No pagination metadata in search tool responses. Tools like search_datasets, search_institutions, and search_resources accept 'page' and 'per_page' parameters but do not document whether they return total_count, next_cursor, or have_more flags. Without pagination info, agents cannot determine if results are complete or plan multi-page fetches.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 67 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Get resources metadata including data schema, headers, count of rows and first row. Use this tool only for resources with tabular data available.
Return the general guidelines for the whole MCP server. The guidliness must be loaded before using any other tools from this server.
List all available categories_1 for dataset filtering. There is AND operator between categories_1 and categories_2 filters, so setting similar categories for both might reduce number of results. Using only one of them is recommended.
List all available categories_2 for dataset filtering. There is AND operator between categories_1 and categories_2 filters, so setting similar categories for both might reduce number of results. Using only one of them is recommended.
Lists all supported file formats for document parsing. Returns information about what file types can be processed.
Use this tool only for resources with tabular data available. Loads tabular resource file into Polars DataFrame with advanced grouping and aggregation capabilities. Use column names like: col1, col2, col3 (col1=first column, col2=second column, etc.). For aggregations: aggregations=["sum", "mean"], aggregation_columns=["col8", "col9"] → creates columns "col8_sum", "col9_mean" Same column can have multiple aggregations: aggregations=["sum", "mean"], aggregation_columns=["col8", "col8"] → creates "col8_sum", "col8_mean" After aggregation, original columns are replaced by grouping columns plus aggregated results. For sorting after aggregation, use the generated column names (e.g., sort_columns=["col8_sum", "col9_mean"]).
Advanced dataset search with filters.
Advanced institution search with filters.
Advanced resource search with filters.
Advanced showcase search with filters.
Error handling is not visible in tool definitions. No guidance on how tools fail, what errors mean, or what the LLM should do next (retry, ask user, abort). This violates the recovery-guide and error-classification patterns.
Tool 'instructions' is registered as a tool but should be a prompt. It has no meaningful input parameters and returns static text. The MCP framework provides a prompts mechanism, use that instead.
Description for 'instructions' tool contains a typo: 'guidliness' instead of 'guidelines'. Minor but impacts professional credibility.
Example values in descriptions (e.g., 'Nationnal', 'economics', 'water level') may be copied literally by LLMs instead of adapted to the actual user context. Replace with formal constraints (enums, patterns) or explicit guidance like 'e.g., economics, but use any relevant keyword'.
No indication of tool idempotence or destructiveness. Tools lack explicit 'readOnlyHint', 'destructiveHint', or 'idempotentHint' annotations (current MCP spec feature). This prevents agents from understanding which calls are safe to retry.
Dependencies between tools are not documented in descriptions. E.g., 'get_file_content' says 'Don't use if resource has tabular data available' but does not explain what to do instead. Should say: 'For tabular resources, use resource_to_dataframe() instead.'
No result size limits stated in tool descriptions. search_datasets, search_institutions, search_resources, and search_showcases accept 'per_page' up to 100 but don't state hard result limits or warn that large result sets degrade LLM reasoning. Should cap default results at 20-50 and mention the limit in the description.
Tools naming convention inconsistency: 'get_tabular_data' and 'resource_to_dataframe' do similar things but use very different names. One uses 'get_' prefix (discovery pattern), the other uses 'resource_to_' (transformation pattern). This naming inconsistency may confuse LLMs about when to use each.
'resource_to_dataframe' description is dense (350+ chars) and mixes purpose with usage examples. Should separate: (1) what the tool does (first sentence), (2) when to use it vs alternatives (second sentence), (3) detailed examples (separate). Current description buries the actual purpose.