@dcluttr/dclare-mcp 0.1.6 → 0.1.8

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.
@@ -13057,7 +13057,7 @@
13057
13057
  },
13058
13058
  {
13059
13059
  "name": "blinkit_sku_insights",
13060
- "description": "SKU-level performance insights on Blinkit, including sales, inventory, availability, pricing, visibility, share of voice, and market share metrics.",
13060
+ "description": "SKU-level performance insights on Blinkit, including sales, inventory, availability, pricing, visibility, share of voice, and market share metrics. Use Average metric if available instead of weighted metrics",
13061
13061
  "grain": "One row per date, brand, and product.",
13062
13062
  "owner": "BLINKIT Analytics",
13063
13063
  "timeDimension": "created_at",
@@ -13420,17 +13420,17 @@
13420
13420
  },
13421
13421
  {
13422
13422
  "name": "avg_ds_listing_pct",
13423
- "description": "Average dark store listing percentage.",
13423
+ "description": "Use this when asked for listing information. Average dark store listing percentage.",
13424
13424
  "aggregation": "sum"
13425
13425
  },
13426
13426
  {
13427
13427
  "name": "avg_osa_ls_pct",
13428
- "description": "Average on-shelf availability in listed stores.",
13428
+ "description": "Use this when asked for on-shelf availability information in listed stores. Average on-shelf availability in listed stores.",
13429
13429
  "aggregation": "sum"
13430
13430
  },
13431
13431
  {
13432
13432
  "name": "avg_osa_pct",
13433
- "description": "Average on-shelf availability percentage across all dark stores.",
13433
+ "description": "Use this when asked for on-shelf availability information across all stores. Average on-shelf availability percentage across all dark stores.",
13434
13434
  "aggregation": "sum"
13435
13435
  },
13436
13436
  {
@@ -13440,22 +13440,22 @@
13440
13440
  },
13441
13441
  {
13442
13442
  "name": "wt_osa_ls_pct",
13443
- "description": "Weighted OSA in listed stores weighted by sales.",
13443
+ "description": "Weighted OSA in listed stores weighted by sales. don't use this metric",
13444
13444
  "aggregation": "sum"
13445
13445
  },
13446
13446
  {
13447
13447
  "name": "wt_osa_pct",
13448
- "description": "Weighted on-shelf availability percentage across all dark stores.",
13448
+ "description": "Weighted on-shelf availability percentage across all dark stores. don't use this metric",
13449
13449
  "aggregation": "sum"
13450
13450
  },
13451
13451
  {
13452
13452
  "name": "wt_discount_pct",
13453
- "description": "Weighted discount percentage across all relevant products weighted by sales.",
13453
+ "description": "Weighted discount percentage across all relevant products weighted by sales don't use this metric.",
13454
13454
  "aggregation": "sum"
13455
13455
  },
13456
13456
  {
13457
13457
  "name": "wt_ppu",
13458
- "description": "Weighted price per unit (x100) — sales-weighted average PPU across products.",
13458
+ "description": "Weighted price per unit (x100) — sales-weighted average PPU across products. don't use this metric",
13459
13459
  "aggregation": "sum"
13460
13460
  },
13461
13461
  {
package/dist/index.js CHANGED
@@ -133,9 +133,12 @@ server.registerTool("get_dataset_context", {
133
133
  server.registerTool("run_semantic_query", {
134
134
  title: "Run semantic query",
135
135
  description: "Runs a semantic query against the data platform with guardrails. " +
136
- "IMPORTANT: Brand-specific datasets contain both the user's brand AND competitor data. " +
136
+ "IMPORTANT RULES: " +
137
+ "1. TIME DIMENSIONS: For any query involving a date range or daily/weekly/monthly trend, you MUST use the timeDimensions parameter with the dataset's time column (usually 'created_at'). Use dateRange for filtering (e.g. 'this month', 'last 7 days', ['2026-02-01','2026-02-28']) and granularity ('day','week','month') for time-series breakdowns. " +
138
+ "2. BRAND FILTER: Brand-specific datasets contain both the user's brand AND competitor data. " +
137
139
  "When the user asks about their own brand's performance, include the 'curr_brand' segment to filter to their brand only. " +
138
- "When the user asks for competitor analysis or market-wide comparison, do NOT include 'curr_brand' so all brands are returned.",
140
+ "When the user asks for competitor analysis or market-wide comparison, do NOT include 'curr_brand' so all brands are returned. " +
141
+ "3. MEMBER NAMES: Use plain column names (e.g. 'created_at', 'offtake_mrp') without the dataset prefix.",
139
142
  inputSchema: {
140
143
  tenantToken: z.string().optional(),
141
144
  query: z.object({
@@ -168,7 +171,8 @@ server.registerTool("ask_data_question", {
168
171
  "IMPORTANT: Always call search_datasets first to resolve the exact dataset name and pass it as datasetHint. Do NOT guess dataset names. " +
169
172
  "Brand-specific datasets contain both the user's brand AND competitor data. " +
170
173
  "When the question is about the user's own brand, the plan should include the 'curr_brand' segment. " +
171
- "When the question involves competitor analysis or market-wide data, do NOT include 'curr_brand'.",
174
+ "When the question involves competitor analysis or market-wide data, do NOT include 'curr_brand'. " +
175
+ "For any question involving dates, trends, or time periods, the plan MUST include timeDimensions with the correct dateRange and granularity.",
172
176
  inputSchema: {
173
177
  tenantToken: z.string().optional(),
174
178
  question: z.string().min(5),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcluttr/dclare-mcp",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "description": "MCP server for secure talk-to-data on Cube + ClickHouse",
6
6
  "bin": {