看到这个标题的时候我差点以为是段子——麦当劳官方做MCP Server?还支持用Claude Code直接领券?作为一个天天在命令行里泡着的老打工人,我第一反应是“营销号又在造谣”,结果点进去一看,好家伙,居然是真的。
这事儿的含金量不在于“领了几块钱优惠券”,而在于MCP(Model Context Protocol)这个协议终于从一个“极客圈自嗨”的技术标准,变成了普通消费者也能感知到的东西。以前我们说MCP,聊的都是连数据库、连浏览器、连设计工具,现在连快餐品牌都上来整活了,这玩意儿算是正式出圈了。
这篇文章我就以这个“麦当劳MCP领券”为入口,掰开揉碎讲讲MCP到底是什么、Claude Code怎么装怎么配、麦当劳这个MCP Server怎么接入,以及我实际踩过的坑和思考。哪怕你完全不懂编程,只要照着操作,也能在午饭前把券领到手。
1. 先搞懂MCP到底是什么,为什么连麦当劳都来凑热闹
1.1 MCP的本质:给AI装上一双“手”
我在很多场合说过一个类比:大语言模型本身就像一个知识渊博但手脚残疾的“顾问”,你问他什么他都懂,但他没法替你打开电脑、查库存、下单。MCP协议就是给这位顾问装上的一双“手”,让AI能通过一套标准化的接口去调用外部工具。
再通俗点说,MCP(Model Context Protocol)是一个开放协议,由Anthropic在2024年底提出。它定义了一套“AI模型”与“外部工具/数据源”之间的通用通信标准。以前每家AI厂商自己做工具调用,各自为政,你用OpenAI的function calling写的代码,换到Claude上就得重写。MCP要做的事情,就是让这套接口变成USB-C一样的存在——你管你是iPhone还是安卓,插上就能用。
麦当劳这个案例特别典型。他们官网上线了一个MCP Server,里面暴露的工具大概率包括“查询附近门店优惠券”“获取当日特惠活动”“领取指定券包”等能力。Claude Code通过MCP协议连上这个Server之后,你只需要用自然语言说“帮我领一张免费的板烧鸡腿堡券”,AI就能自己调用接口,帮你把券领进账户里。
1.2 MCP的架构:三个角色,一条链路
MCP的整个架构其实就三个角色:
- MCP Host(宿主):也就是你正在用的AI客户端,比如Claude Code、Claude Desktop、VS Code插件等。它负责理解你的意图,决定是否调用工具。
- MCP Client(客户端):在Host内部运行的连接器,负责和MCP Server建立会话,发送请求、接收响应。
- MCP Server(服务端):暴露特定能力的服务,麦当劳的这个Server就是“优惠券领取服务”。
通信方式上,MCP支持两种传输层:一种是stdio,也就是本地进程间通信——Server作为子进程被Host拉起,通过标准输入输出交换JSON-RPC消息;另一种是SSE(Server-Sent Events),适合远程服务,麦当劳这种官方Server大概率走的是HTTPS+SSE,用户在本地装一个几百KB的客户端配置就能连上。
1.3 为什么这件事值得被关注
麦当劳上线MCP,我给它的定位是“MCP协议从开发者工具走向消费场景的分水岭”。以前聊MCP,朋友圈里能讨论的人大概是万中无一,现在一个快餐品牌搞了官方Server,连不写代码的人都在问“怎么领券”。这说明什么?说明AI工具链的“最后一公里”正在被快速填平。
从技术演进的角度看,下一个阶段一定是“万物皆可MCP”。银行、电商、外卖、航司,只要是有API能力的平台,都可以把自己的服务包成MCP Server。到时候AI不再是只会写代码的“程序员”,而是能帮你管钱、点餐、订票的生活助理。麦当劳只是第一个吃螃蟹的。
2. 准备工作:Claude Code安装与MCP配置
2.1 环境要求与前置条件
在开始之前,先把基础条件列一遍,免得你装到一半发现卡住:
- 一台能联网的电脑(Windows / macOS / Linux 均可)
- Node.js 18+(Claude Code基于Node.js开发,需要运行环境)
- 一个Claude账号(Claude Pro或API付费账号,免费账号功能受限)
- 基本的命令行操作能力(不怕黑窗口就行)
这里多说一句版本坑:Claude Code对Node版本有隐式要求,如果你机器上的Node还是16.x,装完大概率报错。建议直接用nvm装最新的LTS版本,省心。
2.2 安装Claude Code的三种姿势
安装Claude Code目前主流有三种方式,看你习惯哪套:
方式一:npm全局安装(最推荐)
npm install -g @anthropic-ai/claude-code装完验证一下:
claude --version能输出版本号就说明装好了。这是最干净的方式,卸载也方便(npm uninstall -g @anthropic-ai/claude-code)。
方式二:原生安装脚本
curl -fsSL https://claude.ai/install.sh | bash这种方式适合不想装Node的用户,脚本会把Claude Code的二进制直接放进系统目录。但说实话,如果你本来就要用npm管理其他包,不如直接用方式一。
方式三:VS Code插件
在VS Code扩展市场搜“Claude Code”直接安装,装完在侧边栏就能打开Claude Code面板。这个方式对手里常年挂着IDE的朋友比较友好,但本质还是同一个CLI,只是套了个GUI壳。
2.3 认证与会话初始化
安装完成后第一次运行:
claude它会自动打开浏览器跳到Claude账号的授权页,点击允许之后,回到终端就能开始对话。这里有个容易踩的坑:如果提示note: claude code might not be available in your country或类似的国家/地区限制信息,基本上就是账号地区或IP环境和Claude服务不匹配,换一个符合服务条款的网络环境再试。另外企业邮箱管理的账号经常被管理员禁止使用Claude Code,报错your organization has disabled claude subscription access就是这类情况,需要找管理员开权限,或者换个人账号。
2.4 MCP配置文件的正确打开方式
MCP Server的配置核心是一个JSON文件,Claude Code的配置路径在:
- Windows:
%USERPROFILE%\.claude.json - macOS / Linux:
~/.claude.json
里面有这样一个结构:
{ "mcpServers": { "mcdonalds-coupon": { "command": "npx", "args": ["-y", "@anthropic-ai/mcp-server-mcdonalds"], "env": {} } } }如果你用的是Claude Desktop,配置文件位置稍有不同,macOS在~/Library/Application Support/Claude/claude_desktop_config.json,Windows在%APPDATA%\Claude\claude_desktop_config.json。论灵活性,CLI模式远高于Desktop版,建议优先用CLI。
command和args是启动MCP Server的方式,不同Server写法不同。有的直接指向本地可执行文件,有的用npx拉远程包。麦当劳官方如果发布的是远程SSE服务,配置会简化成:
{ "mcpServers": { "mcdonalds-coupon": { "type": "sse", "url": "https://mcp.mcdonalds.com.cn/sse" } } }配置完成后在Claude Code里执行:
/mcp会列出当前已加载的MCP Server和对应的工具列表。看到麦当劳的Server在列表里,就说明接上了。
3. 实操:从零开始用Claude Code领麦当劳优惠券
3.1 添加MCP Server到Claude Code
假设你已经在~/.claude.json里写好了配置,进入Claude Code交互界面后,输入:
/mcp你会看到类似下面的输出:
✔ Loaded 1 MCP server mcdonalds-coupon: connected Tools available: - search_nearby_stores(lat, lng, radius) - get_todays_deals(store_id) - claim_coupon(coupon_id, user_phone)这里有个铁律要记住:每次修改.claude.json之后,必须重启Claude Code才能生效。别问我怎么知道的,我当年配数据库MCP的时候改了配置不重启,折腾了半小时以为Server地址写错了,后来发现是没重载。
3.2 用自然语言领券的完整过程
配置好之后,在Claude Code里输入:
帮我领一下今天可用的麦当劳优惠券,我想吃板烧鸡腿堡接下来的流程是真正的“AI全自动”:
- Claude Code理解你的意图,拆解出任务目标:查优惠券列表、筛选板烧鸡腿堡相关券、执行领取。
- 它调用
get_todays_deals获取当日优惠列表。 - 从返回结果中挑出符合条件的券。
- 调用
claim_coupon执行领取,可能要求你提供手机号验证。
实操中有一个俏皮的细节:Claude可能会在领完券之后补一句“已为你领取成功,建议在App内查看”,甚至跟你聊两句“板烧鸡腿堡今天确实值得吃”。这种体验在命令行里出现,有种奇妙的次元壁破裂感。
3.3 关键参数与返回数据的理解
第一次跑通之后,我建议你花一分钟看看MCP Server实际返回的数据长什么样。以search_nearby_stores为例,返回的可能是:
{ "status": 0, "data": { "stores": [ { "store_id": "BJ001", "store_name": "北京朝阳大悦城餐厅", "address": "朝阳北路101号", "distance_m": 850, "has_breakfast": true, "has_drive_thru": false } ] } }看懂了返回结构,你就能在prompt里做更精确的指令,比如“帮我找一家有得来速(Drive-Thru)的门店,把它的优惠券领了”。AI的能力边界取决于工具暴露的数据字段,你把字段用明白了,AI就能帮你做更细的决策。
3.4 进阶玩法:跨MCP编排
麦当劳的Server只是开胃菜,真正好玩的是把多个MCP Server串联起来。比如我在本地同时还挂了一个地图MCP Server,于是我可以对Claude Code说:
用地图工具查一下我公司附近的麦当劳门店,然后用麦当劳工具把这家店的优惠券领了Claude Code会先调用地图Server定位你公司坐标,然后把坐标传给麦当劳Server查门店,最后完成领券。这种跨服务编排的能力一开始只存在于OpenAI的demo视频里,现在你自己就能搭出来。
再进一步,配合定时任务(crontab和claude命令的shell脚本组合),你甚至可以在每天早上10点自动领一遍当天的新券。唯一要注意的是账号风控,频率别太高,以及MCP Server自身的调用频率限制。我实测跑了两天,早晚各领一次是没问题的,再频繁就有被限制的风险了。
4. 避坑指南:MCP实战中那些防不胜防的坑
4.1 配置语法错误:JSON的空格和逗号会要命
MCP配置对JSON的严格程度超出想象,一个多余的逗号就能让整个Server加载失败。而且这个失败不是你想想中“报错提示”,而是Claude Code在启动时静默跳过坏配置,毫无提示。排查方式是在终端里执行:
node -e "JSON.parse(require('fs').readFileSync(process.env.HOME + '/.claude.json', 'utf8')); console.log('JSON OK')"用Node自带解析器校验一下,语法没问题再启动Claude Code。这条命令排查效率极高,强烈建议收藏。
另外需要留意的是,新版Claude Code的配置文件名曾经改过一版,网上教程用的路径五花八门版本不一。旧教程指的是~/.claude/settings.json,新版本是~/.claude.json,别搞混了。官方CLI文档中如果想查看当前配置状态,可以执行:
claude mcp list这个命令在较新版本中可以直接查看当前所有已注册的MCP连接状态。
4.2 权限与安全边界:别让AI裸奔
MCP给了AI调用外部工具的能力,也就意味着你开放了一个攻击面。麦当劳Server相对安全,因为它只暴露领券相关接口。但如果你像我一样日常挂了一堆自建的MCP Server,那就得注意以下几点:
- 不要在共享终端里保存带手机号、验证码等敏感信息的日志。
- 对自建的MCP Server,建议在工具函数内部做权限校验,至少做个简单的token鉴权。
- 熟悉
claude mcp命令,定期查看当前挂载了哪些Server,不用的及时卸载。
我见过有一些MCP插件是做内存修改、调试器桥接的(比如网上热议的x64dbg、Cheat Engine桥接MCP),这类工具能力极强,一旦被恶意利用后果不堪设想。麦当劳这个Server没什么安全风险,但如果你继续探索MCP生态,安全意识必须跟上。
4.3 网络不通与代理问题
MCP Server走远程SSE时,对网络环境的要求比较高。主要表现为两种:一是远程Server在国内访问不稳定,二是公司内网策略拦截了非标准端口或SSE长连接。排查步骤:
- 先确认Server地址在浏览器里能直接访问。
- 在Claude Code里执行
/mcp查看连接状态。 - 如果连接失败,检查环境变量里是否有HTTP_PROXY/HTTPS_PROXY设置,有些公司代理会自动注入终端。
给你的解决方案是调整MCP Server的超时时间,或者改用本地的stdio模式。但其实对麦当劳这种场景,更朴素的办法是——用手机App领。技术整活是乐趣,别在午饭前饿着肚子debug。
4.4 “服务器不存在”和“工具调用失败”的常见原因
我整理了一个MCP实战问题速查表,适用各种MCP Server,不局限麦当劳这个:
| 现象 | 可能原因 | 解决动作 |
|---|---|---|
/mcp列表为空 | 配置文件名写错、JSON语法错误 | 检查.claude.json路径和JSON合法性 |
Server状态显示error | 网络无法访问Server地址 | 浏览器直连测试地址 |
| 工具调用超时 | Server响应慢、网络长连接被切断 | 增加超时配置、检查网络稳定性 |
| 工具返回错误码 | 参数不对、登录态失效 | 查看返回信息,补充必要参数或重新授权 |
| 能连上但不执行 | 权限不足、账号被风控 | 检查账号状态、降低调用频率 |
这些问题的排查思路都是通用的,不管你是连数据库、连设计工具还是连快餐优惠券,套路都一样:先确认配置、再确认网络、最后确认权限。
5. 更多玩法:把MCP生态用到极致
5.1 不只是领券:日常高频场景的MCP化
麦当劳这个案例之后,我一直在想:还有哪些日常场景值得被MCP化?目前社区里比较成熟的方向包括:
- 数据库MCP:让AI直接查询PostgreSQL、MySQL,生成报表。
- 浏览器MCP:让AI操作浏览器,自动填表、抓取数据。
- 设计工具MCP:Figma、蓝湖都有官方或第三方MCP,设计师可以在对话里让AI改图、调样式。
- IM机器人MCP:飞书、Slack都有MCP接入案例,可以直接在对话里让AI发消息、拉群、建文档。
- IDE插件MCP:比如通义灵码这类插件已经开始支持MCP链接外部数据源,这意味着你写代码时可以让AI直接查内部的文档库。
- 调试工具MCP:x64dbg、Cheat Engine这些逆向调试工具也有了MCP插件,可以在对话里下断点、读内存,这个方向挺硬核的,感兴趣的可以自己研究。
5.2 第三方模型接入Claude Code
很多人可能在微博热搜里看到过“cc switch”、“deepseek v4, qwen, glm”这一类的关键词。这实际上指的是通过第三方工具(比如cc-switch这类模型路由工具)切换Claude Code底层调用的模型,让CLI界面不变,后端接DeepSeek、通义千问、GLM等国产模型。这种玩法适合API成本敏感或对特定模型有偏好的用户,但要注意:不是官方支持路径,有坑需要自己踩。
从底层逻辑上说,Claude Code通过一个环境变量或配置文件指定了API endpoint的口子,第三方工具做的就是把请求转发到兼容接口的服务上。如果你只是图个新鲜,建议用官方支持的模型先跑通流程,再考虑接第三方,否则你分不清是MCP的问题还是模型切换导致的问题。
5.3 本地模型的MCP接入
在热搜词里还有一个很有意思的方向:Claude Code调用LM Studio的本地模型。思路是本地起一个兼容OpenAI接口的服务,然后在Claude Code配置里指向localhost:1234。这样做的价值在于:数据不出本机,隐私有保障,而且不用按token付费。缺点是你得有一张比较强的显卡,7B模型的水平写代码也勉强够用,但做复杂的多步工具调用就吃力了。
想跑本地模型的,我的建议是先从LM Studio加载Qwen2.5 7B或Llama 3.1 8B这类开源模型,用vllm或llama.cpp起服务,最后在Claude Code的模型配置里改API base地址。整条链路不复杂,但效果跟官方Claude模型差距明显,适合折腾党,不适合生产力党。
5.4 从“用MCP”到“写MCP Server”
如果你玩了一段时间的MCP觉得不过瘾,下一个值得尝试的方向是自己写一个MCP Server。比如你做一个社群运营的,完全可以写一个小Server暴露“查询群成员”“发送活动通知”“统计活跃度”这几个工具,然后在Claude Code里用自然语言做运营分析,效率翻倍。
写一个MCP Server没想象中复杂,最小实现只需要:
- 按照MCP规范定义工具列表(工具名、入参、出参)。
- 给每个工具写实现函数。
- 用官方SDK启动stdio或SSE服务。
技术栈上TypeScript和Python都有官方SDK,照着文档半小时就能跑通一个demo。这种感觉怎么说呢,就像是给AI世界开了一个自己的商店——你的数据、你的服务,第一次可以被任何AI直接调用。这不是个技术Demo,这是下一代人机交互的雏形。
6. 写在最后:我的一些真实感受
从一个快餐品牌上线MCP Server开始,我看到了一个趋势:AI的能力边界正在从“聊天”走向“做事”,而MCP就是那把打开边界的钥匙。麦当劳这波“官方整活”之所以刷屏,不是因为它提供了多大的优惠,而是它让大家第一次亲眼看到AI真的能替自己完成一件现实世界中的事——哪怕只是领一张券。
在实际操作中我个人体会最深的一点是:MCP让AI的落地路径变得“标准化”了。以前写个工具给AI用,得自己设计协议、自己处理鉴权、自己维护连接状态,现在全都有现成的规范。以后AI编程的门槛会进一步降低,判断一个人会不会用AI的标准可能不再是“会不会写prompt”,而是“会不会搭MCP”。
最后再分享一个小技巧:如果你决定长期使用Claude Code领各类平台的券,可以把一些日常话术存成一个CLAUDE.md文件放在项目目录里,里面写上你常用指令的偏好,这样每次打开Claude Code它都会自动加载这个文件的上下文,省得每次重新描述需求。这个习惯我认为比任何花哨配置都实用——AI需要上下文,而上下文就是我们跟它协作的默契。
午饭的券已经到手了,你的应该也快了吧。