news 2026/10/6 13:14:25

MCP协议实战:用Claude Code配置麦当劳MCP Server领券全教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MCP协议实战:用Claude Code配置麦当劳MCP Server领券全教程

看到这个标题的时候我差点以为是段子——麦当劳官方做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全自动”:

  1. Claude Code理解你的意图,拆解出任务目标:查优惠券列表、筛选板烧鸡腿堡相关券、执行领取。
  2. 它调用get_todays_deals获取当日优惠列表。
  3. 从返回结果中挑出符合条件的券。
  4. 调用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长连接。排查步骤:

  1. 先确认Server地址在浏览器里能直接访问。
  2. 在Claude Code里执行/mcp查看连接状态。
  3. 如果连接失败,检查环境变量里是否有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需要上下文,而上下文就是我们跟它协作的默契。

午饭的券已经到手了,你的应该也快了吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 13:14:04

Git + 云端仓库实战:安装配置、SSH免密与分支合并全攻略

1. 项目安全同步,为什么非 Git 不可 1.1 你还在用文件夹命名来"管理版本"吗 先问你一个扎心的问题:你的项目文件里,是不是还有这种东西—— 项目最终版_v5 、 项目最终版_真的不改了 、 项目最终版_最终最终_0321 &#xff…

作者头像 李华
网站建设 2026/10/6 13:08:33

Unity界面适配与形状自定义:从Canvas Scaler到Shader的完整指南

做Unity游戏界面,最难的不是把按钮摆上去、把图标塞进列表,而是你做得挺完美的东西,换个手机型号就变得七零八落。竖屏变横屏、刘海屏多了一条黑边、平板上的按钮大得离谱、模拟器上一套分辨率到了真机又是另一套,这些问题我在项目…

作者头像 李华
网站建设 2026/10/6 13:06:36

Git本地仓库离线开发指南:无网环境下如何高效管理代码版本

我记得有一次在高铁上赶一个紧急迭代,网络时断时续,远程仓库推不上去,分支还改到一半。旁边同事急得直跺脚,我却能照常提交、切分支、做版本回滚——因为我的Git仓库就活在本地,网络只是锦上添花,不是必需品…

作者头像 李华
网站建设 2026/10/6 13:05:52

实时消息推送系统实战:从轮询到WebSocket长连接的架构演进与性能压测

我最近因为业务上要做一套订单状态通知系统,认认真真从零搭了一遍实时消息推送系统。一开始以为只是写个接口让前端轮询就行,结果发现每分钟几千次请求的打法根本撑不住,等真正换了服务端推送才发现水比想象中深:连接管理、心跳、…

作者头像 李华
网站建设 2026/10/6 13:04:58

MySQL数据可视化实战:从SQL优化到ECharts图表对接

把 MySQL 里的数据变成能“看懂”的图表,这件事听起来简单,做起来全是细节。我见过不少项目,死在“数据可视化”这最后一公里:要么 SQL 写得稀烂,接口响应要好几秒,图表加载转圈转到用户关页面;…

作者头像 李华
网站建设 2026/10/6 13:03:11

中文错别字自动纠正:机器学习+规则引擎的PyQt项目实战

简介:基于机器学习的中文错别字检索与自动纠正项目包,面向自然语言处理方向的计算机、人工智能等专业学生及毕业设计开发者,覆盖候选字生成、特征选择到纠错模型调优的完整流程,适合快速搭建中文文本纠错系统。压缩包共12个文件&a…

作者头像 李华