
Migros Mcp
io.github.herp75由 GitHub 账号 herp75 发布v0.6.1更新于 Nov 12, 2026
Migros Switzerland: products, stores, recipes; with login basket, lists, orders, Cumulus
概览
非官方的瑞士 Migros 服务器:可搜索商品、门店、促销和食谱;登录后还能管理购物篮、清单、订单和 Cumulus。
- 可以做什么
- 搜索商品并查看详情、营养信息、过敏原、价格和各门店库存
- 浏览商品分类、当前促销,以及附近门店的地址和营业时间
- 搜索 Migusto 食谱,获取完整食谱及推荐的 Migros 商品
- 登录后:读取个人资料、地址、购物清单、购物篮、订单、门店小票以及 Cumulus 积分、优惠券和代金券
- 登录后:新建、重命名和删除清单,添加或修改购物篮商品与备注,激活 Cumulus 优惠券,获取结账链接
- 适用场景
- 适合在瑞士 Migros 购物、希望让桌面 AI 应用帮忙查询商品、价格、库存、促销或食谱,或协助管理购物篮、购物清单、订单和 Cumulus 优惠券的用户。
- 运行要求
- 以 Docker 或 Podman 容器在本地运行(镜像 ghcr.io/herp75/migros-mcp);仅支持桌面 MCP 应用,浏览器版 claude.ai 和手机应用不可用。账户相关工具需要 MIGROS_EMAIL 和 MIGROS_PASSWORD,可选 MIGROS_TOTP_SECRET,通过环境变量文件提供;不提供时只能用无需账户的搜索工具。需要能访问 Migros 网站。
安装
在 SourceWeft 中
- 打开 控制台中的 Migros Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
migros-mcp
Lets Claude (and other AI apps) search Migros products, recipes, stores and promotions. Sign in, and it can also manage your basket and look up your orders, receipts and Cumulus points.
Unofficial. Not made or supported by Migros. It uses the same behind-the-scenes addresses as the Migros website, so it can break whenever Migros changes them. Use at your own risk.
Install
This is a fork. herp75/migros-mcp is lewpgs/migros-mcp with security hardening, live tests and more tools (see the CHANGELOG). It comes as a Docker image,
ghcr.io/herp75/migros-mcp, and is listed in the MCP Registry asio.github.herp75/migros-mcp. The npm packagemigros-mcpand the Claude Desktop installermigros-mcp.mcpbare upstream's version, not this one.
It runs on your own computer, so it works in desktop apps that can start a program: Claude Desktop, Claude Code, Cursor and similar. It doesn't work on claude.ai in a browser or in the Claude phone apps. You need Docker or Podman.
Your login, in a file only you can read. Skip this to only search.
One line each, no quotes. $, # and quotes in the password are fine (Docker reads the file as written). For 2FA without being asked for codes, add MIGROS_TOTP_SECRET=... (see Your Migros account).
The saved login lives in the Docker volume migros-mcp, so it survives restarts. That matters: Migros blocks computers that sign in too often.
Claude Code
Leave out --env-file … to only search. With Podman, write podman instead of docker.
Claude Desktop, Cursor and other apps
Add this to the app's MCP config file, with your home folder in the path:
- Claude Desktop: Settings > Developer > Edit Config
- Cursor:
~/.cursor/mcp.json(all projects) or.cursor/mcp.json(one project)
Other apps (VS Code, Windsurf, Zed and so on) run the same command but lay out their config a little differently. Check your app's MCP instructions.
Checking the image (optional)
Each image is signed with cosign, keyless, by the release workflow of this repository:
Check that it works
Start a new chat and ask: "Search Migros for oat milk."
Your Migros account
Optional. Without it, product search, product details, stock, stores, promotions and recipes all work.
With it, Claude can also see and change your basket and shopping lists, look up your orders, in-store receipts and Cumulus points, and put Cumulus coupons on your card. It never places an order or pays. It gives you a checkout link, and you finish on migros.ch yourself.
What to enter depends on how you sign in to migros.ch:
Finding your setup key (only needed for the last option)
The setup key (also called the TOTP secret) is not the 6-digit code. It's the long code, about 32 letters and digits like JBSWY3DPEHPK3PXP..., that you got when you first added Migros to your authenticator app. It never changes.
- Saved in a password manager? Open the Migros entry and look for an option like "View one-time password secret". If you see a link starting with
otpauth://, the setup key is the part aftersecret=. - Not saved anywhere? Migros only shows it while you set up 2FA. In your Migros account settings, remove 2FA and set it up again. Under the QR code is a box saying "Or enter the following key in the authenticator app". Copy that key before you finish, and add the new entry to your authenticator app.
Add it as one more line, MIGROS_TOTP_SECRET=..., in ~/.config/migros-mcp.env (see Install).
Only codes from an authenticator app work. If your account uses a passkey only, or codes by SMS, add an authenticator app in your Migros account settings first.
Settings
All settings are environment variables. With Docker, put them in ~/.config/migros-mcp.env (see Install). None is required.
For development only: MIGROS_TEST_EMAIL, MIGROS_TEST_PASSWORD, MIGROS_TEST_TOTP_SECRET, MIGROS_LIVE_ENV_FILE and MIGROS_LIVE_SESSION_DIR (see Development).
What you can ask
Without an account:
- "Search Migros for protein bars"
- "What's the nutrition info for this product?"
- "Find Migros stores near Zurich"
- "What promotions does Migros have right now?"
- "Find me a risotto recipe"
With your account:
- "What's in my Migros basket?"
- "Add 2 litres of milk to my basket"
- "Add the ingredients for this recipe to my basket"
- "Show me my last 5 Migros orders"
- "How much did I spend at Migros last month?"
- "Which Migros stores did I shop at last month, and for how much?"
- "Which Cumulus coupons do I have? Activate the one for coffee."
- "Make a new shopping list for the weekend"
- "Give me the link to finish my checkout"
Updating
:0.6 follows the newest 0.6.x release (fixes only). To get it, pull the image and restart the app:
New features come with a new minor version (:0.7): change the tag in your config. Releases are listed on the releases page and in the CHANGELOG. The image doesn't check for updates itself (MIGROS_MCP_UPDATE_CHECK is off in it).
Privacy and safety
- Your email, password and setup key are only ever sent to Migros' own login page (
login.migros.ch). A 6-digit code you give Claude is used for that one sign-in and never stored or logged. - Your password and setup key sit in
~/.config/migros-mcp.env, readable only by you, not in the app's config file. - Once you're signed in, the saved login (cookies and an access token) stays on your computer, in
session.jsonin the Docker volumemigros-mcp.docker volume rm migros-mcpsigns you out. Inside the volume, only the server's user can read it. (Run without Docker, it's in~/.config/migros-mcp/on Linux,~/Library/Application Support/migros-mcp/on a Mac,%APPDATA%\migros-mcp\on Windows.) - Your email, password, setup key, cookies and access token are masked in error messages.
- Tools that change your basket are marked as such, so your app can ask you before running them. Leave that approval on.
- Give Claude the 6-digit code yourself. Don't let an AI that can act on your account also read your codes (for example from a password manager): then a text it reads could get it to sign in, and the second factor protects nothing.
- Product texts, recipes and order data come from Migros and other people. migros-mcp tells the AI to treat them as information, not as instructions.
- It never places orders or pays.
get_checkout_linkgives you a link, and you finish on migros.ch. - Found a security problem? See SECURITY.md.
Troubleshooting
- "Too many requests" or other sign-in errors. Migros blocks computers that sign in too often. When that happens, migros-mcp stops trying for a while on its own (30 seconds at first, longer if it keeps happening) and keeps using your current login while it's still valid. The error says until when. Wait until then before trying again. Restarting the app over and over, or a wrong password, makes it worse.
- Something that used to work fails. Migros may have changed its website. Update to the newest version (see Updating), and if it still fails, open an issue.
Tools
These are what Claude calls behind the scenes. You don't need them to use it.
The Kind column says what a tool does to your account: reads, changes (nothing is lost) or deletes (removes or overwrites something). Your app uses this to decide when to ask you first. Keep that approval on for anything that isn't reads.
Without an account (all reads)
With your account
How it works
- Without an account, it uses migros-api-wrapper and the same addresses the Migros website calls, with a guest token it fetches at startup.
- With an account, it signs in at
login.migros.chthe way a browser does (email, then password, then the 2FA code if your account has one) and saves the login. The access token only lasts a short while, so it's renewed quietly from the saved login, without signing in again. A full sign-in only happens when Migros ends the saved login. - Saving the login matters because Migros' sign-in page sits behind Cloudflare, which blocks computers that sign in too often.
- Without a setup key, once it knows your account needs a code, it waits until Claude has one before sending your password. That way it never starts a sign-in it can't finish.
Development
How the code is laid out, and how a tool is added: docs/architecture.md. How to contribute: CONTRIBUTING.md.
Before a pull request, run the same checks as CI:
git config blame.ignoreRevsFile .git-blame-ignore-revs hides the one big formatting commit from git blame.
Check the tools that need no account against the live Migros website. GitHub also runs this every Monday, so a change on Migros' side shows up early:
Check the tools that need an account, with a dedicated test account (never your own). Put its login in .env.live (git-ignored, chmod 600) as MIGROS_TEST_EMAIL, MIGROS_TEST_PASSWORD and, for 2FA, MIGROS_TEST_TOTP_SECRET. --write also adds a product to the basket, changes its quantity and removes it again, checking that the basket ends up as before. The test login is kept in .live-session/, so repeated runs don't sign in again each time.
Migros answers logins from GitHub's servers with a bot check, so this runs weekly on a computer instead: scripts/migros-live-check.sh pulls the published image (edge, built from main), checks its cosign signature, and runs the check with --write inside that image with rootless podman, so it tests what people install and nothing from the repo runs outside a container. It needs podman, skopeo and cosign; the saved test login is kept in ~/.local/state/migros-live-check/. To schedule it, copy scripts/systemd/migros-live-check.service and .timer to ~/.config/systemd/user/ and run systemctl --user enable --now migros-live-check.timer; results are in journalctl --user -u migros-live-check. The live workflow on GitHub can still be started by hand, to see whether GitHub's servers get through again.
Try it with the MCP Inspector:
License
MIT, see LICENSE.
来源:README.md,提交 b4e1ad6
工具
0版本历史
1- v0.6.1最新Nov 12, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
