This article describes the fourth step of Connecting to Snowflake MCP Server. Proceed to setting Concierge External Resource and finish establishing connection Between Concierge and Snowflake Intelligence.
Prerequisites:
- Metric Insights Administrator account.
- Token from the Snowflake account if the chosen Auth Type is "Defined in configuration".
- Snowflake credentials if the chosen Auth Type is "Service Account Token" or "User OAuth".
1. Create Concierge External Resource
Go to Metric Insights, access Admin > Concierge Setup and open the Content Sources tab
- [+ Add External Resource Configuration]
- Select Snowflake Intelligence from the list.
After that, the User will be redirected to the External Resource Editor.
1.1. Authentication Tab
The Name is generated automatically, but it can be changed if necessary.
1.1.1. Auth Type: Defined in Configuration
Choosing "Defined in configuration" type of authentication means that Concierge will use the Token hardcoded into the server configuration for access.
1.1.2. Auth Type: Service Account Token and User OAuth
Choosing "Service Account Token" or "User OAuth" type of authentication means that the Token will be requested and then automatically inserted to the configuration code by Metric Insights. Those two types require the same set of credentials. The difference between them is in authorization of the User that makes query in Concierge.
When the "User OAuth" type is chosen, Concierge checks what accesses the User that makes query has and provides answers according to them. "User OAuth" authentication type is used when the Snowflake has a security model configured which gives users different access rights.
The Token, obtained this way will have a priority over the one, hardcoded into the server configuration.
To create a Snowflake External Resource Configuration with "Service Account Token" Auth Type, you will have to perform additional configurations in Snowflake account.
- Application ID: Insert OAUTH_CLIENT_ID value.
- Client Secret Value: Insert OAUTH_CLIENT_SECRET value.
- Server: Insert the Server value.
- NOTE: Server value must be inserted without "https://" at the beginning and without ‘/’ at the end.
1.2. Configuration Tab
Proceed to Configuration tab
- Icon: To add a custom icon, upload an SVG image on a transparent background.
- A block of example JSON code is added to the field automatically. The parts in double curvy brackets ("{{}}") has to be filled with information specific to your instance.
- For more details about how to build the configuration, check the Connecting External Agents to Concierge via MCP Server article.
Check the JSON code usage example for Snowflake External Resource configuration.
Code Example
{
"name": "snowflake",
"enabled": true,
"title": "Snowflake Intelligence",
"scenario_type": "mcp_single_tool",
"display": "raw_or_llm_for_charting",
"use_in_slack_bot": false,
"use_in_msteams_bot": false,
"domain_id_field": "agent",
"mcp_server": {
"url": "http://mcp.metricinsights.com:8009/mcp",
"name": "snowflake",
"auth": {
"token": "<auth_token>"
}
},
"tool": "ask",
"display_progress": "{{title}}: {{message}}",
"timeout": 600
}
Snowflake Code Specifics
| Field | Description | |
|---|---|---|
name | The value of this variable should be unique and exactly match the Name field in the UI above the editor. It is allowed to use A-Z/a-z alphabetic symbols, digits, and underscore (_) when setting a name. | |
enabled | This field allows to disable External Resource instead of deleting it. If it is true, the External Resource is enabled. If it is false, the External Resource is disables.NOTE: After disabling the External Resource make sure to disconnect or disable all Domains connected to it. | |
title | The display name. This name is shown in the All Sources button and in Concierge responses. | |
display | Defines how data from the external agent is shown. The raw_or_llm_for_charting is the required option for this variable. It means that data is received from the MCP tool as is and is processed by the LLM on Concierge side if there is a need to create a chart. | |
scenario_type | The mcp_single_tool option is mandatory for this variable. | |
use_in_slack_bot | If this field is true, it allows external tool to be used for requests from Slack bot. | |
use_in_msteams_bot | If this field is true, it allows external tool to be used for requests from MS Teams bot. | |
scope | A prompt that instructs the LLM when to use this external resource. | |
domain_id_field | The agent option is mandatory for this variable. For MCP Servers that support domain transferring as the instrument's argument, this field defines where to transfer the domain ID. | |
mcp_server | url | URL of the MCP Server is a required value. Replace mcp_hostname and port with actual values. |
name | Name of MCP Server. It should be unique, but is an optional variable. | |
auth |
| |
tool | scenario_type variable is set to mcp_single_tool, so this field is required. The ask option is mandatory for this variable. | |
display_progress | The template for displaying MCP execution progress status messages from the MCP server if available. | |
timeout | Recommended value is from 300 to 600 seconds. | |
1.3. Get Token
If the "Service Account Token" or "User OAuth" Auth Type was chosen, go back to the Info tab.
Click [Get Token], so Metric Insights will obtain the Token from Snowflake. If Token was generated successfully, the confirmation message "Token generated" will appear.
Don't forget to [Save] the External Resource.
Snowflake External Resource will not appear in the All Sources menu. Add a Domain to it and that Domain will be visible in All Sources menu.