
McButler nima
McButler (McDonald's o‘z-o‘ziga xizmat ko‘rsatuvchi yordamchisi) — McDonald's rasmiy MCP asosida yaratilgan buyurtma berishga yordam beruvchi loyiha. U shunchaki narx bo‘yicha menyu tavsiya qilmaydi, balki byudjet, salomatlik, vaqt, iste’mol cheklovlari va shaxsiy xohishlar kabi shartlarni bir vaqtda hisobga olishga harakat qiladi.
Loyihadan WorkBuddy Skill sifatida foydalanish yoki o‘rnatilgan namuna ma’lumotlari bilan mahalliy CLI orqali ishga tushirish mumkin. Dasturchilar uning ma’lumotlarni tahlil qilish va baholash modullaridan qayta foydalanib, McDonald's MCP qaytargan ma’lumotlarni o‘z mijoz dasturlariga ulashlari mumkin.

Loyiha repozitoriysi GitHubda joylashgan, McDonald's mini-spektakli esa onlayn demo sahifasini ham taqdim etadi. E’tibor bering, McButler mustaqil tanlov ishtirokchisi yaratgan loyiha bo‘lib, McDonald's rasmiy mahsuloti emas.
Oltita asosiy imkoniyat
1. Kunlik tavsiyalar
recommend tejamkorlik, sog‘lomlik va ommaboplik rejimlarini qo‘llab-quvvatlaydi. Ular bitta saralash maydonini oddiy almashtirish emas, turli saralash mantiqlaridan foydalanadi.
- Tejamkorlik rejimi: narxning normallashtirilgan qiymati, chegirma miqdori va har 100 kcal uchun narxni birgalikda hisoblaydi, shunda kichik porsiyali taomlar faqat umumiy narxi past bo‘lgani uchun yuqoriga chiqib ketmaydi.
- Sog‘lomlik rejimi: sog‘lomlik balli va energiyaga moslikni birlashtiradi hamda o‘lchangan ozuqaviy ma’lumotlarga ega nomzodlarga ustuvorlik beradi.
- Ommaboplik rejimi: mashhur mahsulot teglari, avval tez-tez buyurtma qilingan ma’lumotlar va chegirmalarni birgalikda hisobga oladi.
2. Sog‘liq tekshiruvi
health loyihaning texnik markaziy qismidir. Ozuqaviy interfeys faqat alohida mahsulotlar ma’lumotini taqdim etgani sababli, McButler avval set tafsilotlarini o‘qiydi, setni standart tarkibiy qismlarga ajratadi, so‘ng har birini ozuqa jadvali bilan moslashtirib, kaloriya, oqsil, yog‘, natriy va kalsiy kabi ko‘rsatkichlarni jamlaydi.
Set tafsilotlari
→ Standart tarkibni o‘qish
→ Har bir mahsulotning ozuqaviy ma’lumotlarini moslashtirish
→ Ozuqaviy qiymatlarni jamlash
→ Sog‘lomlik balli va chegirma bandlarini hisoblashSog‘lomlik bahosi 100 ballik tizimdan foydalanadi va energiya oralig‘i, oqsil, yog‘dan olinadigan energiya ulushi, natriy, shakar va yog‘ yuklamasi hamda meva-sabzavot uchun qo‘shimcha ballarni hisobga oladi. Batafsil formulani repozitoriydagi references/model-spec.md faylida ko‘rish mumkin.
3. Restoranlar bo‘yicha to‘liq xarajat taqqoslash
stores eng yaqin, eng arzon yoki umumiy to‘liq xarajat bo‘yicha restoranni tanlashi mumkin. Kompleks rejim faqat mahsulot narxini emas, borib-kelish masofasi, piyoda yurish va navbat kutish vaqtini ham xarajatga aylantirib hisoblaydi.
To‘liq xarajat = mahsulot narxi
+ masofa xarajati (borib-kelish uchun 0.5 yuan/km)
+ vaqt xarajati (borib-kelish piyoda vaqti + navbat vaqti) × 0.30 yuan/daqiqaShuning uchun eng yaqin restoran har doim ham eng foydali bo‘lmasligi mumkin. Navbat vaqti hozircha MCP interfeysi tomonidan bevosita taqdim etilmaydi; uni foydalanuvchi kiritishi yoki taxmin qilishi kerak.
4. Guruh uchun ovqat buyurtmasi
bulk ma’muriyat, HR, sinf va jamoaviy buyurtma berish holatlariga mo‘ljallangan. U odamlar soni, kishi boshiga byudjet, mol go‘shti iste’mol qilmaslik va achchiq taom yemaslik kabi shartlarga ko‘ra guruhlar uchun taom tanlaydi hamda narx hisoblash bosqichiga uzatilishi mumkin bo‘lgan orderItemsni chiqaradi.
Natijada guruhlar soni, setlar miqdori, umumiy narx, kishi boshiga narx, tejalgan summa va kishi boshiga kaloriya kabi ma’lumotlar bo‘ladi. Biroq “mol go‘shti yemaydi” filtri hozircha taom nomidagi kalit so‘zlarga tayanadi, shuning uchun menyuda aniq ko‘rsatilmagan tarkibga ega mahsulotlarni aniqlash kafolatlanmaydi.
5. Mc-xavf balli
credit iste’mol krediti skoring kartasidan ilhomlanib, hisob va alohida buyurtma uchun 300 dan 950 gacha Mc-xavf ballini hisoblaydi. Oltita yo‘nalish: to‘lov majburiyatlarini bajarish barqarorligi, iste’mol ritmi, byudjet intizomi, chegirmalardan foydalanish darajasi, hisob aktivlari va ta’m xilma-xilligi.
Baholash natijasida faqat izohlab bo‘lmaydigan bitta umumiy ball emas, balki har bir yo‘nalish balli va uning ma’lumot manbasi ko‘rsatiladi. Bu funksiya ko‘ngilochar iste’mol tahlili bo‘lib, haqiqiy moliyaviy kredit bahosini anglatmaydi.
6. McDonald's mini-spektakli
theater chegirmalar, Mc-xavf balli va kaloriya ma’lumotlari asosida besh qahramon o‘rtasidagi buyurtma berish bahsini yaratadi hamda bitta HTML faylidan iborat sahifani chiqaradi. Yaratilgan sahifa qo‘shimcha bog‘liqliklarni talab qilmaydi va brauzerda bevosita ochilishi mumkin.
Ishlash muhitini tayyorlash
Mahalliy rejim uchun faqat Python 3.8 yoki undan yuqori versiyasi kerak bo‘ladi. Unda faqat Python standart kutubxonasi ishlatiladi, uchinchi tomon paketlarini o‘rnatish shart emas. Onlayn MCP rejimi uchun esa ishlaydigan MCP Token kerak.
Repozitoriyni klonlash va o‘z-o‘zini tekshirishni ishga tushirish
git clone https://github.com/jouaaaaaa/mcd-self-butler.git
cd mcd-self-butler
python scripts/selftest.pyO‘z-o‘zini tekshirish sog‘liq tekshiruvi, uch xil tavsiya, hisob va buyurtma Mc-xavf ballari, guruh buyurtmasi, restoranlarni taqqoslash hamda matnli mini-spektaklni qamrab olgan 9 ta oflayn holatdan iborat. Hammasi muvaffaqiyatli o‘tgach, mahalliy muhit va demo ma’lumotlari to‘g‘ri ishlayotganini anglatadi.
1-usul: WorkBuddy’da Skill sifatida o‘rnatish
Repozitoriydagi
SKILL.md,scripts/vareferences/kataloglarini quyidagi katalogga joylashtiring:~/.workbuddy/skills/mcd-self-butler/WorkBuddy’da “Ekspert · Ko‘nikmalar · Ulagichlar” bo‘limiga kiring va navbat bilan “Ulagichlar”, “Maxsus ulagichlar” hamda “MCP’ni sozlash”ni tanlang.
McDonald's MCP uchun Streamable HTTP konfiguratsiyasini kiriting va o‘rin tutuvchini o‘zingizning Token’ingiz bilan almashtiring:
{ "mcpServers": { "mcd-mcp": { "type": "streamablehttp", "url": "https://mcp.mcd.cn", "headers": { "Authorization": "Bearer 你的_MCP_TOKEN" } } } }mcd-mcpulagichini yoqing va tabiiy tilda talab yuboring.
Quyidagi so‘rovlardan boshlashingiz mumkin:
- “Men Nanjing West Road’daman, yaqin atrofda Big Mac uchlik setini qaysi McDonald's eng foydali narxda sotadi?”
- “Bu setda qancha kaloriya borligini tekshirib bering, sog‘lomroq muqobili bormi?”
- “Bo‘lim uchun 30 kishilik guruh buyurtmasi, kishi boshiga 30 yuan, 5 kishi mol go‘shti yemaydi.”
- “Mening Mc-xavf ballim qancha?”
- “Ovqatni kutish juda zerikarli, ularni bahslashishga majbur qiling.”
2-usul: Mahalliy CLI’dan foydalanish
Mahalliy CLI repozitoriy ichidagi demo snapshot’laridan foydalanadi; Token va internet ulanishi kerak emas. Oltita imkoniyatning barchasi scripts/mcd_butler.py orqali chaqiriladi.
Set ozuqaviy qiymatini tekshirish
python scripts/mcd_butler.py health \
--nutrition demo/nutrition.txt \
--combo demo/combo_9900011128.jsonBu buyruq setni qismlarga ajratadi, ozuqaviy jadval bilan moslashtiradi va umumiy natijani yaratadi. Chiqishda har bir tarkibiy qismning ozuqaviy ma’lumotlari, set jami, sog‘lomlik balli va aniq chegirma sabablari ko‘rsatiladi.
Sog‘lom tavsiya olish
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 sog‘lomlik rejimidan foydalanishni, --meal lunch tushlik holatini, --budget 45 byudjetni 45 yuanga cheklashni, --top 5 esa dastlabki beshta natijani qaytarishni anglatadi.
Boshqa strategiyalarni sinash uchun CLI qo‘llab-quvvatlaydigan rejimlardan kelib chiqib, tejamkorlik yoki ommaboplik mantiqidan foydalanishingiz mumkin. Turli rejimlar turli qiymat funksiyalaridan foydalangani sababli natijalar sezilarli darajada farq qilishi mumkin.
Mc-xavf ballini hisoblash
python scripts/mcd_butler.py credit \
--orders demo/orders.json \
--account demo/account.json \
--coupons demo/coupons.md \
--nutrition demo/nutrition.txtBu buyruq tarixiy buyurtmalar, hisob ma’lumotlari, kuponlar va ozuqaviy ma’lumotlarni birlashtirib, umumiy ball, reyting hamda oltita yo‘nalish tafsilotlarini chiqaradi. Demo ma’lumotlaridagi namuna natijasi 771 ball va Big Mac darajasidir, ammo haqiqiy ball kiritilgan ma’lumotlarga bog‘liq.
30 kishilik guruh buyurtmasini sozlash
python scripts/mcd_butler.py bulk \
--menu demo/menu_1450118.json \
--nutrition demo/nutrition.txt \
--headcount 30 \
--budget 30 \
--no-beef 5 \
--no-spicy 4Bu yerda 30 kishi, kishi boshiga 30 yuan byudjet, 5 kishi mol go‘shti yemaydi va 4 kishi achchiq taom yemaydi deb belgilangan. Dastur guruhlar bo‘yicha setlarni tanlaydi va miqdori hisoblanadigan buyurtma elementlarini yaratadi.
Restoranlarning to‘liq xarajatini taqqoslash
python scripts/mcd_butler.py stores \
--stores demo/stores.json \
--mode balancedbalanced rejimi masofa, vaqt va narxni birgalikda hisoblaydi. O‘z ma’lumotlaringizdan foydalanganda navbat vaqtini aniq ko‘rsating yoki taxmin qiling; namunaviy qiymatlarni real vaqt natijasi deb qabul qilmang.
McDonald's mini-spektaklini yaratish
python scripts/mcd_butler.py theater \
--context demo/theater_context.json \
--out theater.htmlIshga tushirilgach, joriy katalogda theater.html yaratiladi. Uni brauzerda ochib, qahramonlar dialogi, so‘zma-so‘z nutq pufakchalari va yakuniy qaror effektlarini ko‘rish mumkin.
3-usul: O‘z MCP mijozingizga ulash
Dasturchilar ikki xil integratsiya usulidan foydalanishlari mumkin.
- Asl javobni saqlash: MCP mijozida restoran, menyu, tafsilotlar, ozuqa, narx hisoblash, kupon, ball yoki buyurtma kabi vositalarni chaqiring va asl javobni
demo/namunalaridagi kabi maqsadda ishlatiladigan faylga saqlang, so‘ng uni CLI’ga bering. - Modullarni bevosita chaqirish:
scripts/lib/ichidagi funksiyalarni import qiling va MCP qaytargan Pythondictobyektini bevosita uzating.
Ma’lumotlarni yuklash qatlami mcdata.py {"success": true, "data": ...} ko‘rinishidagi MCP asl javoblarini ham, qo‘lda ixchamlashtirilgan formatni ham qabul qiladi. Shuning uchun odatda vosita javobini avval qo‘lda tozalamasdan, to‘g‘ridan-to‘g‘ri saqlash mumkin.
Loyiha arxitekturasini tushunish
McButler’ning ishlash jarayonini to‘rt qatlamga ajratish mumkin:
- Mijoz qatlami: WorkBuddy Agent yoki boshqa MCP mijozi so‘rov yuboradi.
- MCP xizmat qatlami: restoran, menyu, tafsilotlar, ozuqa, narx hisoblash, kupon, ball va buyurtma kabi ma’lumotlarni oladi.
- Ma’lumotlarni yuklash qatlami:
mcdata.pyma’lumotlarni ochish, normallashtirish va nomlar bo‘yicha noaniq moslashtirish uchun javob beradi. - Biznes modeli qatlami:
health.py,credit.py,bulk.py,recommend.pyvatheater.pymos ravishda baholash, taom taqsimlash, tavsiya va ssenariy yaratishni bajaradi.
mcd_butler.py yagona CLI kirish nuqtasi bo‘lib, Markdown yoki JSON chiqarishi mumkin. U inson tomonidan ko‘rish uchun qulay va keyingi dasturlarga ulash uchun ham mos.
Ilg‘or foydalanish usullari
Set tafsilotlarini ustuvor taqdim eting
Ozuqaviy interfeys faqat alohida mahsulotlar ma’lumotini taqdim etadi. Setni tahlil qilayotganda set tafsilotlarini ham birga yuborish ma’qul, shunda dastur standart tarkib asosida har bir mahsulotni jadvaldan qidiradi. Agar birorta ozuqaviy ma’lumot mos kelmasa, loyiha sog‘lomlik ballini soxta natija yaratish o‘rniga “—” sifatida ko‘rsatadi.
Vaziyatga qarab tavsiya rejimini tanlang
- Byudjet qat’iy bo‘lsa, tejamkorlik rejimidan foydalaning va har 100 kcal uchun narxga e’tibor bering.
- Ozish yoki fitnes holatlarida sog‘lomlik rejimidan foydalaning, shu bilan birga oqsil, yog‘ va natriy bo‘yicha chegirma tafsilotlarini tekshiring.
- Mashhur taomlarni shaxsiy tarixiy xohishlar bilan birlashtirmoqchi bo‘lsangiz, ommaboplik rejimidan foydalaning.
Takrorlash uchun MCP xom ma’lumotlarini saqlang
Tavsiya natijalarini disk raskadrovka qilishda joriy MCP xom javobini saqlash tavsiya etiladi. Shunda menyu, narx yoki mavjudlik holati keyinroq o‘zgarsa ham, hisoblash jarayonini ayni ma’lumotlar asosida takrorlash mumkin.
Ma’lumotlar sifatini farqlang
McButler ma’lumotlarni uch darajada belgilaydi:
- Amalda o‘lchangan: menyu to‘plami tarkibi ajratilib, har bir mahsulot bo‘yicha jamlangan ma’lumotlar.
- Rasmiy: bevosita alohida mahsulotning oziqaviy qiymat jadvalidan olingan ma’lumotlar.
- Taxminiy: to‘liq ma’lumot mavjud bo‘lmaganda beriladigan taxminiy hisob-kitob; bu holat aniq belgilanadi.
Natijalarni avtomatik ko‘rsatishda ushbu belgilarni olib tashlamaslik kerak. Ular foydalanuvchiga ma’lumot manbasi va ishonchlilik darajasini farqlashga yordam beradi.
Biznes chegaralarini tekshiring
Hozirda guruh buyurtmalari funksiyasiga korporativ guruh buyurtmalari uchun chegirmalarni qo‘shib optimallashtirish qoidalari hali ulanmagan; “mol go‘shti iste’mol qilmayman” talabi asosan taom nomidagi kalit so‘zlar orqali aniqlanadi; navbat kutish vaqti ham aniq kiritilishi kerak. Loyihadan haqiqiy buyurtmalar uchun foydalanishdan oldin narxlar, mavjudlik holati va taom tarkibini McDonald’s rasmiy kanallari orqali qayta tasdiqlash lozim.
Oziqaviy tahlil faqat ma’lumot uchun beriladi va tibbiy, dietologik yoki boshqa professional maslahat o‘rnini bosmaydi. Kasallik, homiladorlik yoki bolalar ovqatlanishi bilan bog‘liq holatlarda mutaxassis bilan maslahatlashish kerak.
Xulosa
McButler MCP xom ma’lumotlarini qanday qilib izohlanadigan iste’mol qarorlariga aylantirish mumkinligini ko‘rsatadi: menyu to‘plamini ajratish, oziqaviy baholash va filial bo‘yicha to‘liq xarajat hisobidan tortib, guruh buyurtmalarini segmentlash, qiziqarli baholash va interaktiv kontentgacha bo‘lgan imkoniyatlardan yagona CLI yoki WorkBuddy Skill orqali foydalanish mumkin.
Ilk foydalanishda avval python scripts/selftest.py buyrug‘ini ishga tushirib, so‘ng health, recommend va stores buyruqlarini navbatma-navbat sinab ko‘rish tavsiya etiladi. Oflayn jarayon tasdiqlangach, real vaqtdagi ma’lumotlarga ulanish uchun MCP Token’ni sozlang.
