<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Adding Qlik MCP to Snowflake Intelligence in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Adding-Qlik-MCP-to-Snowflake-Intelligence/ta-p/2550188</link>
    <description>&lt;P&gt;This article explains how to connect the &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Qlik MCP&lt;/FONT&gt;&lt;/STRONG&gt; (&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Model Context Protocol&lt;/FONT&gt;&lt;/STRONG&gt;) server to &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Snowflake Intelligence&lt;/FONT&gt;&lt;/STRONG&gt;, enabling Snowflake Cortex Agents to query and interact with Qlik Cloud resources, such as apps, data assets, and analytics, directly from the Snowflake AI interface.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Content&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-TOC indent="15" liststyle="none" maxheadinglevel="4"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Prerequisites&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Qlik Cloud&lt;/STRONG&gt;: Tenant Administrator access to create OAuth clients in the Administration activity center&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Snowflake&lt;/STRONG&gt;: ACCOUNTADMIN role (or a role with CREATE INTEGRATION and CREATE MCP SERVER privileges)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Snowflake Intelligence access&lt;/STRONG&gt; (Cortex Agents) enabled on your Snowflake account&lt;/LI&gt;
&lt;LI&gt;Your Qlik Cloud tenant hostname (example: your-tenant.us.qlikcloud.com)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Setup Steps&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Create an OAuth2 Client in Qlik Cloud&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The OAuth2 client provides Snowflake with the credentials it needs to authenticate against the Qlik MCP server on behalf of users. For details on creating OAuth clients, see &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm" target="_blank" rel="noopener"&gt;Creating and managing OAuth clients&lt;/A&gt;.&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;Copy the Client ID and Client Secret immediately after creation. The secret cannot be retrieved later — if lost, you must generate a new one.&lt;/BLOCKQUOTE&gt;
&lt;OL&gt;
&lt;LI&gt;Log in to your Qlik Cloud tenant and navigate to the &lt;STRONG&gt;Administration activity center&lt;/STRONG&gt;,&amp;nbsp;or go directly to &lt;EM&gt;https://&amp;lt;your-tenant&amp;gt;/&lt;STRONG&gt;console&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;Go to &lt;STRONG&gt;OAuth&lt;/STRONG&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Click&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;Create New&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Fill in the following fields:&lt;BR /&gt;&lt;BR /&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;: A descriptive name&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Client type&lt;/STRONG&gt;: Web&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Authentication method&lt;/STRONG&gt;: Client secret&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Redirect URL&lt;/STRONG&gt;:&amp;nbsp;&lt;A href="https://identity.snowflake.com/oauth2/callback" target="_blank" rel="noopener"&gt;https://identity.snowflake.com/oauth2/callback&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Allowed origins&lt;/STRONG&gt; (optional):&amp;nbsp;&lt;A href="https://identity.snowflake.com" target="_blank" rel="noopener"&gt;https://identity.snowflake.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scopes&lt;/STRONG&gt;: user_default, mcp:execute
&lt;BLOCKQUOTE class="quote"&gt;The &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt; scope is required to allow Snowflake to invoke tools on the Qlik MCP server. The&lt;STRONG&gt; user_default&lt;/STRONG&gt; scope grants access to resources the authenticated user can already access in Qlik Cloud.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Create&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;A dialog will display the &lt;STRONG&gt;Client ID&lt;/STRONG&gt; and &lt;STRONG&gt;Client Secret&lt;/STRONG&gt;.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Copy both values immediately and store them securely. The Client Secret will not be shown again.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Register the Qlik MCP Server in Snowflake&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;For details on the Qlik MCP server endpoint and supported tools, see &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm" target="_blank" rel="noopener"&gt;Connecting to the Qlik MCP server&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;Using the OAuth client credentials previously retrieved, run the following Snowflake SQL script to:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Create an &lt;STRONG&gt;API Integration&lt;/STRONG&gt; with OAuth2, pointing to your Qlik tenant&lt;/LI&gt;
&lt;LI&gt;Register an&lt;STRONG&gt; External MCP Server&lt;/STRONG&gt; using that integration&lt;/LI&gt;
&lt;LI&gt;Grant usage to the appropriate role&lt;BR /&gt;&lt;LI-CODE lang="cpp"&gt;-- ============================================================
-- Parameters — update these values before running
-- ============================================================
SET TENANT        = '&amp;lt;your-tenant&amp;gt;.us.qlikcloud.com'; -- Do not include https://
SET CLIENT_ID     = '&amp;lt;your-oauth-client-id&amp;gt;';
SET CLIENT_SECRET = '&amp;lt;your-oauth-client-secret&amp;gt;';
SET ALLOWED_ROLE  = 'PUBLIC'; -- The Snowflake role that should have access.
                              -- ⚠️ PUBLIC grants access to all users in the account.
                              -- For production, replace with a more restrictive role.

-- ============================================================
-- Derived values — no changes needed below this point
-- ============================================================
SET MCP_URL = 'https://' || $TENANT || '/api/ai/mcp';

-- Create the API Integration with OAuth2 configuration
DROP API INTEGRATION IF EXISTS qlik_mcp_integration;

EXECUTE IMMEDIATE
$$
DECLARE
    v_tenant        VARCHAR;
    v_client_id     VARCHAR;
    v_client_secret VARCHAR;
    v_mcp_url       VARCHAR;
    sql_stmt        VARCHAR;
BEGIN
    SELECT GETVARIABLE('TENANT')        INTO v_tenant;
    SELECT GETVARIABLE('CLIENT_ID')     INTO v_client_id;
    SELECT GETVARIABLE('CLIENT_SECRET') INTO v_client_secret;
    v_mcp_url := 'https://' || v_tenant || '/api/ai/mcp';

    sql_stmt :=
        'CREATE API INTEGRATION qlik_mcp_integration'
        || ' API_PROVIDER = external_mcp'
        || ' API_ALLOWED_PREFIXES = (''' || v_mcp_url || ''')'
        || ' API_USER_AUTHENTICATION = ('
        || '   TYPE = OAUTH2'
        || '   OAUTH_CLIENT_ID = ''' || v_client_id || ''''
        || '   OAUTH_CLIENT_SECRET = ''' || v_client_secret || ''''
        || '   OAUTH_TOKEN_ENDPOINT = ''https://' || v_tenant || '/oauth/token'''
        || '   OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST'
        || '   OAUTH_AUTHORIZATION_ENDPOINT = ''https://' || v_tenant || '/oauth/authorize'''
        || '   OAUTH_REFRESH_TOKEN_VALIDITY = 86400'
        || '   OAUTH_ALLOWED_SCOPES = (''user_default'', ''mcp:execute'')'
        || ' )'
        || ' ENABLED = TRUE';

    EXECUTE IMMEDIATE sql_stmt;
END;
$$;

SHOW API INTEGRATIONS LIKE '%qlik%';

SET DISPLAY = 'Qlik MCP server ' || $TENANT;
DROP EXTERNAL MCP SERVER IF EXISTS qlik_mcp_server;

CREATE EXTERNAL MCP SERVER qlik_mcp_server
    WITH DISPLAY_NAME = $DISPLAY
    API_INTEGRATION  = qlik_mcp_integration;

ALTER EXTERNAL MCP SERVER qlik_mcp_server
    SET URL = $MCP_URL;

-- Grant access to the specified role
GRANT USAGE ON INTEGRATION  qlik_mcp_integration TO ROLE IDENTIFIER($ALLOWED_ROLE);
GRANT USAGE ON MCP SERVER   qlik_mcp_server       TO ROLE IDENTIFIER($ALLOWED_ROLE);

-- ============================================================
-- Verification queries
-- ============================================================
SHOW EXTERNAL MCP SERVERS;
DESCRIBE EXTERNAL MCP SERVER qlik_mcp_server;
SHOW API INTEGRATIONS LIKE '%qlik%';

-- Initiate the user OAuth flow
SELECT SYSTEM$START_USER_OAUTH_FLOW('qlik_mcp_integration');
​&lt;/LI-CODE&gt;
&lt;BLOCKQUOTE class="quote"&gt;The &lt;STRONG&gt;SYSTEM$START_USER_OAUTH_FLOW&lt;/STRONG&gt; call at the end generates a URL you can open in a browser to validate the OAuth handshake with Qlik Cloud before proceeding to Snowflake Intelligence.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Connect to Qlik MCP in Snowflake Intelligence&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Once the MCP server is registered in Snowflake, you can authorize and use it directly from the Snowflake Intelligence UI.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open &lt;STRONG&gt;Snowflake Intelligence&lt;/STRONG&gt;. The URL follows the pattern &lt;A href="https://ai.snowflake.com/&amp;lt;orgname&amp;gt;/&amp;lt;accountname&amp;gt;" target="_blank" rel="noopener"&gt;https://ai.snowflake.com/&amp;lt;orgname&amp;gt;/&amp;lt;accountname&amp;gt;&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;For example, &lt;EM&gt;&lt;A href="https://ai.snowflake.com/myorg/myaccount" target="_blank" rel="noopener"&gt;https://ai.snowflake.com/myorg/myaccount&lt;/A&gt;&lt;/EM&gt;. If you are unsure of your URL, contact your Snowflake account administrator.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Click your &lt;STRONG&gt;profile icon&lt;/STRONG&gt; (bottom left corner) to open your personal settings.&lt;/LI&gt;
&lt;LI&gt;Navigate to the &lt;STRONG&gt;Connectors&lt;/STRONG&gt; section. You will see &lt;STRONG&gt;Qlik MCP Server&lt;/STRONG&gt; listed, pointing to your configured Qlik Cloud tenant.&lt;/LI&gt;
&lt;LI&gt;Click the &lt;STRONG&gt;Connect&lt;/STRONG&gt; button next to the &lt;STRONG&gt;Qlik MCP&lt;/STRONG&gt; entry.&lt;/LI&gt;
&lt;LI&gt;You will be redirected to Qlik Cloud to complete the OAuth2 authorization flow. Log in with your Qlik Cloud credentials if prompted, then approve the requested permissions (&lt;STRONG&gt;user_default&lt;/STRONG&gt;, &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt;).&lt;/LI&gt;
&lt;LI&gt;After authorization, you are returned to Snowflake Intelligence. The Qlik MCP connector will show a &lt;STRONG&gt;Connected&lt;/STRONG&gt; status.&lt;/LI&gt;
&lt;LI&gt;You can now ask Snowflake Intelligence questions that involve Qlik Cloud resources. The Cortex Agent will automatically invoke the appropriate Qlik MCP tools to retrieve data, apps, or analytics content.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Test with a Cortex Agent&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;To validate the full integration, create a test Cortex Agent that uses the Qlik MCP server.&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;Before running: Replace &lt;STRONG&gt;CORTEX_APP.PUBLIC&lt;/STRONG&gt; with the database and schema where you want to create the agent in your Snowflake environment. The database must already exist.&lt;/BLOCKQUOTE&gt;
&lt;LI-CODE lang="cpp"&gt;-- Replace &amp;lt;YOUR_DATABASE&amp;gt; and &amp;lt;YOUR_SCHEMA&amp;gt; with your target database and schema
CREATE OR REPLACE AGENT &amp;lt;YOUR_DATABASE&amp;gt;.&amp;lt;YOUR_SCHEMA&amp;gt;.qlik_mcp_test_agent
  FROM SPECIFICATION $$
models:
  orchestration: auto
instructions:
  response: &amp;gt;
    You are a test agent that verifies connectivity to the Qlik MCP server.
    Use the available Qlik tools to answer the user's question.
  orchestration: "Use the Qlik MCP tools to answer questions about Qlik Cloud."
mcp_servers:
  - server_spec:
      name: "&amp;lt;YOUR_DATABASE&amp;gt;.&amp;lt;YOUR_SCHEMA&amp;gt;.QLIK_MCP_SERVER"
$$;
&lt;/LI-CODE&gt;
&lt;P&gt;Once created, invoke the agent with a test prompt such as:&amp;nbsp;&lt;EM&gt;What Qlik apps are available in my tenant?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;A successful response confirms end-to-end connectivity between Snowflake Cortex and the Qlik MCP server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Troubleshooting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;OAuth redirect fails &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Typically caused by a Redirect URL mismatch. Verify &lt;A href="https://identity.snowflake.com/oauth2/callback" target="_blank" rel="noopener"&gt;https://identity.snowflake.com/oauth2/callback&lt;/A&gt; is set in the Qlik OAuth client&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;mcp:execute scope error &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The scope not enabled on OAuth client. Edit the OAuth client in Qlik Cloud Administration activity center and add the &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt; scope&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Client Secret rejected &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Secret was rotated or lost. Generate a new client secret and update &lt;STRONG&gt;$CLIENT_SECRET&lt;/STRONG&gt; in the script&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;MCP Server not visible in Snowflake Intelligence &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The correct role was not granted. Confirm &lt;STRONG&gt;GRANT USAGE ON MCP SERVER&lt;/STRONG&gt; was executed for the user's active role.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Agent returns no results&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The OAuth flow was not completed. Complete the steps in &lt;EM&gt;Connect to Qlik MCP in Snowflake Intelligence&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Related Content&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm" target="_blank" rel="noopener"&gt;Connecting to the Qlik MCP server | Qlik Cloud Help&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm" target="_blank" rel="noopener"&gt;Creating and managing OAuth clients | Qlik Cloud Help&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.snowflake.com" target="_blank" rel="noopener"&gt;Snowflake External MCP Server documentation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="4" color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik MCP&lt;/LI&gt;
&lt;LI&gt;Qlik Cloud&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;The information in this article is provided as-is and to be used at your own discretion. Depending on the tools used, customizations, and/or other factors, ongoing support on the solution described may not be provided by Qlik Support.&lt;/BLOCKQUOTE&gt;</description>
    <pubDate>Fri, 29 May 2026 04:56:04 GMT</pubDate>
    <dc:creator>SwathiPulagam</dc:creator>
    <dc:date>2026-05-29T04:56:04Z</dc:date>
    <item>
      <title>Adding Qlik MCP to Snowflake Intelligence</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Adding-Qlik-MCP-to-Snowflake-Intelligence/ta-p/2550188</link>
      <description>&lt;P&gt;This article explains how to connect the &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Qlik MCP&lt;/FONT&gt;&lt;/STRONG&gt; (&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Model Context Protocol&lt;/FONT&gt;&lt;/STRONG&gt;) server to &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Snowflake Intelligence&lt;/FONT&gt;&lt;/STRONG&gt;, enabling Snowflake Cortex Agents to query and interact with Qlik Cloud resources, such as apps, data assets, and analytics, directly from the Snowflake AI interface.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Content&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-TOC indent="15" liststyle="none" maxheadinglevel="4"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Prerequisites&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Qlik Cloud&lt;/STRONG&gt;: Tenant Administrator access to create OAuth clients in the Administration activity center&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Snowflake&lt;/STRONG&gt;: ACCOUNTADMIN role (or a role with CREATE INTEGRATION and CREATE MCP SERVER privileges)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Snowflake Intelligence access&lt;/STRONG&gt; (Cortex Agents) enabled on your Snowflake account&lt;/LI&gt;
&lt;LI&gt;Your Qlik Cloud tenant hostname (example: your-tenant.us.qlikcloud.com)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Setup Steps&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Create an OAuth2 Client in Qlik Cloud&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The OAuth2 client provides Snowflake with the credentials it needs to authenticate against the Qlik MCP server on behalf of users. For details on creating OAuth clients, see &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm" target="_blank" rel="noopener"&gt;Creating and managing OAuth clients&lt;/A&gt;.&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;Copy the Client ID and Client Secret immediately after creation. The secret cannot be retrieved later — if lost, you must generate a new one.&lt;/BLOCKQUOTE&gt;
&lt;OL&gt;
&lt;LI&gt;Log in to your Qlik Cloud tenant and navigate to the &lt;STRONG&gt;Administration activity center&lt;/STRONG&gt;,&amp;nbsp;or go directly to &lt;EM&gt;https://&amp;lt;your-tenant&amp;gt;/&lt;STRONG&gt;console&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;Go to &lt;STRONG&gt;OAuth&lt;/STRONG&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Click&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;Create New&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Fill in the following fields:&lt;BR /&gt;&lt;BR /&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;: A descriptive name&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Client type&lt;/STRONG&gt;: Web&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Authentication method&lt;/STRONG&gt;: Client secret&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Redirect URL&lt;/STRONG&gt;:&amp;nbsp;&lt;A href="https://identity.snowflake.com/oauth2/callback" target="_blank" rel="noopener"&gt;https://identity.snowflake.com/oauth2/callback&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Allowed origins&lt;/STRONG&gt; (optional):&amp;nbsp;&lt;A href="https://identity.snowflake.com" target="_blank" rel="noopener"&gt;https://identity.snowflake.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scopes&lt;/STRONG&gt;: user_default, mcp:execute
&lt;BLOCKQUOTE class="quote"&gt;The &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt; scope is required to allow Snowflake to invoke tools on the Qlik MCP server. The&lt;STRONG&gt; user_default&lt;/STRONG&gt; scope grants access to resources the authenticated user can already access in Qlik Cloud.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Create&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;A dialog will display the &lt;STRONG&gt;Client ID&lt;/STRONG&gt; and &lt;STRONG&gt;Client Secret&lt;/STRONG&gt;.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Copy both values immediately and store them securely. The Client Secret will not be shown again.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Register the Qlik MCP Server in Snowflake&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;For details on the Qlik MCP server endpoint and supported tools, see &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm" target="_blank" rel="noopener"&gt;Connecting to the Qlik MCP server&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;Using the OAuth client credentials previously retrieved, run the following Snowflake SQL script to:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Create an &lt;STRONG&gt;API Integration&lt;/STRONG&gt; with OAuth2, pointing to your Qlik tenant&lt;/LI&gt;
&lt;LI&gt;Register an&lt;STRONG&gt; External MCP Server&lt;/STRONG&gt; using that integration&lt;/LI&gt;
&lt;LI&gt;Grant usage to the appropriate role&lt;BR /&gt;&lt;LI-CODE lang="cpp"&gt;-- ============================================================
-- Parameters — update these values before running
-- ============================================================
SET TENANT        = '&amp;lt;your-tenant&amp;gt;.us.qlikcloud.com'; -- Do not include https://
SET CLIENT_ID     = '&amp;lt;your-oauth-client-id&amp;gt;';
SET CLIENT_SECRET = '&amp;lt;your-oauth-client-secret&amp;gt;';
SET ALLOWED_ROLE  = 'PUBLIC'; -- The Snowflake role that should have access.
                              -- ⚠️ PUBLIC grants access to all users in the account.
                              -- For production, replace with a more restrictive role.

-- ============================================================
-- Derived values — no changes needed below this point
-- ============================================================
SET MCP_URL = 'https://' || $TENANT || '/api/ai/mcp';

-- Create the API Integration with OAuth2 configuration
DROP API INTEGRATION IF EXISTS qlik_mcp_integration;

EXECUTE IMMEDIATE
$$
DECLARE
    v_tenant        VARCHAR;
    v_client_id     VARCHAR;
    v_client_secret VARCHAR;
    v_mcp_url       VARCHAR;
    sql_stmt        VARCHAR;
BEGIN
    SELECT GETVARIABLE('TENANT')        INTO v_tenant;
    SELECT GETVARIABLE('CLIENT_ID')     INTO v_client_id;
    SELECT GETVARIABLE('CLIENT_SECRET') INTO v_client_secret;
    v_mcp_url := 'https://' || v_tenant || '/api/ai/mcp';

    sql_stmt :=
        'CREATE API INTEGRATION qlik_mcp_integration'
        || ' API_PROVIDER = external_mcp'
        || ' API_ALLOWED_PREFIXES = (''' || v_mcp_url || ''')'
        || ' API_USER_AUTHENTICATION = ('
        || '   TYPE = OAUTH2'
        || '   OAUTH_CLIENT_ID = ''' || v_client_id || ''''
        || '   OAUTH_CLIENT_SECRET = ''' || v_client_secret || ''''
        || '   OAUTH_TOKEN_ENDPOINT = ''https://' || v_tenant || '/oauth/token'''
        || '   OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST'
        || '   OAUTH_AUTHORIZATION_ENDPOINT = ''https://' || v_tenant || '/oauth/authorize'''
        || '   OAUTH_REFRESH_TOKEN_VALIDITY = 86400'
        || '   OAUTH_ALLOWED_SCOPES = (''user_default'', ''mcp:execute'')'
        || ' )'
        || ' ENABLED = TRUE';

    EXECUTE IMMEDIATE sql_stmt;
END;
$$;

SHOW API INTEGRATIONS LIKE '%qlik%';

SET DISPLAY = 'Qlik MCP server ' || $TENANT;
DROP EXTERNAL MCP SERVER IF EXISTS qlik_mcp_server;

CREATE EXTERNAL MCP SERVER qlik_mcp_server
    WITH DISPLAY_NAME = $DISPLAY
    API_INTEGRATION  = qlik_mcp_integration;

ALTER EXTERNAL MCP SERVER qlik_mcp_server
    SET URL = $MCP_URL;

-- Grant access to the specified role
GRANT USAGE ON INTEGRATION  qlik_mcp_integration TO ROLE IDENTIFIER($ALLOWED_ROLE);
GRANT USAGE ON MCP SERVER   qlik_mcp_server       TO ROLE IDENTIFIER($ALLOWED_ROLE);

-- ============================================================
-- Verification queries
-- ============================================================
SHOW EXTERNAL MCP SERVERS;
DESCRIBE EXTERNAL MCP SERVER qlik_mcp_server;
SHOW API INTEGRATIONS LIKE '%qlik%';

-- Initiate the user OAuth flow
SELECT SYSTEM$START_USER_OAUTH_FLOW('qlik_mcp_integration');
​&lt;/LI-CODE&gt;
&lt;BLOCKQUOTE class="quote"&gt;The &lt;STRONG&gt;SYSTEM$START_USER_OAUTH_FLOW&lt;/STRONG&gt; call at the end generates a URL you can open in a browser to validate the OAuth handshake with Qlik Cloud before proceeding to Snowflake Intelligence.&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Connect to Qlik MCP in Snowflake Intelligence&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Once the MCP server is registered in Snowflake, you can authorize and use it directly from the Snowflake Intelligence UI.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open &lt;STRONG&gt;Snowflake Intelligence&lt;/STRONG&gt;. The URL follows the pattern &lt;A href="https://ai.snowflake.com/&amp;lt;orgname&amp;gt;/&amp;lt;accountname&amp;gt;" target="_blank" rel="noopener"&gt;https://ai.snowflake.com/&amp;lt;orgname&amp;gt;/&amp;lt;accountname&amp;gt;&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;For example, &lt;EM&gt;&lt;A href="https://ai.snowflake.com/myorg/myaccount" target="_blank" rel="noopener"&gt;https://ai.snowflake.com/myorg/myaccount&lt;/A&gt;&lt;/EM&gt;. If you are unsure of your URL, contact your Snowflake account administrator.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Click your &lt;STRONG&gt;profile icon&lt;/STRONG&gt; (bottom left corner) to open your personal settings.&lt;/LI&gt;
&lt;LI&gt;Navigate to the &lt;STRONG&gt;Connectors&lt;/STRONG&gt; section. You will see &lt;STRONG&gt;Qlik MCP Server&lt;/STRONG&gt; listed, pointing to your configured Qlik Cloud tenant.&lt;/LI&gt;
&lt;LI&gt;Click the &lt;STRONG&gt;Connect&lt;/STRONG&gt; button next to the &lt;STRONG&gt;Qlik MCP&lt;/STRONG&gt; entry.&lt;/LI&gt;
&lt;LI&gt;You will be redirected to Qlik Cloud to complete the OAuth2 authorization flow. Log in with your Qlik Cloud credentials if prompted, then approve the requested permissions (&lt;STRONG&gt;user_default&lt;/STRONG&gt;, &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt;).&lt;/LI&gt;
&lt;LI&gt;After authorization, you are returned to Snowflake Intelligence. The Qlik MCP connector will show a &lt;STRONG&gt;Connected&lt;/STRONG&gt; status.&lt;/LI&gt;
&lt;LI&gt;You can now ask Snowflake Intelligence questions that involve Qlik Cloud resources. The Cortex Agent will automatically invoke the appropriate Qlik MCP tools to retrieve data, apps, or analytics content.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Test with a Cortex Agent&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;To validate the full integration, create a test Cortex Agent that uses the Qlik MCP server.&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;Before running: Replace &lt;STRONG&gt;CORTEX_APP.PUBLIC&lt;/STRONG&gt; with the database and schema where you want to create the agent in your Snowflake environment. The database must already exist.&lt;/BLOCKQUOTE&gt;
&lt;LI-CODE lang="cpp"&gt;-- Replace &amp;lt;YOUR_DATABASE&amp;gt; and &amp;lt;YOUR_SCHEMA&amp;gt; with your target database and schema
CREATE OR REPLACE AGENT &amp;lt;YOUR_DATABASE&amp;gt;.&amp;lt;YOUR_SCHEMA&amp;gt;.qlik_mcp_test_agent
  FROM SPECIFICATION $$
models:
  orchestration: auto
instructions:
  response: &amp;gt;
    You are a test agent that verifies connectivity to the Qlik MCP server.
    Use the available Qlik tools to answer the user's question.
  orchestration: "Use the Qlik MCP tools to answer questions about Qlik Cloud."
mcp_servers:
  - server_spec:
      name: "&amp;lt;YOUR_DATABASE&amp;gt;.&amp;lt;YOUR_SCHEMA&amp;gt;.QLIK_MCP_SERVER"
$$;
&lt;/LI-CODE&gt;
&lt;P&gt;Once created, invoke the agent with a test prompt such as:&amp;nbsp;&lt;EM&gt;What Qlik apps are available in my tenant?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;A successful response confirms end-to-end connectivity between Snowflake Cortex and the Qlik MCP server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Troubleshooting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;OAuth redirect fails &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Typically caused by a Redirect URL mismatch. Verify &lt;A href="https://identity.snowflake.com/oauth2/callback" target="_blank" rel="noopener"&gt;https://identity.snowflake.com/oauth2/callback&lt;/A&gt; is set in the Qlik OAuth client&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;mcp:execute scope error &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The scope not enabled on OAuth client. Edit the OAuth client in Qlik Cloud Administration activity center and add the &lt;STRONG&gt;mcp:execute&lt;/STRONG&gt; scope&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Client Secret rejected &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Secret was rotated or lost. Generate a new client secret and update &lt;STRONG&gt;$CLIENT_SECRET&lt;/STRONG&gt; in the script&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;MCP Server not visible in Snowflake Intelligence &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The correct role was not granted. Confirm &lt;STRONG&gt;GRANT USAGE ON MCP SERVER&lt;/STRONG&gt; was executed for the user's active role.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Agent returns no results&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The OAuth flow was not completed. Complete the steps in &lt;EM&gt;Connect to Qlik MCP in Snowflake Intelligence&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Related Content&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm" target="_blank" rel="noopener"&gt;Connecting to the Qlik MCP server | Qlik Cloud Help&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm" target="_blank" rel="noopener"&gt;Creating and managing OAuth clients | Qlik Cloud Help&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.snowflake.com" target="_blank" rel="noopener"&gt;Snowflake External MCP Server documentation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="4" color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik MCP&lt;/LI&gt;
&lt;LI&gt;Qlik Cloud&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;The information in this article is provided as-is and to be used at your own discretion. Depending on the tools used, customizations, and/or other factors, ongoing support on the solution described may not be provided by Qlik Support.&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Fri, 29 May 2026 04:56:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Adding-Qlik-MCP-to-Snowflake-Intelligence/ta-p/2550188</guid>
      <dc:creator>SwathiPulagam</dc:creator>
      <dc:date>2026-05-29T04:56:04Z</dc:date>
    </item>
  </channel>
</rss>

