@cyanheads/cdc-health-mcp-server 0.4.2 → 0.5.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.
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Agent Protocol
2
2
 
3
3
  **Server:** cdc-health-statistics-mcp-server
4
- **Version:** 0.4.2
4
+ **Version:** 0.5.0
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
6
6
 
7
7
  > **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
package/README.md CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![npm](https://img.shields.io/npm/v/@cyanheads/cdc-health-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/cdc-health-mcp-server) [![Version](https://img.shields.io/badge/Version-0.4.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-259?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/)
10
+ [![npm](https://img.shields.io/npm/v/@cyanheads/cdc-health-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/cdc-health-mcp-server) [![Version](https://img.shields.io/badge/Version-0.5.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-259?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/)
11
11
 
12
- [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
12
+ [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
13
13
 
14
14
  </div>
15
15
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Resource listing all CDC dataset categories with counts.
2
+ * @fileoverview Resource listing the top 50 CDC datasets by popularity for orientation.
3
3
  * @module mcp-server/resources/definitions/datasets
4
4
  */
5
5
  export declare const datasetsResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<import("zod").ZodObject<Readonly<{
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Resource listing all CDC dataset categories with counts.
2
+ * @fileoverview Resource listing the top 50 CDC datasets by popularity for orientation.
3
3
  * @module mcp-server/resources/definitions/datasets
4
4
  */
5
5
  import { resource } from '@cyanheads/mcp-ts-core';
@@ -13,13 +13,13 @@ export declare const discoverDatasets: import("@cyanheads/mcp-ts-core").ToolDefi
13
13
  datasets: z.ZodArray<z.ZodObject<{
14
14
  id: z.ZodString;
15
15
  name: z.ZodString;
16
- description: z.ZodString;
17
- category: z.ZodString;
18
- tags: z.ZodArray<z.ZodString>;
19
- columnNames: z.ZodArray<z.ZodString>;
20
- columnTypes: z.ZodArray<z.ZodString>;
21
- updatedAt: z.ZodString;
22
- pageViews: z.ZodNumber;
16
+ description: z.ZodOptional<z.ZodString>;
17
+ category: z.ZodOptional<z.ZodString>;
18
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ columnNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ columnTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ updatedAt: z.ZodOptional<z.ZodString>;
22
+ pageViews: z.ZodOptional<z.ZodNumber>;
23
23
  }, z.core.$strip>>;
24
24
  totalCount: z.ZodNumber;
25
25
  appliedFilters: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"discover-datasets.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/discover-datasets.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;kBAmI3B,CAAC"}
1
+ {"version":3,"file":"discover-datasets.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/discover-datasets.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;kBAwI3B,CAAC"}
@@ -40,17 +40,22 @@ export const discoverDatasets = tool('cdc_discover_datasets', {
40
40
  .array(z.object({
41
41
  id: z.string().describe('Four-by-four dataset identifier (e.g., "bi63-dtpu").'),
42
42
  name: z.string().describe('Dataset name.'),
43
- description: z.string().describe('Dataset description.'),
44
- category: z.string().describe('Domain category.'),
45
- tags: z.array(z.string().describe('Tag')).describe('Domain tags.'),
43
+ description: z
44
+ .string()
45
+ .optional()
46
+ .describe('Dataset description when provided by the catalog.'),
47
+ category: z.string().optional().describe('Domain category when provided.'),
48
+ tags: z.array(z.string()).optional().describe('Domain tags when provided.'),
46
49
  columnNames: z
47
- .array(z.string().describe('Column name'))
48
- .describe('Available column field names.'),
50
+ .array(z.string())
51
+ .optional()
52
+ .describe('Available column field names when provided.'),
49
53
  columnTypes: z
50
- .array(z.string().describe('Column type'))
51
- .describe('Column data types (parallel to columnNames).'),
52
- updatedAt: z.string().describe('Last data update timestamp.'),
53
- pageViews: z.number().describe('Total page views.'),
54
+ .array(z.string())
55
+ .optional()
56
+ .describe('Column data types (parallel to columnNames) when provided.'),
57
+ updatedAt: z.string().optional().describe('Last data update timestamp when provided.'),
58
+ pageViews: z.number().optional().describe('Total page views when provided.'),
54
59
  }))
55
60
  .describe('Matching datasets.'),
56
61
  totalCount: z.number().describe('Total matching datasets (for pagination).'),
@@ -64,13 +69,7 @@ export const discoverDatasets = tool('cdc_discover_datasets', {
64
69
  }),
65
70
  async handler(input, ctx) {
66
71
  const service = getSocrataService();
67
- const result = await service.discover({
68
- query: input.query,
69
- category: input.category,
70
- tags: input.tags,
71
- limit: input.limit,
72
- offset: input.offset,
73
- }, ctx.signal);
72
+ const result = await service.discover(input, ctx.signal);
74
73
  ctx.log.info('Dataset discovery completed', {
75
74
  query: input.query,
76
75
  category: input.category,
@@ -87,16 +86,16 @@ export const discoverDatasets = tool('cdc_discover_datasets', {
87
86
  };
88
87
  },
89
88
  format: (result) => {
89
+ const filters = result.appliedFilters;
90
+ const filterParts = [];
91
+ if (filters.query)
92
+ filterParts.push(`query "${filters.query}"`);
93
+ if (filters.category)
94
+ filterParts.push(`category "${filters.category}"`);
95
+ if (filters.tags?.length)
96
+ filterParts.push(`tags [${filters.tags.join(', ')}]`);
90
97
  if (result.datasets.length === 0) {
91
- const filters = result.appliedFilters;
92
- const parts = [];
93
- if (filters.query)
94
- parts.push(`query "${filters.query}"`);
95
- if (filters.category)
96
- parts.push(`category "${filters.category}"`);
97
- if (filters.tags?.length)
98
- parts.push(`tags [${filters.tags.join(', ')}]`);
99
- const criteria = parts.length > 0 ? ` for ${parts.join(', ')}` : '';
98
+ const criteria = filterParts.length > 0 ? ` for ${filterParts.join(', ')}` : '';
100
99
  return [
101
100
  {
102
101
  type: 'text',
@@ -104,15 +103,24 @@ export const discoverDatasets = tool('cdc_discover_datasets', {
104
103
  },
105
104
  ];
106
105
  }
107
- const lines = [`**${result.totalCount} datasets found** (showing ${result.datasets.length})\n`];
106
+ const filterSuffix = filterParts.length > 0 ? ` — filtered by ${filterParts.join(', ')}` : '';
107
+ const lines = [
108
+ `**${result.totalCount} datasets found** (showing ${result.datasets.length})${filterSuffix}\n`,
109
+ ];
108
110
  for (const d of result.datasets) {
109
111
  lines.push(`### ${d.name}`);
110
- lines.push(`**ID:** \`${d.id}\` | **Category:** ${d.category || ''} | **Updated:** ${d.updatedAt}`);
112
+ const views = typeof d.pageViews === 'number' ? d.pageViews.toLocaleString() : '—';
113
+ lines.push(`**ID:** \`${d.id}\` | **Category:** ${d.category ?? '—'} | **Updated:** ${d.updatedAt ?? '—'} | **Views:** ${views}`);
111
114
  if (d.description)
112
115
  lines.push(d.description.slice(0, 300) + (d.description.length > 300 ? '...' : ''));
113
- if (d.tags.length > 0)
116
+ if (d.tags && d.tags.length > 0)
114
117
  lines.push(`**Tags:** ${d.tags.join(', ')}`);
115
- lines.push(`**Columns:** ${d.columnNames.slice(0, 10).join(', ')}${d.columnNames.length > 10 ? ` (+${d.columnNames.length - 10} more)` : ''}`);
118
+ if (d.columnNames && d.columnNames.length > 0) {
119
+ const columns = d.columnNames
120
+ .map((name, i) => `\`${name}\` (${d.columnTypes?.[i] ?? 'unknown'})`)
121
+ .join(', ');
122
+ lines.push(`**Columns:** ${columns}`);
123
+ }
116
124
  lines.push('');
117
125
  }
118
126
  return [{ type: 'text', text: lines.join('\n') }];
@@ -1 +1 @@
1
- {"version":3,"file":"discover-datasets.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/discover-datasets.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover-datasets.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/discover-datasets.tool.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@ export declare const getDatasetSchema: import("@cyanheads/mcp-ts-core").ToolDefi
7
7
  datasetId: z.ZodString;
8
8
  }, z.core.$strip>, z.ZodObject<{
9
9
  name: z.ZodString;
10
- description: z.ZodString;
11
- rowCount: z.ZodNumber;
12
- updatedAt: z.ZodString;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ rowCount: z.ZodOptional<z.ZodNumber>;
12
+ updatedAt: z.ZodOptional<z.ZodString>;
13
13
  columns: z.ZodArray<z.ZodObject<{
14
14
  fieldName: z.ZodString;
15
15
  dataType: z.ZodString;
16
- description: z.ZodString;
16
+ description: z.ZodOptional<z.ZodString>;
17
17
  }, z.core.$strip>>;
18
18
  }, z.core.$strip>>;
19
19
  //# sourceMappingURL=get-dataset-schema.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-dataset-schema.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-dataset-schema.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;kBA8D3B,CAAC"}
1
+ {"version":3,"file":"get-dataset-schema.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-dataset-schema.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;kBAgE3B,CAAC"}
@@ -15,14 +15,17 @@ export const getDatasetSchema = tool('cdc_get_dataset_schema', {
15
15
  }),
16
16
  output: z.object({
17
17
  name: z.string().describe('Dataset name.'),
18
- description: z.string().describe('Dataset description.'),
19
- rowCount: z.number().describe('Total number of rows in the dataset.'),
20
- updatedAt: z.string().describe('Last data update timestamp.'),
18
+ description: z.string().optional().describe('Dataset description when provided.'),
19
+ rowCount: z
20
+ .number()
21
+ .optional()
22
+ .describe('Total number of rows when reported by upstream; omitted when unknown.'),
23
+ updatedAt: z.string().optional().describe('Last data update timestamp when provided.'),
21
24
  columns: z
22
25
  .array(z.object({
23
26
  fieldName: z.string().describe('Column field name (use in SoQL queries).'),
24
27
  dataType: z.string().describe('Column data type (text, number, calendar_date, etc.).'),
25
- description: z.string().describe('Column description.'),
28
+ description: z.string().optional().describe('Column description when provided.'),
26
29
  }))
27
30
  .describe('Dataset columns with types and descriptions.'),
28
31
  }),
@@ -38,16 +41,11 @@ export const getDatasetSchema = tool('cdc_get_dataset_schema', {
38
41
  return metadata;
39
42
  },
40
43
  format: (result) => {
41
- const lines = [
42
- `## ${result.name}`,
43
- '',
44
- result.description,
45
- '',
46
- `**Rows:** ${result.rowCount.toLocaleString()} | **Updated:** ${result.updatedAt}`,
47
- '',
48
- '| Column | Type | Description |',
49
- '|:-------|:-----|:------------|',
50
- ];
44
+ const lines = [`## ${result.name}`, ''];
45
+ if (result.description)
46
+ lines.push(result.description, '');
47
+ const rows = typeof result.rowCount === 'number' ? result.rowCount.toLocaleString() : '—';
48
+ lines.push(`**Rows:** ${rows} | **Updated:** ${result.updatedAt ?? ''}`, '', '| Column | Type | Description |', '|:-------|:-----|:------------|');
51
49
  for (const col of result.columns) {
52
50
  lines.push(`| \`${col.fieldName}\` | ${col.dataType} | ${col.description || '—'} |`);
53
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-dataset-schema.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-dataset-schema.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,EAAE;IAC7D,WAAW,EACT,6LAA6L;IAC/L,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;IAEnC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,KAAK,CAAC,2BAA2B,CAAC;aAClC,QAAQ,CACP,yFAAyF,CAC1F;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC7D,OAAO,EAAE,CAAC;aACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACxD,CAAC,CACH;aACA,QAAQ,CAAC,8CAA8C,CAAC;KAC5D,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAExE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG;YACZ,MAAM,MAAM,CAAC,IAAI,EAAE;YACnB,EAAE;YACF,MAAM,CAAC,WAAW;YAClB,EAAE;YACF,aAAa,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,mBAAmB,MAAM,CAAC,SAAS,EAAE;YAClF,EAAE;YACF,iCAAiC;YACjC,iCAAiC;SAClC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"get-dataset-schema.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-dataset-schema.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAKjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;kBA8HvB,CAAC"}
1
+ {"version":3,"file":"query-dataset.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-dataset.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAKjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;kBAkHvB,CAAC"}
@@ -6,7 +6,7 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { getSocrataService } from '../../../services/socrata/socrata-service.js';
7
7
  const MAX_LIMIT = 5000;
8
8
  export const queryDataset = tool('cdc_query_dataset', {
9
- description: `Execute a SoQL query against any CDC dataset. Supports filtering, aggregation, sorting, full-text search, and field selection. Use cdc_discover_datasets to find dataset IDs and cdc_get_dataset_schema to inspect columns before querying.\n\nTip — enumerate column values: use select: "{column}, count(*) as count", group: "{column}", order: "count DESC" to see distinct values.`,
9
+ description: 'Execute a SoQL query against any CDC dataset. Supports filtering, aggregation, sorting, full-text search, and field selection. Use cdc_discover_datasets to find dataset IDs and cdc_get_dataset_schema to inspect columns before querying.',
10
10
  annotations: { readOnlyHint: true },
11
11
  input: z.object({
12
12
  datasetId: z
@@ -20,7 +20,7 @@ export const queryDataset = tool('cdc_query_dataset', {
20
20
  select: z
21
21
  .string()
22
22
  .optional()
23
- .describe('SoQL SELECT clause. Column names, aliases, aggregates: "state, sum(deaths) as total_deaths". Omit for all columns.'),
23
+ .describe('SoQL SELECT clause column names, aliases, or aggregates: "state, sum(deaths) as total_deaths". Omit for all columns. To enumerate distinct values of a column, set select to "{column}, count(*) as count" with group="{column}" and order="count DESC".'),
24
24
  where: z
25
25
  .string()
26
26
  .optional()
@@ -52,17 +52,7 @@ export const queryDataset = tool('cdc_query_dataset', {
52
52
  }),
53
53
  async handler(input, ctx) {
54
54
  const service = getSocrataService();
55
- const result = await service.query({
56
- datasetId: input.datasetId,
57
- search: input.search,
58
- select: input.select,
59
- where: input.where,
60
- group: input.group,
61
- having: input.having,
62
- order: input.order,
63
- limit: input.limit,
64
- offset: input.offset,
65
- }, ctx.signal);
55
+ const result = await service.query(input, ctx.signal);
66
56
  ctx.log.info('Query executed', {
67
57
  datasetId: input.datasetId,
68
58
  rowCount: result.rowCount,
@@ -1 +1 @@
1
- {"version":3,"file":"query-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-dataset.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-dataset.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-dataset.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"socrata-service.d.ts","sourceRoot":"","sources":["../../../src/services/socrata/socrata-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAGV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAK;IAE5B;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCvF;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IA2BpF;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB9E,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,iBAAiB;YAQX,SAAS;YAiCT,QAAQ;CAQvB;AAID,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD"}
1
+ {"version":3,"file":"socrata-service.d.ts","sourceRoot":"","sources":["../../../src/services/socrata/socrata-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAGV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAK;IAE5B;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA8CvF;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAkCpF;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB9E,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,iBAAiB;YAQX,SAAS;YAiCT,QAAQ;CAQvB;AAID,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD"}
@@ -33,16 +33,24 @@ export class SocrataService {
33
33
  const datasets = results.map((r) => {
34
34
  const resource = r.resource;
35
35
  const classification = r.classification;
36
+ const description = resource.description;
37
+ const category = classification?.domain_category;
38
+ const tags = classification?.domain_tags;
39
+ const columnNames = resource.columns_field_name;
40
+ const columnTypes = resource.columns_datatype;
41
+ const updatedAt = resource.data_updated_at;
42
+ const pageViews = resource.page_views
43
+ ?.page_views_total;
36
44
  return {
37
45
  id: resource.id,
38
46
  name: resource.name,
39
- description: resource.description,
40
- category: classification?.domain_category ?? '',
41
- tags: classification?.domain_tags ?? [],
42
- columnNames: resource.columns_field_name ?? [],
43
- columnTypes: resource.columns_datatype ?? [],
44
- updatedAt: resource.data_updated_at,
45
- pageViews: resource.page_views?.page_views_total ?? 0,
47
+ ...(description ? { description } : {}),
48
+ ...(category ? { category } : {}),
49
+ ...(tags ? { tags } : {}),
50
+ ...(columnNames ? { columnNames } : {}),
51
+ ...(columnTypes ? { columnTypes } : {}),
52
+ ...(updatedAt ? { updatedAt } : {}),
53
+ ...(typeof pageViews === 'number' ? { pageViews } : {}),
46
54
  };
47
55
  });
48
56
  return { datasets, totalCount: data.resultSetSize ?? 0 };
@@ -55,20 +63,28 @@ export class SocrataService {
55
63
  const config = getServerConfig();
56
64
  const url = `${config.baseUrl}/api/views/${datasetId}.json`;
57
65
  const data = await this.fetchJson(url, signal);
58
- const columns = (data.columns ?? []).map((col) => ({
59
- fieldName: col.fieldName ?? '',
60
- dataType: col.dataTypeName ?? '',
61
- description: col.description ?? '',
62
- }));
63
66
  const rawColumns = data.columns ?? [];
67
+ const columns = rawColumns.map((col) => {
68
+ const description = col.description;
69
+ return {
70
+ fieldName: col.fieldName ?? '',
71
+ dataType: col.dataTypeName ?? '',
72
+ ...(description ? { description } : {}),
73
+ };
74
+ });
64
75
  const firstColCache = rawColumns[0]?.cachedContents;
76
+ const rawCount = firstColCache?.count;
77
+ const parsedCount = rawCount != null ? Number(rawCount) : Number.NaN;
78
+ const rowCount = Number.isFinite(parsedCount) ? parsedCount : undefined;
65
79
  const rowsUpdatedAt = data.rowsUpdatedAt;
80
+ const updatedAt = typeof rowsUpdatedAt === 'number' ? new Date(rowsUpdatedAt * 1000).toISOString() : undefined;
81
+ const description = data.description;
66
82
  return {
67
83
  name: data.name ?? '',
68
- description: data.description ?? '',
69
- rowCount: Number(firstColCache?.count) || 0,
70
- updatedAt: rowsUpdatedAt ? new Date(rowsUpdatedAt * 1000).toISOString() : '',
71
84
  columns,
85
+ ...(description ? { description } : {}),
86
+ ...(typeof rowCount === 'number' ? { rowCount } : {}),
87
+ ...(updatedAt ? { updatedAt } : {}),
72
88
  };
73
89
  }
74
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"socrata-service.js","sourceRoot":"","sources":["../../../src/services/socrata/socrata-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socrata-service.js","sourceRoot":"","sources":["../../../src/services/socrata/socrata-service.ts"],"names":[],"mappings":"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"}
@@ -2,31 +2,31 @@
2
2
  * @fileoverview Socrata API response types for the CDC Open Data portal.
3
3
  * @module services/socrata/types
4
4
  */
5
- /** Dataset metadata from the Discovery/Catalog API. */
5
+ /** Dataset metadata from the Discovery/Catalog API. Optional fields reflect upstream sparsity. */
6
6
  export interface CatalogDataset {
7
- category: string;
8
- columnNames: string[];
9
- columnTypes: string[];
10
- description: string;
7
+ category?: string;
8
+ columnNames?: string[];
9
+ columnTypes?: string[];
10
+ description?: string;
11
11
  id: string;
12
12
  name: string;
13
- pageViews: number;
14
- tags: string[];
15
- updatedAt: string;
13
+ pageViews?: number;
14
+ tags?: string[];
15
+ updatedAt?: string;
16
16
  }
17
17
  /** Column schema from the Metadata API. */
18
18
  export interface DatasetColumn {
19
19
  dataType: string;
20
- description: string;
20
+ description?: string;
21
21
  fieldName: string;
22
22
  }
23
- /** Full dataset metadata from the Metadata API. */
23
+ /** Full dataset metadata from the Metadata API. Optional fields reflect upstream sparsity. */
24
24
  export interface DatasetMetadata {
25
25
  columns: DatasetColumn[];
26
- description: string;
26
+ description?: string;
27
27
  name: string;
28
- rowCount: number;
29
- updatedAt: string;
28
+ rowCount?: number;
29
+ updatedAt?: string;
30
30
  }
31
31
  /** Result from catalog discovery. */
32
32
  export interface DiscoverResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/socrata/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/socrata/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/cdc-health-mcp-server",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "MCP server for discovering and querying CDC public health datasets via the Socrata SODA API.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -63,18 +63,18 @@
63
63
  "access": "public"
64
64
  },
65
65
  "dependencies": {
66
- "@cyanheads/mcp-ts-core": "^0.2.12",
66
+ "@cyanheads/mcp-ts-core": "^0.4.1",
67
67
  "pino-pretty": "^13.1.3"
68
68
  },
69
69
  "devDependencies": {
70
- "@biomejs/biome": "^2.4.10",
70
+ "@biomejs/biome": "^2.4.12",
71
71
  "@opentelemetry/api": "^1.9.1",
72
- "@types/node": "^25.5.2",
73
- "@vitest/coverage-istanbul": "^4.1.2",
72
+ "@types/node": "^25.6.0",
73
+ "@vitest/coverage-istanbul": "^4.1.4",
74
74
  "depcheck": "^1.4.7",
75
75
  "ignore": "^7.0.5",
76
76
  "tsc-alias": "^1.8.16",
77
- "typescript": "^6.0.2",
78
- "vitest": "^4.1.2"
77
+ "typescript": "^6.0.3",
78
+ "vitest": "^4.1.4"
79
79
  }
80
80
  }
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/cdc-health-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.4.2",
9
+ "version": "0.5.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/cdc-health-mcp-server",
21
21
  "runtimeHint": "node",
22
- "version": "0.4.2",
22
+ "version": "0.5.0",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -54,7 +54,7 @@
54
54
  "registryBaseUrl": "https://registry.npmjs.org",
55
55
  "identifier": "@cyanheads/cdc-health-mcp-server",
56
56
  "runtimeHint": "node",
57
- "version": "0.4.2",
57
+ "version": "0.5.0",
58
58
  "packageArguments": [
59
59
  {
60
60
  "type": "positional",