{"serverId":"mcp-registry/com.ask-ai-data-connector/ask-ai","tools":[{"name":"get_insights","fixed":{"name":"get_insights","description":"Get the business improvement checklist (the FINDINGS to act on). If insights exist, returns the current checklist with status. If no insights exist (or refresh is requested), returns a data bundle with all key metrics from connected sources — use this data to generate actionable business recommendations (typically 3–8, as many as the data supports), then call save_insights to store them. You can also call save_insights with a single insight at any time during conversation. Use report: 'thread' (","inputSchema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Filter to insights that contain ANY of these tags (OR semantics). E.g. ['seo'] or ['paid']."},"report":{"enum":["checklist","thread"],"type":"string","description":"Default: 'checklist'. 'thread' retrieves a linked sequence of related findings as one story — requires threadId or insightId. (For fix outcomes / win-rate, use get_interventions(report: 'outcomes').)"},"status":{"description":"Filter by status. Pass a single value (e.g. 'open') or an array (e.g. ['open','addressed']) for OR semantics. Allowed values: open, addressed, superseded, dismissed.","type":"string"},"refresh":{"type":"boolean","description":"Set to true to generate fresh insights even if existing ones are present. Default: false — returns existing checklist."},"category":{"enum":["revenue","marketing","operations","customers","seo"],"type":"string","description":"Filter to a single category."},"threadId":{"type":"string","description":"Filter to a single thread (works on checklist and thread reports). Used to view a story end-to-end without category/tag filtering."},"insightId":{"type":"string","description":"For report: 'thread' — resolve the threadId from this insight and return the full thread (alternative to passing threadId directly)."},"includeCompleted":{"type":"boolean","description":"Default true. Set to false to return only active (open) insights."}}},"annotations":{"title":"Saved insights","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true},"title":"Saved insights"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: status. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":552,"tokensAfter":557},{"name":"query_metric_snapshots","fixed":{"name":"query_metric_snapshots","description":"Query recorded metric snapshots as a time series. Use to answer 'show me all CVR snapshots for UK over the last 6 months', 'how has ROAS evolved by month?', etc. Returns canonical snapshot data (matches the dashboard and monthly digest exactly) plus a `charts` array of ready-to-render line chart specs (one per metric; multi-series when the query spans multiple stores or segments). DEFAULT TO RENDERING THE CHART when the LLM is asked to show a metric over time — these are the SAME numbers the mer","inputSchema":{"type":"object","properties":{"list":{"type":"boolean","description":"If true, returns the metric registry (canonical keys, units, descriptions). Use this when you don't know which metrics are available."},"limit":{"type":"integer","description":"Max snapshots to return (default 100, max 500)"},"store":{"type":"string","description":"Filter to a specific store/region key. Accepts short form ('acme-store') or full domain ('acme-store.myshopify.com') — both normalize to the short form used in storage."},"metric":{"type":"string","description":"Canonical metric key. Omit to return snapshots across all metrics (filtered by other params)."},"source":{"type":"string","description":"Filter by source ('shopify', 'ga4', 'tw', etc.)"},"endDate":{"type":"string","description":"Only include snapshots whose periodStart is <= this date (YYYY-MM-DD)"},"segment":{"type":"string","description":"Filter to a specific segment"},"insightId":{"type":"string","description":"Only snapshots linked to this insight"},"startDate":{"type":"string","description":"Only include snapshots whose periodEnd is >= this date (YYYY-MM-DD)"},"confidence":{"description":"Filter by confidence. Pass 'high' / 'medium' / 'low' to match exactly, or 'minHigh' / 'minMedium' to require AT LEAST that level (treats null as 'high'). Useful for benchmarks where you only want trustworthy values.","type":"string"},"periodKind":{"enum":["rolling","calendar","custom"],"type":"string","description":"Filter by period anchoring. 'calendar' = discrete buckets only; 'rolling' = trailing windows only. Mixing the two in a single time series silently distorts trends."},"periodLength":{"enum":["day","week","month","quarter","year"],"type":"string","description":"Filter by bucket size — combine with periodKind to e.g. fetch only calendar-month rows."}}},"annotations":{"title":"Metric snapshot history","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true},"title":"Metric snapshot history"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: confidence. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":658,"tokensAfter":663}],"toolsChanged":2,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}