MCP App Store
Business
WitCloud icon

WitCloud

by Witbee Sp. z o.o.

Overview

WitCloud connects ChatGPT to your marketing, sales, and ecommerce data. Ask questions in plain language and get answers straight from your business data - explore customers, campaigns, revenue, and trends without writing SQL. WitCloud uses your business context to keep answers relevant. All access is read-only.

Tools

add_context_log_entry

ChatGPT
Append a new entry to the Context Log spreadsheet for the chosen business context. Only works for contexts with type="context_log". Use when the user asks to record a business event. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, ask them which context to log against (options come from load_project.businessContexts, filter by type="context_log").

add_context_log_entry

ChatGPT
Append a new entry to the Context Log spreadsheet for the chosen business context. Only works for contexts with type="context_log". Use when the user asks to record a business event. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, ask them which context to log against (options come from load_project.businessContexts, filter by type="context_log").

add_context_log_entry

ChatGPT
Append a new entry to the Context Log spreadsheet for the chosen business context. Only works for contexts with type="context_log". Use when the user asks to record a business event. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, ask them which context to log against (options come from load_project.businessContexts, filter by type="context_log").

describe_columns

ChatGPT
Return business descriptions for specific columns of a table. Use this AFTER get_table_schema when you need to understand what columns mean (picking the right metric, interpreting an enum, deciding which fields to JOIN on). Always pass only the columns you actually need — full schema descriptions can be very large.

describe_columns

ChatGPT
Return business descriptions for specific columns of a table. Use this AFTER get_table_schema when you need to understand what columns mean (picking the right metric, interpreting an enum, deciding which fields to JOIN on). Always pass only the columns you actually need — full schema descriptions can be very large.

describe_columns

ChatGPT
Return business descriptions for specific columns of a table. Use this AFTER get_table_schema when you need to understand what columns mean (picking the right metric, interpreting an enum, deciding which fields to JOIN on). Always pass only the columns you actually need — full schema descriptions can be very large.

get_business_context

ChatGPT
Return a business context. Behaviour depends on the context type: • type="text" — returns the company/product description (name, description, content). • type="context_log" — returns the Context Log, a timeline of business events (rebrands, launches, campaigns, structural changes). Optional date/category filters apply. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, fetch the options from load_project.businessContexts (which includes the type field) and ask them. If they decline, do not call this tool.

get_business_context

ChatGPT
Return a business context. Behaviour depends on the context type: • type="text" — returns the company/product description (name, description, content). • type="context_log" — returns the Context Log, a timeline of business events (rebrands, launches, campaigns, structural changes). Optional date/category filters apply. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, fetch the options from load_project.businessContexts (which includes the type field) and ask them. If they decline, do not call this tool.

get_business_context

ChatGPT
Return a business context. Behaviour depends on the context type: • type="text" — returns the company/product description (name, description, content). • type="context_log" — returns the Context Log, a timeline of business events (rebrands, launches, campaigns, structural changes). Optional date/category filters apply. Requires business_context_id — there is NO automatic selection. If the user has not picked one yet, fetch the options from load_project.businessContexts (which includes the type field) and ask them. If they decline, do not call this tool.

get_table_schema

ChatGPT
Return the BigQuery schema (fields, types, modes) for a specific tableId. Use the full tableId returned by list_tables (with suffix). Field descriptions are NOT included here to keep responses lean — call describe_columns for the columns you actually want to understand.

get_table_schema

ChatGPT
Return the BigQuery schema (fields, types, modes) for a specific tableId. Use the full tableId returned by list_tables (with suffix). Field descriptions are NOT included here to keep responses lean — call describe_columns for the columns you actually want to understand.

get_table_schema

ChatGPT
Return the BigQuery schema (fields, types, modes) for a specific tableId. Use the full tableId returned by list_tables (with suffix). Field descriptions are NOT included here to keep responses lean — call describe_columns for the columns you actually want to understand.

list_data_sources

ChatGPT
Refresh the list of active data sources for the current project. Same shape as load_project.dataSources. Call this only if you need an updated registry mid-session (e.g. after a solution was just executed and produced new tables).

list_data_sources

ChatGPT
Refresh the list of active data sources for the current project. Same shape as load_project.dataSources. Call this only if you need an updated registry mid-session (e.g. after a solution was just executed and produced new tables).

list_data_sources

ChatGPT
Refresh the list of active data sources for the current project. Same shape as load_project.dataSources. Call this only if you need an updated registry mid-session (e.g. after a solution was just executed and produced new tables).

list_documents

ChatGPT
Generic listing of project documentation. Returns summaries (no content) so it is cheap on tokens. Filter by slug prefix or free-text search. Slugs are path-like, e.g. 'aio/tables/aio_main', 'solutions/customer-analysis/introduction'.

list_documents

ChatGPT
Generic listing of project documentation. Returns summaries (no content) so it is cheap on tokens. Filter by slug prefix or free-text search. Slugs are path-like, e.g. 'aio/tables/aio_main', 'solutions/customer-analysis/introduction'.

list_documents

ChatGPT
Generic listing of project documentation. Returns summaries (no content) so it is cheap on tokens. Filter by slug prefix or free-text search. Slugs are path-like, e.g. 'aio/tables/aio_main', 'solutions/customer-analysis/introduction'.

list_projects

ChatGPT
Call this tool first. Returns all projects the user has access to. Present the list to the user and ask which project (or projects) they want to work on. Then call load_project with the chosen project_id.

list_projects

ChatGPT
Call this tool first. Returns all projects the user has access to. Present the list to the user and ask which project (or projects) they want to work on. Then call load_project with the chosen project_id.

list_projects

ChatGPT
Call this tool first. Returns all projects the user has access to. Present the list to the user and ask which project (or projects) they want to work on. Then call load_project with the chosen project_id.

list_tables

ChatGPT
List BigQuery tables in the project dataset with classification (which dataSource each table belongs to). Tables that cannot be classified (no AIO suffix and no matching solution instance ID) are hidden. Use this BEFORE run_query to discover the full tableId (which always includes a suffix) and partitioning info.

list_tables

ChatGPT
List BigQuery tables in the project dataset with classification (which dataSource each table belongs to). Tables that cannot be classified (no AIO suffix and no matching solution instance ID) are hidden. Use this BEFORE run_query to discover the full tableId (which always includes a suffix) and partitioning info.

list_tables

ChatGPT
List BigQuery tables in the project dataset with classification (which dataSource each table belongs to). Tables that cannot be classified (no AIO suffix and no matching solution instance ID) are hidden. Use this BEFORE run_query to discover the full tableId (which always includes a suffix) and partitioning info.

load_project

ChatGPT
Load a project after the user has picked one. Returns project identifiers, available data sources, and business contexts. REQUIRED: immediately after calling this tool, call read_document with slug "introduction" — that document contains all instructions on how to guide the user through the session. For cross-project analysis, call this tool once per project — results accumulate in context.

load_project

ChatGPT
Load a project after the user has picked one. Returns project identifiers, available data sources, and business contexts. REQUIRED: immediately after calling this tool, call read_document with slug "introduction" — that document contains all instructions on how to guide the user through the session. For cross-project analysis, call this tool once per project — results accumulate in context.

load_project

ChatGPT
Load a project after the user has picked one. Returns project identifiers, available data sources, and business contexts. REQUIRED: immediately after calling this tool, call read_document with slug "introduction" — that document contains all instructions on how to guide the user through the session. For cross-project analysis, call this tool once per project — results accumulate in context.

read_document

ChatGPT
Read the full markdown content of a document by its slug. Slugs are path-like, e.g. 'aio/tables/aio_main'. Use list_documents to discover slugs first.

read_document

ChatGPT
Read the full markdown content of a document by its slug. Slugs are path-like, e.g. 'aio/tables/aio_main'. Use list_documents to discover slugs first.

read_document

ChatGPT
Read the full markdown content of a document by its slug. Slugs are path-like, e.g. 'aio/tables/aio_main'. Use list_documents to discover slugs first.

run_query

ChatGPT
Execute a SELECT query against the project BigQuery dataset. PREREQUISITES: call list_tables and (when needed) get_table_schema / read_document for any table you query. RULES: - Use fully qualified names: googleCloudProjectId.datasetId.tableId (the full suffixed tableId from list_tables) - ALWAYS include a partition filter for any partitioned table to keep scans cheap. Use the partitioning field returned by list_tables: • partitioning.field === "_PARTITIONTIME" → ingestion-time partitioning; filter on _PARTITIONTIME or _PARTITIONDATE • any other field (e.g. "event_date") → column- or range-partitioning; filter on that exact column name • partitioning is null → no partition filter needed - Only SELECT queries are allowed; DML keywords are rejected by the backend - Cross-source JOIN (AIO × solution table) is supported because everything lives in one dataset

run_query

ChatGPT
Execute a SELECT query against the project BigQuery dataset. PREREQUISITES: call list_tables and (when needed) get_table_schema / read_document for any table you query. RULES: - Use fully qualified names: googleCloudProjectId.datasetId.tableId (the full suffixed tableId from list_tables) - ALWAYS include a partition filter for any partitioned table to keep scans cheap. Use the partitioning field returned by list_tables: • partitioning.field === "_PARTITIONTIME" → ingestion-time partitioning; filter on _PARTITIONTIME or _PARTITIONDATE • any other field (e.g. "event_date") → column- or range-partitioning; filter on that exact column name • partitioning is null → no partition filter needed - Only SELECT queries are allowed; DML keywords are rejected by the backend - Cross-source JOIN (AIO × solution table) is supported because everything lives in one dataset

run_query

ChatGPT
Execute a SELECT query against the project BigQuery dataset. PREREQUISITES: call list_tables and (when needed) get_table_schema / read_document for any table you query. RULES: - Use fully qualified names: googleCloudProjectId.datasetId.tableId (the full suffixed tableId from list_tables) - ALWAYS include a partition filter for any partitioned table to keep scans cheap. Use the partitioning field returned by list_tables: • partitioning.field === "_PARTITIONTIME" → ingestion-time partitioning; filter on _PARTITIONTIME or _PARTITIONDATE • any other field (e.g. "event_date") → column- or range-partitioning; filter on that exact column name • partitioning is null → no partition filter needed - Only SELECT queries are allowed; DML keywords are rejected by the backend - Cross-source JOIN (AIO × solution table) is supported because everything lives in one dataset

Capabilities

Writes

App Stats

33

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily