
McButler কী
McButler (ম্যাকডোনাল্ডস স্ব-পরিষেবা সহকারী) হলো ম্যাকডোনাল্ডসের অফিসিয়াল MCP-এর ওপর ভিত্তি করে তৈরি একটি অর্ডার সহায়ক প্রকল্প। এটি শুধু দামের ভিত্তিতে কম্বো সুপারিশ করে না; বরং বাজেট, স্বাস্থ্য, সময়, খাদ্য-অসহিষ্ণুতা ও ব্যক্তিগত পছন্দ—এই সীমাবদ্ধতাগুলো একসঙ্গে বিবেচনা করার চেষ্টা করে।
প্রকল্পটি WorkBuddy Skill হিসেবে ব্যবহার করা যায়, আবার স্থানীয় CLI-এর মাধ্যমে বিল্ট-ইন ডেমো ডেটাও চালানো যায়। ডেভেলপাররা এর ডেটা পার্সিং ও স্কোরিং মডিউল পুনর্ব্যবহার করে ম্যাকডোনাল্ডস MCP থেকে ফেরত আসা ডেটা নিজেদের ক্লায়েন্টে যুক্ত করতে পারেন।

প্রকল্পের রিপোজিটরি GitHub-এ রয়েছে। ম্যাকডোনাল্ডস মঞ্চে একটি অনলাইন অভিজ্ঞতা পৃষ্ঠাও আছে। মনে রাখবেন, McButler একটি স্বতন্ত্র প্রতিযোগী প্রকল্প, ম্যাকডোনাল্ডসের অফিসিয়াল পণ্য নয়।
ছয়টি মূল সক্ষমতা
1. দৈনিক সুপারিশ
recommend সাশ্রয়ী, স্বাস্থ্যকর ও জনপ্রিয়—এই তিনটি মোড সমর্থন করে। এগুলো শুধু একটি সর্টিং ফিল্ড বদলে দেয় না; প্রতিটির আলাদা ক্রম নির্ধারণের যুক্তি রয়েছে।
- সাশ্রয়ী মোড: স্বাভাবিকীকৃত মূল্য, ছাড়ের পরিমাণ এবং প্রতি 100 kcal-এর মূল্য একত্রে বিবেচনা করে, যাতে ছোট পরিমাণের খাবার শুধু কম মোট দামের কারণে এগিয়ে না যায়।
- স্বাস্থ্যকর মোড: স্বাস্থ্য স্কোর ও শক্তির উপযোগিতা মিলিয়ে দেখে এবং পরিমাপ করা পুষ্টি-তথ্য থাকা প্রার্থীদের অগ্রাধিকার দেয়।
- জনপ্রিয় মোড: জনপ্রিয় পণ্যের ট্যাগ, ঐতিহাসিকভাবে ঘন ঘন অর্ডার করা তথ্য এবং ছাড় একত্রে বিবেচনা করে।
2. স্বাস্থ্য পরীক্ষা
health হলো প্রকল্পটির প্রযুক্তিগত মূল অংশ। পুষ্টি ইন্টারফেসে একক পণ্যের তথ্য দেওয়া থাকায় McButler প্রথমে কম্বোর বিবরণ পড়ে, কম্বোটিকে ডিফল্ট উপাদানে ভাগ করে, তারপর প্রতিটি উপাদানের সঙ্গে পুষ্টি-তালিকা মিলিয়ে ক্যালরি, প্রোটিন, চর্বি, সোডিয়াম ও ক্যালসিয়ামসহ অন্যান্য তথ্য যোগ করে।
কম্বোর বিবরণ
→ ডিফল্ট উপাদান পড়া
→ প্রতিটি একক পণ্যের পুষ্টি-তথ্য মিলানো
→ পুষ্টিমান যোগ করা
→ স্বাস্থ্য স্কোর ও কর্তনযোগ্য পয়েন্ট গণনাস্বাস্থ্য স্কোর 100 নম্বরের ভিত্তিতে নির্ধারিত হয়। এতে শক্তির পরিসর, প্রোটিন, চর্বি থেকে শক্তির অনুপাত, সোডিয়াম, চিনি-চর্বির চাপ এবং শাকসবজি ও ফলের জন্য অতিরিক্ত পয়েন্ট বিবেচনা করা হয়। বিস্তারিত সূত্র রিপোজিটরির references/model-spec.md-এ দেখা যাবে।
3. দোকানের মোট খরচ তুলনা
stores সবচেয়ে কাছের, সবচেয়ে সস্তা বা মোট খরচের ভিত্তিতে দোকান বেছে নিতে পারে। সামগ্রিক মোডে শুধু পণ্যের দাম নয়, যাতায়াতের দূরত্ব, হাঁটার সময় এবং অপেক্ষার সময়ও খরচে রূপান্তর করা হয়।
মোট খরচ = পণ্যের দাম
+ দূরত্বের খরচ (যাতায়াতের মোট 0.5 ইউয়ান/km)
+ সময়ের খরচ (হেঁটে যাতায়াতের সময় + অপেক্ষার সময়) × 0.30 ইউয়ান/মিনিটতাই সবচেয়ে কাছের দোকানই সবসময় সবচেয়ে সাশ্রয়ী নাও হতে পারে। অপেক্ষার সময় বর্তমানে MCP ইন্টারফেস সরাসরি সরবরাহ করে না; এটি ব্যবহারকারীকে দিতে বা অনুমান করতে হবে।
4. দলীয় খাবারের কম্বো তৈরি
bulk প্রশাসন, HR, শ্রেণি ও দলীয় খাবার অর্ডারের পরিস্থিতির জন্য তৈরি। এটি মানুষের সংখ্যা, মাথাপিছু বাজেট, গরুর মাংস না খাওয়া ও ঝাল না খাওয়ার মতো শর্ত অনুযায়ী দল ভাগ করে খাবার সাজাতে পারে এবং এমন orderItems আউটপুট দেয়, যা পরবর্তী মূল্য গণনার ধাপে পাঠানো যায়।
ফলাফলে দলের সদস্যসংখ্যা, কম্বোর সংখ্যা, মোট মূল্য, মাথাপিছু মূল্য, সাশ্রয়ের পরিমাণ এবং মাথাপিছু ক্যালরিসহ বিভিন্ন তথ্য থাকবে। তবে “গরুর মাংস না খাওয়া” বর্তমানে খাবারের নামের কীওয়ার্ড ফিল্টারের ওপর নির্ভর করে; মেনুতে স্পষ্টভাবে উল্লেখ না থাকা উপাদান শনাক্ত করা নিশ্চিত নয়।
5. ম্যাক-ঝুঁকি স্কোর
credit ভোক্তা ঋণ স্কোরকার্ডের ধারণা অনুসরণ করে অ্যাকাউন্ট ও একক অর্ডারের জন্য 300 থেকে 950 পর্যন্ত ম্যাক-ঝুঁকি স্কোর গণনা করে। ছয়টি মাত্রা হলো পরিশোধের স্থিতিশীলতা, খরচের ছন্দ, বাজেট শৃঙ্খলা, ছাড় ব্যবহারের হার, অ্যাকাউন্ট সম্পদ এবং স্বাদের বৈচিত্র্য।
স্কোরের ফলাফলে প্রতিটি মাত্রার স্কোর ও ডেটার উৎস দেখানো হয়, শুধু ব্যাখ্যাহীন একটি মোট স্কোর নয়। এটি বিনোদনমূলক ভোক্তা বিশ্লেষণ; প্রকৃত আর্থিক ক্রেডিট মূল্যায়ন নয়।
6. ম্যাকডোনাল্ডস মঞ্চ
theater কুপন, ম্যাক-ঝুঁকি স্কোর ও ক্যালরির তথ্যের ভিত্তিতে পাঁচটি চরিত্রের মধ্যে অর্ডার নিয়ে বিতর্ক তৈরি করে এবং একটি একক HTML ফাইল আউটপুট দেয়। তৈরি হওয়া পৃষ্ঠায় অতিরিক্ত নির্ভরতা লাগে না; সরাসরি ব্রাউজারে খোলা যায়।
রানটাইম পরিবেশ প্রস্তুত করুন
স্থানীয় মোডে শুধু Python 3.8 বা পরবর্তী সংস্করণ প্রয়োজন এবং এটি কেবল Python-এর স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করে, কোনো তৃতীয় পক্ষের প্যাকেজ ইনস্টল করতে হয় না। অনলাইন MCP মোডের জন্য একটি কার্যকর MCP Token প্রয়োজন।
রিপোজিটরি ক্লোন করে স্ব-পরীক্ষা চালান
git clone https://github.com/jouaaaaaa/mcd-self-butler.git
cd mcd-self-butler
python scripts/selftest.pyস্ব-পরীক্ষায় 9টি অফলাইন কেস রয়েছে। এগুলো স্বাস্থ্য পরীক্ষা, তিন ধরনের সুপারিশ, অ্যাকাউন্ট ও অর্ডারের ম্যাক-ঝুঁকি স্কোর, দলীয় খাবার, দোকানের মূল্য তুলনা এবং টেক্সট-ভিত্তিক মঞ্চ—সবকিছু কভার করে। সব পরীক্ষা পাস হলে বোঝা যায় স্থানীয় পরিবেশ ও ডেমো ডেটা স্বাভাবিকভাবে কাজ করছে।
পদ্ধতি এক: WorkBuddy-তে Skill হিসেবে ইনস্টল
রিপোজিটরির
SKILL.md,scripts/এবংreferences/নিচের ডিরেক্টরিতে রাখুন:~/.workbuddy/skills/mcd-self-butler/WorkBuddy-তে “বিশেষজ্ঞ·দক্ষতা·কানেক্টর”-এ প্রবেশ করে ক্রমানুসারে “কানেক্টর”, “কাস্টম কানেক্টর” এবং “MCP কনফিগার করুন” নির্বাচন করুন।
ম্যাকডোনাল্ডস MCP-এর Streamable HTTP কনফিগারেশন পূরণ করুন এবং প্লেসহোল্ডারটি নিজের Token দিয়ে প্রতিস্থাপন করুন:
{ "mcpServers": { "mcd-mcp": { "type": "streamablehttp", "url": "https://mcp.mcd.cn", "headers": { "Authorization": "Bearer 你的_MCP_TOKEN" } } } }mcd-mcpকানেক্টর সক্রিয় করে স্বাভাবিক ভাষায় আপনার প্রয়োজন জানান।
নিচের অনুরোধগুলো দিয়ে শুরু করতে পারেন:
- “আমি নানজিং পশ্চিম সড়কে আছি। কাছাকাছি কোন ম্যাকডোনাল্ডসে বিগ ম্যাকের তিন-পিস কম্বো সবচেয়ে সাশ্রয়ী?”
- “এই কম্বোতে কত ক্যালরি আছে দেখুন, আরও স্বাস্থ্যকর কোনো বিকল্প আছে কি?”
- “বিভাগের 30 জনের দলীয় খাবার, মাথাপিছু 30 ইউয়ান, 5 জন গরুর মাংস খান না।”
- “আমার ম্যাক-ঝুঁকি স্কোর কত?”
- “খাবারের জন্য অপেক্ষা করতে করতে খুব বিরক্ত লাগছে, ওদের ঝগড়া করান।”
পদ্ধতি দুই: স্থানীয় CLI ব্যবহার
স্থানীয় CLI রিপোজিটরির ডেমো স্ন্যাপশট ব্যবহার করে; Token বা ইন্টারনেট সংযোগের প্রয়োজন নেই। ছয়টি সক্ষমতাই scripts/mcd_butler.py-এর মাধ্যমে একীভূতভাবে চালানো যায়।
কম্বোর পুষ্টি পরীক্ষা
python scripts/mcd_butler.py health \
--nutrition demo/nutrition.txt \
--combo demo/combo_9900011128.jsonএই কমান্ড কম্বো বিশ্লেষণ করবে, পুষ্টি-তালিকার সঙ্গে মিলিয়ে সারসংক্ষেপ তৈরি করবে। আউটপুটে প্রতিটি উপাদানের পুষ্টি-তথ্য, কম্বোর মোট হিসাব, স্বাস্থ্য স্কোর এবং নির্দিষ্ট কর্তনের কারণ থাকবে।
স্বাস্থ্যকর সুপারিশ পান
python scripts/mcd_butler.py recommend \
--menu demo/menu_1450118.json \
--nutrition demo/nutrition.txt \
--mode healthy \
--meal lunch \
--budget 45 \
--top 5 \
--details demo/details.json--mode healthy স্বাস্থ্যকর মোড ব্যবহার করে, --meal lunch দুপুরের খাবারের পরিস্থিতি নির্ধারণ করে, --budget 45 বাজেট 45 ইউয়ানে সীমাবদ্ধ করে এবং --top 5 প্রথম পাঁচটি ফলাফল ফেরত দেয়।
অন্য কৌশল পরীক্ষা করতে CLI সমর্থিত মোড অনুযায়ী সাশ্রয়ী বা জনপ্রিয় যুক্তি ব্যবহার করা যায়। বিভিন্ন মোডে ফলাফল উল্লেখযোগ্যভাবে ভিন্ন হতে পারে, কারণ প্রতিটির মূল্যায়ন ফাংশন আলাদা।
ম্যাক-ঝুঁকি স্কোর গণনা
python scripts/mcd_butler.py credit \
--orders demo/orders.json \
--account demo/account.json \
--coupons demo/coupons.md \
--nutrition demo/nutrition.txtএই কমান্ড ঐতিহাসিক অর্ডার, অ্যাকাউন্টের তথ্য, কুপন ও পুষ্টি-তথ্য একত্র করে মোট স্কোর, রেটিং এবং ছয়টি মাত্রার বিস্তারিত ফলাফল দেয়। ডেমো ডেটার উদাহরণ ফল হলো 771 স্কোর, বিগ ম্যাক স্তর; তবে প্রকৃত স্কোর ইনপুট ডেটার ওপর নির্ভর করে।
30 জনের দলীয় খাবার কনফিগার করুন
python scripts/mcd_butler.py bulk \
--menu demo/menu_1450118.json \
--nutrition demo/nutrition.txt \
--headcount 30 \
--budget 30 \
--no-beef 5 \
--no-spicy 4এখানে 30 জন, মাথাপিছু 30 ইউয়ান বাজেট, 5 জনের গরুর মাংস না খাওয়া এবং 4 জনের ঝাল না খাওয়ার শর্ত নির্ধারণ করা হয়েছে। প্রোগ্রামটি দল ভাগ করে কম্বো বেছে নেবে এবং গণনাযোগ্য পরিমাণসহ অর্ডার আইটেম তৈরি করবে।
দোকানের মোট খরচ তুলনা
python scripts/mcd_butler.py stores \
--stores demo/stores.json \
--mode balancedbalanced মোড দূরত্ব, সময় ও মূল্য একত্রে বিবেচনা করে। নিজের ডেটা ব্যবহার করার সময় অপেক্ষার সময় স্পষ্টভাবে দিতে বা অনুমান করতে হবে; উদাহরণ মানকে বাস্তব সময়ের ফলাফল হিসেবে ব্যবহার করবেন না।
ম্যাকডোনাল্ডস মঞ্চ তৈরি করুন
python scripts/mcd_butler.py theater \
--context demo/theater_context.json \
--out theater.htmlচালানোর পর বর্তমান ডিরেক্টরিতে theater.html তৈরি হবে। ব্রাউজারে সরাসরি খুললেই চরিত্রদের সংলাপ, শব্দে শব্দে বুদবুদ এবং চূড়ান্ত রায় দেখা যাবে।
পদ্ধতি তিন: নিজের MCP ক্লায়েন্টে যুক্ত করুন
ডেভেলপাররা দুটি ইন্টিগ্রেশন পদ্ধতি ব্যবহার করতে পারেন।
- মূল প্রতিক্রিয়া সংরক্ষণ: MCP ক্লায়েন্টে দোকান, মেনু, বিবরণ, পুষ্টি, অর্ডার বা কুপন-সংক্রান্ত টুল কল করে মূল প্রতিক্রিয়া
demo/-এর উদাহরণগুলোর একই উদ্দেশ্যের ফাইলে সংরক্ষণ করুন, তারপর CLI-কে দিয়ে প্রক্রিয়া করুন। - মডিউল সরাসরি কল:
scripts/lib/-এর ফাংশন ইমপোর্ট করে MCP থেকে ফেরত আসা Pythondictসরাসরি পাস করুন।
ডেটা লোডিং স্তরের mcdata.py একই সঙ্গে {"success": true, "data": ...} ধরনের MCP মূল প্রতিক্রিয়া এবং হাতে সংক্ষিপ্ত করা ফরম্যাট গ্রহণ করে। তাই সাধারণত টুলের প্রতিক্রিয়া সরাসরি সংরক্ষণ করা যায়; আগে হাতে পরিষ্কার করার প্রয়োজন নেই।
প্রকল্পের আর্কিটেকচার বুঝুন
McButler-এর প্রক্রিয়াটি চারটি স্তরে সংক্ষেপ করা যায়:
- ক্লায়েন্ট স্তর: WorkBuddy Agent বা অন্য MCP ক্লায়েন্ট অনুরোধ পাঠায়।
- MCP পরিষেবা স্তর: দোকান, মেনু, বিবরণ, পুষ্টি, মূল্য গণনা, কুপন, পয়েন্ট ও অর্ডার-সংক্রান্ত ডেটা সংগ্রহ করে।
- ডেটা লোডিং স্তর:
mcdata.pyপ্যাকেট খোলা, স্বাভাবিকীকরণ এবং নামের আনুমানিক মিল নির্ধারণের কাজ করে। - ব্যবসায়িক মডেল স্তর:
health.py,credit.py,bulk.py,recommend.pyএবংtheater.pyযথাক্রমে স্কোরিং, খাবার সাজানো, সুপারিশ ও স্ক্রিপ্ট তৈরির কাজ সম্পাদন করে।
mcd_butler.py হলো একীভূত CLI প্রবেশদ্বার। এটি Markdown বা JSON আউটপুট দিতে পারে, তাই মানুষের দেখার জন্য সুবিধাজনক এবং পরবর্তী প্রোগ্রামে যুক্ত করাও সহজ।
উন্নত ব্যবহারের কৌশল
কম্বোর বিবরণ অগ্রাধিকার দিয়ে দিন
পুষ্টি ইন্টারফেসে শুধু একক পণ্যের তথ্য দেওয়া হয়। কম্বো বিশ্লেষণের সময় কম্বোর বিবরণও দেওয়া ভালো, যাতে প্রোগ্রাম ডিফল্ট উপাদান অনুযায়ী প্রতিটি আইটেমের তথ্য খুঁজে নিতে পারে। একটি পুষ্টি-তথ্যও না মিললে প্রকল্পটি স্বাস্থ্য স্কোর হিসেবে “—” দেখাবে, বানানো কোনো ফলাফল নয়।
পরিস্থিতি অনুযায়ী সুপারিশের মোড বেছে নিন
- বাজেট কঠোর হলে সাশ্রয়ী মোড ব্যবহার করুন এবং প্রতি 100 kcal-এর মূল্যের দিকে নজর দিন।
- ওজন কমানো বা শরীরচর্চার ক্ষেত্রে স্বাস্থ্যকর মোড ব্যবহার করুন; পাশাপাশি প্রোটিন, চর্বি ও সোডিয়ামের কর্তনের বিস্তারিত পরীক্ষা করুন।
- জনপ্রিয় খাবারের সঙ্গে ব্যক্তিগত ঐতিহাসিক পছন্দ মিলিয়ে দেখতে জনপ্রিয় মোড ব্যবহার করুন।
পুনরুৎপাদনের জন্য MCP-এর কাঁচা ডেটা সংরক্ষণ
সুপারিশের ফলাফল ডিবাগ করার সময়, সেই সময়ের MCP-এর কাঁচা প্রতিক্রিয়া সংরক্ষণ করার পরামর্শ দেওয়া হয়। এতে পরে মেনু, দাম বা সরবরাহের অবস্থা পরিবর্তিত হলেও একই ডেটা ব্যবহার করে গণনার প্রক্রিয়াটি পুনরুৎপাদন করা যায়।
ডেটার মান আলাদা করে শনাক্ত করুন
McButler তিন স্তরের ডেটা লেবেল ব্যবহার করে:
- পরিমাপ করা: কম্বো ভেঙে প্রতিটি আইটেমের তথ্য যোগ করে পাওয়া ডেটা।
- অফিশিয়াল: সরাসরি পৃথক আইটেমের পুষ্টি তালিকা থেকে নেওয়া ডেটা।
- আনুমানিক: সম্পূর্ণ ডেটা না থাকলে করা মোটামুটি হিসাব, যা স্পষ্টভাবে চিহ্নিত করা হবে।
স্বয়ংক্রিয়ভাবে ফলাফল প্রদর্শনের সময় এই লেবেলগুলো মুছে ফেলা উচিত নয়। এগুলো ব্যবহারকারীদের ডেটার উৎস ও নির্ভরযোগ্যতার মাত্রা আলাদা করে বুঝতে সাহায্য করে।
ব্যবসায়িক সীমাবদ্ধতা যাচাই করুন
বর্তমান গ্রুপ মিল ফিচারে কর্পোরেট গ্রুপ মিলের নির্দিষ্ট ছাড়ের নিয়মগুলোর সমন্বিত অপ্টিমাইজেশন এখনো যুক্ত হয়নি; গরুর মাংস না খাওয়ার বিষয়টি মূলত খাবারের নামের কীওয়ার্ড দেখে নির্ধারণ করা হয়; অপেক্ষার সময়ও স্পষ্টভাবে ইনপুট দিতে হবে। প্রকৃত অর্ডারে প্রকল্পটি ব্যবহারের আগে, দাম, সরবরাহের অবস্থা এবং খাবারের উপাদান ম্যাকডোনাল্ডসের অফিসিয়াল চ্যানেলের মাধ্যমে আবার নিশ্চিত করা উচিত।
পুষ্টি বিশ্লেষণ কেবল তথ্যের জন্য, এটি চিকিৎসা, পুষ্টি বা অন্য কোনো পেশাগত পরামর্শ নয়। রোগ, গর্ভাবস্থা বা শিশুদের খাদ্যাভ্যাসের ক্ষেত্রে বিশেষজ্ঞের পরামর্শ নেওয়া উচিত।
উপসংহার
McButler দেখায়, কীভাবে MCP-এর কাঁচা ডেটাকে ব্যাখ্যাযোগ্য ভোক্তা সিদ্ধান্তে রূপান্তর করা যায়: কম্বো বিশ্লেষণ, পুষ্টি স্কোর ও দোকানে যাওয়ার মোট খরচ থেকে শুরু করে গ্রুপ মিলের শ্রেণিবিন্যাস, মজার স্কোর এবং ইন্টার্যাক্টিভ কনটেন্ট পর্যন্ত সবকিছুই একটি অভিন্ন CLI বা WorkBuddy Skill-এর মাধ্যমে ব্যবহার করা যায়।
প্রথমবার ব্যবহারের সময় প্রথমে python scripts/selftest.py চালিয়ে, এরপর ধারাবাহিকভাবে health, recommend এবং stores চেষ্টা করার পরামর্শ দেওয়া হয়। অফলাইন প্রক্রিয়া নিশ্চিত হওয়ার পর MCP Token কনফিগার করে রিয়েল-টাইম ডেটা সংযুক্ত করুন।
