Skip to main content
Glama
Analytics-model-LTD

snowflake-analytics-mcp-server

snowflake-analytics-mcp-server

Сервер Model Context Protocol для Snowflake, созданный для платформы Analytics Model. Подключается к Snowflake через официальный драйвер snowflake-sdk (чистый Node — не нужен клиентский бинарный файл, в отличие от сервера Oracle) и предоставляет инструменты обнаружения таблиц и выполнения запросов через stdio. Запускается напрямую через npx.

Инструмент list_tables возвращает точную обёртку обнаружения таблиц платформы, поэтому он напрямую встраивается в тот же поток fetchMcpTables, что и серверы Clio, Dropbox и Shopify.

Установка

npm install -g snowflake-analytics-mcp-server
# or run directly (no install):
npx -y snowflake-analytics-mcp-server

Конфигурация

Все учётные данные задаются через переменные окружения.

Переменная

Обязательность

По умолчанию

Описание

SNOWFLAKE_ACCOUNT

Идентификатор аккаунта, например xy12345.eu-central-1 или orgname-account_name

SNOWFLAKE_USERNAME

Имя для входа

SNOWFLAKE_PASSWORD

✅ (при авторизации по паролю)

Пароль (обязателен, если не используются ключевая пара или OAuth)

SNOWFLAKE_WAREHOUSE

Виртуальное хранилище (warehouse) для использования

SNOWFLAKE_DATABASE

рекомендуется

База данных по умолчанию (используется инструментом list_tables, когда аргумент не указан)

SNOWFLAKE_SCHEMA

рекомендуется

Схема по умолчанию

SNOWFLAKE_ROLE

Роль, которую следует использовать

SNOWFLAKE_AUTHENTICATOR

SNOWFLAKE

SNOWFLAKE (пароль), SNOWFLAKE_JWT (ключевая пара), OAUTH

SNOWFLAKE_PRIVATE_KEY

ключевая пара

Содержимое приватного ключа PEM

SNOWFLAKE_PRIVATE_KEY_PATH

ключевая пара

Путь к PEM-файлу приватного ключа (альтернатива предыдущему)

SNOWFLAKE_PRIVATE_KEY_PASSPHRASE

Парольная фраза, если ключ зашифрован

SNOWFLAKE_TOKEN

OAuth

OAuth-токен доступа (с SNOWFLAKE_AUTHENTICATOR=OAUTH)

SNOWFLAKE_READ_ONLY

true

Блокирует запись/DDL в execute_query. Установите false, чтобы разрешить их

SNOWFLAKE_ROW_LIMIT

1000

Жёсткий предел количества возвращаемых строк

QUERY_TIMEOUT_MS

60000

Таймаут запроса на стороне клиента

Совет по идентификатору аккаунта

Используйте дефисы, а не подчёркивания, в идентификаторе Billing, если у клиента возникают проблемы с подключением (например, orgname-account-name).

Конфигурация Claude Desktop

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "snowflake": {
      "command": "npx",
      "args": ["-y", "snowflake-analytics-mcp-server"],
      "env": {
        "SNOWFLAKE_ACCOUNT": "xy12345.eu-central-1",
        "SNOWFLAKE_USERNAME": "ANALYTICS_USER",
        "SNOWFLAKE_PASSWORD": "••••••••",
        "SNOWFLAKE_WAREHOUSE": "COMPUTE_WH",
        "SNOWFLAKE_DATABASE": "ANALYTICS_DB",
        "SNOWFLAKE_SCHEMA": "PUBLIC",
        "SNOWFLAKE_ROLE": "ANALYST"
      }
    }
  }
}

Пример аутентификации по ключевой паре

"env": {
  "SNOWFLAKE_ACCOUNT": "xy12345.eu-central-1",
  "SNOWFLAKE_USERNAME": "ANALYTICS_USER",
  "SNOWFLAKE_AUTHENTICATOR": "SNOWFLAKE_JWT",
  "SNOWFLAKE_PRIVATE_KEY_PATH": "/path/to/rsa_key.p8",
  "SNOWFLAKE_PRIVATE_KEY_PASSPHRASE": "••••••••",
  "SNOWFLAKE_DATABASE": "ANALYTICS_DB",
  "SNOWFLAKE_SCHEMA": "PUBLIC"
}

Инструменты

Инструмент

Аргументы

Описание

list_tables

database?, schema?, include_views?

Контракт платформы. Возвращает { table_name }[] в двойной обёртке для fetchMcpTables

test_connection

Возвращает версию, аккаунт, пользователя, роль, виртуальное хранилище, базу данных и схему

list_databases

Базы данных, видимые текущей роли

list_schemas

database?

Схемы в базе данных

list_warehouses

Виртуальные хранилища с размером/состоянием

describe_table

table, database?, schema?

Столбцы, типы, допустимость NULL, значения по умолчанию

get_table_sample

table, database?, schema?, limit?

Предпросмотр строк в таблице

execute_query

query

Выполнение SQL. Только чтение, если не задано SNOWFLAKE_READ_ONLY=false

Примечание по интеграции с платформой

list_tables соответствует подтверждённой обёртке, используемой сервередами Shopify/Clio:

{
  "is_success": true,
  "status_code": 200,
  "data": "[{\"table_name\":\"ORDERS\"},{\"table_name\":\"CUSTOMERS\"}]", // double-stringified
  "message": "Found 2 table(s).",
  "requestedPayload": { "database": "ANALYTICS_DB", "schema": "PUBLIC", "include_views": true }
}

Поскольку Snowflake предоставляет произвольные пользовательские таблицы (в отличие от Clio с фиксированными категориями ресурсов, для каждой из которых был инструмент list_<resource>), отдельного инструмента для каждой таблицы нет. Когда пользователь выбирает таблицу на платформе, бэкенд должен получать её строки через get_table_sample (предпросмотр) или execute_query (SELECT * FROM <table>), а не вызывать инструмент, названный по имени таблицы. Согласуйте это сопоставление с бэкендом, прежде чем подключать шаг извлечения строк.

Лицензия

MIT

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Analytics-model-LTD/snowflake-analytics-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server