আপনি যদি ChatGPT ওয়ার্কস্পেস অ্যাডমিন হন বা ChatGPT Plus বা Pro ব্যবহারকারী হন এবং Snowflake-পরিচালিত MCP সার্ভারের মাধ্যমে ChatGPT-কে Snowflake-এর সঙ্গে সংযুক্ত করতে চান, তাহলে এই নির্দেশিকা ব্যবহার করুন.
সেটআপের বেশির ভাগ কাজ Snowflake-এ হয়. Snowflake প্রস্তুত হলে, ChatGPT-এ Snowflake টেমপ্লেট সংযোগ সম্পন্ন করুন, তারপর সেই টেমপ্লেট ব্যবহার করা Snowflake প্লাগইন চালু করুন.
আপনি যা সেট আপ করছেন
আপনি একটি Snowflake-পরিচালিত MCP সার্ভার তৈরি করছেন, যা ChatGPT-এর জন্য কানেক্টর এন্ডপয়েন্ট হিসেবে কাজ করে. MCP সার্ভার নির্ধারণ করে:
ChatGPT কোন কোন অ্যাকশন ব্যবহার করতে পারবে
সেই টুলগুলো কোন Snowflake ডেটা বা অবজেক্টে অ্যাক্সেস পাবে.
প্রতিটি ব্যবহারকারী কোন Snowflake রোল দিয়ে অনুমোদন দেবে.
কোন Snowflake ডেটাবেস, স্কিমা এবং MCP সার্ভারের নাম এন্ডপয়েন্টটি শনাক্ত করবে.
এরপর সম্পূর্ণ পরিচালিত MCP সার্ভার URL দিয়ে ChatGPT-এ Snowflake - Official Template কনফিগার করুন. টেমপ্লেট সেটআপ স্ক্রিনে URL চারটি আলাদা ফিল্ড হিসেবে দেখা যেতে পারে:
Snowflake হোস্ট প্রিফিক্স.
ডেটাবেস.
স্কিমা.
MCP সার্ভারের নাম.
ChatGPT কেবল MCP সার্ভারে প্রকাশিত এবং ব্যবহারকারীর অনুমোদিত Snowflake রোল দ্বারা অনুমোদিত টুলগুলোই খুঁজে পেতে ও ব্যবহার করতে পারে.
শুরু করার আগে
আপনার প্রয়োজন:
ChatGPT ওয়ার্কস্পেস অ্যাডমিন বা মালিক অ্যাক্সেস, অথবা ChatGPT Plus বা Pro অ্যাক্সেস.
MCP সার্ভার অবজেক্ট তৈরি করা এবং অনুমতি দেওয়ার মতো Snowflake অ্যাক্সেস.
যে Snowflake ডেটাবেস ও স্কিমায় MCP সার্ভার থাকবে.
ChatGPT-কে কী করতে দেওয়া হবে সে সিদ্ধান্ত, যেমন Cortex Search, Cortex Analyst, রিড-অনলি SQL, অথবা নির্দিষ্ট কোনো প্রোসিডিউর বা ফাংশন.
অ্যাপ অনুমোদনের সময় ব্যবহারকারীরা ব্যবহার করবে এমন সর্বনিম্ন-সুবিধার Snowflake রোল.
রিজিয়ন বা ক্লাউড সাফিক্সসহ Snowflake অ্যাকাউন্টের হোস্ট প্রিফিক্স.
আপনার Snowflake অ্যাকাউন্ট যদি নেটওয়ার্ক নীতি বা IP allowlist দিয়ে অ্যাক্সেস সীমিত করে, তাহলে বর্তমান ChatGPT কানেক্টর egress IP রেঞ্জ থেকে ইনবাউন্ড সংযোগ অনুমোদন করতে Snowflake অ্যাডমিনকে বলুন. তালিকাটি পরিবর্তনশীল এবং হালনাগাদ রাখা উচিত.
প্রস্তুত রাখার মান
Snowflake হোস্ট প্রিফিক্স: Snowflake অ্যাকাউন্ট URL-এ .snowflakecomputing.com-এর আগের সবকিছু.
ডেটাবেস: MCP সার্ভার থাকা ডেটাবেস.
স্কিমা: MCP সার্ভার থাকা স্কিমা.
MCP সার্ভারের নাম: Snowflake MCP সার্ভার অবজেক্টের নাম.
ChatGPT সেটআপ স্ক্রিন URL চাইলে সম্পূর্ণ পরিচালিত MCP সার্ভার URL.
Snowflake রোল: অ্যাপ অনুমোদনের সময় ব্যবহারকারীদের যে রোল ব্যবহার করা উচিত.
টুল তালিকা: ChatGPT-কে যে Snowflake অবজেক্ট ও অ্যাকশন ব্যবহার করতে দিতে চান.
ChatGPT কী করতে পারবে তা ঠিক করুন
শুধু আপনি যে সক্ষমতাগুলো প্রকাশ করতে চান সেগুলোই বেছে নিন. সাধারণ বিকল্পগুলোর মধ্যে আছে:
ইনডেক্স করা Snowflake ডেটা বা কনটেন্টে উত্তর খুঁজতে Cortex Search দিয়ে অনুসন্ধান.
অনুমোদিত সেমান্টিক ভিউয়ের মাধ্যমে Cortex Analyst দিয়ে প্রশ্নোত্তর.
নিয়ন্ত্রিত কোয়েরি অ্যাক্সেসের জন্য রিড-অনলি SQL.
নির্দিষ্ট ওয়ার্কফ্লোর জন্য একটি Snowflake এজেন্ট, stored procedure, বা UDF.
SQL চালু করলে, আপনার প্রতিষ্ঠান write access পর্যালোচনা ও অনুমোদন না করা পর্যন্ত এটি রিড-অনলি রাখুন.
Snowflake worksheet খুলুন
Snowflake অ্যাপ-এ সাইন ইন করুন.
MCP সার্ভার তৈরি করতে এবং অ্যাক্সেস দিতে পারে এমন একটি রোলে যান.
Workspaces-এ যান.

একটি SQL ফাইলসহ একটি ওয়ার্কস্পেস তৈরি করুন.

MCP সার্ভার যেখানে তৈরি হবে, সেই ডেটাবেস ও স্কিমায় ওয়ার্কস্পেস কনটেক্সট সেট করুন.

Snowflake MCP সার্ভার তৈরি করুন
Snowflake-এ, MCP সার্ভার তৈরি করতে এবং অ্যাক্সেস দিতে পারে এমন একটি রোল দিয়ে সাইন ইন করুন. MCP সার্ভার যেখানে তৈরি করা উচিত, সেই ডেটাবেস ও স্কিমায় একটি worksheet খুলুন.
নিচের উদাহরণের মতো একটি statement চালান. নামগুলো আপনার নিজস্ব Snowflake ডেটাবেস, স্কিমা, সার্ভিস, ভিউ, warehouse এবং সার্ভারের নাম দিয়ে বদলান.
CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP FROM SPECIFICATION $$ tools: - name: "support-search" type: "CORTEX_SEARCH_SERVICE_QUERY" identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE" title: "Support Search" description: "Search support content for relevant customer issues." - name: "revenue-analyst" type: "CORTEX_ANALYST_MESSAGE" identifier: "CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW" title: "Revenue Analyst" description: "Answer revenue questions using the approved semantic view." - name: "sql-readonly" type: "SYSTEM_EXECUTE_SQL" title: "Read-only SQL" description: "Run read-only SQL queries against approved Snowflake data." config: read_only: true query_timeout: 600 warehouse: "CHATGPT_WH" $$;

এই statement-এ থাকা টুলের নাম ও Snowflake অবজেক্টগুলো উদাহরণ:
support-searchনির্দিষ্ট Cortex Search সার্ভিসটি প্রকাশ করে.revenue-analystনির্দিষ্ট সেমান্টিক ভিউটি প্রকাশ করে. প্রয়োজনে অন্য ভিউয়ের জন্য টুল যোগ করুন.sql-readonlyনির্দিষ্ট warehouse সহ রিড-অনলি SQL প্রকাশ করে.
স্থিতিশীল, বর্ণনামূলক টুলের নাম ব্যবহার করুন, যাতে ChatGPT সঠিক টুল বেছে নিতে পারে. MCP সার্ভার তৈরি করলেই অন্তর্নিহিত Snowflake অবজেক্টগুলোতে স্বয়ংক্রিয়ভাবে অ্যাক্সেস দেওয়া হয় না.
অতিরিক্ত specification বিকল্পের জন্য দেখুন: Snowflake-পরিচালিত MCP সার্ভার তৈরি করুন.
সঠিক Snowflake অনুমতি দিন
ব্যবহারকারীরা যে Snowflake রোল দিয়ে অনুমোদন দেবে তা বেছে নিন, তারপর সেই রোলকে অ্যাক্সেস দিন
ডেটাবেস ও স্কিমা.
MCP সার্ভার.
টুলগুলো ব্যবহার করে এমন প্রতিটি অন্তর্নিহিত অবজেক্ট, যেমন search service, semantic view, বা warehouse.
উদাহরণ:
GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT SELECT ON SEMANTIC VIEW CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
MCP সার্ভার যদি কোনো UDF, stored procedure, বা Cortex Agent প্রকাশ করে, সেই অবজেক্টের প্রয়োজনীয় অনুমতিও দিন.
Snowflake প্রস্তুত আছে কিনা যাচাই করুন
চালান:
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
তারপর চালান:
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
নিশ্চিত করুন:
সার্ভারটি প্রত্যাশিত ডেটাবেস ও স্কিমায় আছে.
টুল তালিকাটি আপনার উদ্দেশ্য অনুযায়ী.
প্রতিটি টুলের
identifierসঠিক Snowflake অবজেক্টের দিকে নির্দেশ করে.সংযোগকারী রোলের MCP সার্ভারে
USAGEআছে.প্রতিটি অন্তর্নিহিত অবজেক্টে সংযোগকারী রোলের প্রয়োজনীয় অনুমতি আছে.
ChatGPT-এ Snowflake সার্ভারের বিবরণ দিন
ChatGPT-এ, যে অ্যাকাউন্ট বা ওয়ার্কস্পেসে অ্যাপটি উপলভ্য হওয়া উচিত সেখানে যান.
Settings খুলুন. ওয়ার্কস্পেস-জুড়ে সেটআপের জন্য, ওয়ার্কস্পেস অ্যাডমিন হিসেবে Workspace settings খুলুন.
Plugins-এ যান.
Snowflake খুঁজুন.
Snowflake - Official Template চালু করুন.
Snowflake - Official Template খুলুন, একটি স্পষ্ট সংযোগের নাম দিন, এবং Connect নির্বাচন করুন.
সম্পূর্ণ পরিচালিত MCP সার্ভার URL লিখুন:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
উদাহরণ:
https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

সেটআপ স্ক্রিনে Snowflake কনফিগারেশন আলাদা ফিল্ড হিসেবে দেখা গেলে, URL থেকে একই মান ব্যবহার করুন:
Snowflake হোস্ট প্রিফিক্স
আপনার Snowflake অ্যাকাউন্ট URL-এ .snowflakecomputing.com-এর আগের সবকিছু ব্যবহার করুন, রিজিয়ন বা ক্লাউড সাফিক্সসহ.
যেমন, অ্যাকাউন্ট URL যদি শুরু হয়:
https://myorg-myaccount.azure.snowflakecomputing.com
হোস্ট প্রিফিক্স হলো:
myorg-myaccount.azure
ডেটাবেস
MCP সার্ভার থাকা ডেটাবেস লিখুন, যেমন:
CHATGPT_APPS
স্কিমা
MCP সার্ভার থাকা স্কিমা লিখুন, যেমন:
TOOLS
MCP সার্ভারের নাম
Snowflake MCP সার্ভার অবজেক্টের নাম লিখুন, যেমন:
CHATGPT_SNOWFLAKE_MCP
OAuth ক্লায়েন্ট কনফিগার করুন
সংযোগ করতে Snowflake থেকে একটি Client ID এবং Client Secret দরকার.
আপনি session:role:all ব্যবহার করলে, Snowflake প্রতিটি ব্যবহারকারীর ডিফল্ট রোল ব্যবহার করে. কনফিগার করা থাকলে, ডিফল্ট রোলটি OAuth integration-এর role allowlist দ্বারা অনুমোদিত হতে হবে এবং ব্লক করা যাবে না. অন্য কোনো অনুমোদিত রোল থাকলেই সেটি স্বয়ংক্রিয়ভাবে নির্বাচিত হয় না.
ChatGPT সেটআপ মডালে, Advanced OAuth settings খুলুন, User-Defined OAuth Client নির্বাচন করুন, এবং ChatGPT-এ দেখানো Callback URL কপি করুন.
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'সহ একটি কাস্টম OAuth security integration তৈরি করুন এবংOAUTH_REDIRECT_URIসেই নির্দিষ্ট callback URL-এ সেট করুন.ইন্টিগ্রেশনের নাম uppercase-এ ব্যবহার করে Snowflake-এ নিচের statement চালান:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');JSON ফলাফল থেকে
oauth_client_idChatGPT-এর OAuth client ID-তে এবংoauth_client_secretOAuth client secret-এ পেস্ট করুন.Token endpoint auth method
client_secret_basic-এ সেট করুন.
Snowflake সংযোগ ও পরিচালনা করুন
একই ChatGPT সেটআপ মডালে, Continue নির্বাচন করুন, Snowflake-এ সাইন ইন করুন, এবং সংযোগটি অনুমোদন করুন.
ওয়ার্কস্পেস সেটআপের জন্য, যারা এটি ব্যবহার করবে সেই সদস্যদের জন্য প্লাগইন ইনস্টলেশন নীতি এবং রোল বা গ্রুপ অ্যাক্সেস কনফিগার করুন. Snowflake এবং Snowflake - Official Template দুটিই চালু আছে কিনা যাচাই করুন.
Snowflake ব্যবহার করা উচিত এমন রোলগুলোর জন্য User access কনফিগার করার দায়িত্ব ওয়ার্কস্পেস অ্যাডমিনদের.
প্রকাশিত টুলগুলোর জন্য Action control পর্যালোচনার দায়িত্ব ওয়ার্কস্পেস অ্যাডমিনদের.
অ্যাপ ব্যবহারের আগে ChatGPT কখন সদস্যদের জিজ্ঞাসা করবে তা বেছে নিতে App permissions পর্যালোচনার দায়িত্ব ওয়ার্কস্পেস অ্যাডমিনদের.
এই অ্যাপ অনুমতিগুলো ChatGPT কথোপকথনে প্রযোজ্য. Workspace Agents কোন অ্যাপ অ্যাকশন উপলভ্য হবে এবং কখন শেষ ব্যবহারকারীদের অনুমোদন চাইবে তা নির্ধারণ করতে এজেন্টের builder সেট করা per-agent control ব্যবহার করে. এজেন্টের আচরণের জন্য দেখুন: Enterprise and Business-এর জন্য ChatGPT Workspace Agents.
অ্যাপটি পরীক্ষা করুন
একটি চ্যাট খুলুন, Snowflake নির্বাচন করুন, এবং সংযোগ পরীক্ষা করুন.
ChatGPT আপনার কনফিগার করা টুলগুলো খুঁজে পাচ্ছে কিনা নিশ্চিত করুন.
প্রথমে কম-ঝুঁকির কোনো read action চালান, যেমন অনুমোদিত ডেটার ওপর search বা read-only query.
অনুমোদিত রোল ও অবজেক্টের বাইরে অ্যাক্সেস Snowflake অনুমতি আটকাচ্ছে কিনা নিশ্চিত করুন.
ওয়ার্কস্পেস সেটআপের জন্য, ভিন্ন ডিফল্ট Snowflake রোল থাকা অনুমোদিত নন-অ্যাডমিন সদস্যদের দিয়ে পরীক্ষা করুন. অ্যাডমিনের সফল সংযোগ মানে প্রতিটি সদস্য সংযোগ করতে পারবে, তা নিশ্চিত নয়.
ওয়ার্কস্পেস অ্যাডমিনদের জন্য শুধু Snowflake চালু করা যথেষ্ট নয়. Snowflake - Official Template চালু ও সংযুক্ত করা না হলে, সদস্যদের কাছে প্লাগইনটি disabled দেখা যেতে পারে.
MCP সার্ভার URL এবং OAuth আচরণ
ChatGPT সম্পূর্ণ Snowflake-পরিচালিত MCP সার্ভার URL-এ সংযোগ করে:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
এই Snowflake OAuth এন্ডপয়েন্টগুলো resolve করতে ChatGPT সেই URL থেকে Snowflake হোস্ট প্রিফিক্স ব্যবহার করে:
Authorization:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorizeToken:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request
Snowsight URL, শুধু Snowflake অ্যাকাউন্ট root URL, বা অতিরিক্ত path segment-সহ কোনো URL পেস্ট করবেন না. MCP URL-এ /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} থাকতে হবে এবং আপনার Snowflake অবজেক্টগুলোর সঙ্গে হুবহু মিলতে হবে.
সমস্যা সমাধান
Snowflake একজন অ্যাডমিনের জন্য চালু, কিন্তু সদস্যের জন্য disabled
Workspace settings > Plugins-এ Snowflake এবং Snowflake - Official Template দুটিই চালু আছে কিনা নিশ্চিত করুন.
Snowflake - Official Template খুলুন এবং এর Connect flow সম্পন্ন করুন. টেমপ্লেটটি সংযুক্ত না করে শুধু চালু করা যথেষ্ট নয়.
Snowflake খুলুন এবং নিশ্চিত করুন যে টেমপ্লেটটি এর প্রয়োজনীয় অ্যাপ হিসেবে দেখা যাচ্ছে.
প্রভাবিত সদস্যের রোল বা গ্রুপ প্লাগইন ইনস্টলেশন নীতিতে অনুমোদিত কিনা নিশ্চিত করুন.
MCP সার্ভার পাওয়া যায়নি
সম্পূর্ণ MCP সার্ভার URL আবার পরীক্ষা করুন, অথবা সেটআপ স্ক্রিন চাইলে চারটি টেমপ্লেট ফিল্ড পরীক্ষা করুন.
সেই নির্দিষ্ট ডেটাবেস ও স্কিমায় MCP সার্ভারটি আছে কিনা নিশ্চিত করুন.
ChatGPT-এ কোনো টুল দেখা যাচ্ছে না
MCP সার্ভার specification-এ টুল আছে কিনা নিশ্চিত করুন.
রোলটির MCP সার্ভারে
USAGEআছে কিনা নিশ্চিত করুন.
একটি টুল দেখা যায়, কিন্তু ব্যবহার করলে ব্যর্থ হয়
রোলটির অন্তর্নিহিত Snowflake অবজেক্টে প্রয়োজনীয় অনুমতি আছে কিনা নিশ্চিত করুন, যেমন search service, semantic view, warehouse, procedure, বা UDF.
SQL টুল ব্যর্থ হয়
warehouse-এর নাম সঠিক এবং warehouse চলছে কিনা নিশ্চিত করুন.
রোলটির warehouse-এ
USAGEআছে কিনা নিশ্চিত করুন.আপনি রিড-অনলি অ্যাক্সেস চাইলে
read_only: trueসেট করা আছে কিনা নিশ্চিত করুন.
অনুরোধ করা ALL রোলটি স্পষ্টভাবে ব্লক করা হয়েছে
আপনার ডিফল্ট রোলটি OAuth integration-এর অনুমোদিত ও ব্লক করা রোলের সঙ্গে তুলনা করতে Snowflake অ্যাডমিনকে বলুন. অন্য কোনো অনুমোদিত রোল থাকলেই সেটি স্বয়ংক্রিয়ভাবে নির্বাচিত হয় না. উপযুক্ত হলে, ডিফল্ট রোলটি অনুমোদিত রোলে বদলান এবং আবার সংযোগ করুন. ডিফল্ট রোল বদলালে ChatGPT-এর বাইরের আপনার Snowflake session-গুলোকেও প্রভাবিত করে.
Authorization ব্যর্থ হয়
ব্যবহারকারী Snowflake-এ সাইন ইন করতে পারে কিনা নিশ্চিত করুন.
session:role:allব্যবহার করলে, ব্যবহারকারীর ডিফল্ট রোল OAuth integration দ্বারা অনুমোদিত কিনা নিশ্চিত করুন.সেটআপটি Snowflake-পরিচালিত MCP OAuth flow ব্যবহার করছে কিনা নিশ্চিত করুন.
Client ID ও Client Secret Snowflake OAuth integration-এর সঙ্গে মেলে এবং এর redirect URI ChatGPT-এ দেখানো Callback URL-এর সঙ্গে মেলে কিনা নিশ্চিত করুন.
Snowflake নেটওয়ার্ক নীতি বা IP allowlist কানেক্টর ব্লক করে
Snowflake নেটওয়ার্ক নীতি বা অ্যাক্সেস নিয়ম আপডেট করতে Snowflake অ্যাডমিনকে বলুন.
বর্তমান ChatGPT কানেক্টর egress IP রেঞ্জ থেকে ইনবাউন্ড সংযোগ অনুমোদন করুন.
এই allowlisting Snowflake-এ কনফিগার করুন. এটি ChatGPT ওয়ার্কস্পেস IP allowlisting থেকে আলাদা.
রেঞ্জ বদলাতে পারে বলে সম্ভব হলে প্রকাশিত JSON থেকে আপডেট স্বয়ংক্রিয় করুন.
Hostname সংযোগ সমস্যা
সঠিক Snowflake হোস্ট প্রিফিক্স ব্যবহার করুন. আন্ডারস্কোরসহ Snowflake hostname সমস্যা তৈরি করতে পারে; hyphen ব্যবহার করাই ভালো.
