১. ভূমিকা
এই কোডল্যাবে, আপনি শিখবেন কীভাবে Gemini CLI-এর কার্যক্ষমতা বাড়ানোর জন্য একটি মডেল কনটেক্সট প্রোটোকল (MCP) সার্ভার তৈরি এবং স্থাপন করতে হয়। আপনি 'godoctor' তৈরি করবেন, যা একটি Go-ভিত্তিক সার্ভার এবং এটি Go ডেভেলপমেন্টের জন্য কাস্টম টুল সরবরাহ করে, যা Gemini CLI-কে একটি সাধারণ কোডিং সহকারী থেকে একজন বিশেষায়িত Go ডেভেলপমেন্ট বিশেষজ্ঞে রূপান্তরিত করে।
এই কোডল্যাবটি একটি "প্রম্পট-চালিত" পদ্ধতি ব্যবহার করে। আপনি একজন টেক লিড হিসেবে কাজ করবেন এবং আপনার এআই অ্যাসিস্ট্যান্টকে (জেমিনি সিএলআই) প্রম্পট বা নির্দেশনা দেবেন। আপনার লক্ষ্য হলো, প্রজেক্টের প্রয়োজনীয়তাগুলোকে কীভাবে কার্যকর প্রম্পটে রূপান্তর করতে হয় তা শেখা এবং বাস্তবায়নের খুঁটিনাটি বিষয়গুলো এআই-এর ওপর ছেড়ে দেওয়া।
এই প্রকল্পের কেন্দ্রবিন্দুতে রয়েছে মডেল কনটেক্সট প্রোটোকল (MCP)। MCP একটি ওপেন-সোর্স প্রোটোকল যা জেমিনির মতো বৃহৎ ল্যাঙ্গুয়েজ মডেল (LLM) কীভাবে বাহ্যিক টুল এবং পরিষেবাগুলির সাথে যোগাযোগ করবে তার মান নির্ধারণ করে। এটি একটি সেতু হিসেবে কাজ করে, যা AI-কে বাস্তব জগতের তথ্য অ্যাক্সেস করতে এবং তার অন্তর্নির্মিত জ্ঞানের বাইরেও কাজ সম্পাদন করতে সক্ষম করে। একটি MCP সার্ভার তৈরি করার মাধ্যমে, আপনি একটি কাস্টম প্লাগইন তৈরি করছেন যা জেমিনি CLI খুঁজে বের করে ব্যবহার করতে পারে, এবং এর ফলে এটি কার্যকরভাবে নতুন দক্ষতা শিখতে পারে।
আপনি যা শিখবেন
- জেমিনি সিএলআই কীভাবে ইনস্টল এবং কনফিগার করবেন
- সফটওয়্যার ডেভেলপমেন্টে একটি এআই অ্যাসিস্ট্যান্টকে নির্দেশনা দেওয়ার জন্য কীভাবে কার্যকর নির্দেশাবলী তৈরি করা যায়
- একটি এআই অ্যাসিস্ট্যান্টকে কীভাবে প্রাসঙ্গিক তথ্য ও নির্দেশিকা প্রদান করবেন
- Gemini CLI-এর কার্যক্ষমতা বাড়ানোর জন্য কীভাবে একটি MCP সার্ভার তৈরি এবং কনফিগার করতে হয়
- কীভাবে একটি Go অ্যাপ্লিকেশনকে কন্টেইনারাইজ করে Google Cloud Run-এ ডেপ্লয় করবেন
আপনার যা যা লাগবে
এই ওয়ার্কশপটি সম্পূর্ণভাবে গুগল ক্লাউড শেল-এর মধ্যেই করা যায়, যেখানে সমস্ত প্রয়োজনীয় ডিপেন্ডেন্সি (gcloud CLI, Go, Docker, Gemini CLI) আগে থেকেই ইনস্টল করা থাকে ।
বিকল্পভাবে , যদি আপনি নিজের মেশিনে কাজ করতে পছন্দ করেন, তাহলে আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
- Node.js 20 বা তার পরের সংস্করণ
- Google Cloud SDK (gcloud CLI) ইনস্টল এবং চালু করা হয়েছে
- আপনার সিস্টেমে Go 1.24 বা তার পরবর্তী সংস্করণ ইনস্টল করা আছে।
- আপনার সিস্টেমে ডকার ইনস্টল করা আছে
মূল প্রযুক্তি
আমরা যে প্রযুক্তিগুলো ব্যবহার করব সে সম্পর্কে আরও তথ্য এখানে পেতে পারেন:
- জেমিনি সিএলআই : এআই-চালিত কমান্ড-লাইন ইন্টারফেস যা আমরা সম্প্রসারিত করব
- মডেল কনটেক্সট প্রোটোকল (MCP) : এটি একটি ওপেন-সোর্স প্রোটোকল যা জেমিনি সিএলআই-কে আমাদের কাস্টম টুলের সাথে যোগাযোগ করতে সক্ষম করে।
- MCP-এর জন্য Go SDK : আমাদের MCP সার্ভার বাস্তবায়নের জন্য আমরা যে Go লাইব্রেরিটি ব্যবহার করব
একটি সফল কোডল্যাবের জন্য কিছু পরামর্শ
এআই অ্যাসিস্ট্যান্টের সাথে কাজ করা সফটওয়্যার তৈরির একটি নতুন পদ্ধতি। আপনার অভিজ্ঞতাকে মসৃণ ও সফল করতে এখানে কিছু পরামর্শ দেওয়া হলো:
- ESC চাপতে ভয় পাবেন না। AI মাঝে মাঝে এমন কোনো কাজ বা কোড প্রস্তাব করবে যা আপনি সমর্থন করেন না। এর প্রস্তাবিত কাজটি বাতিল করতে এবং এটিকে সঠিক পথে চালিত করার জন্য একটি নতুন নির্দেশ দিতে ESC কী ব্যবহার করুন। আপনিই এর চালক।
- টুল ব্যবহারে উৎসাহিত করুন। যদি এআই দিশেহারা হয়ে পড়ে বা মনগড়া তথ্য দেয়, তবে তাকে তার কাছে থাকা টুলগুলো ব্যবহার করতে উৎসাহিত করুন। "আপনি কি এটি যাচাই করার জন্য গুগল সার্চ ব্যবহার করতে পারেন?" অথবা "পরিবর্তন করার আগে বর্তমান কোডটি বোঝার জন্য read_file টুলটি ব্যবহার করুন"-এর মতো নির্দেশগুলো খুব কার্যকর হতে পারে।
- হাতে করা পরিবর্তন প্রতিরোধ করুন। চেষ্টা করুন যেন এআই-ই সমস্ত কাজ করে দেয়। এটাই সেই মূল দক্ষতা যা আপনি অনুশীলন করছেন। তবে, যদি আপনাকে হাতে কোনো পরিবর্তন করতেই হয়, তাহলে পরে এআই-কে সে সম্পর্কে জানান। "আমি README.md ফাইলটি হাতে আপডেট করেছি। আপনার জ্ঞান ঝালিয়ে নিতে অনুগ্রহ করে এটি আবার পড়ুন"-এর মতো একটি নির্দেশ নিশ্চিত করবে যে এআই আপনার প্রকল্পের সাথে তাল মিলিয়ে চলছে।
- আপনি কি এটি বন্ধ করে আবার চালু করার চেষ্টা করেছেন? বিরল ক্ষেত্রে যদি AI আপনার কমান্ডের বিরুদ্ধে কোনো নির্দিষ্ট পথ জোর করে প্রয়োগ করার চেষ্টা করে, তবে এর কারণ হতে পারে কনটেক্সট ডিগ্রেডেশন (যাকে কখনও কখনও "কনটেক্সট রট"ও বলা হয়)। এই ক্ষেত্রে আপনি কনটেক্সট নয়েজ কমাতে Gemini CLI কমান্ড "/compress" ব্যবহার করতে পারেন অথবা, চরম পরিস্থিতিতে, সম্পূর্ণ সেশন হিস্ট্রি মুছে ফেলার জন্য "/clear" কমান্ডটি ব্যবহার করতে পারেন।
২. পরিবেশ সেটআপ
নিম্নলিখিত বিকল্পগুলির মধ্যে একটি বেছে নিন: আপনি যদি এই কোডল্যাবটি আপনার নিজের মেশিনে চালাতে চান তবে 'সেলফ-পেজড এনভায়রনমেন্ট সেটআপ' , অথবা; আপনি যদি এই কোডল্যাবটি সম্পূর্ণরূপে ক্লাউডে চালাতে চান তবে 'স্টার্ট ক্লাউড শেল' ।
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে। - আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
- এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।
গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৩. জেমিনি সিএলআই দিয়ে শুরু করা
এই অংশে আপনি Gemini CLI সম্পর্কে জানতে পারবেন, যার মধ্যে আপনার পরিবেশের জন্য এটি কীভাবে ইনস্টল এবং কনফিগার করতে হয় তাও অন্তর্ভুক্ত থাকবে।
জেমিনি সিএলআই কী?
জেমিনি সিএলআই হলো একটি এআই-চালিত কমান্ড-লাইন ইন্টারফেস যা আপনাকে বিভিন্ন ধরনের ডেভেলপমেন্টের কাজে সাহায্য করতে পারে। এটি আপনার প্রোজেক্টের প্রেক্ষাপট বুঝতে, প্রশ্নের উত্তর দিতে, কোড তৈরি করতে এবং এর কার্যক্ষমতা বাড়ানোর জন্য বাহ্যিক টুল ব্যবহার করতে পারে।
ইনস্টলেশন
npm ব্যবহার করে Gemini CLI বিশ্বব্যাপী ইনস্টল করুন।
npm install -g @google/gemini-cli
নিম্নলিখিত কমান্ডটি চালিয়ে আপনি CLI ইনস্টল হয়েছে কিনা তা নিশ্চিত করতে পারেন:
gemini --version
কনফিগারেশন
জেমিনি সিএলআই-এর আচরণ কনফিগারেশন ফাইল এবং এনভায়রনমেন্ট ভেরিয়েবল দ্বারা নিয়ন্ত্রিত হয়। দুটি প্রধান ফাইল রয়েছে:
-
GEMINI.md: এই ফাইলটি এআই-কে নির্দেশিকা এবং প্রাসঙ্গিক তথ্য প্রদান করে। আপনার প্রোজেক্টের কোডিং স্ট্যান্ডার্ড এবং কনভেনশনগুলো বোঝার জন্য সিএলআই এই ফাইলটি পড়ে। -
.gemini/settings.json: এই ফাইলটি CLI-এর কনফিগারেশন নিয়ন্ত্রণ করে, যার মধ্যে এক্সটার্নাল টুলগুলোর সাথে কীভাবে সংযোগ স্থাপন করতে হবে তাও অন্তর্ভুক্ত। এই ল্যাবে আমরা যে MCP সার্ভারটি তৈরি করছি, সেটি ব্যবহার করার জন্য CLI কনফিগার করতে আমরা পরবর্তীতে এই ফাইলটি ব্যবহার করব।
আমরা প্রথমে পরিবেশটি প্রস্তুত করব এবং তারপর GEMINI.md ফাইলটি তৈরি করব। settings.json ফাইলটি পরবর্তী ধাপে কনফিগার করা হবে।
- একটি প্রজেক্ট ডিরেক্টরি তৈরি এবং প্রারম্ভিকীকরণ করুন:
mkdir godoctor && cd godoctor go mod init godoctor
- গুগল ক্লাউড অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল দিয়ে প্রমাণীকরণ করুন:
এই কোডল্যাবের জন্য আপনি যে GCP প্রজেক্টটি ব্যবহার করতে চলেছেন, সেটিতে অ্যাক্সেস আছে এমন একটি অ্যাকাউন্টে আমাদের লগইন করতে হবে:
- নিশ্চিত করুন যে আপনার গুগল ক্লাউড এসডিকে ইনস্টল এবং ইনিশিয়ালাইজ করা আছে।
- অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল সেট করতে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth application-default login
৪. প্রসঙ্গ ফাইল (GEMINI.md)
কন্টেক্সট ফাইল, যেগুলোর ডিফল্ট নাম GEMINI.md, জেমিনি মডেলকে নির্দেশনামূলক প্রেক্ষাপট প্রদানের জন্য ব্যবহৃত হয়। আপনি এই ফাইলগুলো ব্যবহার করে প্রজেক্ট-নির্দিষ্ট নির্দেশনা দিতে, একটি পার্সোনা নির্ধারণ করতে, অথবা কোডিং স্টাইল গাইড প্রদান করতে পারেন, যাতে এআই-এর প্রতিক্রিয়াগুলো আরও নির্ভুল এবং আপনার প্রয়োজন অনুযায়ী তৈরি হয়।
এআই অ্যাসিস্ট্যান্ট যাতে উচ্চ-মানের ও প্রচলিত গো কোড তৈরি করে, তা নিশ্চিত করার জন্য আমরা গো ডেভেলপারদের জন্য কিছু সাধারণ সেরা অনুশীলনসহ একটি GEMINI.md ফাইল লিখব।
লক্ষ্য: একটি GEMINI.md ফাইল তৈরি করা, যা এই প্রোজেক্ট চলাকালীন এআই অ্যাসিস্ট্যান্টের জন্য নিয়মাবলী হিসেবে কাজ করবে।
আপনার IDE খুলে নিচের বিষয়বস্তু দিয়ে GEMINI.md ফাইলটি তৈরি করুন। আপনি যদি ক্লাউড শেল ব্যবহার করেন, তাহলে নিচের কমান্ডটি ব্যবহার করে একটি এডিটর খুলতে পারেন:
cloudshell edit .
করণীয়: আপনার godoctor ডিরেক্টরির রুটে GEMINI.md নামে একটি ফাইল তৈরি করুন এবং এর মধ্যে নিম্নলিখিত বিষয়বস্তু পেস্ট করুন।
# Go Development Guidelines
All code contributed to this project must adhere to the following principles.
## 1. Formatting
All Go code **must** be formatted with `gofmt` before being submitted.
## 2. Naming Conventions
- **Packages:** Use short, concise, all-lowercase names.
- **Variables, Functions, and Methods:** Use `camelCase` for unexported identifiers and `PascalCase` for exported identifiers.
- **Interfaces:** Name interfaces for what they do (e.g., `io.Reader`), not with a prefix like `I`.
## 3. Error Handling
- Errors are values. Do not discard them.
- Handle errors explicitly using the `if err != nil` pattern.
- Provide context to errors using `fmt.Errorf("context: %w", err)`.
## 4. Simplicity and Clarity
- "Clear is better than clever." Write code that is easy to understand.
- Avoid unnecessary complexity and abstractions.
- Prefer returning concrete types, not interfaces.
## 5. Documentation
- All exported identifiers (`PascalCase`) **must** have a doc comment.
- Comments should explain the *why*, not the *what*.
## 6. Project structure
- cmd/ contains source code for target binaries (e.g. server, client)
- internal/ contains source code for packages not meant to be exported (e.g. internal/tools/hello)
- bin/ contains the compiled binaries
- At the root place README.md, go.mod and go.sum
এখন আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সম্পূর্ণরূপে সেট আপ করা হয়েছে।
৫. প্রাথমিক নির্মাণ: একটি ডকুমেন্টেশন সার্ভার
আপনার প্রথম লক্ষ্য হলো godoctor সার্ভারের প্রাথমিক সংস্করণ তৈরি করা। এই সংস্করণটি একটি ন্যূনতম অ্যাপ্লিকেশন হওয়া উচিত যা read_docs নামক একটিমাত্র টুল সরবরাহ করবে, যার মাধ্যমে গো ডকুমেন্টেশন খুঁজে বের করা যাবে।
লক্ষ্য: একটি প্রোডাকশন-রেডি এমসিপি সার্ভার তৈরি করা, যা ‘go doc’ কমান্ডটি ব্যবহারের সুযোগ দেবে এবং একজন এলএলএম-কে গো ডকুমেন্টেশন কোয়েরি করার অনুমতি দেবে।
শেল-এ Gemini CLI কমান্ডটি চালান:
gemini
আপনি যখন প্রথমবার CLI চালাবেন, তখন এটি আপনাকে একটি অথেনটিকেশন মোড এবং একটি থিম বেছে নিতে বলবে।
আপনি যদি এই কোডল্যাবটি ক্লাউড শেলে চালান, তাহলে ‘Use Cloud Shell user credentials’ অপশনটি বেছে নিন। অন্যথায়, আপনি একটি ব্যক্তিগত গুগল অ্যাকাউন্ট দিয়ে লগইন করতে ‘login with Google’ ব্যবহার করতে পারেন, যাতে আপনি জেমিনি সিএলআই-এর আকর্ষণীয় ফ্রি টিয়ারের সুবিধা নিতে পারেন। অথেনটিকেশন নির্বাচনের স্ক্রিনটি দেখতে অনেকটা এইরকম হবে:

আপনার নির্বাচন পরিবর্তন করার প্রয়োজন হলে, এই মেনুটি পুনরায় খোলার জন্য আপনি /auth টাইপ করে এন্টার চাপতে পারেন।
এরপর আপনাকে একটি থিম বেছে নিতে বলা হবে:

/auth এর মতোই, আপনি পরবর্তীতে /theme কমান্ড ব্যবহার করে থিম পরিবর্তন করতে পারেন।
প্রমাণীকরণ পদ্ধতি এবং আপনার পছন্দের থিম বেছে নেওয়ার পর আপনাকে কমান্ড প্রম্পটে নিয়ে যাওয়া হবে। এখানে আপনি আপনার কমান্ডগুলো টাইপ করতে পারবেন, উদাহরণস্বরূপ:
Write a hello world application in Go
CLI কাজগুলো সম্পাদন করার জন্য তার নিজস্ব যুক্তি (Gemini Flash বা Gemini Pro-এর মতো একটি Gemini মডেলের মাধ্যমে) এবং টুলসের একটি সংমিশ্রণ ব্যবহার করে। যখনই ফাইলসিস্টেম বা বাহ্যিক পরিষেবা, যেমন API, ডেটাবেস ইত্যাদির সাথে ইন্টারঅ্যাক্ট করার প্রয়োজন হয়, তখনই এটি টুলস ব্যবহার করে। যে টুলসগুলো ডিফল্টভাবে পাওয়া যায়, বা "অভ্যন্তরীণ টুলস", তার উদাহরণ হলো read_file , write_file , web_fetch এবং google_search । আমরা যে MCP সার্ভারটি তৈরি করছি, সেটিও CLI-এর জন্য উপলব্ধ একটি টুল হয়ে উঠবে।
প্রথমবার কোনো টুল চালানোর সময় এটি আপনার অনুমতি চাইবে। আপনি এটিকে একবারের জন্য অনুমতি (একবার অনুমোদন), সেশনের বাকি সময়ের জন্য সার্বিক অনুমোদন (সর্বদা অনুমোদন), অথবা এর অনুরোধ প্রত্যাখ্যান করতে পারেন। যদি এটি কোনো ফাইল সম্পাদনার কাজ হয়, তবে আপনি একটি বাহ্যিক এডিটর ব্যবহার করে ফাইলটি সম্পাদনা করার বিকল্পও পাবেন, যদি আপনি কোনো পরিবর্তন করতে চান। উদাহরণস্বরূপ, একটি 'হ্যালো ওয়ার্ল্ড' প্রোগ্রাম তৈরি করার জন্য উপরের প্রম্পটের আউটপুটটি হলো:

প্রম্পট ছাড়াও, আপনি স্ল্যাশ কমান্ডও ব্যবহার করতে পারেন। আপনি "/" টাইপ করলে, CLI স্বয়ংক্রিয়ভাবে আপনাকে অটোকমপ্লিট অপশনগুলো দেখাবে। আপনি সম্পূর্ণ কমান্ডটি টাইপ করা চালিয়ে যেতে পারেন অথবা অপশনগুলো থেকে একটি বেছে নিতে পারেন। উপরে উল্লিখিত /auth এবং /theme কমান্ডগুলো এই ধরনের কয়েকটি কমান্ড।

একবার আপনি ইন্টারফেসটির সাথে পরিচিত হয়ে গেলে, এই অংশের মূল কাজটি শুরু করতে পারেন, যা হলো আমাদের জন্য এমসিপি সার্ভারটি লেখার জন্য সিএলআই-কে নির্দেশ দেওয়া।
একটি হ্যালো ওয়ার্ল্ড এমসিপি সার্ভার তৈরি করা
মডেলটি যাতে আরও ধারাবাহিকভাবে কাজ করতে পারে, তা নিশ্চিত করার অন্যতম সেরা উপায় হলো জটিল কাজগুলোকে ছোট ছোট ধাপে ভাগ করে নেওয়া। যদিও মডেলটি নিজে থেকেই একটি জটিল কাজ সমাধান করতে সক্ষম হতে পারে, কিন্তু সঠিক ব্যবস্থা ছাড়া এর যথাযথ বাস্তবায়ন খুঁজে বের করতে অনেক সময় লাগবে।
আরও সামঞ্জস্যপূর্ণ পদ্ধতির জন্য, আমরা যে কার্যকারিতাটি প্রয়োগ করতে চাই তা বাস্তবায়নের আগে (go ডকুমেন্টেশন পড়ে) এটিকে প্রথমে একটি "হ্যালো ওয়ার্ল্ড" MCP সার্ভার তৈরি করার নির্দেশ দেব।
নীচে একটি উদাহরণ প্রম্পট দেখানো হলো:
Create a Model Context Protocol (MCP) server that exposes a "hello_world" tool. This tool, when called, should return the message "Hello, MCP world!" For the MCP implementation, you should use the official Go SDK for MCP (github.com/modelcontextprotocol/go-sdk/mcp) and use the stdio transport. TODO: - Download the dependency: `go get github.com/modelcontextprotocol/go-sdk/mcp` - Inspect the documentation of the SDK: `go doc github.com/modelcontextprotocol/go-sdk/mcp` - Build a `server` command that supports stdio transport only - Build a `client` command that connects to the server over command transport to test the server Acceptance Criteria: - `./bin/client --list-tools` returns the list of server tools including "hello_world" - `./bin/client --call-tool` "hello_world" returns the output "Hello, MCP world!"
লক্ষ্য করুন যে উপরের নির্দেশটি তিনটি প্রধান অংশ নিয়ে গঠিত:
- সমস্যার বিবরণ, যার মধ্যে অন্তর্ভুক্ত থাকবে আমরা কী তৈরি করতে চাই এবং সীমাবদ্ধতাগুলো (যেমন: যেকোনো SDK-এর পরিবর্তে অফিসিয়াল SDK ব্যবহার করা, http-এর পরিবর্তে stdio ট্রান্সপোর্ট ব্যবহার করা)।
- করণীয় কাজগুলোর বিবরণ (TODOS)
- কাজটি সম্পন্ন হওয়ার গ্রহণযোগ্যতার মানদণ্ড, যা একটি পরীক্ষা পদ্ধতি হিসেবে কাজ করে, ফলে এজেন্ট জানতে পারে কখন কাজটি সম্পন্ন হয়েছে।
এই তিনটি উপাদান থাকলে মডেলটি আরও সামঞ্জস্যপূর্ণভাবে কাঙ্ক্ষিত ফলাফল অর্জন করতে পারবে।
read_docs টুলের বাস্তবায়ন
একবার আপনার কাছে একটি কার্যকরী বাস্তবায়ন তৈরি হয়ে গেলে, আমরা আসল "read_docs" টুলটি বাস্তবায়নের দিকে এগোতে পারি:
Add a new tool to our MCP server called "read_docs" that invokes the "go doc" shell command. The tool will take a mandatory "package" argument and an optional "symbol" argument. TODO: - create a package `./internal/tools/docs` - register the tool with the MCP server - update the client to support the "read_docs" tool by providing arguments to the tool call Acceptance Criteria: - `./bin/client --tools-list` show both hello_world and read_docs - `./bin/client --tool-call read_docs fmt` returns the documentation for the `fmt` package - `./bin/client --tool-call read_docs fmt.Println` returns the documentation for the `fmt.Println` function - `./bin/client --tool-call read_docs github.com/modelcontextprotocol/go-sdk/mcp` returns documentation for the `mcp` package
দ্রষ্টব্য: এই বিষয়বস্তুটি নিয়ে পরীক্ষা-নিরীক্ষা করতে পারেন অথবা নিজের মতো করে কিছু তৈরি করার চেষ্টা করতে পারেন।
দরকারী টিপস
যেহেতু MCP এখনও একটি নতুন ধারণা এবং MCP-এর জন্য Go SDK একটি নতুন লাইব্রেরি, তাই এই ধাপে Gemini-র নিজে থেকে সঠিক ইমপ্লিমেন্টেশন খুঁজে বের করতে অনেক সময় লাগতে পারে। মডেলটিকে সঠিক সমাধানে পৌঁছাতে সাহায্য করার জন্য, আপনি নিম্নলিখিতগুলি চেষ্টা করতে পারেন:
- যদি মডেলটি কোনো ধাপে ডকুমেন্টেশন পড়া বাদ দিয়ে যায়, তাহলে ESC চাপুন এবং এটিকে তা করতে মনে করিয়ে দিন। আপনি যদি Go-এর সাথে পরিচিত না হন, তাহলে "go doc" এর সাথে প্যাকেজের নাম "go doc github.com/modelcontextprotocol/go-sdk/mcp " রান করলে সঠিক ডকুমেন্টেশনটি পাওয়া যাবে।
- শীর্ষ স্তরের মডিউল " github.com/modelcontextprotocol/go-sdk"- এ কোনো ডকুমেন্টেশন নেই (কারণ এতে কোনো Go কোড নেই), আপনাকে মডেলকে সম্পূর্ণ পাথটি খুঁজতে বলতে হবে।
- বিপরীতভাবে, যদি মডেলটি এমন কোনো প্যাকেজ খুঁজে পায় যা বাস্তবে নেই, যেমন, "go doc github.com/modelcontextprotocol/go-sdk/mcp/server ", তবে এটিকে সরাসরি শীর্ষ-স্তরের প্যাকেজটির দিকে চালিত করুন।
৬. Gemini CLI-এর জন্য godoctor-কে একটি MCP সার্ভার হিসেবে কনফিগার করা
এআই অ্যাসিস্ট্যান্টটি ক্লায়েন্ট এবং সার্ভার উভয়ের জন্য কোড তৈরি করে ফেলার পর, আপনি এটিকে কয়েকটি ম্যানুয়াল পরীক্ষা চালানোর নির্দেশ দিতে পারেন। উদাহরণস্বরূপ:
retrieve the documentation for the package net/http
নিশ্চিত করুন যে আপনি এটি একটি বাহ্যিক নির্ভরতা (স্ট্যান্ডার্ড লাইব্রেরিতে নেই) দিয়েও পরীক্ষা করেছেন:
retrieve the documentation for the github.com/modelcontextprotocol/go-sdk/mcp package
ফলাফলে সন্তুষ্ট হলে, এই প্রজেক্টটি কীভাবে ব্যবহার ও উন্নত করতে হবে তার নির্দেশনাসহ একটি README.md ফাইল লেখার নির্দেশ দিন।
Now write a detailed README.md file explaining both from a user and a developer perspective how to use and to build this project.
এখন আমরা সার্ভারটি কনফিগার করব যাতে জেমিনি সিএলআই উন্নয়নের পরবর্তী পর্যায়ে এটি ব্যবহার করতে পারে।
- ডকুমেন্টেশন পড়ার জন্য পছন্দের পদ্ধতি হিসেবে
read_docsব্যবহার করতে CLI-কে দিয়ে GEMINI.md আপডেট করুন:
update the GEMINI.md file to include instructions to always use the read_docs tool to retrieve documentation about Go packages or symbols. This should be done whenever seeing an import for the first time in a session or after a new dependency is installed to the project (e.g. via `go get`)
- এখন MCP সার্ভার কনফিগার করার জন্য আমাদের Gemini CLI রিস্টার্ট করতে হবে। প্রথমে, চ্যাট সেশনটি সেভ করে নিন, যাতে রিস্টার্ট হওয়ার পর আপনি যেখান থেকে থেমেছিলেন সেখান থেকেই আবার শুরু করতে পারেন।
/chat save godoctor-workshop
- দুইবার Ctrl+D চাপুন অথবা
/quitকমান্ডটি টাইপ করে CLI থেকে বেরিয়ে আসুন। - পূর্ববর্তী ধাপগুলিতে এজেন্টটির আপনার জন্য একটি সার্ভার বাইনারি কম্পাইল করার কথা ছিল, কিন্তু আমরা সার্ভারটিকে একটি ভিন্ন নামে আবার কম্পাইল করছি, যাতে এর সোর্স কোড পরিবর্তন করলেও তা প্রভাবিত না হয়:
mkdir -p bin && go build -o ./bin/godoctor ./cmd/server
- লোকাল টুলের জন্য Gemini CLI কনফিগার করুন: আপনার প্রজেক্ট রুটে একটি
.gemini/settings.jsonফাইল তৈরি করুন এবং আপনার কম্পাইল করা সার্ভারটি কীভাবে চালাবে তা Gemini CLI-কে জানানোর জন্য একটিmcpServersসেকশন যোগ করুন।
mkdir -p .gemini && touch .gemini/settings.json
- এখন, ক্লাউডশেল এডিটর অথবা আপনার পছন্দের IDE ব্যবহার করে নতুন ফাইলটিতে নিম্নলিখিত বিষয়বস্তু যোগ করুন।
{
"mcpServers": {
"godoctor": {
"command": "./bin/godoctor"
}
}
}
-
geminiকমান্ড দিয়ে Gemini CLI চালু করুন। -
/mcpকমান্ডটি টাইপ করে আপনি দেখতে পাবেন যে টুলটি লোড হয়েছে। এছাড়াও,/mcp descব্যবহার করে আপনি টুলগুলোর সম্পূর্ণ বিবরণ দেখতে পারেন।

- "আমাকে net/http প্যাকেজের ডকুমেন্টেশন দেখাও"-এর মতো একটি প্রম্পট দিয়ে Gemini CLI-কে আপনার টুলটি ব্যবহার করতে বলে ইন্টিগ্রেশনটি পরীক্ষা করুন।
আপনার এইরকম কিছু দেখা উচিত:

টুলটি সঠিকভাবে কাজ করলে, টুল কলের মাধ্যমে প্রাপ্ত ডকুমেন্টেশনটি আপনি দেখতে পাবেন:

অভিনন্দন, আপনি একটি এমসিপি টুল তৈরি করেছেন! কিন্তু এখানেই শেষ নয়, আমরা এই সার্ভারটিকে আরও কিছুটা কার্যকর করে তুলতে পারি।
৭. একটি এআই-চালিত কোড রিভিউয়ার যুক্ত করা
চলুন আরও একটি অত্যাধুনিক, এআই-চালিত ফিচার যোগ করা যাক: একজন কোড রিভিউয়ার যিনি জেমিনি এপিআই ব্যবহার করেন।
আপনি এখন /chat resume godoctor-workshop. এটি read_docs উন্নয়ন শেষ করার মুহূর্ত পর্যন্ত সেশন কনটেক্সট লোড করবে, ফলে নতুন টুলটি তৈরি করার জন্য মডেলটির কাছে প্রয়োজনীয় তথ্য থাকবে।
এই টুলটির জন্য ভার্টেক্স এআই (Vertex AI)-তে অ্যাক্সেস প্রয়োজন হবে, তাই আমাদের প্রথমে এপিআই (API) সক্রিয় করতে হবে। একটি খালি প্রম্পটে বিস্ময়সূচক চিহ্ন (!) টাইপ করে আপনি জেমিনি সিএলআই (Gemini CLI) থেকে বের না হয়েই শেল কমান্ড চালাতে পারেন। এটি জেমিনি সিএলআই-কে শেল মোডে পরিবর্তন করবে।
Vertex AI API সক্রিয় করতে শেল মোডে নিম্নলিখিত কমান্ডটি চালান:
gcloud services enable aiplatform.googleapis.com
কমান্ডটি সম্পন্ন হয়ে গেলে, আপনি এস্কেপ কী (Esc) টাইপ করে প্রম্পট মোডে ফিরে যেতে পারেন।
লক্ষ্য: বিদ্যমান প্রজেক্টে code_review নামে একটি নতুন টুল যুক্ত করা। এই টুলটি Gemini API ব্যবহার করে Go কোড বিশ্লেষণ করবে এবং মতামত প্রদান করবে।
উদাহরণ প্রম্পট:
Add a new tool to my project called code_review. This tool should use the Gemini API on Vertex AI (with model id gemini-2.5-pro) to analyze Go code and provide a list of improvements according to the best practices accepted by the Go community. The tool should take the Go code content and an optional hint as input. The hint will be used to provide additional guidance for the AI reviewer, like "focus on security" or "help me simplify this code". The tool output should be text in Markdown format. TODO: - add the genai SDK dependency with `go get import google.golang.org/genai` - create the tool code in ./internal/tools/code/review.go - create a code review prompt to be used by the tool - use go-genai with Vertex AI authentication to call gemini-2.5-pro - register the tool with the server - add a flag to the server to set the Google Cloud Project ID: --project - add a flag to the server to set the Google Cloud Location: --location - add support to the review tool in the client CLI NOT TO DO: - DO NOT use the package github.com/google/generative-ai-go/genai as it is DEPRECATED - DO NOT use the package cloud.google.com/go/vertexai/genai as it has been superseded by google.golang.org/genai Acceptance Criteria: - `./bin/client --tools-list` show all tools including `code_review` - `./bin/client --tool-call code_review internal/tools/code/review.go` returns the code review for the "review.go" file
দরকারী টিপস
- মডেলটি একবার কাজ শুরু করলে, আপনি হয়তো দেখবেন এটি স্বয়ংক্রিয়ভাবে
genaiপ্যাকেজের ডকুমেন্টেশন ব্রাউজ করার জন্যread_docsটুলটি কল করার অনুরোধ জানাচ্ছে। যদি এটি তা না করে, আপনি যেকোনো সময় এস্কেপ কী (escape key) চেপে প্রসেসটি থামিয়ে দিতে পারেন এবং এটিকে মনে করিয়ে দিতে পারেন যে এখনread_docsটুলটি এর ব্যবহারের জন্য প্রস্তুত আছে। - যদি দেখেন এটি ভুল GenAI SDK ব্যবহার করার চেষ্টা করছে (যদিও প্রম্পটে একটি স্পষ্ট "অনুমতি নেই" তালিকা রয়েছে), তবে এটিকে সঠিকটিতে ফিরিয়ে দিন।
কোড পর্যালোচককে পরীক্ষা করা
-
/chat save godoctor-workshopব্যবহার করে চ্যাট সেশনটি সেভ করুন এবং তারপর দুইবার Ctrl+D চেপে CLI থেকে বেরিয়ে যান। - নতুন টুল ডেফিনিশন দিয়ে সার্ভারটি পুনরায় কম্পাইল করুন:
go build -o ./bin/godoctor ./cmd/server
- আপনার IDE ব্যবহার করে, Vertex AI-এর পরিবেশ কনফিগারেশন অন্তর্ভুক্ত করার জন্য
.gemini/settings.jsonফাইলটি আপডেট করুন:
{
"mcpServers": {
"godoctor": {
"command": "./bin/godoctor",
"env": {
"GOOGLE_CLOUD_USE_VERTEXAI": "true",
"GOOGLE_CLOUD_PROJECT": "<your-project-id>",
"GOOGLE_CLOUD_LOCATION": "<your-preferred-region>"
}
}
}
}
- আবার Gemini CLI চালু করুন।
/chat resume godoctor-workshopদিয়ে চ্যাট সেশনটি পুনরুদ্ধার করুন। -
/mcpকমান্ডটি টাইপ করে টুলটি সক্রিয় আছে কিনা তা নিশ্চিত করুন। আপনি এইরকম কিছু দেখতে পাবেন:

- এখন চলুন
code_reviewটুলটির একটি সোর্স ফাইল পর্যালোচনা করে টুলটি পরীক্ষা করে দেখি:
Use the code_review tool to review cmd/server/main.go
You should see something like this:

কোড রিভিউ টুলটি চালু থাকায়, এখন আপনি মডেলটিকে এর খুঁজে পাওয়া কিছু উন্নতি প্রয়োগ করার পরামর্শ দিতে পারেন, যার ফলে একটি সম্পূর্ণ 'স্ব-উন্নয়নশীল' ওয়ার্কফ্লো তৈরি হবে!
আপনি এখন নিশ্চিত করেছেন যে code-review টুলটি কাজ করছে। পরবর্তী অংশে আপনি এটি ক্লাউডে ডেপ্লয় করার কাজ করবেন। /chat save godoctor-workshop দিয়ে আপনার বর্তমান সেশনটি সেভ করুন এবং CLI থেকে বেরিয়ে যান।
৮. ক্লাউডের জন্য আপনার সার্ভার প্রস্তুত করুন।
আমরা এখন পর্যন্ত যে এমসিপি সার্ভারটি তৈরি করেছি তা কেবল লোকাল মেশিনে চলে, যা নিজের ব্যবহারের জন্য টুল তৈরির ক্ষেত্রে ঠিক আছে, কিন্তু প্রায়শই এন্টারপ্রাইজ পরিবেশে আমাদের শত শত বা এমনকি হাজার হাজার ডেভেলপারের ব্যাপক ব্যবহারের জন্য টুলগুলো ডেপ্লয় করতে হয়।
আমাদের MCP সার্ভারকে স্কেল করার জন্য, এটিকে শুধুমাত্র স্ট্যান্ডার্ড I/O ব্যবহারকারী একটি সার্ভার থেকে HTTP ব্যবহারকারী একটি সার্ভারে রূপান্তর করতে হবে এবং এমন একটি স্থানে স্থাপন করতে হবে যেখানে এটি বিভিন্ন ডেভেলপারদের কাছে সহজলভ্য হবে। এই উদ্দেশ্যে, আমরা MCP স্পেসিফিকেশনে সংজ্ঞায়িত স্ট্রিমেবল HTTP নামক একটি ট্রান্সপোর্ট মোড ব্যবহার করব এবং আমাদের ডেপ্লয়মেন্ট টার্গেট হিসেবে ক্লাউড রান (Cloud Run) ব্যবহার করব।
লক্ষ্য: স্ট্রিমেবল HTTP ট্রান্সপোর্ট ব্যবহার করার জন্য গডক্টর সার্ভারকে রিফ্যাক্টর করা।
উদাহরণ প্রম্পট:
The godoctor server is currently using the stdio transport. I want to prepare it to be deployed to Cloud Run, so we need to add support to use the Streamable HTTP transport. TODO: - Update server to enable Streamable HTTP via the -http flag. - An optional -listen flag can be specified to set the port to listen - If no -http flag is specified, the server defaults to stdio transport and -listen is ignored - Update client to use Streamable HTTP via the -addr flag - If no flag is specified, the client defaults to command transport - Create a shell script test_server.sh to support testing NOT TO DO: - DO NOT use the HTTP+SSE protocol as it has been deprecated by the MCP specification Acceptance Criteria - Create a shell script that: - Runs the server in the background; - Runs the client connecting over HTTP and call list tools - Kills the background process - The shell script should run without failures
দরকারী টিপস
- মডেলটি এর পরিবর্তে HTTP+SSE ব্যবহার করার চেষ্টা করতে পারে, যা এখন আর ব্যবহৃত হয় না। যদি দেখেন এটি এই পথে যাচ্ছে, তবে এটিকে স্ট্রিমেবল HTTP-এর দিকে ফিরিয়ে দিন।
- Gemini CLI-এর বর্তমান সংস্করণ (0.26.0) ব্যাকগ্রাউন্ডে প্রসেস চালানো সমর্থন করে না (
run_shell_commandদিয়ে চালু করা যেকোনো প্রসেস টুল কলটি রিটার্ন করার সাথে সাথেই বন্ধ হয়ে যায়), তাই আমরা Gemini-কে একটি স্ক্রিপ্ট ব্যবহার করে পরীক্ষা প্রক্রিয়াটি স্বয়ংক্রিয় করার জন্য অনুরোধ করছি। এই ফিচারটি পরিকল্পনাধীন এবং অদূর ভবিষ্যতে যোগ করা হবে, যা পরীক্ষা প্রক্রিয়াকে আরও সহজ করে তুলবে।
ঐচ্ছিক: HTTP ব্যবহার করে MCP সার্ভার পরীক্ষা করা
আপনি যদি HTTP এর মাধ্যমে সার্ভার ব্যবহার করার জন্য Gemini CLI কনফিগার করতে চান:
- আপনার সেশন সংরক্ষণ করুন এবং CLI থেকে প্রস্থান করুন।
- আপনার
.gemini/settings.jsonফাইলটি সম্পাদনা করুন এবং কনফিগারেশন পরিবর্তন করে আপনার স্থানীয়ভাবে চলমান সার্ভারটিকে নির্দেশ করুন।
"mcpServers": {
"godoctor": {
"httpUrl": "http://localhost:8080"
}
}
- দ্বিতীয় একটি টার্মিনালে, স্থানীয়ভাবে HTTP সক্ষম সার্ভারটি চালান:
go build -o ./bin/godoctor ./cmd/server && ./bin/godoctor -listen=:8080
- Gemini CLI পুনরায় চালু করুন এবং সংযোগ পরীক্ষা করার জন্য এটিকে একটি প্রম্পট দিন, যেমন, "fmt.Println-এর ডকুমেন্টেশন পেতে godoctor টুলটি ব্যবহার করুন।"
- পরীক্ষা করা শেষ হলে Ctrl+C চেপে সার্ভারটি বন্ধ করুন।
৯. ডকারের সাহায্যে অ্যাপ্লিকেশনটিকে কন্টেইনারাইজ করা
এখন যেহেতু আমাদের সার্ভার সঠিক ট্রান্সপোর্ট প্রোটোকল ব্যবহার করছে, আমরা ডেপ্লয়মেন্টের জন্য এটিকে কন্টেইনারাইজ করতে পারি।
লক্ষ্য: গোডক্টর সার্ভারকে একটি পোর্টেবল ও প্রোডাকশন-উপযোগী কন্টেইনার ইমেজে প্যাকেজ করার জন্য একটি ডকারফাইল তৈরি করা।
উদাহরণ প্রম্পট:
Please create a multi-stage Dockerfile that compiles the Go binary and copies it into a minimal golang image like golang:1.25.6-alpine. The image should support the following environment variables:
- GOOGLE_CLOUD_USE_VERTEXAI
- GOOGLE_CLOUD_PROJECT
- GOOGLE_CLOUD_LOCATION
Acceptance Criteria:
- The image builds successfully
- Create a script test_docker.sh to launch the docker image in background and test the connectivity with the client:
- Call list_tools on the client pointing to the server running on Docker
- Call read_docs for fmt.Println
- Stop the server
- The script should run without failures
ঐচ্ছিক: ডকার ইমেজটি ম্যানুয়ালি পরীক্ষা করা
Dockerfile তৈরি করার পর, ইমেজটি বিল্ড করুন এবং এটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে রান করুন।
- কন্টেইনারটি তৈরি করুন:
docker build -t godoctor:latest .
- কন্টেইনারটি স্থানীয়ভাবে চালান:
docker run -p 8080:8080 -e PORT=8080 godoctor:latest
- চলমান কন্টেইনারটি পরীক্ষা করুন: অন্য একটি টার্মিনালে, Gemini CLI চালু করুন এবং এটিকে ডকুমেন্টেশন আনতে বলুন।
- পরীক্ষা করা শেষ হলে Ctrl+C চেপে সার্ভারটি বন্ধ করুন।
১০. ক্লাউড রানে ডেপ্লয় করা
এখন আমাদের কন্টেইনারটি ক্লাউডে ডেপ্লয় করার সময় হয়েছে।
লক্ষ্য: কন্টেইনারাইজড গডক্টর সার্ভারটি গুগল ক্লাউড রান-এ ডেপ্লয় করা।
উদাহরণ প্রম্পট:
Now please deploy this image to Cloud Run and return me an URL I can use to call the MCP tool. Configure Cloud Run to use the following environment variables: - GOOGLE_CLOUD_USE_VERTEXAI: true, - GOOGLE_CLOUD_PROJECT: <your-project-id> - GOOGLE_CLOUD_LOCATION: <your-preferred-region> TODO: - Run `docker build -t gcr.io/daniela-genai-sandbox/godoctor .` - Run `gcloud run deploy godoctor --image` with the image created above Acceptance Criteria: - Call list-tools with the client pointing to the CloudRun endpoint
ডেপ্লয়মেন্ট শেষ হয়ে গেলে, আপনার সদ্য ডেপ্লয় করা টুলটি ব্যবহার করার জন্য আমরা Gemini CLI কনফিগার করে দেব।
আপনার ডেপ্লয় করা সার্ভিসকে নির্দেশ করার জন্য MCP টুল কনফিগারেশন পরিবর্তন করতে আপনার .gemini/settings.json ফাইলটি আপডেট করুন, অথবা Gemini CLI-কে দিয়ে এটি করিয়ে নিন:
now update the .gemini/settings.json file to use this URL for the godoctor server
চূড়ান্ত mcpServers সেকশনটি দেখতে এইরকম হবে (প্লেসহোল্ডারটিকে আপনার আসল Cloud Run অ্যাপ URL দিয়ে প্রতিস্থাপন করতে ভুলবেন না):
"mcpServers": {
"godoctor": {
"httpUrl": "https://<your-cloud-run-id>.us-central1.run.app"
}
}
ক্লাউড রান ডেপ্লয়মেন্ট পরীক্ষা করা হচ্ছে
আপনি এখন চূড়ান্ত, পূর্ণাঙ্গ পরীক্ষার জন্য প্রস্তুত।
শেষবারের মতো Gemini CLI রিস্টার্ট করুন (আপনার কনটেক্সট সংরক্ষণ করতে চাইলে /chat save এবং /chat resume ব্যবহার করতে পারেন)। এখন CLI রিমোট MCP সার্ভারকে কল করতে সক্ষম হবে। যেকোনো প্যাকেজের ডকুমেন্টেশনের জন্য অনুরোধ করে দেখতে পারেন।
আপনি কোড রিভিউ টুলটিও পরীক্ষা করতে পারেন:
Use the godoctor tool to review the cmd/godoctor/main.go file
পরিষ্কার করা
টেস্টিং শেষ হয়ে গেলে, পরিবেশটি পরিষ্কার করতে ভুলবেন না। আপনি জেমিনিকে আপনার প্রজেক্টটি ডিলিট করতে অথবা শুধু ক্লাউডরান ডিপ্লয়মেন্টটি সরিয়ে ফেলতে বলতে পারেন। উদাহরণ প্রম্পট:
I'm done with my tests on the CloudRun server, please delete this deployment for me and revert my .gemini/settings.json to use the local version.
১১. অভিনন্দন!
আপনি সফলভাবে একটি এআই অ্যাসিস্ট্যান্টকে একটি অত্যাধুনিক, এআই-চালিত টুল তৈরি, কন্টেইনারাইজ এবং ডিপ্লয় করতে নির্দেশ দিয়েছেন। আরও গুরুত্বপূর্ণ বিষয় হলো, আপনি আধুনিক সফটওয়্যার ডেভেলপমেন্টের একটি অপরিহার্য দক্ষতার অনুশীলন করেছেন: রিকোয়ারমেন্টগুলোকে কার্যকর প্রম্পটে রূপান্তর করা। আপনি সফলভাবে একটি কাস্টম এমসিপি টুল দিয়ে জেমিনি সিএলআই-কে সম্প্রসারিত করেছেন, এটিকে আরও শক্তিশালী এবং বিশেষায়িত একটি গো ডেভেলপমেন্ট অ্যাসিস্ট্যান্টে পরিণত করেছেন।