1. Conduid
  2. Developer Tools
  3. Maimaibot
MCP server · Developer Tools

Maimaibot

A Telegram bot that calls the McDonald's MCP tools via Streamable HTTP.

Unclaimed last commit 7 months ago devtools
63Good

Scored 3 months ago · breakdown

About Maimaibot

Maimaibot is an MCP server published by ButaiKirin in the Developer Tools category: a Telegram bot that calls the McDonald's MCP tools via Streamable HTTP. It has been installed 0 times through Conduid.

The repository has 114 stars and 6 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx maimaibot

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Maimaibot

Powered by Claude · Grounded in docs

I know everything about Maimaibot. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

MaiMai Telegram Bot

A Telegram bot for McDonald's China MCP tools over Streamable HTTP.

Current Interface Support

This project is aligned with the current official MCP documentation at https://open.mcd.cn/mcp/doc, including the 2026-04-02 v1.0.3 toolset.

It now handles the current interface changes:

  • Uses the current canonical MCP URL https://mcp.mcd.cn
  • Validates tokens through tools/list instead of hard-coding a single tool call
  • Adapts to renamed tools:
    • campaign-calender -> campaign-calendar
    • my-coupons -> query-my-coupons
  • Keeps compatibility with legacy tool names where possible
  • Isolates cache entries by token to avoid cross-account result reuse

Features

  • Campaign calendar query via Telegraph article with images
  • Available coupons list
  • One-click claim all available coupons
  • My coupons list
  • My points query
  • Nutrition list query with keyword filtering
  • Points mall product list, detail, and redeem
  • Delivery address list and create
  • Nearby store search and favorite-store query
  • Store coupon, meal list, meal detail, price calculation, order create/query
  • Raw /tool passthrough for any currently exposed MCP tool
  • Optional cache for selected tools
  • Daily auto-claim with burst scheduling when new coupons appear
  • Multiple MCP accounts per Telegram user

Requirements

  • Node.js 18+ (Node.js 20+ recommended)
  • A Telegram bot token from BotFather
  • An MCP token from https://open.mcd.cn/mcp

Quick Start

  1. Copy .env.example to .env and fill in TELEGRAM_BOT_TOKEN.
  2. Install dependencies:
npm install
  1. Start the bot:
npm start

Bot Commands

  • /help - full command list
  • /tools - list MCP tools available to the active account

Account and token:

  • /token YOUR_MCP_TOKEN - save MCP token to the active/default account
  • /account add <name> <token> - add/update an account
  • /account use <name> - switch active account
  • /account list - list accounts
  • /account del <name> - delete an account
  • /cleartoken - clear all accounts
  • /status - show account status
  • /stats - my claim stats

Coupon and calendar:

  • /calendar [YYYY-MM-DD] - campaign calendar
  • /coupons - available coupons
  • /claim - one-click claim all available coupons
  • /mycoupons - my coupons list
  • /autoclaim on|off [name] - enable/disable daily auto-claim per account
  • /autoclaimreport success|fail on|off [name] - enable/disable auto-claim reporting per account

Points, mall, time, nutrition:

  • /points - my points account
  • /mall list - points mall product list
  • /mall detail <spuId> - points mall product detail
  • /mall redeem <skuId> [count] - redeem a points mall item
  • /nutrition [keyword] - nutrition list (optional local keyword filter)
  • /now - MCP server current time info

Store and delivery:

  • /deliveryaddrs mls|group - list delivery addresses
  • /deliveryadd mls|group 城市|联系人|电话|地址|门牌|性别(可选) - create a delivery address
  • /stores fav - query favorite in-store pickup stores
  • /stores search <city> <keyword> - search nearby stores
  • /storecoupons <storeCode> <pickup|delivery> [beCode] - list usable coupons for a store/order type
  • /meals <storeCode> <pickup|delivery> [beCode] - list meals for a store/order type
  • /mealdetail <code> <storeCode> <pickup|delivery> [beCode] - meal detail

Advanced order tools:

  • /price <json> - call calculate-price
  • /order create <json> - call create-order
  • /order query <orderId> - call query-order
  • /tool <toolName> [json] - raw passthrough for any current MCP tool

Admin:

  • /admin - admin summary (users/accounts/auto-claim status/claim totals/config/sweep状态)
  • /admin notify on|off - admin error push toggle
  • /admin sweep - run a sweep immediately (admin)

JSON command examples

/price {"storeCode":"12345","orderType":"pickup","items":[{"productCode":"9900008139","quantity":1}]}
/order create {"storeCode":"12345","orderType":"pickup","takeWayCode":"locker-in","items":[{"productCode":"9900008139","quantity":1}]}
/tool now-time-info

Environment Variables

See .env.example for all options. Key variables:

  • MCD_MCP_URL (default: https://mcp.mcd.cn)
  • MCP_REQUEST_TIMEOUT_MS (default: 30000)
  • MCP_CLIENT_CACHE_TTL_SECONDS (default: 1800)
  • MCP_RETRY_MAX (default: 2)
  • MCP_RETRY_BASE_DELAY_MS (default: 500)
  • MCP_RETRY_MAX_DELAY_MS (default: 5000)
  • MCP_RETRY_JITTER_MS (default: 200)
  • MCP_RETRY_STATUS_CODES (default: 502,503,504)
  • MCP_RETRY_ON_TIMEOUT (default: true)
  • MCP_RETRY_ON_NETWORK_ERROR (default: true)
  • MCP_HEALTH_CHECK_INTERVAL_MS (default: 60000)
  • MCP_HEALTH_CHECK_TIMEOUT_MS (default: 5000)
  • MCP_HEALTH_FAILURE_THRESHOLD (default: 2)
  • MCP_UPSTREAM_ERROR_MESSAGE (default: Chinese "upstream error")
  • ACCOUNT_ID_MIN_LENGTH (default: 1)
  • ACCOUNT_ID_MAX_LENGTH (default: 32)
  • TOKEN_MIN_LENGTH (default: 16)
  • TOKEN_MAX_LENGTH (default: 256)
  • TOKEN_SET_RATE_LIMIT_MS (default: 30000)
  • ACCOUNT_SET_RATE_LIMIT_MS (default: 30000)
  • CACHE_TTL_SECONDS (default: 300)
  • CACHEABLE_TOOLS (default: campaign-calendar,list-nutrition-foods)
  • AUTO_CLAIM_CHECK_MINUTES (default: 10)
  • AUTO_CLAIM_HOUR (default: 9)
  • AUTO_CLAIM_TIMEZONE (default: Asia/Shanghai)
  • AUTO_CLAIM_SPREAD_MINUTES (default: 600)
  • AUTO_CLAIM_MAX_PER_SWEEP (default: 10)
  • AUTO_CLAIM_REQUEST_GAP_MS (default: 1500)
  • AUTO_CLAIM_SPREAD_RERUN_MINUTES (default: 120)
  • GLOBAL_BURST_WINDOW_MINUTES (default: 30)
  • GLOBAL_BURST_CHECK_SECONDS (default: 30)
  • ADMIN_TELEGRAM_IDS (comma-separated Telegram user IDs)
  • SWEEP_WATCHDOG_SECONDS (default: 60)
  • SWEEP_STALE_MULTIPLIER (default: 2)
  • AUTO_CLAIM_DEBUG (default: false, set to true/1 to enable verbose auto-claim logs)

Notes

  • The bot uses MCP Streamable HTTP (protocol 2025-06-18).
  • The MCP token is required for all tool calls.
  • Official docs: https://open.mcd.cn/mcp/doc
  • Telegraph access token is created automatically and stored at data/telegraph.json.
  • Auto-claim runs once per account per day, scheduled across a spread window to avoid bursts.
  • When any account claims a previously unseen coupon, the bot triggers a short burst window so all accounts attempt to claim within that time.

Deployment

1) Install Node.js

sudo apt update
sudo apt install -y git curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

Verify:

node -v
npm -v

2) Install the bot

git clone https://github.com/ButaiKirin/MaiMaiBot.git
cd MaiMaiBot
cp .env.example .env

Edit .env and set:

  • TELEGRAM_BOT_TOKEN
  • MCD_MCP_URL (optional)

Install dependencies:

npm install

Run once to verify:

npm start

3) Run as a systemd service

Create a service file:

sudo tee /etc/systemd/system/maimai-bot.service > /dev/null <<'SERVICE'
[Unit]
Description=MaiMai Telegram Bot
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/MaiMaiBot
EnvironmentFile=/opt/MaiMaiBot/.env
ExecStart=/usr/bin/node /opt/MaiMaiBot/src/index.js
Restart=always
RestartSec=5
User=ubuntu
Group=ubuntu

[Install]
WantedBy=multi-user.target
SERVICE

Adjust paths and user:

sudo mkdir -p /opt
sudo mv ~/MaiMaiBot /opt/MaiMaiBot
sudo chown -R ubuntu:ubuntu /opt/MaiMaiBot

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable --now maimai-bot

View logs:

journalctl -u maimai-bot -f

4) Update

cd /opt/MaiMaiBot
git pull
npm install
sudo systemctl restart maimai-bot

README mirrored from the source repository 3 months ago. The original is authoritative.

Questions

About Maimaibot

How do I install Maimaibot?

Run npx maimaibot, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Maimaibot safe to use with an AI agent?

Its trust score is 63 out of 100 (good). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Maimaibot still maintained?

The last commit was 7 months ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.