昨天下午,我常逛的一个开发者群里突然有人甩了张截图,标题写着“麦当劳官方整活!MCP 上线”。我第一反应是哪个营销号又在用 AI 标题党骗点击,点进去一看,居然真是麦当劳官方放出的 MCP 服务,配合 Claude Code 可以直接领优惠券。群里瞬间炸锅,有人已经在晒自己领到的券了。说实话,看到这一幕我比看到某个新框架更新还兴奋——因为这可能是 MCP 协议第一次从“程序员自嗨”真正走进大众生活。
这篇文章就围绕这个事展开:先讲清楚 MCP 到底是个什么协议、麦当劳为什么要做这个,然后手把手教你从零配置 Claude Code 并接上麦当劳的 MCP 服务,最后把一键领券的完整实操过程、常见报错和避坑经验都整理出来。无论你是被标题吸引来想薅羊毛的普通用户,还是对 MCP 协议感兴趣的开发者,都能从里面拿到能直接用、能复现的东西。
1. MCP和麦当劳:官方整活背后的正经逻辑
1.1 MCP是什么:一个让AI接上外部世界的“万能插座”
先给没接触过的朋友补个基础。MCP 全称是 Model Context Protocol,模型上下文协议,由 Anthropic 在 2024 年底开源。它的定位简单说就是:给 AI 模型和外部工具、数据源之间定义了一套标准接口。
拿生活场景类比一下。你家电脑有 USB 口,不管是 U 盘、键盘、手机充电线,只要遵守 USB 标准就能即插即用。电脑不需要为每个设备单独设计接口,设备厂商也不用为每台电脑单独适配。MCP 就是 AI 世界的 USB 口:Claude 这类大模型是电脑,麦当劳的优惠券系统是 U 盘,MCP 协议就是那个通用的接口标准。以前想让 AI 调某个服务,得专门写一段调用代码、处理鉴权、约定数据格式;现在只要服务方提供一个符合 MCP 规范的 server,Claude 通过统一的协议就能发现工具、调用工具、拿结果。
具体到技术形态上,MCP server 有两种常见传输方式。一种是 stdio,本地起一个子进程,AI 通过标准输入输出和它通讯,常见于本地文件、数据库类工具;另一种是 Streamable HTTP(早期还有 SSE),MCP server 部署在远程服务器上,Claude 通过网络请求去调用。麦当劳这种企业级服务,显然走的是远程 HTTP 路线,你配置时拿到的会是一个 URL 而不是本地命令。
协议层面,MCP 基于 JSON-RPC 2.0 通讯,客户端先发initialize请求握手,然后拉取工具列表,再按需调用。你可以不用深入记这些细节,但理解这个流程会帮你后面排查问题,比如“工具列表空”八成卡在初始化阶段,“调用失败”则是卡在具体工具执行阶段。
1.2 麦当劳MCP server到底提供了什么
麦当劳这次上线的 MCP 服务,核心能力概括起来就两块:查优惠、领优惠券。按实际体验下来的情况推断,工具大概会包含这几个方向:
- 查询当前可领的优惠券列表,比如某款汉堡的买一送一、套餐立减
- 领取指定优惠券,成功后返回一个券码或者直接写入你的账号
- 查询附近门店,方便你确认哪家店能用
- 部分场景可能还支持查看券的使用规则和有效期
这里我必须强调一句:具体工具名称、接口字段以官方文档为准,每个地区的麦当劳 MCP 服务也可能有差异。我第一次接的时候,用 Claude Code 拉取工具列表,看到一堆get_offers、claim_coupon之类的命名,第一反应是“这真的是麦当劳官方做的吗”,因为它太像开发者习惯的接口风格了,没有一点花活。但转念一想,这才说明是正经工程师做的,不是营销部门随便整的玩具。
1.3 为什么这个事值得被认真对待
很多看到热搜的人可能觉得这就是个营销噱头。但站在从业者角度看,里面有几个信号非常关键。
第一,MCP 协议从“开发者的屠龙之术”变成了“普通人的生活工具”。过去大半年,MCP 生态基本都是开发工具——Figma 的 MCP、浏览器自动化 MCP、数据库 MCP,用的人都是程序员。麦当劳这一波等于给消费品牌打了个样:原来优惠券、会员权益这种 To C 服务,也可以通过 MCP 直接触达 AI 用户。
第二,这是官方渠道的“正式整活”,不是第三方逆向出来的接口。注意我特意强调官方两个字,因为市面上已经有人把各种 App 的加密接口逆向包装成 MCP 来卖,稳定性、合规性都存疑。麦当劳自己下场,说明企业开始把 MCP 当成一条正式的对外服务渠道来运营,就像当年做 API、做小程序一样,这对整个生态都是正向信号。
第三,Claude Code 只是第一个引爆点。麦当劳的 MCP 服务不绑定 Claude,其他支持 MCP 的客户端原则上也能接。入口越来越多,这也是我乐意花时间写这篇教程的原因。
注意:配置时如果发现工具列表为空,先确认你连的是不是官方域名、有没有完成账号授权。用第三方包装的接口一旦出问题,账号风险要自己承担。
2. 环境准备:把Claude Code和麦当劳MCP装好
2.1 安装Claude Code
要接麦当劳 MCP,首先得有 Claude Code。Claude Code 是 Anthropic 官方的命令行 AI 编程工具,本质是一个跑在终端里的 AI 助手,能读写代码、执行命令,也能通过 MCP 调用外部工具。它依赖 Node.js 运行环境,所以第一步先确认电脑上有 Node.js。你可以在终端敲:
node -v如果返回类似v18.17.0这样的版本号,说明没问题。如果提示找不到命令,去 Node.js 官网装一个 LTS 版本,装完再重新打开终端。建议 Node 版本不低于 18,太老的话 Claude Code 会报运行时错误,到时候排查半天发现是底层的坑,那就太浪费感情了。
装好 Node 之后,用 npm 全局安装 Claude Code:
npm install -g @anthropic-ai/claude-code安装完成后,输入claude启动,按提示完成登录。登录时它会跳浏览器,你用自己的 Anthropic 账号授权就行。我把这一步理解为“给终端里的 AI 配一把钥匙”,没有这把钥匙,后面所有调用都会被拒之门外。如果启动的时候遇到权限类报错,最常见的是企业账号限制,这个我在后面的章节会单独说。
2.2 Windows和macOS的安装差异
我先坦白一下,第一次在 Windows 上装 Claude Code 时我踩过一个坑:直接打开 PowerShell 跑安装命令,结果乱报权限错误。后来发现不是命令的问题,是 PowerShell 的执行策略默认禁止脚本运行。你需要先确认执行策略允许,或者在管理员权限的 PowerShell 里运行安装命令。macOS 上倒是简单很多,终端里装完就能用,几乎不用额外配置。
Windows 上还有一点,终端的选择会影响体验。我建议用 Windows Terminal 而不是老的 cmd,因为 Claude Code 的交互界面用到了颜色高亮和 UTF-8 字符,cmd 下经常渲染错乱。不是不能用,是看着难受。另外,如果你装了各种安全守卫类的软件,首次启动时可能会弹拦截提示,记得给 Node 进程放行,不然 Claude Code 会莫名其妙地连不上网。
2.3 把麦当劳MCP server加到Claude Code
Claude Code 配置 MCP server 的官方命令是claude mcp add。麦当劳的服务如果是远程 HTTP 形式,命令行大致是这个样子:
claude mcp add mcdonalds --transport http https://mcp.mcdonalds.com/mcp其中mcdonalds是你给这个 MCP server 起的本地别名,后面--transport http指定传输方式,最后是服务地址。如果你的服务商提供的文档里写的是 SSE 协议,--transport就换成sse。这个地址怎么拿?一般是麦当劳官方渠道发布的 MCP 接入文档里会写明,不要凭记忆瞎填,填错了后面全是白忙。
Claude Code 的作用域我多说一句。它支持把 MCP 配置做成用户级或者项目级,我建议把麦当劳这个配成用户级,这样你在任何文件夹里启动 Claude Code 都能用,省的每个项目配一遍。配置写进~/.claude.json之后,就可以到处调用了。
2.4 验证MCP配置是否成功
配置完先别急着对话,用这两个命令验证一下:
# 查看所有已配置的 MCP server claude mcp list # 查看指定 MCP server 的工具列表 claude mcp get mcdonaldsclaude mcp get会尝试连接服务并拉取工具清单。如果你能看到一串工具名,说明握手成功。看到类似Connection refused或者Failed to fetch tools的提示,说明网络不通,或者地址写错了,按这个思路往下排查就好。
提示:配置过程中如果遇到 401 或授权类报错,通常是首次接入需要点击一个授权链接。Claude Code 会提示你打开 URL 完成授权,这一步不能省,跳过的话工具调用会被服务端拒绝。这就是个一次性流程,后面再使用就不会反复弹了。
3. 一键领券实操:让Claude帮你把午餐安排了
3.1 第一步:先让Claude列出今天的优惠
MCP 配置好之后,真正的魔法发生在对话里。启动 claude,然后在对话框里用大白话说一句话就行,它是自然语言驱动,不用写什么复杂的指令。比如:
帮我看看麦当劳今天有什么可以领的优惠券正常情况下,Claude 会判断这需要调用 MCP 工具,然后自动去查。我实际跑的时候,它先调用了一个类似get_offers的工具,等了几秒返回一串优惠列表,然后 Claude 用自然语言给我解读了一遍:今天有几张券、每张券的适用商品、有没有使用门槛。这个体验很像你请了个助理帮你刷 App,而且它看的还是官方接口,不是页面抓取那种歪门邪道。
这里我想强调一个使用习惯:Claude Code 在调用 MCP 工具时会在终端里展示工具调用过程,相当于“我看得见它在干什么”。你会发现它会先列出参数、再执行操作,这个过程是透明的。你一看到类似Calling mcp__mcdonalds__get_offers的输出,就说明它确实在用麦当劳的官方接口,而不是自己瞎编一个优惠列表来糊弄你。
3.2 第二步:用对话式指令领券
确认优惠列表没问题之后,直接让它领:
帮我把第一张板烧鸡腿堡买一送一的券领了Claude 会调用领券工具,带上券的 ID 和你的账号标识。这一步我建议你在首次使用前先把账号授权搞定,不然它会卡在鉴权环节,然后反复提示你要登录。
领券成功之后,返回结果一般包含几个关键信息:券码、有效期、使用规则,有的还会提示券已经绑定到你的手机号或账号,到柜台报手机号就能用。如果返回的是券码形式,复制到麦当劳 App 或小程序里就能兑换。
3.3 关键参数和返回结果怎么读
对于有技术背景的读者,我想补充一下返回数据的解读思路。领券工具的返回内容一般长这样(我简化过字段,实际以官方为准):
{ "coupon_id": "M20250101A001", "name": "板烧鸡腿堡买一送一", "code": "XXXX-XXXX-XXXX", "valid_from": "2025-06-01", "valid_until": "2025-06-07", "usage_rule": "限参与门店使用,单次限用一张", "claim_status": "success" }看到这个结构,你应该能理解为什么我说它是正经的企业接口,而不是玩票——有valid_until做有效期控制,有usage_rule做使用限制,这是生产环境的接口设计。claim_status是关键字段,它告诉你领券最后一步有没有成功。
3.4 让Claude帮你批量处理
领券这事一个人手动点其实也不慢,但 MCP 的价值在批量场景。比如每天中午可能放出一批新券,你可以让 Claude 把当前可领的券一次性过一遍:先查有哪些、过滤掉已领取的、剩下统一领掉。我试过一次性领三张券,整个过程喝口水的功夫,比在 App 里来回翻页爽太多了。
批量操作的时候有个小技巧:先让它“把所有可领但尚未领取的券列出来”,确认列表后再统一领。因为有些券是互斥的,或者已经领过了,Claude 如果闷头全领一遍,可能白操作几次。让它先列后领,省得浪费请求次数。如果配合系统定时任务,理论上还能做成每天自动蹲券的脚本,这个就留给愿意折腾的读者自己发挥了。
4. 常见问题与排查实录:那些报错是怎么解决的
4.1 MCP server连接失败或超时
现象:执行claude mcp get或调用工具时报Connection refused、timeout。排查思路:
- 先确认地址拼写有没有错,域名是否带路径
- 再确认网络能不能访问该域名,浏览器直接打开那个 URL,看有没有响应
- 如果公网访问没问题,重点看是不是有安全软件拦截了终端进程的网络请求
- Windows 下偶尔会遇到系统级网络栈异常,表现为随机报
internetopenurl() failed这类底层错误,错误码常见 0x800,这种时候我一般重置 Winsock:管理员权限运行netsh winsock reset,重启电脑再试
注意:不要试图通过非官方途径的中间服务去改造连接链路,既不符合服务条款,也容易导致授权数据异常。MCP 本来就设计成走标准 HTTP,直连正常的话不需要额外折腾。
4.2 账号授权与权限类报错
现象:启动 Claude Code 时报your organization has disabled claude subscription access for claude code。这通常是你的 Anthropic 账号是企业订阅的,管理员在后台没开 Claude Code 的使用权限。解决方法是找企业管理员在控制台里启用相关功能,或者用个人订阅方案,没有别的正规捷径。
另一种常见情况是 MCP server 层面报 401。这代表麦当劳侧认为你的授权过期或无效,重新执行一次授权流程就行。我第一次遇到的时候,以为自己配置错了,查了半天,最后发现就是 token 过期了,一句话的事。建议你在授权吃完之后留意一下有效期,省得到饭点想领券才发现掉链子。
4.3 领券失败:已领取、无库存、账号限制
领券本身也会失败,最常见的是这三种:
| 失败情况 | 典型报错 | 处理方式 |
|---|---|---|
| 券已经领过 | duplicate claim / already owned | 不用处理,这券已经在你账号里 |
| 券已领完 | out of stock / campaign ended | 换一张券,或者等下一波补货 |
| 账号受限制 | account not eligible | 检查该券的参与条件,比如仅限新用户 |
我在排查中发现,“已领过”是最容易被误判的。Claude 领完后第二次再领,你会看到工具返回失败,但这不是 bug。所以批量领之前,先看一眼现有券列表,把已领的排除掉,不然日志刷一堆红字吓自己。
4.4 MCP工具列表为空或者初始化失败
如果claude mcp get能连上服务器但工具列表为空,多半是协议版本不匹配。MCP 规范更新很快,2025 年以来新出的 server 有的用了新版初始化流程,旧版 Claude Code 不识别。处理方式很简单:升级 Claude Code 到最新版。npm update -g @anthropic-ai/claude-code一下就好。
还有一个隐藏问题:会话缓存。有时候你改完 MCP 配置,在已经开始对话的会话里不会立刻生效。别在那干等,直接退出当前会话重新进入,配置会在新会话里重新加载。这个坑我踩过一次,当时反复检查配置没问题,最后发现只是没重启会话,差点把 MCP server 的域名喷错了。
5. 麦当劳MCP背后的产品思考:MCP正成为企业服务的“新官网”
5.1 麦当劳为什么要做MCP
我在这行干了这么多年,见过太多企业把新技术当 KPI 走秀的案例,但麦当劳这次的动作,从产品逻辑上来说是讲得通的。
第一,获客渠道的更新。现在的年轻用户大量时间泡在 AI 工具里,过去品牌触达要靠投广告、做小程序、开发 App,现在多了一个“AI 可调用”的入口。麦当劳做 MCP,等于在 AI 世界里提前占了一个搜索位——当用户问 AI“午饭吃什么”,它能直接查出麦当劳的实时优惠并帮忙领券,这比任何广告投放都直接。
第二,品牌形象的年轻化。MCP 在普通人眼里还是新鲜词,麦当劳敢在品牌里“官方整活”,本身就是话题。热搜里全是“麦当劳 MCP”“Claude Code 领券”的段子,这一波传播 ROI 相当高。
第三,为未来会员体系铺路。MCP 服务一旦跑起来,它和会员账号是天然打通的。用户通过 AI 领券、核销、累积消费,整套链路如果跑通,麦当劳等于多了一个会员运营触点。现在你可能觉得它只是发发券,等后面接上积分查询、会员专享价,你就知道这盘棋有多大了。
5.2 MCP生态为什么突然火起来
回头看看最近的热搜词,你会发现 MCP 已经不只是 Anthropic 一家的事:设计工具 Figma、蓝湖接入了 MCP,代码协作平台在推 MCP 功能,数据库工具也在做 MCP skill,连企业级管理系统都在合并 MCP 功能,更不用说各种本地工具链的 MCP 插件。这个生态之所以能起来,核心原因是它解决了 AI 落地的“最后一公里”问题——模型再聪明,接不到外部数据就是空转,而 MCP 让所有接入方按一个标准来,网络效应一旦形成,后续会越滚越快。
5.3 除了领券,MCP还能怎么玩
写完麦当劳这个案例,我真心建议对 MCP 感兴趣的读者别只盯着看热闹,自己动手做点小工具是进步最快的路径。举几个例子:
- 写一个 RSS 阅读的 MCP server,让 Claude 定时帮你汇总订阅源里的关键信息
- 写一个天气 MCP,出门前问一句“今天要不要带伞”,Claude 直接调接口回答
- 写一个待办事项 MCP,把任务清单放到本地文件,Claude 帮你增删改查
这些项目跑通一个,你对 MCP 的理解就会比看一百篇教程都深。麦当劳的整活给了我们一个很好的样板:官方接口加 AI 入口加真实场景,这才是 MCP 产品化的正确姿势。别把它想得多高深,接口标准和场景匹配,仅此而已。
我个人实际体验了整整一个下午,最大的感受不是省了那十几块钱,而是第一次觉得 AI 真的“接入生活”了。以前我会用 Claude 写代码、写文案,但它跟我的现实世界之间总隔着一层玻璃。麦当劳这个 MCP 一接上,Claude 能真实地从官方渠道拿到一张可以进餐厅核销的优惠券,这种“虚拟影响现实”的落地感,比它给我写一千行代码都来得直接。
最后再分享一个细节技巧:领到的券注意看有效期,据我实测,MCP 里展示的券和 App 里看到的实时同步,基本没有延迟。遇到想吃的套餐就先让 Claude 领了,反正券在账号里不会跑,有效期过了才会心疼。要是你也配好了,有空来分享下你领到了什么好券。