McDonald's Terminal
Un terminal de commande McDonald's Chine qui empile tes coupons, tes points et les promos du magasin, vérifie le vrai prix en direct, et ne dépense ni ne commande jamais sans ton oui.
- Quoi
- Un terminal de commande McDonald's Chine qui empile tes coupons, tes points et les promos du magasin, vérifie le vrai prix en direct, et ne dépense ni ne commande jamais sans ton oui.
- Coût
- Gratuit
- Prérequis
- Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
- Installation
- Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.
Un terminal de commande économe McDonald's Chine : un SKILL.md qui pilote un moteur de ligne de commande nommé mcd (le paquet Python mcd_terminal dans ce dépôt). Pour chaque article, il choisit le moins cher entre l'argent, un coupon existant, ou un échange de points d'abord, puis confirme tout le panier contre le devis en direct du serveur, qui inclut déjà les promotions du magasin, les frais de livraison et les rabais de repas de groupe. Autour de ce noyau, il couvre tout le compte : portefeuille de points et de coupons, dépense des points qui expirent, marché en points, réclamation de coupons, suivi et historique de commandes, nutrition et statistiques de consommation, coupons de sondage, calendrier des campagnes, recherche et réservation de partys thématiques, une loterie en points, des rappels pour les coupons et campagnes qui expirent, des réglages par défaut gardés pour le magasin et l'adresse, et de petits jeux d'attente. Chaque action qui dépense des points, réclame, tire, commande, annule ou réserve retourne d'abord un plan et ne roule que quand tu es d'accord et que l'agent rejoue la commande de confirmation. Le paiement est toujours le tien, via les liens que la commande retourne.
Version :
Installation
Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit ab7cce9Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?
- Peut lancer des commandes sur l’ordinateur de ton Muse.
- Peut contacter des services externes par le réseau.
- Peut télécharger et installer des paquets logiciels.
- Peut créer ou modifier des fichiers.
- Fonctionne avec une clé API ou un jeton que tu fournis.
Ce que le scan a trouvé — extraits du prompt d’installation
- exécute des commandes — curl -fsSL --max-time 60 https://gh-proxy.com/https://github.com/Zhangfengmo/mcd-terminal/releases/latest/down · mcd login --token <用户的 MCP Token> # 或让用户自己运行 mcd login · mcd skill install # 装进 Claude Code 的技能目录;其他 agent 用 --dir 指定目录
- fait des appels réseau — curl -fsSL --max-time 60 https://gh-proxy.com/https://github.com/Zhangfengmo/mcd-terminal/releases/latest/down · curl -fsSL --max-time 60 "https://gh-proxy.com/https://github.com/${{ github.repository }}/releases/download/$ · # curl -fsSL --max-time 60 https://gh-proxy.com/https://github.com/Zhangfengmo/mcd-terminal/releases/latest/do
- installe des paquets — pip install -e ".[dev]" && pytest · - run: pip install -e ".[dev]" · - run: pip install . pyinstaller
- écrit des fichiers — if gh release view "$TAG" >/dev/null 2>&1; then · - Token 由 `mcd login` 验证有效后才保存到 `~/.config/mcd-terminal/token`(权限 0600,仅本人可读),只发送给 `mcp.mcd.cn`,`mcd logout` 即 · - Token 和设置只存在本机 `~/.config/mcd-terminal/`,`mcd logout` 删除 Token。
- utilise des clés API ou des jetons — 把 `gh-proxy.com` 换成 `ghfast.top` 再试;用了代理的话先 `export https_proxy=http://127.0.0.1:<端口>`。 · 重新打开终端,或执行 `export PATH="$HOME/.local/bin:$PATH"`。 · zsh) RC="$HOME/.zshrc"; LINE="export PATH=\"$BIN_DIR:\$PATH\"" ;;
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : Compte et jeton requis avant tout usage réel : un jeton MCP McDonald's Chine. La fiche est gratuite, et l'activation du jeton est décrite en amont comme gratuite. Obtiens le jeton toi-même, en personne, car il exige une vérification par numéro de téléphone mobile : va sur https://open.mcd.cn/mcp , connecte-toi avec ton numéro de téléphone mobile, ouvre la console en haut à droite, clique sur Activer, accepte l'entente de service, et copie le jeton. Configure ensuite le serveur MCP McDonald's Chine : nom mcd-mcp, type streamablehttp, URL https://mcp.mcd.cn , en-tête Authorization: Bearer <ton jeton>, ou définis la variable d'environnement MCD_MCP_TOKEN là où le skill la lit ainsi. Garde le jeton uniquement dans ta configuration cliente privée ou ton environnement : ne le commets jamais, ne le partage jamais, et ne le colle jamais dans un chat partagé. L'amont indique une limite de 600 requêtes par minute par jeton (429 au-delà). Le moteur de ce skill est un programme séparé, et son installation de premier usage en amont est une étape de téléchargement et d'exécution que tu dois voir clairement avant qu'elle arrive : le SKILL.md dit à l'agent, seulement après ton consentement, de rouler curl -fsSL --max-time 60 https://gh-proxy.com/https://github.com/Zhangfengmo/mcd-terminal/releases/latest/download/install.sh | bash (la partie gh-proxy.com est un préfixe miroir pour les réseaux lents, retiré là où GitHub est directement joignable ; sur Windows : irm <la même adresse de version, install.ps1> | iex). Cela va chercher le programme de la dernière version publiée, pas cette copie de dépôt épinglée. Le script d'installation publié vérifie un SHA-256 pour le paquet avant d'installer (les sommes sont intégrées au script publié ou récupérées de GitHub comme SHA256SUMS ; les hôtes miroirs gh-proxy.com et ghfast.top peuvent servir le fichier du paquet, mais une copie qui échoue au hachage est rejetée et la source suivante est essayée), installe sous ~/.local/share/mcd-terminal avec un lien à ~/.local/bin/mcd, et peut ajouter une ligne PATH à ton fichier de démarrage de shell. Une installation depuis les sources de ce dépôt épinglé est aussi possible (Python 3.9 ou plus récent ; dépendances d'exécution pyproject httpx, typer, rich et segno ; la copie de dépôt de install.sh porte des sommes intégrées vides, parce que la CI de publication les inscrit dans la copie publiée). Le jeton est ensuite défini par toi en roulant mcd login dans ton propre terminal et en y collant le jeton : il est gardé dans ~/.config/mcd-terminal/token avec des permissions réservées au propriétaire (0600), ou sous $MCD_HOME si tu le définis. Seulement si tu remets proactivement le jeton à l'agent, il utilise mcd --json login --token, et il ne doit jamais te répéter le jeton. Un mode --demo roule chaque commande sur des données d'exemple sans jeton. Installe-moi « McDonald's Terminal ». Il installe le skill du SKILL.md racine qui pilote le moteur de ligne de commande mcd : planification du paiement le moins cher entre argent, coupons et points avec tarification serveur en direct, et une règle dure que dépenser, commander, tirer, réclamer, annuler et réserver n'arrivent qu'après ton accord sur un plan montré. Dépôt : https://github.com/Zhangfengmo/mcd-terminal (le skill est tout le dépôt au commit épinglé, SKILL.md à sa racine : 98 fichiers, listés dans les empreintes ci-dessous ; le fichier mcd_terminal/skill/SKILL.md dans le paquet est une copie identique à l'octet près du SKILL.md racine, livrée comme donnée du paquet, et n'est pas un deuxième skill) Version épinglée : installe le code au commit ab7cce9c555590ec5655040ad9236ef8c97aa64c exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/Zhangfengmo/mcd-terminal dans un dossier temporaire, place-toi au commit ab7cce9c555590ec5655040ad9236ef8c97aa64c, et et copie tout le dossier du dépôt de ce checkout, en excluant le dossier .git. Compare ensuite chaque fichier du dossier aux empreintes enregistrées pour cette fiche le 2026-10-18 : [FINGERPRINTS] - .github/workflows/release.yml: SHA-256 4e5f50f4f530eaf7face99ae364bcdfe8ddad8f40fcafb39312d8966788b8587 - .gitignore: SHA-256 d2faa69340abe058e0e3c7c3006c8519168cae072131acfc2b7ccdf6368338a4 - AGENTS.md: SHA-256 60dac81340f0f65c62c45fbb9cea8b31600406ad29c9d3e2663e5972ad2a68fe - CONTEST_DECLARATION.md: SHA-256 cd28101bcb29cc8fb24b372fe91ce6b42c4a1487a54e01f7ade0c8c6a84241b7 - MCP_INTEGRATION.md: SHA-256 33e7b6ab1dba3988eaf301d68a7bcd9a56ee043b139fc5c54021103ab3310471 - README.md: SHA-256 1ae68e7770d5c02875165d11795124047c3a2f5e60497e085582677326b94e8a - SKILL.md: SHA-256 953ad8f91c8f6380ac4c130686d64da33d5d955fe22fbc8a4dcaba632757b8fa - docs/demo.gif: SHA-256 1a189c4673be1f2c2b87d8b5a3705aacfc1261a1afb0e565bd2585d71810d65e - docs/how-it-works.md: SHA-256 98fd4a952caf571fc5f17b647a32748b60c79681292d845fd99efcb367dcad54 - docs/web-demo.gif: SHA-256 963f13b1e2a4910ade1d9d81b5c78d45d2893a89fc44b0a949beae3b341c605b - install.ps1: SHA-256 2a69deddb7de22e186274cea5d243d70e8a40950465fbd7a6515d08708531d1e - install.sh: SHA-256 dffd07d9016b95a01048aff694ab5c50d0a8a2ead464d0be6036a764961de3a6 - mcd_terminal/__init__.py: SHA-256 75af70aac8bbff6a4a420ba856c3ffbce82333a408818141db18d4d918255c5e - mcd_terminal/__main__.py: SHA-256 c1c0ab2f83e31b9d6be7054aa8985ca093d32df1d6d3035b0f7d43ad43743162 - mcd_terminal/agent.py: SHA-256 78cd52ea2042de36c2789923f9c71a1c6f6f0eea3b2698028ba126f4858c4411 - mcd_terminal/campaigns.py: SHA-256 493a4d36f4ed534b3c5bcebf57cac012e1c471ce03bf111c8244c98f1187c19b - mcd_terminal/cli.py: SHA-256 86fda61042a2c498d56d1c06bb314021bb18438e40e00643812a25bb54e1a74b - mcd_terminal/client.py: SHA-256 cbc8523cef47e4292df0a754a41d140cfcac4a57dca981d70456ac8a74e1bd85 - mcd_terminal/content.py: SHA-256 b4fb857c8d74eeeca12369ae3fcbba1597c327ca7964fc38c4f15b0e1fafb005 - mcd_terminal/demo.py: SHA-256 6ca4e5a523aff3307d879abe839ef79b8683ee1c0149d33a4ac513f9a920fe1d - mcd_terminal/games/__init__.py: SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - mcd_terminal/games/fortune.py: SHA-256 0cfc400844589cad720238ae4ed1949bda70f178de3bcaa5c7e56294ceb597fc - mcd_terminal/games/fries.py: SHA-256 220788018635e8932625844f9131ceb72e153c9bab9695c762131333262412b9 - mcd_terminal/games/guess.py: SHA-256 394a7b3591ca49072a5fc7d488cd94b0678f3a0059ae5add2d64c3d0946e2120 - mcd_terminal/games/keys.py: SHA-256 e8ecab5f51d536811081cb6e054b975bee47c87db2d24e5e928adc88618065ea - mcd_terminal/games/kitchen.py: SHA-256 bad2c8c0f34c8802200f8c5802cc59b09b5007a6a4525f93e4b0e2fb429bca06 - mcd_terminal/games/memory.py: SHA-256 0aebf870566a7b1d0477ffb91fb5231131160c119aca373a96ddf6e227011673 - mcd_terminal/games/persona.py: SHA-256 a1cf26576e49c95f3e9cec01710022834d8543cc77e6c9a7cd2b97edc1ddb5c0 - mcd_terminal/games/slot.py: SHA-256 d3cdcdce166e031ce7f1ff22b91f2e1ec2d43b27a46a53c20fd010019e2829cf - mcd_terminal/games/stack.py: SHA-256 b02a0994a9548350261ecc95fcacdb4719c40f5a3ff01b864085ab0d4b21de9b - mcd_terminal/intake.py: SHA-256 875ca4e4b75ee23b43db4c2534414417f225c045d95e9146714e31aab321d3f4 - mcd_terminal/order.py: SHA-256 2f40162c06a3b068e843b24469cd351173fc13135a95c1168f8d7183526fa2db - mcd_terminal/ordering.py: SHA-256 8f7d97dc299e7015856cf0706c695d8306204c3244cd42a090d9a095aa27ae36 - mcd_terminal/party.py: SHA-256 0734d33450bd5706ee09275b7fd1464bef641d7a3d9bc8c24ed44becb387d2ba - mcd_terminal/pay.py: SHA-256 4830f772c0dbb1a904eacf90627ae41a7814cade9ad3998c7266b292eb3d0aff - mcd_terminal/prefs.py: SHA-256 11613591e7d17ae1f916c33a7c590a3a6bee4be255e682b0569ca93c7e3cb37c - mcd_terminal/promos.py: SHA-256 6fa3cfe2103608e0a78a6ac361e3121d3c3f89c9859ebb77445355aa6a49ec98 - mcd_terminal/remind.py: SHA-256 6acc73e6390d5b1551f7ec3a9c1c5de1eb283bd01fbe790c40ad7b16ead39a97 - mcd_terminal/render.py: SHA-256 d61c5db263d54b070cc661dffb7284ee160ee75a13c6e17a7bb39e0a9921e4ff - mcd_terminal/skill/SKILL.md: SHA-256 953ad8f91c8f6380ac4c130686d64da33d5d955fe22fbc8a4dcaba632757b8fa - mcd_terminal/valuation.py: SHA-256 403c31683dbcac878d6f724bee967eae5d4d6f2b6665dd775b38cf4332cff876 - mcd_terminal/web.py: SHA-256 f1d4ba16d95142143ba693c38c6770114a3c691e7a1b165dc040428653d94ad9 - mcd_terminal/web/index.html: SHA-256 73c0cb3b0d589a8bf4acac67281b568643dcd12115c217d928ba4eade7ded29d - mcp-config.example.json: SHA-256 7644e429708a6aa8ceb09505dcd0fc9a092b3608e974767360f4c158cb1047dd - packaging/build.py: SHA-256 52373cacf5f0da9ce5a08b0911eb6159506320a711198e97243ea4af4715bd5f - packaging/e2e.py: SHA-256 ff3d27bc4e4d3d22673fa75162661c20724dbbdb83ab5fe1958b5ee7b467d966 - packaging/mcd_entry.py: SHA-256 01cc256dcab81a2fa76269712300d5522ebbdaf12a52499ad9de3431379b04c1 - packaging/stamp.py: SHA-256 eff6656cd1452e5a6caf2e0dcbd6fcca6b182d2d1cb5bbc633c10b94be0bdb99 - pyproject.toml: SHA-256 eda7e6a40434a50930a39d65f671259232a8c8e746eb2d49724414757207424d - scripts/demo.tape: SHA-256 9af0fa38a9b882b8b7614f0e01294aae696db33f61d3efe2159a2bc991cf26fe - scripts/demo_rc.sh: SHA-256 b39f6a0e90238a07214335ef1e9d30303127845221ace2713e60f99a82d8eddb - scripts/make_demo.sh: SHA-256 c5430f5b8c2d1aa1a2cb1b0fca3b30d0151154a40028173ca55c83e8aa85aa66 - scripts/record_web.py: SHA-256 c81d131f6c2610585839aa712be6816c789782d03636a328a97fc0a2a11f2b75 - tests/__init__.py: SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - tests/fixtures/real/available-coupons.txt: SHA-256 28bb0289a00549f8efde49587bbaa9a88a273b418b6984b407d83d3e1d5eb2e9 - tests/fixtures/real/calculate-price.txt: SHA-256 51a5718b25dc55bb72d1fbd84a14d118acc902409833b4ebd0e7d8fc90131d4b - tests/fixtures/real/campaign-calendar.txt: SHA-256 f67eec15db3314b6bdb172d2af1dbd10521726258c72f960020712af3523870d - tests/fixtures/real/delivery-query-addresses.txt: SHA-256 0555ae7099690e9b0dac964843ae1e77fe5c3b2f4f38c969e26eee7e9a18ba9c - tests/fixtures/real/list-nutrition-foods.txt: SHA-256 8d5c4fa57002f29fd00cb569ef228f192f76e77a074f89b9b9abe924bfe81747 - tests/fixtures/real/mall-order-list.txt: SHA-256 ee239febd0f73bc0bece964d8699633732f07ec6a4350b99fe77c0266e259ec7 - tests/fixtures/real/mall-points-products.txt: SHA-256 006a10ef76f9e207e2544bd237bc747b0cb33503b040d3850d2d052d69cb13aa - tests/fixtures/real/mall-product-detail_off-shelf.txt: SHA-256 27d1a5f011a15382b35b976f4c8543ee5008855e32f49202eb0eef4e02a6ccea - tests/fixtures/real/mall-product-detail_on-shelf.txt: SHA-256 ebab4cf2c0402e7dfc6492518443eb1f305b279db85feb65fa3a0f0a749e2ae6 - tests/fixtures/real/mall-product-detail_party-both.txt: SHA-256 b3e83d1d2887f57f5d5ff7b3ab7390955a6e1e74452e27253864f6f0698fe0c6 - tests/fixtures/real/mall-product-detail_party-private.txt: SHA-256 bbcf0f85b9279275549ab0df76e255a3e5f255ee62e02d1234a6c965eda0a0a4 - tests/fixtures/real/now-time-info.txt: SHA-256 e6fefe6f3afd539d65a3d00ac76a737ad43b4b2383c92f99388244ce5f8ef0eb - tests/fixtures/real/order-list.txt: SHA-256 8a16c0e36bc95bd8ad731ae0eade2ab85b8037190e477c7adc2d3d92ef7b396a - tests/fixtures/real/query-lottery-info.txt: SHA-256 6aceb10e5402249c5ede94adaeed8e75e6aa580293c18dee256283d42b9fb64b - tests/fixtures/real/query-meal-detail_combo.txt: SHA-256 d0c064f5fd1a2a3ec6cfbd6fb8ccf5381fc1447ab125ad88c052a96f771ce4de - tests/fixtures/real/query-meal-detail_single.txt: SHA-256 a5608e6e85018b7dd78bfac27c12995e3d93a5bf2b0af6aac18aca85c630ea54 - tests/fixtures/real/query-meals.txt: SHA-256 266595c802cdde1ac56255173cb0fb43029c86e3698a68831978fe70176bcfa9 - tests/fixtures/real/query-my-account.txt: SHA-256 7f208dfd951cbc4b59d354f5bf88a694145c88b55ca90705f749c25b349882ca - tests/fixtures/real/query-my-coupons.txt: SHA-256 38df6b27731d4153af155a772480a216ad01a604949f7b2ab45bc9f313a9e4a5 - tests/fixtures/real/query-my-prizes.txt: SHA-256 90e0927c5f276f87b0030fa157cc2a5a3c2802ff65f48fb3055a650deb0bba7b - tests/fixtures/real/query-nearby-stores_drive.txt: SHA-256 40ce0f8b47e0f0fa05ba754f24f915684b7f26aaca3cf7e047c2282dd5f4320f - tests/fixtures/real/query-nearby-stores_favorites.txt: SHA-256 cdf8655a19f52e84fd4a2ae0920ee979c0509de7d5a233805d1352798c491036 - tests/fixtures/real/query-nearby-stores_location.txt: SHA-256 1aadcb1ea961fe1b43489ecebff80c346a4cd9e5c35c13904731e6e1f226379d - tests/fixtures/real/query-order.txt: SHA-256 8982b4333d37fece28fc94a368133701a5b5b03b1d701e372e2f88a1705ccec0 - tests/fixtures/real/query-party-city.txt: SHA-256 f5753966ff9674d41bc4d9c9e32ffd4f78046793149533047b11cfb59e41bc19 - tests/fixtures/real/query-party-store-date.txt: SHA-256 4a0e9450cf43fbec36723ae4e47dd186a604917be6365f6e20fbbdd0dcbc3b91 - tests/fixtures/real/query-party-store-session.txt: SHA-256 ed0b4cf52846ecce5bd052f2d11e31f09f57a251f0e6a5e2b11b3018687d07d7 - tests/fixtures/real/query-party-store.txt: SHA-256 6c0fc35dff0475a641880dc73dcd609fb0534f45a6aaf9812d5be4c8327220c1 - tests/fixtures/real/query-promotions.txt: SHA-256 5c92a072ba6dc0654e93919b11826e8fc7bf96735d739b3a59ce0af29f8480fa - tests/fixtures/real/query-store-coupons.txt: SHA-256 f69cbf2ae2fdf05caa30d0a17d5069376311742b2f22444beba58a6dfa527d01 - tests/fixtures/real/query-survey-coupon.txt: SHA-256 ce3266ea43977d4376e3730d70c221aab75cef02624b012e31c292d45314b8b4 - tests/test_campaigns.py: SHA-256 94b99d3667f8d56e35f5dccecb298fc32a43a1334865359c8fe39423253f4d10 - tests/test_cli.py: SHA-256 122528d28abb5b22a95f739e5215a871d0ad3f13cd67c101b4f43ce1dfb886e6 - tests/test_client.py: SHA-256 d0902c9656669bdc048194659d60267b85b430137b046457212b9afd79ca4fcf - tests/test_e2e.py: SHA-256 c8fd57179c01a658325e112b9793fd3b96a6fc2779297c74eae15034626b8652 - tests/test_games.py: SHA-256 7a3bbc43f90b68376ae586e8bac8a67437d03d93184d6b3ddb4c409881a684c1 - tests/test_more_tools.py: SHA-256 87b36887cdc7b7c7fdb8fc5b6deb3821b93c2c303d530decc7e3100434eb2308 - tests/test_order.py: SHA-256 a6b4063924f358a8578d3059224f2ff315c3efa4d65056fd728f86426c50ba96 - tests/test_packaging.py: SHA-256 7d85a42c6de1b1adc0cc0e866075c7c01fbe730a5ab84ce028977c03f59f5c0e - tests/test_pay.py: SHA-256 2129c870ee271a5411e35cf59ec7c5e93bd8091393c3c09d6b9d79c2001c6a62 - tests/test_real_payloads.py: SHA-256 830444a4cd9146af4fcd1d37e79802ce57b517301e61ca1db6ac99e0601f789c - tests/test_remind.py: SHA-256 b26d118846e917cf45a53d02ff1d41a609ec91bcc9901e1be91d2a3900336524 - tests/test_valuation.py: SHA-256 74ec95110247e7fc6d6c56ec983e15eb4141c85ecc3fed18fe0749bd6126f3c8 - tests/test_web.py: SHA-256 056b3e46010bcd1de64da822ed36399b92a862eb7b2661dcc0c0b9b18ced6868 Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md au complet (et chaque autre fichier du dossier) et dis-moi en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le dépôt contient le SKILL.md racine (frontmatter name mcd-terminal) et le moteur qu'il pilote : le paquet Python mcd_terminal/ (client.py, le client MCP ; cli.py, toutes les commandes ; ordering.py, order.py et valuation.py, la planification des paiements ; prefs.py, les réglages locaux et le fichier de jeton ; pay.py, la gestion des liens de paiement ; remind.py, les rappels ; web.py plus web/index.html, une vue web locale optionnelle ; agent.py, qui peut imprimer ce SKILL.md ou le copier dans un répertoire de skills via mcd skill install ; demo.py et les petits jeux sous games/), pyproject.toml (dépendances d'exécution httpx, typer, rich et segno), install.sh et install.ps1 (les installateurs de publication), packaging/, scripts/, docs/, tests/ (y compris des fixtures de réponses MCP réelles enregistrées sous tests/fixtures/real/, avec des identifiants mis à zéro ou vidés en amont : la fixture de compte montre un identifiant de compte à zéro et la fixture d'adresses une liste d'adresses vide), README.md, AGENTS.md, MCP_INTEGRATION.md et mcp-config.example.json. La copie à mcd_terminal/skill/SKILL.md est identique à l'octet près au SKILL.md racine (même SHA-256, consigné dans les empreintes) : c'est la copie que le programme livre et peut installer, pas un skill séparé, et le fichier racine est celui que cette fiche couvre. Le moteur est requis par le skill : sans le programme mcd, les flux du SKILL.md ne peuvent pas rouler. - À l'usage, le client MCP du moteur (mcd_terminal/client.py, bâti sur httpx) envoie des données seulement au serveur MCP McDonald's Chine à https://mcp.mcd.cn (en-tête Authorization: Bearer avec ton jeton, lu depuis la variable d'environnement MCD_MCP_TOKEN ou le fichier de jeton défini par mcd login). Ses appels de lecture couvrent ton compte, tes coupons et tes coupons réclamables, les menus et les détails de repas, la nutrition, les magasins près d'une ville et d'un point de repère que tu nommes, tes adresses de livraison enregistrées, tes commandes et ton historique, tes prix, le calendrier des campagnes et les promotions, les villes, magasins, dates et places de party, et les coupons de sondage, donc le serveur reçoit ton jeton, tes mots de magasin et de lieu, les noms et codes d'articles, les dates et heures, les nombres de personnes pour les partys et tes choix d'adresse, et retourne tes données de compte à ta machine. L'ajout d'une adresse est le seul flux côté lecture qui envoie de nouvelles données personnelles : address add envoie la ville, le nom du contact, le numéro de téléphone, la rue et le détail que tu fournis à McDonald's via delivery-create-address. Les réglages par défaut gardés vivent localement dans ~/.config/mcd-terminal/prefs.json (mode, code de magasin et identifiant d'adresse, usage des points ; aucun jeton dans ce fichier) et sont réutilisés aux commandes suivantes. La vue web optionnelle ne roule que quand tu la démarres toi-même (mcd web) : elle écoute sur 127.0.0.1 sur un port aléatoire derrière un lien secret, et son serveur ne sert de relais qu'aux hôtes d'images McDonald's et ne fait des codes QR que pour les hôtes de paiement McDonald's. Les nombreuses adresses img.mcd.cn et menu-img.mcd.cn dans le dépôt sont des URL d'images à l'intérieur des fixtures de réponses enregistrées, pas des destinations où le moteur envoie tes données. - Les actions d'écriture sont l'ensemble le plus large de cette vague, et le SKILL.md les garde toutes de la même façon : sans --yes, les commandes order, spend, buy, claim, cancel, draw et party --book retournent seulement un plan marqué needs_confirmation ; l'agent doit présenter le plan (quoi, comment chaque article est payé, combien de points, le vrai montant à payer) et rouler la commande confirm_with retournée, la même commande plus --yes, seulement après ton accord explicite. En concret : order crée une commande via create-order, en dépensant des points à l'intérieur via mall-create-order d'abord quand un article est payé en points ; spend et buy échangent des points via mall-create-order, et les déductions de points ne peuvent pas être annulées ; claim réclame tes coupons réclamables via auto-bind-coupons ; cancel annule via cancel-order ; draw tire la loterie en points via draw-lottery, une fois par confirmation, après t'avoir dit son coût en chances de tirage ou en points (un assentiment vague ne compte pas comme confirmation) ; party --book réserve un party thématique via party-order-create (les réservations de groupe s'annulent et se remboursent automatiquement si le nombre minimum de personnes n'est pas atteint à l'échéance, et la réservation exige trois jours d'avance, deux choses que l'agent doit te dire) ; address add écrit une nouvelle adresse de livraison comme ci-dessus. Le paiement n'est jamais fait par le moteur ni par l'agent : une commande terminée retourne des liens scan_url, app_url et pay_url (sur m.mcd.cn) pour que tu paies toi-même. Effets locaux au-delà du compte : les commandes config changent tes réglages par défaut gardés seulement quand tu dis désormais ; remind écrit un rappel dans l'application Rappels de macOS via osascript, ou un fichier calendrier .ics localement, et ne parle à aucun serveur McDonald's ; les étapes d'installation et de connexion sont divulguées dans les prérequis. - Rien n'est envoyé nulle part pendant l'installation de cette copie du skill elle-même ; le seul téléchargement à l'installation est le dépôt depuis GitHub au commit épinglé. L'installation du moteur décrite dans les prérequis est une étape de premier usage séparée qui exige ton consentement avant de rouler, et elle va chercher la dernière version publiée plutôt que ce code épinglé, ce qui y est énoncé au complet. La fiche et le jeton sont gratuits ; tu paies seulement ce qu'une commande ou une réservation confirmée facture, sur les liens de paiement officiels, et les points que tu confirmes dépenser sont déduits pour vrai. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier dans le répertoire des skills de l'agent, dans un dossier nommé « mcd-terminal », en gardant chaque fichier (.github/workflows/release.yml, .gitignore, AGENTS.md, CONTEST_DECLARATION.md, MCP_INTEGRATION.md, README.md, SKILL.md, docs/demo.gif, docs/how-it-works.md, docs/web-demo.gif, install.ps1, install.sh, mcd_terminal/__init__.py, mcd_terminal/__main__.py, mcd_terminal/agent.py, mcd_terminal/campaigns.py, mcd_terminal/cli.py, mcd_terminal/client.py, mcd_terminal/content.py, mcd_terminal/demo.py, mcd_terminal/games/__init__.py, mcd_terminal/games/fortune.py, mcd_terminal/games/fries.py, mcd_terminal/games/guess.py, mcd_terminal/games/keys.py, mcd_terminal/games/kitchen.py, mcd_terminal/games/memory.py, mcd_terminal/games/persona.py, mcd_terminal/games/slot.py, mcd_terminal/games/stack.py, mcd_terminal/intake.py, mcd_terminal/order.py, mcd_terminal/ordering.py, mcd_terminal/party.py, mcd_terminal/pay.py, mcd_terminal/prefs.py, mcd_terminal/promos.py, mcd_terminal/remind.py, mcd_terminal/render.py, mcd_terminal/skill/SKILL.md, mcd_terminal/valuation.py, mcd_terminal/web.py, mcd_terminal/web/index.html, mcp-config.example.json, packaging/build.py, packaging/e2e.py, packaging/mcd_entry.py, packaging/stamp.py, pyproject.toml, scripts/demo.tape, scripts/demo_rc.sh, scripts/make_demo.sh, scripts/record_web.py, tests/__init__.py, tests/fixtures/real/available-coupons.txt, tests/fixtures/real/calculate-price.txt, tests/fixtures/real/campaign-calendar.txt, tests/fixtures/real/delivery-query-addresses.txt, tests/fixtures/real/list-nutrition-foods.txt, tests/fixtures/real/mall-order-list.txt, tests/fixtures/real/mall-points-products.txt, tests/fixtures/real/mall-product-detail_off-shelf.txt, tests/fixtures/real/mall-product-detail_on-shelf.txt, tests/fixtures/real/mall-product-detail_party-both.txt, tests/fixtures/real/mall-product-detail_party-private.txt, tests/fixtures/real/now-time-info.txt, tests/fixtures/real/order-list.txt, tests/fixtures/real/query-lottery-info.txt, tests/fixtures/real/query-meal-detail_combo.txt, tests/fixtures/real/query-meal-detail_single.txt, tests/fixtures/real/query-meals.txt, tests/fixtures/real/query-my-account.txt, tests/fixtures/real/query-my-coupons.txt, tests/fixtures/real/query-my-prizes.txt, tests/fixtures/real/query-nearby-stores_drive.txt, tests/fixtures/real/query-nearby-stores_favorites.txt, tests/fixtures/real/query-nearby-stores_location.txt, tests/fixtures/real/query-order.txt, tests/fixtures/real/query-party-city.txt, tests/fixtures/real/query-party-store-date.txt, tests/fixtures/real/query-party-store-session.txt, tests/fixtures/real/query-party-store.txt, tests/fixtures/real/query-promotions.txt, tests/fixtures/real/query-store-coupons.txt, tests/fixtures/real/query-survey-coupon.txt, tests/test_campaigns.py, tests/test_cli.py, tests/test_client.py, tests/test_e2e.py, tests/test_games.py, tests/test_more_tools.py, tests/test_order.py, tests/test_packaging.py, tests/test_pay.py, tests/test_real_payloads.py, tests/test_remind.py, tests/test_valuation.py, tests/test_web.py). 4. Vérifie sans appels réseau : frontmatter valide, fichiers en place. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : obtenir moi-même le jeton MCP McDonald's Chine sur https://open.mcd.cn/mcp avec mon numéro de téléphone mobile si je n'en ai pas, le mettre seulement dans ma propre configuration cliente MCP privée ou ma variable d'environnement et ne jamais le coller dans un chat partagé, installer Python s'il manque, et configurer le connecteur mcd-mcp vers https://mcp.mcd.cn s'il n'est pas configuré ; utiliser le skill est une étape séparée qui ne commence que quand je le demande, et toute commande, réclamation de coupon ou réservation arrive seulement comme divulgué ci-dessus). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.
Enregistré dans vos installs récentes. Retrouvez-le à tout moment sur /connect.
Questions
Comment installer une création ?
Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.
Où va mon argent ?
Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.
Que signifie le ✓ à côté du nom d’un créateur ?
Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.