MCP App Store
by KeenEthics

Overview

Knowi is an AI-native business intelligence platform. This plugin connects ChatGPT and Codex to your Knowi account so you can ask questions of your data, build and update dashboards, and manage reports and alerts without leaving the conversation. What you can do: - Ask questions in plain English. Knowi resolves the right datasets, runs the query, and returns results, with a chart when one helps. - Explore what already exists: search dashboards, widgets, datasets, queries, and alerts; pull the data behind any widget; trace lineage and see how a business term was resolved. - Build: create datasources and queries (Cloud9QL or your database's native language), create and lay out widgets and dashboards, and export results to CSV or PDF. - Automate: create and test alerts, schedule and update reports, and deliver them by email, Slack, or Microsoft Teams. - Manage the semantic layer: define, map, and publish glossary terms so questions resolve consistently across your team. - Work with documents: ingest PDFs, Word, Excel, CSV, and images, ask questions about their contents, and extract structured data from them. Every tool runs as you, so data access follows your Knowi role and asset permissions. Tools that create, modify, or delete Knowi assets are marked as write or destructive, so the assistant confirms before making changes; read-only tools run without prompts. Requirements: a Knowi account. Sign in with OAuth when you connect; there are no API keys to copy.

Tools

ask

ChatGPT
Ask a data question in natural language. Finds relevant datasets via schema search, generates SQL, and returns results. Results are limited to 500 rows by default (use maxRows to adjust). Use get_data for full dataset access.

ask_document

ChatGPT
Ask a question against ingested documents. Performs semantic search across document embeddings, retrieves relevant chunks, and returns an LLM-generated answer with source citations. Can target specific documents or search across all.

audit_assets

ChatGPT
Audit assets to find unused ones the current user can edit: widgets not used on any dashboard/report/alert, dashboards not viewed within a given number of days, and queries with no widgets, alerts, reports, or downstream queries depending on them. Returns a list with links only — it never deletes anything.

cloud9ql_assist

ChatGPT
Generate, fix, explain, convert, validate, or preview Cloud9QL using dataset context. Cloud9QL is Knowi's query language for transforming dataset results; reference: https://docs.knowi.com/hc/en-us/articles/115006531408-Cloud9QL-Basics

connect_notification_channel

ChatGPT
Connect a Slack or Microsoft Teams workspace to the user's account so reports and alerts can be delivered there. Returns a one-time secure web URL where the user authorizes the workspace and picks a channel in a browser. The URL expires after 30 minutes and is the only place credentials are entered; this tool accepts no tokens, webhook URLs, or credentials. Applies when a report or alert should go to Slack or Teams and no integration is connected yet.

create_alert

ChatGPT
Create a new alert on a dataset. Supports conditional alerts (trigger when C9QL condition matches), data-not-updated alerts (trigger when dataset hasn't been updated within schedule interval), and query error alerts (trigger when a query execution fails).

create_dashboard

ChatGPT
Create a new dashboard and return its ID and URL. Existing widgets passed in widgetIds are placed on it in the order given at the default size (12 columns x 12 rows, KPI cards 12x6), two per row. To build a dashboard from scratch, create it here and then call create_widget with its dashboardId; use layout_dashboard afterwards to rearrange. If the name is already taken, a number is appended.

create_datasource

ChatGPT
Start a new datasource connection for the user's account. Returns a one-time secure web URL where the user enters host, port, credentials, and tests the connection in a browser. The URL expires after 30 minutes and is the only place connection credentials are entered; this tool takes only the connector type and an optional host.

create_query

ChatGPT
Create a new query against a datasource. Optionally run it immediately to populate a dataset.

create_report

ChatGPT
Create a scheduled report that sends a dashboard, widget(s), or app page via Email, Slack, or Teams at a given frequency. DELIVERY: 'recipients' for email, 'slackName' for Slack (e.g., 'testing', '#general'), or both. At least one delivery channel is required; email is NOT required if Slack or Teams is specified. slackName accepts a Slack configuration or channel name and the server resolves the configuration automatically. sendNow=true also sends immediately after creating the schedule.

create_widget

ChatGPT
Create a widget (chart/visualization) on a dataset. xAxis and yAxis must be exact field names from the dataset; get_data returns the dataset's field names and types, and a widget with missing or wrong field names shows 'No Data'. For charts (column, line, bar, pie, area, etc.), xAxis and yAxis are required. For data grids (datagrid2), they are optional.

define_term

ChatGPT
Create or update a business glossary term. If a term with the same name already exists (or termId is given) it is updated, otherwise a new term is created. The term is saved as a Draft — use publish_term to publish it.

delete

ChatGPT
Permanently delete a dashboard, widget, dataset, report, or alert by explicit asset type and ID. Requires confirm=true. This cannot be undone.

delete_document

ChatGPT
Delete an ingested document from the vector store and remove its query. Use list_documents to find document IDs. Requires confirmation.

explain_lineage

ChatGPT
Explain how an answer, visualization, dataset, query, or dashboard is built. Returns an on-demand lineage recipe with upstream sources, transformations, field traces, impact, warnings, and redactions. Provide assetType plus assetId, or one of widgetId, datasetId, queryId, or dashboardId.

explain_semantic_resolution

ChatGPT
Explain how the semantic layer would resolve a question, WITHOUT running any query: the candidates considered with relevance scores, why the primary asset was selected, why alternatives were not (lower relevance, not certified, unsupported request parts), and whether the certified-only (governed) policy applied. Use get_semantic_context for the structured resolution itself.

export_csv

ChatGPT
Export a dashboard or widget data as CSV. For dashboards, exports ALL widgets as separate CSV files in a single response; each widget becomes its own CSV with the correct widget name. Covers exporting data to CSV, downloading data, or producing a spreadsheet export.

export_pdf

ChatGPT
Export a dashboard or widget as a PDF document. Returns a base64-encoded PDF and widget configuration details.

extract_document_data

ChatGPT
Extract structured data from documents into a dataset. Define the fields to extract and the server will parse matching documents, returning structured rows. The resulting dataset can be used with ask, create_widget, etc. Turns unstructured documents into queryable data.

find_widget

ChatGPT
Find widgets by name. Optionally scope to a specific dashboard. Returns matching widget IDs, names, chart types, and dataset info.

get_data

ChatGPT
Get data from a widget or dataset. Returns rows as JSON.

get_details

ChatGPT
Get full details for any asset by type and ID.

get_embed_url

ChatGPT
Generate an embeddable share URL for a dashboard or widget.

get_glossary_term

ChatGPT
Get one business glossary term: full definition, aliases, dataset/field mappings, and status (Draft or Published).

get_insights

ChatGPT
Generate AI-powered insights and recommendations for a widget or dashboard. Analyzes the data and returns observations, trends, anomalies, and actionable recommendations. Provide either a widgetId (single widget analysis) or dashboardId (analyzes all widgets).

get_semantic_context

ChatGPT
Resolve a natural-language question against the semantic layer WITHOUT running any query. Returns matched business terms, the resolved assets (primary and alternatives) with certification state (Certified or Not certified), the resolution decision (REUSE, ADAPT, CREATE), the execution disposition (continue, clarify, block), and any blockers. Use ask to actually execute.

import_file

ChatGPT
Import file data (CSV, JSON, XML, or Excel) into a dataset. Pass text content as a string for CSV/JSON/XML, or base64-encoded content for Excel (.xlsx/.xls). Creates or updates a dataset.

ingest_document

ChatGPT
Ingest a document (PDF, Word, CSV, Excel, images, text) for Q&A and data extraction. Documents are chunked, embedded, and stored in the vector database for semantic search. Supported formats: PDF, DOCX, DOC, CSV, XLS, XLSX, TXT, MD, PNG, JPG, GIF, BMP, TIFF, WEBP.

layout_dashboard

ChatGPT
Set widget positions and sizes on a dashboard, or add existing widgets to it. The grid is 24 columns wide and 24 rows per screen height, 1-based: one row is 1/24 of the visible dashboard, so sizeY=12 is half a screen tall. Defaults when omitted: sizeX=12, sizeY=12 for charts and data grids, sizeY=6 for KPI cards and gauges. Chart heights below 8 are raised because the chart has no room for axes and labels — use sizeY=12 (or 24 for a hero chart) rather than small values. Typical layout: two 12x12 charts per row (col 1 and col 13), with a row of 12x6 KPI cards on top. Widgets not on the dashboard yet are added below the existing layout, keeping the relative positions given.

list_alerts

ChatGPT
List alerts accessible to the current user. Optionally filter by dataset ID or widget ID.

list_dashboards

ChatGPT
List all dashboards accessible to the current user.

list_documents

ChatGPT
List documents ingested into a document datasource. Returns document names and IDs. Use this to find document IDs for ask_document, extract_document_data, or delete_document.

list_glossary_terms

ChatGPT
List the business glossary terms defined for this account. Each term includes its name, definition, aliases, status (Draft or Published), and how many datasets/fields it is mapped to.

map_term

ChatGPT
Map a business glossary term to a dataset, optionally narrowing to specific fields. Existing mappings are preserved; the new mapping is added.

publish_term

ChatGPT
Publish a Draft business glossary term so it participates in semantic resolution. Publishing is an explicit decision — terms are never published automatically.

push_data

ChatGPT
Push data rows to a dataset. Creates the dataset if it doesn't exist.

run

ChatGPT
Execute a saved query (refresh its data) or trigger a saved email report to send immediately. Use this to send an existing report right now — it will deliver to all configured recipients via email, Slack, Teams, or webhook. Provide exactly one of queryId or reportId.

test_alert

ChatGPT
Test an existing alert by triggering it immediately. The alert executes as if its condition was checked now, and sends notifications if the condition matches. Results are not persisted in the alert's execution history.

update_alert

ChatGPT
Update an existing alert. Can change the alert name, condition, schedule, email recipients, real-time mode, or pause/resume the alert. Only specified fields are updated; others remain unchanged.

update_dashboard

ChatGPT
Rename a dashboard, change its description, or change settings from its Settings panel. Common settings: locked (true prevents editing), dashTheme, backgroundColor, widgetSpacing, dashTitle (show the dashboard title), title, filter, border, setting, resize, drag and actions (widget header controls), enablePdfExport, enablePptExport, enablePresenter, dashLoadUponPrompt (wait for filters before loading). On/off settings take true or false. An unknown setting name is rejected with the list of valid ones. Use update_dashboard_filters for filters and layout_dashboard for widget positions.

update_dashboard_filters

ChatGPT
Set dashboard-level filters, which apply to every widget on the dashboard that has the field. Each filter replaces the existing dashboard filter on the same field; other filters are kept unless replaceAll is true. Field names must exist in the dataset of at least one widget on the dashboard; get_data returns a dataset's field names. Locked filters cannot be changed. To filter a single widget instead, use update_widget.

update_dataset_semantics

ChatGPT
Set dataset-level semantics: field synonyms, the primary date field used for date questions, and dataset AI instructions. Omitted settings are left unchanged; pass an empty value to clear a setting.

update_query

ChatGPT
Update an existing query: rename it, change its query text, set how each run writes to the dataset (overwriteStrategy), set or remove its run schedule, or run it now. Only the fields you pass change. get_details with assetType='query' shows the current values.

update_report

ChatGPT
Update an existing scheduled report's configuration. Can change frequency, recipients, delivery channels (email, Slack, Teams), export options, and email body, or pause/resume it. Use search with assetType='report' to find report IDs.

update_widget

ChatGPT
Update an existing widget's data transformations (add/remove filters, change aggregations, modify sorting) and/or display settings (chart type, name). Changes are saved server-side; no UI interaction is needed. The widget's current configuration is returned by get_details. Filters require exact dataset field names, which get_data returns for the widget's datasetId.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

46

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily