@cyanheads/eurostat-mcp-server 0.4.0 → 0.6.0

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.
Files changed (52) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +31 -9
  3. package/dist/config/server-config.d.ts +2 -0
  4. package/dist/config/server-config.d.ts.map +1 -1
  5. package/dist/config/server-config.js +14 -0
  6. package/dist/config/server-config.js.map +1 -1
  7. package/dist/index.js +6 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +2 -2
  10. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +2 -2
  12. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +93 -0
  14. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -0
  15. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +362 -0
  16. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -0
  17. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +2 -2
  18. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +2 -2
  20. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +6 -2
  22. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +28 -20
  24. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js +3 -3
  26. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
  27. package/dist/services/canvas-accessor.d.ts +5 -0
  28. package/dist/services/canvas-accessor.d.ts.map +1 -1
  29. package/dist/services/canvas-accessor.js +7 -0
  30. package/dist/services/canvas-accessor.js.map +1 -1
  31. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +89 -0
  32. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -0
  33. package/dist/services/eurostat-bulk/eurostat-bulk-service.js +502 -0
  34. package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -0
  35. package/dist/services/eurostat-bulk/types.d.ts +72 -0
  36. package/dist/services/eurostat-bulk/types.d.ts.map +1 -0
  37. package/dist/services/eurostat-bulk/types.js +9 -0
  38. package/dist/services/eurostat-bulk/types.js.map +1 -0
  39. package/dist/services/eurostat-codelists.d.ts +45 -0
  40. package/dist/services/eurostat-codelists.d.ts.map +1 -0
  41. package/dist/services/eurostat-codelists.js +92 -0
  42. package/dist/services/eurostat-codelists.js.map +1 -0
  43. package/dist/services/eurostat-data/eurostat-data-service.d.ts +46 -5
  44. package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
  45. package/dist/services/eurostat-data/eurostat-data-service.js +85 -14
  46. package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
  47. package/dist/services/eurostat-data/types.d.ts +16 -8
  48. package/dist/services/eurostat-data/types.d.ts.map +1 -1
  49. package/dist/services/eurostat-data/types.js +0 -4
  50. package/dist/services/eurostat-data/types.js.map +1 -1
  51. package/package.json +1 -1
  52. package/server.json +34 -6
@@ -4,16 +4,12 @@
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
- import { acquireCanvas, getCanvas } from '../../../services/canvas-accessor.js';
7
+ import { acquireCanvas, getCanvas, newTableName } from '../../../services/canvas-accessor.js';
8
8
  import { getEurostatDataService, observationRowSchema, } from '../../../services/eurostat-data/eurostat-data-service.js';
9
9
  import { GEO_LEVEL_VALUES, OBS_CAP } from '../../../services/eurostat-data/types.js';
10
- /** Fresh handle for one staged result set. Distinct per call — each is its own match. */
11
- function newTableName() {
12
- return `df_${globalThis.crypto.randomUUID().slice(0, 8)}`;
13
- }
14
10
  export const eurostatQueryDataset = tool('eurostat_query_dataset', {
15
11
  title: 'Query Eurostat Dataset',
16
- description: 'Fetch statistical data from a Eurostat dataset with dimension filters. Returns decoded observations with dimension codes and labels, numeric values, and status flags (e.g., "p" = provisional, "e" = estimated), capped at 5,000 inline rows. 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. When the match exceeds the inline cap on a deployment that runs a dataframe canvas, the whole match is also staged as a SQL table and the response names it in tableName — read the rest with eurostat_dataframe_query rather than re-querying Eurostat.',
12
+ description: 'Fetch statistical data from a Eurostat dataset with dimension filters. Returns 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), capped at 5,000 inline rows. 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. This tool fetches a slice: past the inline cap, either narrow the filters, or — on a deployment that runs a dataframe canvas — read the staged SQL table this response names in tableName with eurostat_dataframe_query rather than re-querying Eurostat. 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.',
17
13
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
18
14
  input: z.object({
19
15
  dataset_code: z.string().min(1).describe('Dataset code (e.g., "nama_10_gdp"). Required.'),
@@ -67,23 +63,32 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
67
63
  value: z
68
64
  .number()
69
65
  .nullable()
70
- .describe('Numeric observation value, or null when missing (flagged as unavailable in the source data).'),
66
+ .describe('Numeric observation value, or null when Eurostat reports none — either unavailable in the source data or withheld, in which case confStatus says so.'),
71
67
  status: z
72
68
  .object({
73
- code: z.string().describe('Status flag code (e.g., "p", "e", "d").'),
69
+ code: z.string().describe('OBS_FLAG code (e.g., "p", "e", "d").'),
74
70
  label: z
75
71
  .string()
76
72
  .describe('Status description (e.g., "provisional", "estimated", "definition differs").'),
77
73
  })
78
74
  .optional()
79
- .describe('Status flag for this observation. Omitted for normal observations.'),
75
+ .describe('Eurostat OBS_FLAG for this observation. Omitted for unflagged observations, and never carries a confidentiality code — that arrives in confStatus.'),
76
+ confStatus: z
77
+ .object({
78
+ code: z.string().describe('CONF_STATUS code: "C", "N", or "P".'),
79
+ label: z
80
+ .string()
81
+ .describe('Confidentiality description (e.g., "confidential", "not for publication").'),
82
+ })
83
+ .optional()
84
+ .describe('Eurostat CONF_STATUS for this observation — a different codelist from status. Present when Eurostat restricts the cell, which is usually why value is null. Omitted otherwise.'),
80
85
  })
81
- .describe('A single decoded observation with dimension values, numeric value, and optional status.'))
82
- .describe('Decoded observations, capped at 5,000 rows. Past the cap these are the first 5,000 the response enumerates — the leading combinations of the dataset dimensions, neither a sample nor the most recent periods. When tableName is set, these same rows and every row past the cap are staged on the dataframe canvas; when it is absent, narrow the query with dimension filters or a period range to choose which observations you get.'),
86
+ .describe('A single decoded observation with dimension values, numeric value, and the optional OBS_FLAG and CONF_STATUS markers.'))
87
+ .describe('Decoded observations, capped at 5,000 rows. Past the cap these are the first 5,000 the response enumerates — the leading combinations of the dataset dimensions, neither a sample nor the most recent periods. When tableName is set, these same rows and every row past the cap are staged on the dataframe canvas; when it is absent, narrow the query with dimension filters or a period range to choose which observations you get, or switch to eurostat_download_dataset when the whole dataset is what is wanted.'),
83
88
  obsCount: z.number().describe('Total number of observations matched (before any cap).'),
84
89
  truncated: z
85
90
  .boolean()
86
- .describe('True when the result exceeded 5,000 observations, so the returned rows are a prefix of the match rather than all of it. When tableName is set, the whole match is on the canvas and reachable with eurostat_dataframe_query; when it is absent, narrowing the query with dimension filters is what brings the rest into reach.'),
91
+ .describe('True when the result exceeded 5,000 observations, so the returned rows are a prefix of the match rather than all of it. When tableName is set, the whole match is on the canvas and reachable with eurostat_dataframe_query; when it is absent, narrowing the query with dimension filters, or downloading the dataset with eurostat_download_dataset, is what brings the rest into reach.'),
87
92
  canvasId: z
88
93
  .string()
89
94
  .optional()
@@ -91,7 +96,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
91
96
  tableName: z
92
97
  .string()
93
98
  .optional()
94
- .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. Omitted when nothing was staged: either the result fit under the cap, or this deployment runs without a dataframe canvas.'),
99
+ .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. The five measure columns match the ones eurostat_download_dataset stages, so the two tables join on dimension codes and time and compare like with like. Omitted when nothing was staged: either the result fit under the cap, or this deployment runs without a dataframe canvas.'),
95
100
  stagedRowCount: z
96
101
  .number()
97
102
  .optional()
@@ -110,7 +115,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
110
115
  .describe('Time coverage of everything matched — the same set obsCount counts, so it can reach periods absent from observations when truncated is true. Each bound is omitted when neither the match nor Eurostat report it — an omitted bound is unknown, not empty.'),
111
116
  missingObsCount: z
112
117
  .number()
113
- .describe('Number of matched observations with null value (missing data points in the source), counted across everything matched rather than only the returned rows.'),
118
+ .describe('Number of matched observations carrying no numeric value, counted across everything matched rather than only the returned rows. Covers both unavailable and withheld cells — a slice can be wholly confidential, so this equalling obsCount does not mean the data is absent.'),
114
119
  }),
115
120
  enrichment: {
116
121
  appliedFilters: z
@@ -160,8 +165,8 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
160
165
  {
161
166
  reason: 'no_results',
162
167
  code: JsonRpcErrorCode.NotFound,
163
- when: 'The query returned no observations — valid dataset but the filter combination matched no data.',
164
- recovery: 'Verify dimension values with eurostat_get_dimension_values; invalid dimension values silently return no data.',
168
+ when: 'The query matched no observation cells — valid dataset, but no cell carries a value or a status flag for that filter combination and period range.',
169
+ recovery: 'Verify dimension values with eurostat_get_dimension_values and keep the period range inside the dataset coverage; both an unmatched value and an out-of-coverage range return no data rather than an error.',
165
170
  },
166
171
  {
167
172
  reason: 'async_response',
@@ -202,7 +207,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
202
207
  if (reason === 'no_results') {
203
208
  throw ctx.fail('no_results', err.message, {
204
209
  recovery: {
205
- hint: `No observations matched. Verify dimension values for "${input.dataset_code}" using eurostat_get_dimension_values — invalid values silently return no data.`,
210
+ hint: `No observation cells matched. Verify dimension values for "${input.dataset_code}" using eurostat_get_dimension_values, and check the period range is inside the dataset's coverage — an unmatched value and an out-of-coverage range both return no data rather than an error.`,
206
211
  },
207
212
  });
208
213
  }
@@ -278,7 +283,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
278
283
  if (truncated) {
279
284
  ctx.enrich.notice(staged
280
285
  ? `Inline rows capped at ${OBS_CAP.toLocaleString()} of ${result.obsCount.toLocaleString()} matched. All ${staged.stagedRowCount.toLocaleString()} are staged as table "${staged.tableName}" on canvas "${staged.canvasId}" — reach them with eurostat_dataframe_query, or narrow the query with dimension filters (geo, unit, na_item) to shrink what Eurostat sends.`
281
- : `Result capped at ${OBS_CAP.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows. Add dimension filters (geo, unit, na_item) or a period range to bring the rest into reach.`);
286
+ : `Result capped at ${OBS_CAP.toLocaleString()} of ${result.obsCount.toLocaleString()} matched rows. Add dimension filters (geo, unit, na_item) or a period range to bring the rest into reach, or call eurostat_download_dataset when the whole dataset is what is wanted.`);
282
287
  }
283
288
  return { ...queryResult, truncated, ...staged };
284
289
  },
@@ -292,7 +297,7 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
292
297
  ? ''
293
298
  : result.tableName
294
299
  ? ' — inline rows capped at 5,000; the whole match is staged on the canvas below'
295
- : ' — result capped at 5,000 rows. Add dimension filters to bring the rest into reach.';
300
+ : ' — result capped at 5,000 rows. Add dimension filters, or call eurostat_download_dataset for the whole dataset.';
296
301
  const lines = [
297
302
  `# ${result.datasetLabel} (\`${result.datasetCode}\`)`,
298
303
  `**Observations:** ${result.obsCount} (${result.missingObsCount} missing) | **Period:** ${period}`,
@@ -311,7 +316,10 @@ export const eurostatQueryDataset = tool('eurostat_query_dataset', {
311
316
  const dimParts = result.dimensionsUsed.map((dim) => `${dim}=${dims[dim]?.code ?? '?'} (${dims[dim]?.label ?? '?'})`);
312
317
  const val = obs.value != null ? String(obs.value) : 'N/A';
313
318
  const statusPart = obs.status ? ` [${obs.status.code}: ${obs.status.label}]` : '';
314
- lines.push(`${dimParts.join(' | ')} → ${val}${statusPart}`);
319
+ const confPart = obs.confStatus
320
+ ? ` [CONF_STATUS ${obs.confStatus.code}: ${obs.confStatus.label}]`
321
+ : '';
322
+ lines.push(`${dimParts.join(' | ')} → ${val}${statusPart}${confPart}`);
315
323
  }
316
324
  return [{ type: 'text', text: lines.join('\n') }];
317
325
  },
@@ -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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"}
@@ -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 or eurostat_query_dataset. 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.',
11
11
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
12
12
  input: z.object({
13
13
  query: z
@@ -33,7 +33,7 @@ export const eurostatSearchDatasets = tool('eurostat_search_datasets', {
33
33
  .object({
34
34
  code: z
35
35
  .string()
36
- .describe('Dataset code (e.g., "nama_10_gdp"). Use this in eurostat_get_dataset_info and eurostat_query_dataset.'),
36
+ .describe('Dataset code (e.g., "nama_10_gdp"). Use this in eurostat_get_dataset_info, eurostat_query_dataset, and eurostat_download_dataset.'),
37
37
  label: z.string().describe('Human-readable dataset title.'),
38
38
  type: z
39
39
  .enum(['dataset', 'table'])
@@ -131,7 +131,7 @@ export const eurostatSearchDatasets = tool('eurostat_search_datasets', {
131
131
  });
132
132
  return {
133
133
  datasets,
134
- nextStep: `Pass a "code" value to eurostat_get_dataset_info to inspect dimensions, or to eurostat_query_dataset to fetch data.`,
134
+ nextStep: `Pass a "code" value to eurostat_get_dataset_info to inspect dimensions, to eurostat_query_dataset to fetch a slice, or to eurostat_download_dataset to pull the whole dataset.`,
135
135
  };
136
136
  },
137
137
  format: (result) => {
@@ -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":"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"}
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,0YAA0Y;IAC5Y,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,KAAK,CAAC,IAAI,EAAE,6DAA6D,CAAC;aAC1E,QAAQ,CACP,sVAAsV,CACvV;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,qMAAqM,CACtM;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,iaAAia,CACla;KACJ,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CACP,mIAAmI,CACpI;YACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC3D,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;iBAC1B,QAAQ,CACP,6EAA6E,CAC9E;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,uFAAuF,CACxF;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0FAA0F,CAC3F;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,2EAA2E,CAC5E;YACH,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,4EAA4E,CAC7E;YACH,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CACP,2OAA2O,CAC5O;SACJ,CAAC;aACD,QAAQ,CAAC,0BAA0B,CAAC,CACxC;aACA,QAAQ,CAAC,oEAAoE,CAAC;QACjF,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+FAA+F,CAChG;KACJ,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACxD,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,CACP,0FAA0F,CAC3F;QACH,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CACP,2FAA2F,CAC5F;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,kKAAkK,CACnK;KACJ;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,uCAAuC;YAC7C,QAAQ,EACN,2GAA2G;SAC9G;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,mHAAmH;YACzH,QAAQ,EACN,uFAAuF;SAC1F;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,2BAA2B,EAAE,CAAC;QAC1C,IAAI,KAA6C,CAAC;QAClD,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAgB,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBACxD,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAG,GAAa,CAAC,OAAO,EAAE;oBACvD,QAAQ,EAAE;wBACR,IAAI,EAAE,0BAA0B,KAAK,CAAC,KAAK,gEAAgE;qBAC5G;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,KAAK,CAAC,KAAK,IAAI,EAAE;gBAClE,QAAQ,EAAE;oBACR,IAAI,EAAE,yFAAyF;iBAChG;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY;YACZ,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY;YACZ,SAAS,EAAE,OAAO;YAClB,GAAG,CAAC,OAAO,IAAI,EAAE,UAAU,EAAE,CAAC;SAC/B,CAAC,CAAC;QACH,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,gLAAgL;SAC3L,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa;YACtB,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,UAAU,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;SAC3F,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
@@ -13,6 +13,11 @@ export declare function setCanvas(canvas: DataCanvas | undefined): void;
13
13
  * the server is a supported configuration with and without one.
14
14
  */
15
15
  export declare function getCanvas(): DataCanvas | undefined;
16
+ /**
17
+ * A fresh handle for one staged table. Distinct per call — every staging call is
18
+ * its own result set, and a reused name would replace the previous table.
19
+ */
20
+ export declare function newTableName(): string;
16
21
  /**
17
22
  * Acquire a canvas, translating a scratch-directory permission failure into an
18
23
  * error that names the variable to change.
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-accessor.d.ts","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAKhF,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,UAAU,GAAG,SAAS,CAElD;AAoBD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,cAAc,CAAC,CAYzB"}
1
+ {"version":3,"file":"canvas-accessor.d.ts","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAKhF,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,UAAU,GAAG,SAAS,CAElD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAoBD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,cAAc,CAAC,CAYzB"}
@@ -17,6 +17,13 @@ export function setCanvas(canvas) {
17
17
  export function getCanvas() {
18
18
  return _canvas;
19
19
  }
20
+ /**
21
+ * A fresh handle for one staged table. Distinct per call — every staging call is
22
+ * its own result set, and a reused name would replace the previous table.
23
+ */
24
+ export function newTableName() {
25
+ return `df_${globalThis.crypto.randomUUID().slice(0, 8)}`;
26
+ }
20
27
  /**
21
28
  * Errno codes meaning the configured scratch root cannot be written to.
22
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-accessor.js","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,IAAI,OAA+B,CAAC;AAEpC,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,MAA8B;IACtD,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1E,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAY;IAC3B,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,QAA4B,EAC5B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,GAAG,CAAC;QACtB,MAAM,kBAAkB,CACtB,sDAAsD,KAAK,gJAAgJ,EAC3M,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,EACvC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAClD,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"canvas-accessor.js","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,IAAI,OAA+B,CAAC;AAEpC,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,MAA8B;IACtD,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1E,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAY;IAC3B,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,QAA4B,EAC5B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,GAAG,CAAC;QACtB,MAAM,kBAAkB,CACtB,sDAAsD,KAAK,gJAAgJ,EAC3M,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,EACvC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAClD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @fileoverview Eurostat Bulk Service — streaming client for the SDMX 2.1 TSV
3
+ * dissemination endpoint. Builds the positional dimension key, sniffs gzip off
4
+ * the stream, enforces a byte budget mid-transfer, classifies XML SOAP faults
5
+ * and the asynchronous queue envelope, and expands the wide TSV layout into
6
+ * one row per observation.
7
+ * @module services/eurostat-bulk/eurostat-bulk-service
8
+ */
9
+ import type { Context } from '@cyanheads/mcp-ts-core';
10
+ import type { ColumnSchema } from '@cyanheads/mcp-ts-core/canvas';
11
+ import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
12
+ import type { StorageService } from '@cyanheads/mcp-ts-core/storage';
13
+ import { type BulkDownload, type TsvHeader } from './types.js';
14
+ /**
15
+ * Translate an XML body from the SDMX endpoint into the declared error contract.
16
+ *
17
+ * Two unrelated shapes arrive as XML and neither is data. A `S:Fault` envelope
18
+ * accompanies a 4xx and names the problem in a numeric `faultcode`. The
19
+ * `syncResponse` envelope arrives on **HTTP 200** carrying a queue ticket
20
+ * instead of the dataset — parsed as TSV it yields a header row of XML, so it is
21
+ * detected here rather than downstream.
22
+ *
23
+ * Always throws.
24
+ */
25
+ export declare function classifyXmlBody(xml: string, datasetCode: string): never;
26
+ /**
27
+ * Split one wide-TSV cell into its value and flags.
28
+ *
29
+ * The grammar, read off live responses, is `<value>` `SPACE` `<flags>`, where
30
+ * flags is `<obs_flag>` optionally followed by `@<conf_status>` and either part
31
+ * may be empty: `429634.3 `, `3853937.0 p`, `: `, `: @C`. A cell that is empty
32
+ * on both sides of the split is not an observation at all and yields
33
+ * `undefined` — distinct from `: `, which is an observation Eurostat reports as
34
+ * unavailable.
35
+ */
36
+ export declare function parseCell(cell: string): {
37
+ conf: string | null;
38
+ flag: string | null;
39
+ value: number | null;
40
+ } | undefined;
41
+ /**
42
+ * Parse the header line of a wide TSV body.
43
+ *
44
+ * The first tab-separated field is the comma-joined dimension list with
45
+ * `\TIME_PERIOD` appended to the last name; the remaining fields are the period
46
+ * codes, each padded with a trailing space Eurostat does not strip.
47
+ */
48
+ export declare function parseHeader(line: string): TsvHeader;
49
+ /**
50
+ * Build the positional dimension key the SDMX path takes.
51
+ *
52
+ * The key is a dot-separated segment carrying one position per dimension **in
53
+ * dataset order excluding time**; empty means wildcard and `+` means OR. The
54
+ * count must match exactly — a key with one position too few or too many is
55
+ * rejected upstream with faultcode 140 — so positions are emitted for every
56
+ * dimension in `dimensionOrder`, filtered or not, and never only for the
57
+ * dimensions the caller named.
58
+ *
59
+ * Returns `undefined` when no filter applies. An all-wildcard key is accepted
60
+ * by Eurostat, but omitting the segment asks the same question without staking
61
+ * the request on this server's copy of the dimension order being current.
62
+ */
63
+ export declare function buildKeyPath(dimensionOrder: string[], filters: Record<string, string[]>): string | undefined;
64
+ /**
65
+ * Canvas column schema for {@link BulkRow}, declared rather than sniffed.
66
+ *
67
+ * Inference reads only the leading rows, which types an all-integer measure
68
+ * prefix as `BIGINT` — serialized back out as a string — and types an
69
+ * all-missing prefix from nulls alone. Every column is nullable: a measure is
70
+ * routinely unavailable, and flags are the exception rather than the rule.
71
+ */
72
+ export declare function bulkRowSchema(dimensions: string[]): ColumnSchema[];
73
+ export declare class EurostatBulkService {
74
+ constructor(_config: AppConfig, _storage: StorageService);
75
+ private buildUrl;
76
+ /**
77
+ * Start a bulk download: issue the request, classify the response, parse the
78
+ * header, and hand back a generator over the body.
79
+ *
80
+ * The request is made once with no retry. A bulk body streams for up to
81
+ * `EUROSTAT_BULK_TIMEOUT_MS`, so re-running it on a transient failure costs
82
+ * the caller another full transfer for a request that is already the most
83
+ * expensive one this server makes; the failure is surfaced instead.
84
+ */
85
+ startDownload(datasetCode: string, dimensionOrder: string[], filters: Record<string, string[]>, sinceP: string | undefined, untilP: string | undefined, ctx: Context): Promise<BulkDownload>;
86
+ }
87
+ export declare function initEurostatBulkService(config: AppConfig, storage: StorageService): void;
88
+ export declare function getEurostatBulkService(): EurostatBulkService;
89
+ //# sourceMappingURL=eurostat-bulk-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eurostat-bulk-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAYrE,OAAO,EACL,KAAK,YAAY,EAIjB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAmCpB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CAmCvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAchF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAkBnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAChC,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAUlE;AAED,qBAAa,mBAAmB;IAI9B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D,OAAO,CAAC,QAAQ;IAiBhB;;;;;;;;OAQG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,YAAY,CAAC,CAyDvB;CACF;AA6RD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAExF;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}