@cyanheads/eurostat-mcp-server 0.11.2 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +6 -4
- package/CLAUDE.md +6 -4
- package/README.md +17 -15
- package/changelog/0.11.x/0.11.3.md +45 -0
- package/changelog/template.md +10 -3
- package/dist/config/server-config.js +1 -1
- package/dist/config/server-config.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-drop.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-drop.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +18 -6
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +129 -31
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts +6 -4
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +139 -53
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +20 -8
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +208 -43
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts +16 -6
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js +62 -23
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
- package/dist/mcp-server/tools/narrowing-advice.d.ts +64 -3
- package/dist/mcp-server/tools/narrowing-advice.d.ts.map +1 -1
- package/dist/mcp-server/tools/narrowing-advice.js +160 -4
- package/dist/mcp-server/tools/narrowing-advice.js.map +1 -1
- package/dist/mcp-server/tools/notice-text.d.ts +18 -0
- package/dist/mcp-server/tools/notice-text.d.ts.map +1 -0
- package/dist/mcp-server/tools/notice-text.js +40 -0
- package/dist/mcp-server/tools/notice-text.js.map +1 -0
- package/dist/mcp-server/tools/value-list-paging.d.ts +11 -1
- package/dist/mcp-server/tools/value-list-paging.d.ts.map +1 -1
- package/dist/mcp-server/tools/value-list-paging.js +13 -1
- package/dist/mcp-server/tools/value-list-paging.js.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +4 -3
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js +107 -54
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
- package/dist/services/eurostat-bulk/types.d.ts +27 -4
- package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/types.js.map +1 -1
- package/dist/services/eurostat-catalogue/dimension-value-index.d.ts +81 -0
- package/dist/services/eurostat-catalogue/dimension-value-index.d.ts.map +1 -0
- package/dist/services/eurostat-catalogue/dimension-value-index.js +410 -0
- package/dist/services/eurostat-catalogue/dimension-value-index.js.map +1 -0
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +87 -7
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +333 -81
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
- package/dist/services/eurostat-catalogue/search-text.d.ts +12 -0
- package/dist/services/eurostat-catalogue/search-text.d.ts.map +1 -0
- package/dist/services/eurostat-catalogue/search-text.js +31 -0
- package/dist/services/eurostat-catalogue/search-text.js.map +1 -0
- package/dist/services/eurostat-catalogue/types.d.ts +11 -0
- package/dist/services/eurostat-catalogue/types.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts +26 -5
- package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.js +132 -16
- package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.d.ts.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.js +4 -20
- package/dist/services/eurostat-data/sdmx-metadata.js.map +1 -1
- package/dist/services/eurostat-data/types.d.ts +92 -2
- package/dist/services/eurostat-data/types.d.ts.map +1 -1
- package/dist/services/eurostat-data/types.js.map +1 -1
- package/dist/services/eurostat-filters.d.ts +18 -6
- package/dist/services/eurostat-filters.d.ts.map +1 -1
- package/dist/services/eurostat-filters.js +24 -7
- package/dist/services/eurostat-filters.js.map +1 -1
- package/dist/services/eurostat-periods.d.ts +54 -1
- package/dist/services/eurostat-periods.d.ts.map +1 -1
- package/dist/services/eurostat-periods.js +101 -1
- package/dist/services/eurostat-periods.js.map +1 -1
- package/dist/services/xml-entities.d.ts +13 -0
- package/dist/services/xml-entities.d.ts.map +1 -0
- package/dist/services/xml-entities.js +31 -0
- package/dist/services/xml-entities.js.map +1 -0
- package/package.json +5 -5
- package/server.json +5 -5
- package/skills/eurostat-guide/SKILL.md +6 -6
- package/skills/eurostat-guide/references/sql-analysis.md +5 -5
|
@@ -7,27 +7,80 @@ import { CanvasIdSchema } from '@cyanheads/mcp-ts-core/canvas';
|
|
|
7
7
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
8
8
|
import { decodeCursor, encodeCursor } from '@cyanheads/mcp-ts-core/utils';
|
|
9
9
|
import { clampReadLimit } from '../clamp-read-limit.js';
|
|
10
|
-
import { filterTokens, matchValues } from '../value-list-paging.js';
|
|
10
|
+
import { filterTokens, foldCodePrefix, matchCodePrefix, matchValues, } from '../value-list-paging.js';
|
|
11
11
|
import { acquireCanvas, getCanvas, isCanvasFailure, newTableName, } from '../../../services/canvas-accessor.js';
|
|
12
12
|
import { getEurostatDataService } from '../../../services/eurostat-data/eurostat-data-service.js';
|
|
13
|
-
import { GEO_LEVEL_VALUES } from '../../../services/eurostat-data/types.js';
|
|
13
|
+
import { GEO_LEVEL_VALUES, } from '../../../services/eurostat-data/types.js';
|
|
14
|
+
import { isComextDataset } from '../../../services/eurostat-hosts.js';
|
|
14
15
|
import { outageAnswer } from '../../../services/eurostat-outage.js';
|
|
15
16
|
/**
|
|
16
|
-
* The
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* The sentence an empty page adds for a code_prefix holding ".", which no Eurostat code
|
|
18
|
+
* contains. A `DS-*` collection's classification codes are bare digits, so there a prefix
|
|
19
|
+
* of digits and dots is a code printed with separators and its stripped form is the prefix
|
|
20
|
+
* to send; elsewhere stripping can yield a non-code (COICOP `01.1` is `CP011`).
|
|
21
|
+
*/
|
|
22
|
+
function dottedPrefixAdvice(datasetCode, prefix) {
|
|
23
|
+
if (!prefix?.includes('.'))
|
|
24
|
+
return '';
|
|
25
|
+
const stripped = prefix.replaceAll('.', '');
|
|
26
|
+
return isComextDataset(datasetCode) && /^\d+$/.test(stripped)
|
|
27
|
+
? ` No Eurostat code contains ".": a code printed with separators is sent without them, so pass code_prefix "${stripped}".`
|
|
28
|
+
: ' No Eurostat code contains ".", so a code_prefix holding one matches nothing: find the code with filter instead.';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The staged value list: `{code, label}` pairs, declared rather than sniffed. The
|
|
32
|
+
* service falls back to the code when Eurostat publishes no label, so neither
|
|
33
|
+
* column is ever null.
|
|
19
34
|
*/
|
|
20
35
|
const VALUE_TABLE_SCHEMA = [
|
|
21
36
|
{ name: 'code', type: 'VARCHAR', nullable: false },
|
|
22
37
|
{ name: 'label', type: 'VARCHAR', nullable: false },
|
|
23
38
|
];
|
|
39
|
+
/**
|
|
40
|
+
* A staged `geo` list adds each code's NUTS level, whether or not geo_level was
|
|
41
|
+
* passed, so every `geo` table has one shape. Null for a code with no level the
|
|
42
|
+
* server maps.
|
|
43
|
+
*/
|
|
44
|
+
const GEO_VALUE_TABLE_SCHEMA = [
|
|
45
|
+
...VALUE_TABLE_SCHEMA,
|
|
46
|
+
{ name: 'level', type: 'VARCHAR', nullable: true },
|
|
47
|
+
];
|
|
24
48
|
/** Longest filter accepted: room for many words, while its echo and cursor stay small. */
|
|
25
49
|
const FILTER_MAX_CHARS = 500;
|
|
50
|
+
/** Longest code_prefix accepted: well past any Eurostat code, while its cursor copy stays small. */
|
|
51
|
+
const CODE_PREFIX_MAX_CHARS = 100;
|
|
26
52
|
/** Count limit shared by first pages and legacy cursor continuations. */
|
|
27
53
|
const MAX_PAGE_SIZE = 1000;
|
|
28
54
|
/** A blank or whitespace-only string from a form client is "unset", never a value to validate. */
|
|
29
55
|
const blankAsUnset = (schema) => z.preprocess((value) => (typeof value === 'string' && value.trim() === '' ? undefined : value), schema);
|
|
30
56
|
const formatCount = (n) => n.toLocaleString('en-US');
|
|
57
|
+
/** A staged geo list's rows per NUTS level, in hierarchy order: "aggregate 1, country 34, NULL 2". */
|
|
58
|
+
function levelCounts(values) {
|
|
59
|
+
const counts = new Map();
|
|
60
|
+
for (const { level = null } of values)
|
|
61
|
+
counts.set(level, (counts.get(level) ?? 0) + 1);
|
|
62
|
+
return [...GEO_LEVEL_VALUES, null]
|
|
63
|
+
.flatMap((level) => {
|
|
64
|
+
const count = counts.get(level);
|
|
65
|
+
return count === undefined ? [] : [`${level ?? 'NULL'} ${formatCount(count)}`];
|
|
66
|
+
})
|
|
67
|
+
.join(', ');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The `content[]` Staged line. A geo table holds more rows than the inline level
|
|
71
|
+
* only when it was staged without geo_level, so every level: an explicit level
|
|
72
|
+
* stages exactly the `totalCount` values the page is drawn from.
|
|
73
|
+
*/
|
|
74
|
+
function stagedLine(result) {
|
|
75
|
+
const table = `**Staged:** table \`${result.tableName}\` on canvas \`${result.canvasId}\` (stagedRowCount ${result.stagedRowCount})`;
|
|
76
|
+
const next = 'inspect it with eurostat_dataframe_describe first, then join it in eurostat_dataframe_query';
|
|
77
|
+
if (!result.geoLevel)
|
|
78
|
+
return `${table}, columns code and label — ${next}`;
|
|
79
|
+
const everyLevel = result.stagedRowCount !== undefined && result.stagedRowCount > result.totalCount
|
|
80
|
+
? ` — every geo level the dataset lists, not only the ${result.geoLevel} values below. Aggregates and regions overlap the countries they contain, so a JOIN on it keeps them beside the countries: filter level (e.g. g.level = 'country') before summing or averaging`
|
|
81
|
+
: '';
|
|
82
|
+
return `${table}, columns code, label and level (NUTS level, NULL when the code has none)${everyLevel} — ${next}`;
|
|
83
|
+
}
|
|
31
84
|
/** The `content[]` text of the payload. */
|
|
32
85
|
function renderText(result) {
|
|
33
86
|
const listed = result.values.length;
|
|
@@ -38,12 +91,8 @@ function renderText(result) {
|
|
|
38
91
|
`**Total values:** ${result.totalCount}${result.matchCount === undefined ? partial(result.totalCount) : ''}`,
|
|
39
92
|
...(result.matchCount === undefined
|
|
40
93
|
? []
|
|
41
|
-
: [`**Matching
|
|
42
|
-
...(result.tableName
|
|
43
|
-
? [
|
|
44
|
-
`**Staged:** table \`${result.tableName}\` on canvas \`${result.canvasId}\` (stagedRowCount ${result.stagedRowCount}), columns code and label — inspect it with eurostat_dataframe_describe first, then join it in eurostat_dataframe_query`,
|
|
45
|
-
]
|
|
46
|
-
: []),
|
|
94
|
+
: [`**Matching:** ${result.matchCount}${partial(result.matchCount)}`]),
|
|
95
|
+
...(result.tableName ? [stagedLine(result)] : []),
|
|
47
96
|
'',
|
|
48
97
|
];
|
|
49
98
|
for (const v of result.values) {
|
|
@@ -63,7 +112,8 @@ function readCursor(cursor, binding, ctx) {
|
|
|
63
112
|
const state = decodeCursor(cursor, ctx);
|
|
64
113
|
if (typeof state.after === 'string' &&
|
|
65
114
|
state.dataset === binding.dataset &&
|
|
66
|
-
state.filter === binding.filter
|
|
115
|
+
state.filter === binding.filter &&
|
|
116
|
+
(state.prefix === undefined ? '' : state.prefix) === binding.prefix) {
|
|
67
117
|
return {
|
|
68
118
|
after: state.after,
|
|
69
119
|
dimension: state.dimension,
|
|
@@ -78,7 +128,7 @@ function readCursor(cursor, binding, ctx) {
|
|
|
78
128
|
return;
|
|
79
129
|
}
|
|
80
130
|
/** The refusal of a cursor that is malformed or belongs to another call. */
|
|
81
|
-
const UNUSABLE_CURSOR = 'Unusable cursor: it is malformed, or was issued for a different dataset_code, dimension, geo_level or
|
|
131
|
+
const UNUSABLE_CURSOR = 'Unusable cursor: it is malformed, or was issued for a different dataset_code, dimension, geo_level, filter or code_prefix.';
|
|
82
132
|
/**
|
|
83
133
|
* Recovery for a `geo_level` that holds no value. `levels` are the ones the dataset
|
|
84
134
|
* lists, as the service's error reports them, so every level offered returns values;
|
|
@@ -95,7 +145,7 @@ function geoLevelHint(datasetCode, failed, levels) {
|
|
|
95
145
|
/** Select the count-limit schema before registering the tool. */
|
|
96
146
|
export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_get_dimension_values', {
|
|
97
147
|
title: 'Get Eurostat Dimension Values',
|
|
98
|
-
description:
|
|
148
|
+
description: "List the valid values for a dimension in a Eurostat dataset, preserving value codes and labels exactly. Use this when eurostat_get_dataset_info returns more values than its sample, or to confirm exact filter codes before querying. Dimension identifiers match exactly first, then case-insensitively; TIME_PERIOD aliases time. For geo, use geo_level to select the NUTS hierarchy (country, nuts1, nuts2, nuts3). To find codes in a long list, pass filter: words its code or label contains. To list the codes under a parent, pass code_prefix: the codes starting with it, ignoring case, such as one country's regions (geo_level nuts2, code_prefix DE) or the CN codes under a heading; aggregates outside the code tree are not reached. Pages default to 25 values, maximum 1,000; pass nextCursor back as cursor for the next page with the same dataset, dimension, geo level, filter and code_prefix. Canonical and alias dimension spellings resume the same list. Pass canvas_id on the first call to also stage the dimension's whole list as a table, whatever filter, code_prefix or limit: columns code and label, plus level for geo. For geo, omitting geo_level stages every level, aggregates, countries and regions together, and an explicit geo_level only that level. Inspect that table with eurostat_dataframe_describe, then search or join it with eurostat_dataframe_query.",
|
|
99
149
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
100
150
|
input: z.object({
|
|
101
151
|
dataset_code: z
|
|
@@ -109,15 +159,16 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
109
159
|
geo_level: z
|
|
110
160
|
.enum(GEO_LEVEL_VALUES)
|
|
111
161
|
.optional()
|
|
112
|
-
.describe('NUTS hierarchy level filter — applies only when dimension is "geo"; passing it with any other dimension is rejected. Options: "aggregate" (EU/EA codes), "country" (2-letter codes, default), "nuts1" (3-char), "nuts2" (4-char), "nuts3" (5-char).'),
|
|
162
|
+
.describe('NUTS hierarchy level filter — applies only when dimension is "geo"; passing it with any other dimension is rejected. Options: "aggregate" (EU/EA codes), "country" (2-letter codes, the inline default), "nuts1" (3-char), "nuts2" (4-char), "nuts3" (5-char). With canvas_id, an omitted geo_level stages every level and an explicit one only that level.'),
|
|
113
163
|
filter: blankAsUnset(z.string().max(FILTER_MAX_CHARS).optional()).describe(`Words to find, up to ${FILTER_MAX_CHARS} characters: keeps only values whose code and label, joined by a space, contain every whitespace-separated word as a substring — in any order, ignoring case and accents ("palma frankfurt" finds DE_EDDF_ES_LEPA, "zurich" finds Zürich). Punctuation is part of a word, and spellings are not transliterated ("münchen" does not find MUENCHEN). Runs over the whole list at the effective geo_level before paging and keeps Eurostat's order, with no ranking; matchCount counts the matches.`),
|
|
164
|
+
code_prefix: blankAsUnset(z.string().max(CODE_PREFIX_MAX_CHARS).optional()).describe(`Keep only values whose code starts with this text, ignoring case — the codes under a parent where codes nest by prefix: "DE" with geo_level "nuts2" lists the German NUTS 2 regions, "2204" on a CN product list lists the codes under that heading, parent code included. Aggregates outside the code tree (COICOP ELC_GAS, NRG) are not reached. Up to ${CODE_PREFIX_MAX_CHARS} characters, no wildcards, surrounding whitespace ignored. Applies within the effective geo_level (country when omitted) beside filter, before paging; matchCount counts the values passing both.`),
|
|
114
165
|
limit: (clampLimits
|
|
115
166
|
? z.number().multipleOf(1).min(1)
|
|
116
167
|
: z.number().int().min(1).max(MAX_PAGE_SIZE))
|
|
117
168
|
.default(25)
|
|
118
169
|
.describe('Most values per page, default 25, maximum 1,000. Larger positive integers clamp with a notice when EUROSTAT_CLAMP_LIMITS is enabled. Fixed by the first call: with cursor, the cursor carries that limit and this field is ignored.'),
|
|
119
|
-
cursor: blankAsUnset(z.string().optional()).describe("Opaque nextCursor from the previous page; omit for the first page. It resumes after that page's last code and is bound to dataset_code, dimension, geo_level and
|
|
120
|
-
canvas_id: CanvasIdSchema.optional().describe(
|
|
170
|
+
cursor: blankAsUnset(z.string().optional()).describe("Opaque nextCursor from the previous page; omit for the first page. It resumes after that page's last code and is bound to dataset_code, dimension, geo_level, filter and code_prefix, so send those unchanged. Cannot be combined with canvas_id on a deployment with a dataframe canvas."),
|
|
171
|
+
canvas_id: CanvasIdSchema.optional().describe("Also stage the dimension's whole list on this dataframe canvas: every value it lists, whatever filter, code_prefix and limit are, narrowed only by an explicit geo_level. Columns code and label; a geo table adds level (aggregate, country, nuts1, nuts2, nuts3, or NULL for a code with no NUTS level). Without geo_level a geo table holds every level, and aggregates and regions overlap the countries they contain, so a JOIN on it keeps them beside the countries: filter level before summing or averaging. Pass the canvasId a eurostat_download_dataset or eurostat_query_dataset response returned, then search the staged table with SQL or join it to a download on the dimension column (e.g., d.geo = g.code). Only on a call without cursor; omit to return the values inline only: this tool never starts a canvas. Ignored on deployments without a dataframe canvas."),
|
|
121
172
|
}),
|
|
122
173
|
output: z.object({
|
|
123
174
|
dimensionCode: z.string().describe('The dimension code that was queried.'),
|
|
@@ -125,7 +176,7 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
125
176
|
geoLevel: z
|
|
126
177
|
.enum(GEO_LEVEL_VALUES)
|
|
127
178
|
.optional()
|
|
128
|
-
.describe('Effective NUTS hierarchy level
|
|
179
|
+
.describe('Effective NUTS hierarchy level of the inline values. Present only for the geo dimension; country is reported when geo_level was omitted, though a geo table staged then holds every level.'),
|
|
129
180
|
values: z
|
|
130
181
|
.array(z
|
|
131
182
|
.object({
|
|
@@ -135,14 +186,14 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
135
186
|
label: z.string().describe('Human-readable label for this value.'),
|
|
136
187
|
})
|
|
137
188
|
.describe('A dimension value code and label pair.'))
|
|
138
|
-
.describe("This page of dataset-available values, in Eurostat's order — for geo, the subset at geoLevel; with filter, only the matches. A page holds the effective limit (default 25, maximum 1,000), fewer only at the end; truncated and nextCursor are set when more follow."),
|
|
189
|
+
.describe("This page of dataset-available values, in Eurostat's order — for geo, the subset at geoLevel; with filter or code_prefix, only the matches. A page holds the effective limit (default 25, maximum 1,000), fewer only at the end; truncated and nextCursor are set when more follow."),
|
|
139
190
|
totalCount: z
|
|
140
191
|
.number()
|
|
141
|
-
.describe('Number of distinct values the dimension lists, after geoLevel filtering for geo — every one, whatever filter and paging apply.'),
|
|
192
|
+
.describe('Number of distinct values the dimension lists, after geoLevel filtering for geo — every one, whatever filter, code_prefix and paging apply. A geo table staged without geo_level holds every level, so more rows (stagedRowCount).'),
|
|
142
193
|
matchCount: z
|
|
143
194
|
.number()
|
|
144
195
|
.optional()
|
|
145
|
-
.describe('Values
|
|
196
|
+
.describe('Values passing filter and code_prefix across the whole list at geoLevel, before paging. Present only when filter or code_prefix was passed.'),
|
|
146
197
|
canvasId: z
|
|
147
198
|
.string()
|
|
148
199
|
.optional()
|
|
@@ -150,11 +201,11 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
150
201
|
tableName: z
|
|
151
202
|
.string()
|
|
152
203
|
.optional()
|
|
153
|
-
.describe('Canvas table holding
|
|
204
|
+
.describe('Canvas table holding the staged list as VARCHAR columns code and label, plus level for geo. Call eurostat_dataframe_describe with canvasId first to confirm it, then join it in eurostat_dataframe_query. Omitted alongside canvasId.'),
|
|
154
205
|
stagedRowCount: z
|
|
155
206
|
.number()
|
|
156
207
|
.optional()
|
|
157
|
-
.describe(
|
|
208
|
+
.describe("Rows written to the canvas table. Equals totalCount, except for a geo table staged without geo_level, which holds every level: then it equals the dataset's geo valuesCount from eurostat_get_dataset_info. Omitted alongside tableName."),
|
|
158
209
|
}),
|
|
159
210
|
enrichment: {
|
|
160
211
|
truncated: z
|
|
@@ -164,11 +215,11 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
164
215
|
nextCursor: z
|
|
165
216
|
.string()
|
|
166
217
|
.optional()
|
|
167
|
-
.describe("Opaque cursor for the next page. Pass it back as cursor with dataset_code, dimension, geo_level and
|
|
218
|
+
.describe("Opaque cursor for the next page. Pass it back as cursor with dataset_code, dimension, geo_level, filter and code_prefix unchanged; it resumes after this page's last code. Omitted on the last page."),
|
|
168
219
|
notice: z
|
|
169
220
|
.string()
|
|
170
221
|
.optional()
|
|
171
|
-
.describe('Count-limit clamp disclosure, continuation routes (nextCursor, filter, canvas_id),
|
|
222
|
+
.describe('Count-limit clamp disclosure, continuation routes (nextCursor, filter, canvas_id), an explanation of a filter or code_prefix that matched nothing, or, for a geo table staged without geo_level that holds more rows than the country values listed, its rows per level and the warning that it holds every level.'),
|
|
172
223
|
},
|
|
173
224
|
errors: [
|
|
174
225
|
{
|
|
@@ -192,8 +243,8 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
192
243
|
{
|
|
193
244
|
reason: 'invalid_cursor',
|
|
194
245
|
code: JsonRpcErrorCode.InvalidParams,
|
|
195
|
-
when: 'The cursor is malformed, was issued for a different dataset_code, dimension, geo_level or
|
|
196
|
-
recovery: 'Call again without cursor, keeping dataset_code, dimension, geo_level and
|
|
246
|
+
when: 'The cursor is malformed, was issued for a different dataset_code, dimension, geo_level, filter or code_prefix, or resumes after a code the list no longer holds.',
|
|
247
|
+
recovery: 'Call again without cursor, keeping dataset_code, dimension, geo_level, filter and code_prefix, then page with the nextCursor that call returns.',
|
|
197
248
|
},
|
|
198
249
|
{
|
|
199
250
|
reason: 'upstream_fault',
|
|
@@ -227,10 +278,13 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
227
278
|
*/
|
|
228
279
|
const tokens = input.filter ? filterTokens(input.filter) : [];
|
|
229
280
|
const filtered = tokens.length > 0;
|
|
281
|
+
const prefix = input.code_prefix ? foldCodePrefix(input.code_prefix) : '';
|
|
282
|
+
const narrowed = filtered || prefix !== '';
|
|
230
283
|
const binding = {
|
|
231
284
|
dataset: input.dataset_code.toLowerCase(),
|
|
232
285
|
dimension: input.dimension,
|
|
233
286
|
filter: [...tokens].sort().join(' '),
|
|
287
|
+
prefix,
|
|
234
288
|
};
|
|
235
289
|
const resume = input.cursor ? readCursor(input.cursor, binding, ctx) : undefined;
|
|
236
290
|
if (input.cursor && !resume)
|
|
@@ -298,11 +352,12 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
298
352
|
* Staging needs a caller-supplied canvas: without canvas_id there is nothing
|
|
299
353
|
* to acquire, so a plain lookup never takes a canvas slot. An empty list
|
|
300
354
|
* stages nothing rather than a 0-row table. The table is written from the
|
|
301
|
-
*
|
|
355
|
+
* dimension's whole list, narrowed only by an explicit geo_level: filter,
|
|
356
|
+
* limit, cursor and the inline country default shape the page alone.
|
|
302
357
|
*/
|
|
303
358
|
const canvas = input.canvas_id ? getCanvas() : undefined;
|
|
304
359
|
let staged;
|
|
305
|
-
if (canvas && result.
|
|
360
|
+
if (canvas && result.listedValues.length > 0) {
|
|
306
361
|
// Re-thrown so the declared recovery replaces the canvas service's generic one.
|
|
307
362
|
const instance = await acquireCanvas(canvas, input.canvas_id, ctx).catch((err) => {
|
|
308
363
|
if (isCanvasFailure(err, 'canvas_not_found')) {
|
|
@@ -310,8 +365,8 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
310
365
|
}
|
|
311
366
|
throw err;
|
|
312
367
|
});
|
|
313
|
-
const handle = await instance.registerTable(newTableName(), result.
|
|
314
|
-
schema: VALUE_TABLE_SCHEMA,
|
|
368
|
+
const handle = await instance.registerTable(newTableName(), result.listedValues, {
|
|
369
|
+
schema: result.geoLevel ? GEO_VALUE_TABLE_SCHEMA : VALUE_TABLE_SCHEMA,
|
|
315
370
|
signal: ctx.signal,
|
|
316
371
|
});
|
|
317
372
|
staged = {
|
|
@@ -320,7 +375,17 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
320
375
|
tableName: handle.tableName,
|
|
321
376
|
};
|
|
322
377
|
}
|
|
323
|
-
|
|
378
|
+
/**
|
|
379
|
+
* A geo table staged without geo_level that holds more rows than the country
|
|
380
|
+
* default lists holds other levels, so a JOIN on it stops acting as the country
|
|
381
|
+
* filter the inline default suggests: said on every such call, whatever page it
|
|
382
|
+
* returns, and never for a list that holds countries alone.
|
|
383
|
+
*/
|
|
384
|
+
const everyLevelNotice = staged && result.geoLevel && !input.geo_level && staged.stagedRowCount > result.totalCount
|
|
385
|
+
? `Table \`${staged.tableName}\` on canvas \`${staged.canvasId}\` holds every "geo" level "${input.dataset_code}" lists, not only the ${result.geoLevel} values listed here — ${levelCounts(result.listedValues)} — with each code's level in a level column (NULL for a code with no NUTS level). Aggregates and regions overlap the countries they contain, so a JOIN on this table keeps them beside the countries: filter g.level (e.g. WHERE g.level = 'country') before summing or averaging, or pass geo_level to stage one level. Search or join it with eurostat_dataframe_query.`
|
|
386
|
+
: undefined;
|
|
387
|
+
const prefixed = prefix ? matchCodePrefix(result.values, prefix) : result.values;
|
|
388
|
+
const matched = filtered ? matchValues(prefixed, tokens) : prefixed;
|
|
324
389
|
const geoLevel = result.geoLevel ?? null;
|
|
325
390
|
/**
|
|
326
391
|
* Where this page starts: after the code the cursor names, wherever that code
|
|
@@ -335,25 +400,34 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
335
400
|
throw ctx.fail('invalid_cursor', UNUSABLE_CURSOR);
|
|
336
401
|
const anchor = matched.findIndex(({ code }) => code === resume.after);
|
|
337
402
|
if (anchor < 0) {
|
|
338
|
-
throw ctx.fail('invalid_cursor', `Unusable cursor: it resumes after "${resume.after}", which the "${input.dimension}" values of "${input.dataset_code}" no longer list${
|
|
403
|
+
throw ctx.fail('invalid_cursor', `Unusable cursor: it resumes after "${resume.after}", which the "${input.dimension}" values of "${input.dataset_code}" no longer list${narrowed ? ` under this ${[filtered && 'filter', prefix && 'code_prefix'].filter(Boolean).join(' and ')}` : ''}.`);
|
|
339
404
|
}
|
|
340
405
|
start = anchor + 1;
|
|
341
406
|
}
|
|
342
407
|
const filterEcho = input.filter?.trim().replace(/\s+/g, ' ');
|
|
343
|
-
const
|
|
344
|
-
|
|
408
|
+
const prefixEcho = input.code_prefix?.trim();
|
|
409
|
+
const matching = filtered ? ` matching filter "${filterEcho}"` : '';
|
|
410
|
+
const pool = narrowed
|
|
411
|
+
? `${formatCount(matched.length)} values${prefix ? ` with code prefix "${prefixEcho}"` : ''}${matching}`
|
|
345
412
|
: `${formatCount(matched.length)} "${input.dimension}" values`;
|
|
346
413
|
const canvasRoute = staged
|
|
347
|
-
?
|
|
414
|
+
? everyLevelNotice
|
|
415
|
+
? ''
|
|
416
|
+
: ` Every one of the ${formatCount(staged.stagedRowCount)} values is staged as table \`${staged.tableName}\` on canvas \`${staged.canvasId}\` — search it with eurostat_dataframe_query (e.g. \`SELECT code, label FROM ${staged.tableName} WHERE label ILIKE '%term%'\`).`
|
|
348
417
|
: getCanvas()
|
|
349
|
-
? ` Or, on a call without cursor, pass canvas_id — the canvasId of a eurostat_query_dataset or eurostat_download_dataset response — to stage all ${
|
|
418
|
+
? ` Or, on a call without cursor, pass canvas_id — the canvasId of a eurostat_query_dataset or eurostat_download_dataset response — to stage all ${result.geoLevel
|
|
419
|
+
? `${formatCount(result.listedValues.length)} "geo" values${input.geo_level ? ` at geo_level "${input.geo_level}"` : ', every level,'} as a code/label/level table`
|
|
420
|
+
: `${formatCount(result.listedValues.length)} as a code/label table`} to search with eurostat_dataframe_query.`
|
|
350
421
|
: '';
|
|
351
422
|
const page = (k) => {
|
|
352
423
|
const values = matched.slice(start, start + k);
|
|
353
424
|
const output = {
|
|
354
|
-
|
|
425
|
+
dimensionCode: result.dimensionCode,
|
|
426
|
+
dimensionLabel: result.dimensionLabel,
|
|
427
|
+
...(result.geoLevel && { geoLevel: result.geoLevel }),
|
|
355
428
|
values,
|
|
356
|
-
|
|
429
|
+
totalCount: result.totalCount,
|
|
430
|
+
...(narrowed && { matchCount: matched.length }),
|
|
357
431
|
...staged,
|
|
358
432
|
};
|
|
359
433
|
if (start + k < matched.length) {
|
|
@@ -373,31 +447,43 @@ export const createEurostatGetDimensionValues = (clampLimits) => tool('eurostat_
|
|
|
373
447
|
},
|
|
374
448
|
};
|
|
375
449
|
}
|
|
376
|
-
// An empty page needs saying only when a cursor or
|
|
377
|
-
if (values.length > 0 || !(input.cursor ||
|
|
450
|
+
// An empty page needs saying only when a cursor, filter or code_prefix emptied it.
|
|
451
|
+
if (values.length > 0 || !(input.cursor || narrowed))
|
|
378
452
|
return { output, enrichment: {} };
|
|
379
|
-
return {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
453
|
+
return { output, enrichment: { notice: emptyPageNotice() } };
|
|
454
|
+
};
|
|
455
|
+
const emptyPageNotice = () => {
|
|
456
|
+
if (input.cursor) {
|
|
457
|
+
return `No "${input.dimension}" values of "${input.dataset_code}" follow the code this cursor resumes after: the list ends there.`;
|
|
458
|
+
}
|
|
459
|
+
const atLevel = result.geoLevel ? ` at geo_level "${result.geoLevel}"` : '';
|
|
460
|
+
const searchStaged = (table) => `search all ${formatCount(table.stagedRowCount)} values, staged as table \`${table.tableName}\` on canvas \`${table.canvasId}\`, with eurostat_dataframe_query`;
|
|
461
|
+
if (!prefix) {
|
|
462
|
+
const filterRoute = result.geoLevel
|
|
463
|
+
? ` filter applies within geo_level "${result.geoLevel}": pass another geo_level to search the codes of that level.`
|
|
464
|
+
: '';
|
|
465
|
+
return `No "${input.dimension}" value${atLevel} of "${input.dataset_code}" matched filter "${filterEcho}": every word must appear in a value's code or label, in any order, ignoring case and accents.${filterRoute} Drop or shorten a word, or ${staged
|
|
466
|
+
? `${searchStaged(staged)} (e.g. \`SELECT code, label FROM ${staged.tableName} WHERE label ILIKE '%term%'\`).`
|
|
467
|
+
: `call without filter to page through all ${formatCount(result.totalCount)}.`}`;
|
|
468
|
+
}
|
|
469
|
+
const levelRoute = result.geoLevel
|
|
470
|
+
? ` code_prefix applies within geo_level "${result.geoLevel}": pass another geo_level to list the codes of that level.`
|
|
471
|
+
: '';
|
|
472
|
+
return `No "${input.dimension}" value${atLevel} of "${input.dataset_code}" has a code starting with code_prefix "${prefixEcho}"${filtered ? ` and matches filter "${filterEcho}"` : ''}, ignoring case.${dottedPrefixAdvice(input.dataset_code, prefixEcho)}${levelRoute} Shorten or drop code_prefix${filtered ? ' or filter' : ''}, or ${staged
|
|
473
|
+
? `${searchStaged(staged)}.`
|
|
474
|
+
: `call without ${filtered ? 'them' : 'it'} to page through all ${formatCount(result.totalCount)}.`}`;
|
|
389
475
|
};
|
|
390
476
|
const { output, enrichment } = page(Math.min(pageLimit, matched.length - start));
|
|
391
477
|
const { notice, ...fields } = enrichment;
|
|
392
478
|
ctx.enrich(fields);
|
|
393
|
-
const notices = [applied.notice, notice].filter(Boolean);
|
|
479
|
+
const notices = [applied.notice, notice, everyLevelNotice].filter(Boolean);
|
|
394
480
|
if (notices.length > 0)
|
|
395
481
|
ctx.enrich.notice(notices.join(' '));
|
|
396
482
|
ctx.log.info('Dimension values fetched', {
|
|
397
483
|
datasetCode: input.dataset_code,
|
|
398
484
|
dimension: input.dimension,
|
|
399
485
|
totalCount: result.totalCount,
|
|
400
|
-
...(
|
|
486
|
+
...(narrowed && { matchCount: matched.length }),
|
|
401
487
|
shown: output.values.length,
|
|
402
488
|
hasMore: enrichment.truncated === true,
|
|
403
489
|
...(staged && { canvasId: staged.canvasId, tableName: staged.tableName }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-get-dimension-values.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eurostat-get-dimension-values.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ export declare const createEurostatQueryDataset: (clampLimits: boolean) => impor
|
|
|
55
55
|
missingObsCount: z.ZodNumber;
|
|
56
56
|
absentCellCount: z.ZodNumber;
|
|
57
57
|
unmatchedValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
58
|
+
emptyValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
58
59
|
}, z.core.$strip>, readonly [{
|
|
59
60
|
readonly reason: "not_found";
|
|
60
61
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -63,8 +64,8 @@ export declare const createEurostatQueryDataset: (clampLimits: boolean) => impor
|
|
|
63
64
|
}, {
|
|
64
65
|
readonly reason: "no_results";
|
|
65
66
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
66
|
-
readonly when: "The query matched no observation cells — including Eurostat HTTP-200 error id 100. The dataset is valid, but no cell carries a value or a status flag for that filter combination and period range. When Eurostat returns the empty table, the error names the filter values that matched nothing (data.unmatchedValues), the selected periods that carry no value (data.matchedPeriods, the newest 24, with data.matchedPeriodCount counting all of them), and, for a range that selected no period, whether it misses the coverage, holds no whole period, or holds no published one. When error id 100 answers a query that set geo_level, the error names geo_level as the likely cause, and lists the dataset's dimensions when it has no \"geo\" dimension.";
|
|
67
|
-
readonly recovery: "
|
|
67
|
+
readonly when: "The query matched no observation cells — including Eurostat HTTP-200 error id 100. The dataset is valid, but no cell carries a value or a status flag for that filter combination and period range. When Eurostat returns the empty table, the error names the filter values that matched nothing (data.unmatchedValues) and, when the values of the dataset are read within 5 s, the codes and labels of each such dimension holding at most 25, or the total and a value search for each value sent otherwise (data.validValues), the selected periods that carry no value (data.matchedPeriods, the newest 24, with data.matchedPeriodCount counting all of them), and, for a range that selected no period, whether it misses the coverage, holds no whole period, or holds no published one. When error id 100 answers a query that set geo_level, the error names geo_level as the likely cause, and lists the dataset's dimensions when it has no \"geo\" dimension.";
|
|
68
|
+
readonly recovery: "Replace an unmatched value with a code the error lists, or verify dimension values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage, holding a whole period; an unmatched value, an out-of-coverage range and a range inside one period all return no data rather than an error. When the error names geo_level, drop it instead, and filter the \"geo\" codes the query then returns, or the dimension that holds geography.";
|
|
68
69
|
}, {
|
|
69
70
|
readonly reason: "invalid_period";
|
|
70
71
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -79,8 +80,8 @@ export declare const createEurostatQueryDataset: (clampLimits: boolean) => impor
|
|
|
79
80
|
}, {
|
|
80
81
|
readonly reason: "invalid_dimension";
|
|
81
82
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
82
|
-
readonly when: "A dimension
|
|
83
|
-
readonly recovery: "
|
|
83
|
+
readonly when: "A filter key is not a dimension of this dataset; the error names every such key and lists the dataset's dimensions in key order (HTTP 400, Eurostat error id 150), or only the one key Eurostat names when the dataset's structure cannot be read. A filter key that names a request control (lang, format, geoLevel, sinceTimePeriod, untilTimePeriod, lastTimePeriod, in any case) rather than a dimension fails here too, rejected before any request and naming the input that sets it.";
|
|
84
|
+
readonly recovery: "Rename each filter key the error names to one of the dimensions it lists. When it lists none, eurostat_get_dataset_info lists them. Set a request control through its own input (lang, geo_level, since_period, until_period, last_n_periods), not filters.";
|
|
84
85
|
}, {
|
|
85
86
|
readonly reason: "conflicting_params";
|
|
86
87
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -96,6 +97,11 @@ export declare const createEurostatQueryDataset: (clampLimits: boolean) => impor
|
|
|
96
97
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
97
98
|
readonly when: "The Statistics API answered HTTP 5xx or could not be reached on every attempt of the retry loop. The error is marked retryable, except for HTTP 501, which is marked not retryable.";
|
|
98
99
|
readonly recovery: "The failure is on Eurostat's side, not in the request: when the error is marked retryable, call again in a few minutes.";
|
|
100
|
+
}, {
|
|
101
|
+
readonly reason: "retry_deadline_exceeded";
|
|
102
|
+
readonly code: JsonRpcErrorCode.Timeout;
|
|
103
|
+
readonly when: "The Statistics API did not complete the query within the server's request deadline (30 s by default), every attempt and backoff included: Eurostat can take longer than that to prepare an uncached extraction, or to send a large answer.";
|
|
104
|
+
readonly recovery: "Repeat the call in a minute or two when Eurostat had not started answering, read the same slice with eurostat_download_dataset on a deployment with a dataframe canvas, or filter the dimensions the query left open.";
|
|
99
105
|
}], {
|
|
100
106
|
readonly appliedFilters: z.ZodObject<{
|
|
101
107
|
filters: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
|
|
@@ -157,6 +163,7 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
157
163
|
missingObsCount: z.ZodNumber;
|
|
158
164
|
absentCellCount: z.ZodNumber;
|
|
159
165
|
unmatchedValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
166
|
+
emptyValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
160
167
|
}, z.core.$strip>, readonly [{
|
|
161
168
|
readonly reason: "not_found";
|
|
162
169
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -165,8 +172,8 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
165
172
|
}, {
|
|
166
173
|
readonly reason: "no_results";
|
|
167
174
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
168
|
-
readonly when: "The query matched no observation cells — including Eurostat HTTP-200 error id 100. The dataset is valid, but no cell carries a value or a status flag for that filter combination and period range. When Eurostat returns the empty table, the error names the filter values that matched nothing (data.unmatchedValues), the selected periods that carry no value (data.matchedPeriods, the newest 24, with data.matchedPeriodCount counting all of them), and, for a range that selected no period, whether it misses the coverage, holds no whole period, or holds no published one. When error id 100 answers a query that set geo_level, the error names geo_level as the likely cause, and lists the dataset's dimensions when it has no \"geo\" dimension.";
|
|
169
|
-
readonly recovery: "
|
|
175
|
+
readonly when: "The query matched no observation cells — including Eurostat HTTP-200 error id 100. The dataset is valid, but no cell carries a value or a status flag for that filter combination and period range. When Eurostat returns the empty table, the error names the filter values that matched nothing (data.unmatchedValues) and, when the values of the dataset are read within 5 s, the codes and labels of each such dimension holding at most 25, or the total and a value search for each value sent otherwise (data.validValues), the selected periods that carry no value (data.matchedPeriods, the newest 24, with data.matchedPeriodCount counting all of them), and, for a range that selected no period, whether it misses the coverage, holds no whole period, or holds no published one. When error id 100 answers a query that set geo_level, the error names geo_level as the likely cause, and lists the dataset's dimensions when it has no \"geo\" dimension.";
|
|
176
|
+
readonly recovery: "Replace an unmatched value with a code the error lists, or verify dimension values with eurostat_get_dimension_values, and keep the period range inside the dataset coverage, holding a whole period; an unmatched value, an out-of-coverage range and a range inside one period all return no data rather than an error. When the error names geo_level, drop it instead, and filter the \"geo\" codes the query then returns, or the dimension that holds geography.";
|
|
170
177
|
}, {
|
|
171
178
|
readonly reason: "invalid_period";
|
|
172
179
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -181,8 +188,8 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
181
188
|
}, {
|
|
182
189
|
readonly reason: "invalid_dimension";
|
|
183
190
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
184
|
-
readonly when: "A dimension
|
|
185
|
-
readonly recovery: "
|
|
191
|
+
readonly when: "A filter key is not a dimension of this dataset; the error names every such key and lists the dataset's dimensions in key order (HTTP 400, Eurostat error id 150), or only the one key Eurostat names when the dataset's structure cannot be read. A filter key that names a request control (lang, format, geoLevel, sinceTimePeriod, untilTimePeriod, lastTimePeriod, in any case) rather than a dimension fails here too, rejected before any request and naming the input that sets it.";
|
|
192
|
+
readonly recovery: "Rename each filter key the error names to one of the dimensions it lists. When it lists none, eurostat_get_dataset_info lists them. Set a request control through its own input (lang, geo_level, since_period, until_period, last_n_periods), not filters.";
|
|
186
193
|
}, {
|
|
187
194
|
readonly reason: "conflicting_params";
|
|
188
195
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -198,6 +205,11 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
198
205
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
199
206
|
readonly when: "The Statistics API answered HTTP 5xx or could not be reached on every attempt of the retry loop. The error is marked retryable, except for HTTP 501, which is marked not retryable.";
|
|
200
207
|
readonly recovery: "The failure is on Eurostat's side, not in the request: when the error is marked retryable, call again in a few minutes.";
|
|
208
|
+
}, {
|
|
209
|
+
readonly reason: "retry_deadline_exceeded";
|
|
210
|
+
readonly code: JsonRpcErrorCode.Timeout;
|
|
211
|
+
readonly when: "The Statistics API did not complete the query within the server's request deadline (30 s by default), every attempt and backoff included: Eurostat can take longer than that to prepare an uncached extraction, or to send a large answer.";
|
|
212
|
+
readonly recovery: "Repeat the call in a minute or two when Eurostat had not started answering, read the same slice with eurostat_download_dataset on a deployment with a dataframe canvas, or filter the dimensions the query left open.";
|
|
201
213
|
}], {
|
|
202
214
|
readonly appliedFilters: z.ZodObject<{
|
|
203
215
|
filters: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-query-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-query-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eurostat-query-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-query-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAyDhF,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,gBAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwpB3D,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmC,CAAC"}
|