@cyanheads/eurostat-mcp-server 0.7.0 → 0.8.1
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 +1 -1
- package/CLAUDE.md +1 -1
- package/Dockerfile +2 -2
- package/README.md +28 -13
- package/changelog/0.8.x/0.8.0.md +30 -0
- package/changelog/0.8.x/0.8.1.md +11 -0
- package/dist/config/server-config.d.ts +2 -0
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +13 -0
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js +4 -2
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +4 -4
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +4 -4
- 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 +8 -18
- 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 +102 -51
- 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.d.ts +3 -4
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +8 -9
- 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 +21 -7
- 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 +115 -19
- 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 +3 -2
- 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 +27 -10
- 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 +2 -2
- 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 +19 -6
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
- package/dist/mcp-server/tools/narrowing-advice.d.ts +22 -0
- package/dist/mcp-server/tools/narrowing-advice.d.ts.map +1 -0
- package/dist/mcp-server/tools/narrowing-advice.js +44 -0
- package/dist/mcp-server/tools/narrowing-advice.js.map +1 -0
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +9 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js +45 -10
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
- package/dist/services/eurostat-bulk/types.d.ts +5 -0
- package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +47 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +188 -13
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
- package/dist/services/eurostat-codelists.d.ts +20 -0
- package/dist/services/eurostat-codelists.d.ts.map +1 -1
- package/dist/services/eurostat-codelists.js +25 -0
- package/dist/services/eurostat-codelists.js.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts +63 -8
- package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.js +228 -48
- package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.d.ts +26 -0
- package/dist/services/eurostat-data/sdmx-metadata.d.ts.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.js +38 -1
- package/dist/services/eurostat-data/sdmx-metadata.js.map +1 -1
- package/dist/services/eurostat-data/types.d.ts +12 -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-hosts.d.ts +17 -0
- package/dist/services/eurostat-hosts.d.ts.map +1 -0
- package/dist/services/eurostat-hosts.js +23 -0
- package/dist/services/eurostat-hosts.js.map +1 -0
- package/dist/services/shared-load.d.ts +16 -0
- package/dist/services/shared-load.d.ts.map +1 -0
- package/dist/services/shared-load.js +27 -0
- package/dist/services/shared-load.js.map +1 -0
- package/package.json +2 -2
- package/server.json +31 -3
|
@@ -3,15 +3,37 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/eurostat-get-dimension-values.tool
|
|
4
4
|
*/
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
|
+
import { CanvasIdSchema } from '@cyanheads/mcp-ts-core/canvas';
|
|
6
7
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
8
|
+
import { acquireCanvas, getCanvas, newTableName } from '../../../services/canvas-accessor.js';
|
|
7
9
|
import { getEurostatDataService } from '../../../services/eurostat-data/eurostat-data-service.js';
|
|
8
10
|
import { GEO_LEVEL_VALUES } from '../../../services/eurostat-data/types.js';
|
|
11
|
+
/**
|
|
12
|
+
* The staged value list: the same `{code, label}` pairs as the inline `values`,
|
|
13
|
+
* declared rather than sniffed. The service falls back to the code when Eurostat
|
|
14
|
+
* publishes no label, so neither column is ever null.
|
|
15
|
+
*/
|
|
16
|
+
const VALUE_TABLE_SCHEMA = [
|
|
17
|
+
{ name: 'code', type: 'VARCHAR', nullable: false },
|
|
18
|
+
{ name: 'label', type: 'VARCHAR', nullable: false },
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Most values returned inline. Every NUTS level and classification list measured on
|
|
22
|
+
* the main host fits (the largest, NUTS-3 geo, is 1,621); daily time lists (13,900 on
|
|
23
|
+
* ert_bil_eur_d), the largest airport-pair lists (2,383 on avia_par_uk) and the Comext
|
|
24
|
+
* product lists (37,069 CN8 codes on DS-045409, an 11 MB response uncapped) do not.
|
|
25
|
+
* A staged table always holds the whole list.
|
|
26
|
+
*/
|
|
27
|
+
const INLINE_VALUE_CAP = 2_000;
|
|
9
28
|
export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values', {
|
|
10
29
|
title: 'Get Eurostat Dimension Values',
|
|
11
|
-
description:
|
|
30
|
+
description: `List the valid values for a specific dimension in a Eurostat dataset (e.g., all unit codes for nama_10_gdp, all geo codes for a regional dataset). Use this when eurostat_get_dataset_info returns more values than the 10-item sample, or to confirm exact codes before querying. For the "geo" dimension, use geo_level to filter by NUTS hierarchy (country, nuts1, nuts2, nuts3). An invalid code matches nothing: eurostat_query_dataset names it in unmatchedValues, or in its no_results error when the query matched nothing at all, and Eurostat rejects it as a fault on eurostat_download_dataset; use this tool to verify codes first. At most ${INLINE_VALUE_CAP.toLocaleString('en-US')} values come back inline — a longer list, such as the 37,069 CN8 product codes of DS-045409 or a daily time dimension, is cut there and says so. Pass canvas_id to also stage the whole list, whatever its length, as a two-column code/label table on that dataframe canvas: search it with SQL, or join it to a eurostat_download_dataset table, whose columns carry dimension codes only.`,
|
|
12
31
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
13
32
|
input: z.object({
|
|
14
|
-
dataset_code: z
|
|
33
|
+
dataset_code: z
|
|
34
|
+
.string()
|
|
35
|
+
.min(1)
|
|
36
|
+
.describe('Dataset code (e.g., "nama_10_gdp", or "DS-045409" for a Comext collection).'),
|
|
15
37
|
dimension: z
|
|
16
38
|
.string()
|
|
17
39
|
.min(1)
|
|
@@ -20,6 +42,7 @@ export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values',
|
|
|
20
42
|
.enum(GEO_LEVEL_VALUES)
|
|
21
43
|
.optional()
|
|
22
44
|
.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).'),
|
|
45
|
+
canvas_id: CanvasIdSchema.optional().describe('Also stage the values on this dataframe canvas as a table with two columns, code and label, holding every value the dimension lists — past the inline cap too — at the geo_level requested, country when it is omitted. 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). Omit to return the values inline only: this tool never starts a canvas. Ignored on deployments without a dataframe canvas.'),
|
|
23
46
|
}),
|
|
24
47
|
output: z.object({
|
|
25
48
|
dimensionCode: z.string().describe('The dimension code that was queried.'),
|
|
@@ -37,11 +60,35 @@ export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values',
|
|
|
37
60
|
label: z.string().describe('Human-readable label for this value.'),
|
|
38
61
|
})
|
|
39
62
|
.describe('A dimension value code and label pair.'))
|
|
40
|
-
.describe(
|
|
63
|
+
.describe(`Dataset-available values for this dimension, in Eurostat's order — for geo, the subset at geoLevel. Holds every value up to ${INLINE_VALUE_CAP.toLocaleString('en-US')}; past that, the first ${INLINE_VALUE_CAP.toLocaleString('en-US')}, with truncated set and the whole list on the canvas table when canvas_id was passed.`),
|
|
41
64
|
totalCount: z
|
|
42
65
|
.number()
|
|
43
|
-
.describe('
|
|
66
|
+
.describe('Number of distinct values the dimension lists, after geoLevel filtering for geo — all of them, including any past the inline cap.'),
|
|
67
|
+
canvasId: z
|
|
68
|
+
.string()
|
|
69
|
+
.optional()
|
|
70
|
+
.describe('Dataframe canvas the values were staged on — the canvas_id supplied. Omitted when nothing was staged: canvas_id was omitted, this deployment runs without a dataframe canvas, or the dimension lists no values.'),
|
|
71
|
+
tableName: z
|
|
72
|
+
.string()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Canvas table holding every value as two VARCHAR columns, code and label. Call eurostat_dataframe_describe with canvasId first to confirm it, then join it in eurostat_dataframe_query. Omitted alongside canvasId.'),
|
|
75
|
+
stagedRowCount: z
|
|
76
|
+
.number()
|
|
77
|
+
.optional()
|
|
78
|
+
.describe('Rows written to the canvas table. Equals totalCount. Omitted alongside tableName.'),
|
|
44
79
|
}),
|
|
80
|
+
enrichment: {
|
|
81
|
+
truncated: z
|
|
82
|
+
.boolean()
|
|
83
|
+
.optional()
|
|
84
|
+
.describe('True when the dimension lists more values than the inline cap and values holds only the first of them. Omitted when values holds every one.'),
|
|
85
|
+
shown: z.number().optional().describe('Values returned inline. Present alongside truncated.'),
|
|
86
|
+
cap: z.number().optional().describe('The inline cap applied. Present alongside truncated.'),
|
|
87
|
+
notice: z
|
|
88
|
+
.string()
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('Where the values past the inline cap are: the staged table when canvas_id was passed, or how to stage them. Present alongside truncated.'),
|
|
91
|
+
},
|
|
45
92
|
errors: [
|
|
46
93
|
{
|
|
47
94
|
reason: 'not_found',
|
|
@@ -49,13 +96,6 @@ export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values',
|
|
|
49
96
|
when: 'The dataset code or dimension code does not exist.',
|
|
50
97
|
recovery: 'Verify the dataset code with eurostat_search_datasets and the dimension code with eurostat_get_dataset_info.',
|
|
51
98
|
},
|
|
52
|
-
{
|
|
53
|
-
reason: 'async_response',
|
|
54
|
-
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
55
|
-
when: 'Eurostat returned an asynchronous-response condition.',
|
|
56
|
-
retryable: false,
|
|
57
|
-
recovery: 'Use eurostat_get_dataset_info for a sampled value set, or narrow the request with geo_level for the geo dimension.',
|
|
58
|
-
},
|
|
59
99
|
{
|
|
60
100
|
reason: 'no_results',
|
|
61
101
|
code: JsonRpcErrorCode.NotFound,
|
|
@@ -68,6 +108,19 @@ export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values',
|
|
|
68
108
|
when: 'geo_level was combined with a dimension other than "geo", where it has no effect.',
|
|
69
109
|
recovery: 'Drop geo_level to list that dimension, or set dimension to "geo" to filter by NUTS level.',
|
|
70
110
|
},
|
|
111
|
+
{
|
|
112
|
+
reason: 'upstream_fault',
|
|
113
|
+
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
114
|
+
when: "Eurostat returned a dataset structure or content constraint this server cannot read: malformed, truncated, not XML, or missing the requested dataset's dataflow.",
|
|
115
|
+
recovery: 'Retry in a few minutes, since a failed structure read is not cached. If it fails the same way, filter eurostat_query_dataset on the code in question: a code the dataset lacks comes back in unmatchedValues.',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
reason: 'canvas_not_found',
|
|
119
|
+
code: JsonRpcErrorCode.NotFound,
|
|
120
|
+
when: 'A canvas_id was supplied for staging but is unknown or its lifetime has elapsed.',
|
|
121
|
+
recovery: 'Pass the canvasId a recent eurostat_download_dataset or eurostat_query_dataset response returned, or omit canvas_id to list the values inline only.',
|
|
122
|
+
thrownBy: 'service',
|
|
123
|
+
},
|
|
71
124
|
],
|
|
72
125
|
async handler(input, ctx) {
|
|
73
126
|
const svc = getEurostatDataService();
|
|
@@ -92,34 +145,77 @@ export const eurostatGetDimensionValues = tool('eurostat_get_dimension_values',
|
|
|
92
145
|
},
|
|
93
146
|
});
|
|
94
147
|
}
|
|
95
|
-
if (reason === '
|
|
96
|
-
throw ctx.fail('
|
|
148
|
+
if (reason === 'conflicting_params') {
|
|
149
|
+
throw ctx.fail('conflicting_params', err.message, {
|
|
97
150
|
recovery: {
|
|
98
|
-
hint: `
|
|
151
|
+
hint: `geo_level applies only to the "geo" dimension and had no effect on "${input.dimension}". Re-send without geo_level, or set dimension to "geo".`,
|
|
99
152
|
},
|
|
100
153
|
});
|
|
101
154
|
}
|
|
102
|
-
if (reason === '
|
|
103
|
-
throw ctx.fail('
|
|
155
|
+
if (reason === 'upstream_fault') {
|
|
156
|
+
throw ctx.fail('upstream_fault', err.message, {
|
|
104
157
|
recovery: {
|
|
105
|
-
hint: `
|
|
158
|
+
hint: `Eurostat returned a structure this server cannot read, so the "${input.dimension}" values of "${input.dataset_code}" cannot be listed. A failed read is not cached, so retry in a few minutes. If it fails the same way, filter eurostat_query_dataset on the code in question: a code the dataset lacks comes back in unmatchedValues.`,
|
|
106
159
|
},
|
|
107
160
|
});
|
|
108
161
|
}
|
|
109
162
|
throw err;
|
|
110
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Staging needs a caller-supplied canvas: without canvas_id there is nothing
|
|
166
|
+
* to acquire, so a plain lookup never takes a canvas slot. An empty list
|
|
167
|
+
* stages nothing rather than a 0-row table. The table is written from the
|
|
168
|
+
* service's whole value list, whatever bound applies to the inline array.
|
|
169
|
+
*/
|
|
170
|
+
const canvas = input.canvas_id ? getCanvas() : undefined;
|
|
171
|
+
let staged;
|
|
172
|
+
if (canvas && result.values.length > 0) {
|
|
173
|
+
const instance = await acquireCanvas(canvas, input.canvas_id, ctx);
|
|
174
|
+
const handle = await instance.registerTable(newTableName(), result.values, {
|
|
175
|
+
schema: VALUE_TABLE_SCHEMA,
|
|
176
|
+
signal: ctx.signal,
|
|
177
|
+
});
|
|
178
|
+
staged = {
|
|
179
|
+
canvasId: instance.canvasId,
|
|
180
|
+
stagedRowCount: handle.rowCount,
|
|
181
|
+
tableName: handle.tableName,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
const values = result.values.slice(0, INLINE_VALUE_CAP);
|
|
185
|
+
if (values.length < result.totalCount) {
|
|
186
|
+
const shown = `The first ${values.length.toLocaleString('en-US')} of ${result.totalCount.toLocaleString('en-US')} "${input.dimension}" values of "${input.dataset_code}" are inline, in Eurostat's order.`;
|
|
187
|
+
ctx.enrich.truncated({
|
|
188
|
+
shown: values.length,
|
|
189
|
+
cap: INLINE_VALUE_CAP,
|
|
190
|
+
guidance: staged
|
|
191
|
+
? `${shown} All ${staged.stagedRowCount.toLocaleString('en-US')} are staged as table "${staged.tableName}" on canvas "${staged.canvasId}" — search them with eurostat_dataframe_query (e.g. SELECT code, label FROM ${staged.tableName} WHERE label ILIKE '%term%').`
|
|
192
|
+
: getCanvas()
|
|
193
|
+
? `${shown} To reach the rest, call again with canvas_id set to the canvasId of a eurostat_query_dataset or eurostat_download_dataset response: all ${result.totalCount.toLocaleString('en-US')} are then staged as a code/label table to search with eurostat_dataframe_query.`
|
|
194
|
+
: `${shown} This deployment runs without a dataframe canvas, so the other ${(result.totalCount - values.length).toLocaleString('en-US')} cannot be listed; to check one code, filter eurostat_query_dataset on it — a code the dataset does not have comes back in unmatchedValues.`,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
111
197
|
ctx.log.info('Dimension values fetched', {
|
|
112
198
|
datasetCode: input.dataset_code,
|
|
113
199
|
dimension: input.dimension,
|
|
114
200
|
totalCount: result.totalCount,
|
|
201
|
+
shown: values.length,
|
|
202
|
+
...(staged && { canvasId: staged.canvasId, tableName: staged.tableName }),
|
|
115
203
|
});
|
|
116
|
-
return result;
|
|
204
|
+
return { ...result, values, ...staged };
|
|
117
205
|
},
|
|
118
206
|
format: (result) => {
|
|
119
207
|
const lines = [
|
|
120
208
|
`**Dimension:** ${result.dimensionLabel} (\`${result.dimensionCode}\`)`,
|
|
121
209
|
...(result.geoLevel ? [`**Geo level:** \`${result.geoLevel}\``] : []),
|
|
122
|
-
`**Total values:** ${result.totalCount}
|
|
210
|
+
`**Total values:** ${result.totalCount}${result.values.length < result.totalCount
|
|
211
|
+
? ` — the first ${result.values.length} are listed below`
|
|
212
|
+
: ''}`,
|
|
213
|
+
...(result.tableName
|
|
214
|
+
? [
|
|
215
|
+
`**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`,
|
|
216
|
+
]
|
|
217
|
+
: []),
|
|
218
|
+
'',
|
|
123
219
|
];
|
|
124
220
|
for (const v of result.values) {
|
|
125
221
|
lines.push(`- \`${v.code}\` — ${v.label}`);
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,+BAA+B,EAAE;IAC9E,KAAK,EAAE,+BAA+B;IACtC,WAAW,
|
|
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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"}
|
|
@@ -31,6 +31,7 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
31
31
|
observations: z.ZodArray<z.ZodObject<{
|
|
32
32
|
dimensions: z.ZodObject<{}, z.core.$loose>;
|
|
33
33
|
value: z.ZodNullable<z.ZodNumber>;
|
|
34
|
+
valueText: z.ZodOptional<z.ZodString>;
|
|
34
35
|
status: z.ZodOptional<z.ZodObject<{
|
|
35
36
|
code: z.ZodString;
|
|
36
37
|
label: z.ZodString;
|
|
@@ -69,9 +70,9 @@ export declare const eurostatQueryDataset: import("@cyanheads/mcp-ts-core").Tool
|
|
|
69
70
|
}, {
|
|
70
71
|
readonly reason: "async_response";
|
|
71
72
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
72
|
-
readonly when: "Eurostat returned an async warning or HTTP-413 error array — the query matched too many observations.";
|
|
73
|
+
readonly when: "Eurostat returned an async warning or an HTTP-413 error array — the query matched too many observations, including an EXTRACTION_TOO_BIG refusal past Eurostat's 5,000,000-row limit.";
|
|
73
74
|
readonly retryable: false;
|
|
74
|
-
readonly recovery: "
|
|
75
|
+
readonly recovery: "Filter on the dataset dimensions this query left unfiltered, or narrow the period range, then retry.";
|
|
75
76
|
}, {
|
|
76
77
|
readonly reason: "invalid_dimension";
|
|
77
78
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
@@ -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,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,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,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AA0BhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAue/B,CAAC"}
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { CanvasIdSchema } from '@cyanheads/mcp-ts-core/canvas';
|
|
7
7
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
8
|
+
import { dimensionsToNarrow, narrowingAdvice } from '../narrowing-advice.js';
|
|
8
9
|
import { acquireCanvas, getCanvas, newTableName } from '../../../services/canvas-accessor.js';
|
|
9
10
|
import { getEurostatDataService, observationRowSchema, } from '../../../services/eurostat-data/eurostat-data-service.js';
|
|
10
11
|
import { GEO_LEVEL_VALUES, OBS_CAP, } from '../../../services/eurostat-data/types.js';
|
|
12
|
+
import { isComextDataset } from '../../../services/eurostat-hosts.js';
|
|
11
13
|
import { PERIOD_FORMS, resolvePeriods } from '../../../services/eurostat-periods.js';
|
|
12
14
|
/** Upper bound on the deterministic observation prefix returned inline. */
|
|
13
15
|
const PREVIEW_MAX = 500;
|
|
@@ -22,7 +24,10 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
22
24
|
description: 'Fetch statistical data from a Eurostat dataset with dimension filters. Returns a deterministic inline prefix of decoded observations with dimension codes and labels, numeric values, an OBS_FLAG status (e.g., "p" = provisional, "e" = estimated) and a separate CONF_STATUS confidentiality marker (e.g., "C" = confidential, which is usually why a value is null). preview_limit controls only that prefix; filters and period controls reduce the matched result itself. Call eurostat_get_dataset_info first to discover valid dimension codes and values. Apply filters to keep the result set manageable — large unfiltered queries may trigger an async response error. Use filters.geo for specific country/region codes, or geo_level for NUTS hierarchy filtering (mutually exclusive). Use last_n_periods for the N most recent periods without knowing the end date. Matches above 5,000 observations are staged whole when this deployment runs a dataframe canvas: call eurostat_dataframe_describe first, then eurostat_dataframe_query. Matches at or below 5,000 are never staged. When the target is a whole dataset rather than a slice, eurostat_download_dataset reads the SDMX bulk endpoint instead and is the cheaper route.',
|
|
23
25
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
24
26
|
input: z.object({
|
|
25
|
-
dataset_code: z
|
|
27
|
+
dataset_code: z
|
|
28
|
+
.string()
|
|
29
|
+
.min(1)
|
|
30
|
+
.describe('Dataset code (e.g., "nama_10_gdp"). Required. A DS-* code — Comext detailed trade or PRODCOM, in any case — is served by the Comext host: filter freq on its trade flows, which mix annual and monthly series, and note that product, reporter and partner carry aggregates (TOTAL, EU27_2020) that double-count when summed with their members.'),
|
|
26
31
|
filters: z
|
|
27
32
|
.record(z.string(), z.array(z.string()))
|
|
28
33
|
.default({})
|
|
@@ -77,7 +82,11 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
77
82
|
value: z
|
|
78
83
|
.number()
|
|
79
84
|
.nullable()
|
|
80
|
-
.describe('Numeric observation value, or null when Eurostat reports none —
|
|
85
|
+
.describe('Numeric observation value, or null when Eurostat reports none — unavailable in the source data, withheld (confStatus says so), or published as text (valueText holds it).'),
|
|
86
|
+
valueText: z
|
|
87
|
+
.string()
|
|
88
|
+
.optional()
|
|
89
|
+
.describe('A value Eurostat published as text rather than a number, verbatim — PRODCOM (DS-*) flag and unit indicators such as QNTUNIT publish a unit like "KG" — with value null. PRODCOM\'s ":C" is decoded to confStatus "C" instead. Omitted for numeric and missing values.'),
|
|
81
90
|
status: z
|
|
82
91
|
.object({
|
|
83
92
|
code: z.string().describe('OBS_FLAG code (e.g., "p", "e", "d").'),
|
|
@@ -110,7 +119,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
110
119
|
tableName: z
|
|
111
120
|
.string()
|
|
112
121
|
.optional()
|
|
113
|
-
.describe('Canvas table holding every matched observation in flat form — one code column per dimension plus a "_label" companion, then obs_value, obs_flag, obs_flag_label, conf_status, conf_status_label. Call eurostat_dataframe_describe with canvasId first to confirm the table and columns, then eurostat_dataframe_query. Omitted when nothing was staged: either the match was at or below 5,000 observations, or this deployment runs without a dataframe canvas.'),
|
|
122
|
+
.describe('Canvas table holding every matched observation in flat form — one code column per dimension plus a "_label" companion, then obs_value, obs_flag, obs_flag_label, conf_status, conf_status_label. A DS-* table also carries obs_value_text, the valueText of each row. Call eurostat_dataframe_describe with canvasId first to confirm the table and columns, then eurostat_dataframe_query. Omitted when nothing was staged: either the match was at or below 5,000 observations, or this deployment runs without a dataframe canvas.'),
|
|
114
123
|
stagedRowCount: z
|
|
115
124
|
.number()
|
|
116
125
|
.optional()
|
|
@@ -195,9 +204,9 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
195
204
|
{
|
|
196
205
|
reason: 'async_response',
|
|
197
206
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
198
|
-
when:
|
|
207
|
+
when: "Eurostat returned an async warning or an HTTP-413 error array — the query matched too many observations, including an EXTRACTION_TOO_BIG refusal past Eurostat's 5,000,000-row limit.",
|
|
199
208
|
retryable: false,
|
|
200
|
-
recovery: '
|
|
209
|
+
recovery: 'Filter on the dataset dimensions this query left unfiltered, or narrow the period range, then retry.',
|
|
201
210
|
},
|
|
202
211
|
{
|
|
203
212
|
reason: 'invalid_dimension',
|
|
@@ -259,9 +268,14 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
259
268
|
throw ctx.fail('invalid_period', err.message, ctx.recoveryFor('invalid_period'));
|
|
260
269
|
}
|
|
261
270
|
if (reason === 'async_response') {
|
|
271
|
+
const dimensions = await dimensionsToNarrow(input.dataset_code, [], ctx);
|
|
272
|
+
const filtered = [
|
|
273
|
+
...Object.keys(input.filters).filter((key) => (input.filters[key] ?? []).length > 0),
|
|
274
|
+
...(input.geo_level ? ['geo'] : []),
|
|
275
|
+
];
|
|
262
276
|
throw ctx.fail('async_response', err.message, {
|
|
263
277
|
recovery: {
|
|
264
|
-
hint: `Query matched too many observations
|
|
278
|
+
hint: `Query matched too many observations for "${input.dataset_code}". ${narrowingAdvice(input.dataset_code, dimensions, filtered)}`,
|
|
265
279
|
},
|
|
266
280
|
});
|
|
267
281
|
}
|
|
@@ -306,7 +320,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
306
320
|
if (canvas) {
|
|
307
321
|
const instance = await acquireCanvas(canvas, input.canvas_id, ctx);
|
|
308
322
|
const handle = await instance.registerTable(newTableName(), rows(), {
|
|
309
|
-
schema: observationRowSchema(result.dimensionsUsed),
|
|
323
|
+
schema: observationRowSchema(result.dimensionsUsed, isComextDataset(input.dataset_code)),
|
|
310
324
|
signal: ctx.signal,
|
|
311
325
|
});
|
|
312
326
|
staged = {
|
|
@@ -340,9 +354,11 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
340
354
|
notices.push(`These filter values matched nothing and contribute no rows: ${formatValues(result.unmatchedValues)}. Check the valid codes for ${joinAnd(Object.keys(result.unmatchedValues))} with eurostat_get_dimension_values.`);
|
|
341
355
|
}
|
|
342
356
|
if (result.obsCount > result.observations.length) {
|
|
357
|
+
// This dataset's own dimensions: a DS-* flow has no geo, unit, or na_item to name.
|
|
358
|
+
const filterOn = `dimension filters (${result.dimensionsUsed.filter((dim) => dim !== 'time').join(', ')})`;
|
|
343
359
|
notices.push(staged
|
|
344
|
-
? `preview_limit=${input.preview_limit.toLocaleString()} returns the first ${result.observations.length.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows inline; it does not reduce the match. All ${staged.stagedRowCount.toLocaleString()} matched rows are staged as table "${staged.tableName}" on canvas "${staged.canvasId}". Call eurostat_dataframe_describe with that canvas_id first to confirm the table and columns, then call eurostat_dataframe_query. Use
|
|
345
|
-
: `preview_limit=${input.preview_limit.toLocaleString()} returns the first ${result.observations.length.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows inline; it does not reduce the match. Use
|
|
360
|
+
? `preview_limit=${input.preview_limit.toLocaleString()} returns the first ${result.observations.length.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows inline; it does not reduce the match. All ${staged.stagedRowCount.toLocaleString()} matched rows are staged as table "${staged.tableName}" on canvas "${staged.canvasId}". Call eurostat_dataframe_describe with that canvas_id first to confirm the table and columns, then call eurostat_dataframe_query. Use ${filterOn} or a period range when the match itself should be smaller.`
|
|
361
|
+
: `preview_limit=${input.preview_limit.toLocaleString()} returns the first ${result.observations.length.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows inline; it does not reduce the match. Use ${filterOn} or a period range to reduce the match itself${truncated ? ', or call eurostat_download_dataset when the whole dataset is wanted' : ''}.`);
|
|
346
362
|
}
|
|
347
363
|
if (notices.length > 0)
|
|
348
364
|
ctx.enrich.notice(notices.join(' '));
|
|
@@ -382,11 +398,12 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
|
|
|
382
398
|
const dims = obs.dimensions;
|
|
383
399
|
const dimParts = result.dimensionsUsed.map((dim) => `${dim}=${dims[dim]?.code ?? '?'} (${dims[dim]?.label ?? '?'})`);
|
|
384
400
|
const val = obs.value != null ? String(obs.value) : 'N/A';
|
|
401
|
+
const textPart = obs.valueText ? ` [valueText "${obs.valueText}"]` : '';
|
|
385
402
|
const statusPart = obs.status ? ` [${obs.status.code}: ${obs.status.label}]` : '';
|
|
386
403
|
const confPart = obs.confStatus
|
|
387
404
|
? ` [CONF_STATUS ${obs.confStatus.code}: ${obs.confStatus.label}]`
|
|
388
405
|
: '';
|
|
389
|
-
lines.push(`${dimParts.join(' | ')} → ${val}${statusPart}${confPart}`);
|
|
406
|
+
lines.push(`${dimParts.join(' | ')} → ${val}${textPart}${statusPart}${confPart}`);
|
|
390
407
|
}
|
|
391
408
|
return [{ type: 'text', text: lines.join('\n') }];
|
|
392
409
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-query-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-query-dataset.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eurostat-query-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-query-dataset.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,8 @@ export declare const eurostatSearchDatasets: import("@cyanheads/mcp-ts-core").To
|
|
|
26
26
|
}, z.core.$strip>, readonly [{
|
|
27
27
|
readonly reason: "no_match";
|
|
28
28
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
29
|
-
readonly when: "No datasets matched the query string.";
|
|
30
|
-
readonly recovery: "Try a broader or different search term
|
|
29
|
+
readonly when: "No datasets matched the query string — including a query naming a DS-* code that neither the dissemination table of contents nor the Comext dataflow list carries, which is a collection Eurostat does not disseminate.";
|
|
30
|
+
readonly recovery: "Try a broader or different search term, or eurostat_browse_themes to explore without text search. A DS-* code on neither list is not disseminated, so search for its subject (e.g. \"prodcom\", \"CN8\") to find the collections that are.";
|
|
31
31
|
}, {
|
|
32
32
|
readonly reason: "invalid_cursor";
|
|
33
33
|
readonly code: JsonRpcErrorCode.InvalidParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-search-datasets.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-search-datasets.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAGhF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"eurostat-search-datasets.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-search-datasets.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAGhF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwMjC,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
|
7
7
|
import { getEurostatCatalogueService } from '../../../services/eurostat-catalogue/eurostat-catalogue-service.js';
|
|
8
8
|
export const eurostatSearchDatasets = tool('eurostat_search_datasets', {
|
|
9
9
|
title: 'Search Eurostat Datasets',
|
|
10
|
-
description: 'Search the Eurostat catalogue by keyword. Returns matching datasets with codes, descriptions, period coverage, and theme breadcrumbs. Use this to discover dataset codes before calling eurostat_get_dataset_info, then eurostat_query_dataset for a slice of a dataset or eurostat_download_dataset for the whole of one. Results are limited to datasets and predefined tables — folders are excluded.',
|
|
10
|
+
description: 'Search the Eurostat catalogue by keyword. Returns matching datasets with codes, descriptions, period coverage, and theme breadcrumbs. Use this to discover dataset codes before calling eurostat_get_dataset_info, then eurostat_query_dataset for a slice of a dataset or eurostat_download_dataset for the whole of one. Results are limited to datasets and predefined tables — folders are excluded. The catalogue joins two sources: the dissemination table of contents, and the Comext host\'s dataflow list, which adds the DS-* collections — detailed trade by CN8, HS, SITC, BEC and CPA, and PRODCOM — filed under "International trade in goods - detailed data (Comext)" and "Statistics on the production of manufactured goods (PRODCOM)". Comext entries report a last-update date but no period coverage or observation count. A collection on neither list, such as the legacy PRODCOM DS-056120, is not disseminated and cannot be reached through this server.',
|
|
11
11
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
12
12
|
input: z.object({
|
|
13
13
|
query: z
|
|
@@ -82,8 +82,8 @@ export const eurostatSearchDatasets = tool('eurostat_search_datasets', {
|
|
|
82
82
|
{
|
|
83
83
|
reason: 'no_match',
|
|
84
84
|
code: JsonRpcErrorCode.NotFound,
|
|
85
|
-
when: 'No datasets matched the query string.',
|
|
86
|
-
recovery: 'Try a broader or different search term
|
|
85
|
+
when: 'No datasets matched the query string — including a query naming a DS-* code that neither the dissemination table of contents nor the Comext dataflow list carries, which is a collection Eurostat does not disseminate.',
|
|
86
|
+
recovery: 'Try a broader or different search term, or eurostat_browse_themes to explore without text search. A DS-* code on neither list is not disseminated, so search for its subject (e.g. "prodcom", "CN8") to find the collections that are.',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
reason: 'invalid_cursor',
|
|
@@ -108,11 +108,24 @@ export const eurostatSearchDatasets = tool('eurostat_search_datasets', {
|
|
|
108
108
|
}
|
|
109
109
|
throw err;
|
|
110
110
|
}
|
|
111
|
-
const { datasets, totalMatches, nextCursor } = found;
|
|
111
|
+
const { datasets, totalMatches, nextCursor, undisseminatedCodes, comextListMissing } = found;
|
|
112
112
|
if (datasets.length === 0) {
|
|
113
|
-
|
|
113
|
+
/**
|
|
114
|
+
* A DS-* code on neither list is absent by design, so broadening cannot find it.
|
|
115
|
+
* While the Comext list is not merged, its absence proves nothing — the code is
|
|
116
|
+
* checked directly instead.
|
|
117
|
+
*/
|
|
118
|
+
const codes = undisseminatedCodes?.join(', ');
|
|
119
|
+
const plural = (undisseminatedCodes?.length ?? 0) > 1;
|
|
120
|
+
throw ctx.fail('no_match', codes && !comextListMissing
|
|
121
|
+
? `No datasets matched "${input.query}": ${codes} ${plural ? 'are' : 'is'} on neither the Eurostat dissemination catalogue nor the Comext dataflow list, so Eurostat does not disseminate ${plural ? 'them' : 'it'} through this API.`
|
|
122
|
+
: `No datasets matched "${input.query}".`, {
|
|
114
123
|
recovery: {
|
|
115
|
-
hint:
|
|
124
|
+
hint: !codes
|
|
125
|
+
? 'Try a broader term or use eurostat_browse_themes to explore themes without text search.'
|
|
126
|
+
: comextListMissing
|
|
127
|
+
? `The Comext dataflow list could not be loaded, so ${codes} could not be checked against it. Call eurostat_get_dataset_info with the code to check it directly.`
|
|
128
|
+
: `Broadening will not find ${codes}: a collection on neither list is not disseminated. Search for its subject instead — "prodcom" or "CN8", for example — to find the DS-* collections Eurostat does disseminate.`,
|
|
116
129
|
},
|
|
117
130
|
});
|
|
118
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-search-datasets.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-search-datasets.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6DAA6D,CAAC;AAE1G,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,0BAA0B,EAAE;IACrE,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"eurostat-search-datasets.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurostat-search-datasets.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Recovery wording for a request Eurostat refused as too large, shared by
|
|
3
|
+
* the two data tools so both name the dataset's own dimensions the same way.
|
|
4
|
+
* @module mcp-server/tools/narrowing-advice
|
|
5
|
+
*/
|
|
6
|
+
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
7
|
+
/**
|
|
8
|
+
* The dataset's key dimensions, for a too-large refusal's hint to name. `known` is the
|
|
9
|
+
* order the request already read, if any; otherwise the structure definition is read
|
|
10
|
+
* now, a few KB. The refusal itself carries no dimension list, and the hint is only
|
|
11
|
+
* more specific with one, so a failed read leaves it generic rather than replacing the
|
|
12
|
+
* refusal with a second error.
|
|
13
|
+
*/
|
|
14
|
+
export declare function dimensionsToNarrow(datasetCode: string, known: string[], ctx: Context): Promise<string[] | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* Tell the caller how to shrink a refused request, naming the dimensions of this
|
|
17
|
+
* dataset it left unfiltered. `dimensions` is the dataset's key dimensions, or
|
|
18
|
+
* undefined when they could not be read; `filtered` names the dimensions the request
|
|
19
|
+
* filtered, in any case.
|
|
20
|
+
*/
|
|
21
|
+
export declare function narrowingAdvice(datasetCode: string, dimensions: string[] | undefined, filtered: string[]): string;
|
|
22
|
+
//# sourceMappingURL=narrowing-advice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"narrowing-advice.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/narrowing-advice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAW/B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CASR"}
|