clicdata-mcp
ClicData MCP Server enables AI assistants (Claude, Mistral, ChatGPT, etc.) to connect directly to your ClicData account and access your data warehouse in real…
Что умеет
- List Dashboards: Lists dashboards accessible to the user (owned, shared, or via team). Light-weight summary by default — pass "fields" for more, or use GetDashboard(id) for full detail.
- Describe Schedule Fields: Selectable "fields" paths for ListSchedules/GetSchedule.
- Describe Query Data Parameters: Selectable/usable "columns", "groupByColumns", "filters" and "aggregations" parameters for QueryData, plus the paging metadata always present on its result — call this
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
ClicData MCP Server enables AI assistants (Claude, Mistral, ChatGPT, etc.) to connect directly to your ClicData account and access your data warehouse in real time. Query tables, list dashboards, retrieve schedules, validate datasets, debug refreshes, and manage workflows all through natural language prompts.
Secure OAuth 2 authentication ensures users can only access data they're already authorized to see.
Как подключить
Как подключить clicdata-mcp к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://clicdata-mcp--clicdata.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить clicdata-mcp к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://clicdata-mcp--clicdata.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить clicdata-mcp к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://clicdata-mcp--clicdata.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (14)
Технические названия из tools/list. Нужны только разработчикам.
| list_dashboards | Lists dashboards accessible to the user (owned, shared, or via team). Light-weight summary by default — pass "fields" for more, or use GetDashboard(id) for full detail. |
| describe_schedule_fields | Selectable "fields" paths for ListSchedules/GetSchedule. |
| describe_query_data_parameters | Selectable/usable "columns", "groupByColumns", "filters" and "aggregations" parameters for QueryData, plus the paging metadata always present on its result — call this once per tableId (columns come from GetTableSchema) before building non-trivial QueryData calls. |
| describe_dashboard_fields | Selectable "fields" paths for GetDashboard/ListDashboards. |
| list_tables | Lists tables accessible to the user (owned, shared, or via team). Light-weight summary by default — pass "fields" for more, or use GetTable(id) for full detail. |
| get_table_schema | Returns the table's column schema wrapped with tableId/columnCount metadata. Throws if not found/accessible. |
| list_schedules | Lists schedules accessible to the user (owned, shared, or via team). Light-weight summary by default — pass "fields" for more, or use GetSchedule(id) for full detail. |
| get_me | Returns profile information about the currently authenticated user. |
| describe_user_fields | Selectable "fields" paths for GetMe. |
| query_data | Paged rows from a table (column names from GetTableSchema). Recipes: 1) rows: columns=[...] only. 2) distinct values: columns=groupByColumns=[...]. 3) totals per group: columns=groupByColumns=[...] + aggregations=[{Column,Function}]. 4) overall total: columns=[], aggregations=[{Column,Function}], no groupByColumns. Rule: when groupByColumns is set, columns must contain exactly the same columns as groupByColumns (same set, order-independent) — every group-by column must be selected so grouped rows stay distinguishable; must be empty if aggregations is used without groupByColumns. Throws if the table doesn't exist or isn't accessible. Use filters to restrict rows before grouping/aggregation (WHERE-only — filtering on aggregated results/HAVING is not supported) instead of pulling the whole table. Filters combine as AND by default; give filters the same Group id to OR them together instead (different groups, and ungrouped filters, are still ANDed — e.g. Status=A/Group:1 + Status=B/Group:1 + Region=X gives (Status=A OR Status=B) AND Region=X). Comparator keywords (contains/startswith/endswith/equals/...) are case-insensitive, but the string values they compare against row data are case-sensitive; between/notbetween are inclusive of both bounds. pageSize is clamped to a maximum (currently 1000). |
| get_dashboard | Returns full detail of a dashboard: configuration, live link, usage stats, widgets. Throws if not found/accessible. |
| describe_table_fields | Selectable "fields" paths for ListTables/GetTable/GetTableSchema. |
| get_table | Returns full detail of a table. Throws if not found/accessible. |
| get_schedule | Returns full detail of a schedule. Throws if not found/accessible. |