BigChatHub
← Все MCP и навыки

MCP-сервер · Базы данных

Snowflake-managed MCP Server

Управляемый MCP-сервер Snowflake: создаётся командой SQL внутри аккаунта и отдаёт агентам Cortex Agent, Cortex Search, Cortex Analyst, выполнение SQL и свои функции. Доступ ограничивается ролями Snowflake и входом через OAuth.

Сверено 21 октября 2026 г.

Что умеет сервер

Это управляемый MCP-сервер, который работает прямо внутри вашего аккаунта Snowflake: отдельную инфраструктуру разворачивать не нужно. Сервер создаётся как объект базы командой CREATE MCP SERVER, а в его спецификации перечисляются инструменты. Поддерживаются пять типов: агент Cortex Agent, поиск Cortex Search, Cortex Analyst, который по вопросу на естественном языке строит SQL, выполнение SQL и произвольные инструменты на основе пользовательских функций и хранимых процедур.

Клиент находит инструменты вызовом tools/list и использует их через tools/call. Для аутентификации по умолчанию применяется Snowflake OAuth, при желании можно привязать внешнего поставщика, например Okta или Microsoft Entra ID. Доступ к серверу и к каждому инструменту регулируется ролями Snowflake.

Когда использовать

Подходит командам, у которых данные уже в Snowflake и нужно дать агенту безопасный доступ к ним без выгрузки в сторонние системы. Для бизнес-вопросов Snowflake рекомендует выставлять наружу не сырой SQL, а Cortex Agent: он сам выбирает нужные Cortex Analyst и Cortex Search, а клиент получает один управляемый интерфейс. Прямой доступ к SQL нужен, когда агенту надо исследовать данные свободно, и для него лучше завести отдельный сервер с узкой ролью.

Это замена прежнему сообществу-серверу Snowflake-Labs/mcp: его репозиторий помечен как устаревший и не поддерживается, а в нём самом рекомендуют переходить на управляемый сервер Snowflake.

Ограничения и безопасность

Доступ к самому серверу не даёт доступа к инструментам: на каждый нужен свой грант, например USAGE на сервис Cortex Search или SELECT на семантическое представление. Snowflake советует создать для MCP отдельную роль с минимальными правами, не выдавать её роли PUBLIC и не включать вторичные роли (OAUTH_USE_SECONDARY_ROLES = NONE). По умолчанию сессия использует роль пользователя по умолчанию, и у пользователя должен быть задан склад по умолчанию, иначе сессия не запустится. Инструмент выполнения SQL по умолчанию работает только на чтение. Аннотации инструментов (только чтение, разрушающее действие и подобные) служат подсказками для клиента, а не механизмом защиты.

Есть и жёсткие пределы. Сервер поддерживает только инструменты, но не ресурсы, подсказки, корни и семплирование. На один сервер можно добавить до 50 инструментов, а ответы общих инструментов и инструмента SQL обрезаются на 250 КБ. Если у аккаунта включена сетевая политика, добавьте в неё исходящие адреса клиента (для Claude их публикует Anthropic), иначе запрос токена вернёт ошибку invalid_client. Имена хостов лучше писать с дефисами вместо подчёркиваний. Объекты MCP-серверов не реплицируются в группах отказоустойчивости. Если вы подключаете сторонние серверы, проверяйте их инструменты: Snowflake предупреждает об отравлении и подмене инструментов (tool poisoning и tool shadowing).

Установка

Создание MCP-сервера в Snowflake

Перейдите в нужную базу и схему и создайте сервер, выставив наружу Cortex Agent:

CREATE OR REPLACE MCP SERVER <database_name>.<schema_name>.<server_name>
FROM SPECIFICATION $$
tools:
  - title: "Governed business data agent"
    name: "business_data_agent"
    type: "CORTEX_AGENT_RUN"
    identifier: "<database_name>.<schema_name>.<agent_name>"
    description: "Use this agent for governed business data questions."
$$;

Инструмент выполнения SQL описывается так (по умолчанию он разрешает только чтение):

tools:
  - title: "SQL Execution Tool"
    name: "sql_exec_tool"
    type: "SYSTEM_EXECUTE_SQL"
    description: "A tool to execute SQL queries against the connected Snowflake database."
    config:
      read_only: true
      query_timeout: 600
      warehouse: "<warehouse_name>"

OAuth для клиента

Создайте интеграцию безопасности. Вариант для клиента без секрета (PKCE), например Claude Desktop:

CREATE OR REPLACE SECURITY INTEGRATION <integration_name>
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  ENABLED = TRUE
  OAUTH_CLIENT_TYPE = 'PUBLIC'
  OAUTH_REDIRECT_URI = 'https://claude.ai/api/mcp/auth_callback'
  OAUTH_USE_SECONDARY_ROLES = NONE
  ALLOWED_ROLES_LIST = ('<mcp_access_role>');

Для клиентов, которые хранят секрет (VS Code, Cursor), укажите OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' и адрес возврата клиента. Идентификатор и секрет клиента получите так (имя интеграции в верхнем регистре):

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<integration_name>');

Адрес сервера

https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>

Claude

В Claude откройте Settings, затем Connectors, нажмите Add custom connector, укажите имя (например, Snowflake) и адрес сервера выше, добавьте идентификатор и секрет клиента из интеграции безопасности и нажмите Add. Откроется окно входа в Snowflake.

Cursor

Добавьте в ~/.cursor/mcp.json (глобально) или <project>/.cursor/mcp.json (для проекта), а затем в Cursor Settings, MCP, нажмите Sign in:

{
  "mcpServers": {
    "snowflake": {
      "url": "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>",
      "auth": {
        "CLIENT_ID": "${env:MCP_CLIENT_ID}",
        "CLIENT_SECRET": "${env:MCP_CLIENT_SECRET}"
      }
    }
  }
}

ChatGPT

В ChatGPT включите Developer mode в Settings, Connectors, Advanced, затем создайте коннектор в Settings, Connectors: укажите адрес сервера, способ аутентификации OAuth, идентификатор и секрет клиента.

Совместимые клиенты

  • Claude
  • ChatGPT
  • Cursor

Связанные инструменты

Сайт