首页 / 资讯中心 / 文章详情

Day 14 | 接入 MCP 协议:让商城拥有 AI 工具箱

Day 14 | 接入 MCP 协议:让商城拥有 AI 工具箱 ★ FEATURED ARTICLE
摘要AI 只会聊天不够还得能操作你的系统。今天用 MCPModel Context Protocol协议把商城的商品查询、下单、物流追踪包装成 AI 可调用的工具。AI Agent 接到一句帮我买两瓶精华水就能自动查商品、创订单。全篇零成本GLM-4.7-Flash 免费调用代码开箱即用。AI 只会聊天那它只是个嘴前几天我们把商城的 AI 搜索做好了用户说200 块以内的护肤品就能精准推荐商品。但你有没有发现一个问题——AI 能帮用户找到商品却不能帮他下单。就像你去商场导购小姐姐热情地带你到了柜台前然后说“您自己扫码付款吧我下班了。”这不是智能助手这是智能解说员。真正的 AI 助手应该是什么样的用户说帮我买两瓶玫瑰精华水 → AI 自动查询商品、确认库存、创建订单用户说我的快递到哪了 → AI 自动查询物流状态用户说把上次买的那个面霜再来一单 → AI 查历史订单、复制下单要做到这些AI 需要一双能操作系统的手。而 2026 年给 AI 装手的标准方式就是MCP。MCP 到底是什么一句话解释MCPModel Context Protocol模型上下文协议是 AI 与外部工具之间的标准化接口。听着有点抽象换个说法MCP 就是 AI 世界的USB 接口。在 USB 出现之前打印机用并口线、鼠标用 PS/2 接口、手机用 Mini-USB每个设备一根线乱得要死。USB 的出现统一了标准——所有设备用同一种接口即插即用。MCP 做的事情一样类比USBMCP连接什么硬件设备键盘、鼠标、打印机软件工具数据库、API、商城系统谁在用电脑AI 模型 / AI Agent解决的问题设备接口不统一AI 调用外部工具的方式不统一效果即插即用AI 即连即用为什么 2026 年人人都在聊 MCP2024 年 Anthropic 开源了 MCP 协议2025 年各大厂商跟进到 2026 年MCP 已经成为 AI Agent 生态的基础设施。为什么这么火因为 MCP 解决了三个痛点① AI 终于能动手了以前让 AI 帮你查快递你得先打开快递网站复制单号粘贴到查询页面。现在 AI 通过 MCP 直接调用物流工具一步到位。② 工具提供方不用关心 AI 是谁你写了一个 MCP Server不管是 Coze 的 Agent、Claude、ChatGPT 还是其他任何 AI 产品只要支持 MCP 协议就能连上来用。一次开发到处对接。③ 安全可控MCP 有明确的权限模型——你定义哪些工具暴露出去AI 就只能调用哪些。不会出现AI 乱操作的情况。MCP 的三个核心概念角色说明商城的例子MCP Server提供工具的一方服务提供者我们写的商城后端MCP Client连接 MCP Server 的一方服务消费者扣子 Coze AgentToolMCP Server 暴露的具体功能搜索商品、创建订单、查物流除了 ToolMCP Server 还可以提供Resource资源——AI 可以主动读取的静态信息比如商城公告、商品分类。打个比方Tool是帮用户做事的能力下单、查物流Resource是给用户提供信息的能力商城介绍、分类列表工作流程一览用户微信/小程序 │ │ 帮我买两瓶精华水 ▼ AI Agent扣子 Coze │ │ ① 分析意图 → 需要调用工具 │ ② 通过 MCP 调用 search_products(精华水) ▼ MCP Server商城后端 │ │ 返回[{id:2, name:玫瑰精华水, price:189, stock:200}] ▼ AI Agent │ │ ③ 确认商品信息 │ ④ 调用 create_order(product_id2, quantity2) ▼ MCP Server │ │ 返回订单创建成功订单号 MYD202604270001 ▼ AI Agent → 用户 │ │ 已帮您下单玫瑰精华水 ×2共 ¥378 │ 订单号 MYD202604270001请确认支付~看到了吗用户全程只说了一句话AI 自己完成了理解需求 → 查商品 → 下单 → 返回结果的全链路操作。MCP vs 传统 API有什么区别你可能会问这不就是调 API 吗有什么新鲜的区别在于谁来决定怎么调。传统方式你得在前端写好逻辑——用户点了搜索按钮前端调用/api/products?keyword面霜拿到结果渲染。每一步都需要程序员预先写好。MCP 方式AI 自己决定调什么工具、传什么参数。你说帮我看看有什么面霜AI 自己判断应该调用search_products参数填keyword面霜。程序员不需要为每种对话场景写一套逻辑。传统 API 是程序员写好剧本用户照着演。MCP AI 是用户说一句话AI 自己编剧本。动手用 FastMCP 搭建商城 MCP Server安装依赖Python 生态中最流行的 MCP Server 实现是fastmcppipinstallfastmcp httpxfastmcp 的设计很 Pythonic——你只需要定义函数加个装饰器它就自动变成一个 MCP 工具。创建 MCP ServerfromfastmcpimportFastMCP# name 会展示给 AI Agent让它知道这是谁mcpFastMCP(name商城 MCP Server,protocol_version2026-06-18,instructions 商城的 AI 助手后端。 你可以帮用户查询商品、创建订单、查询物流。 所有价格单位为人民币元。 )instructions很重要——AI Agent 会读这段描述来决定什么时候调用你的工具。写得越清楚AI 行为越准确。定义第一个工具搜索商品mcp.tool()defsearch_products(keyword:str,category:str,max_price:float0,)-str: 搜索商城的商品。 Args: keyword: 搜索关键词匹配商品名称如面霜、精华 category: 按分类筛选 max_price: 最高价格限制0 表示不限 # 模拟商品数据库实际项目替换为 ORM 查询results[pforpinPRODUCTS_DBif(notkeywordorkeywordinp[name])and(notcategoryorp[category]category)and(max_price0orp[price]max_price)]ifnotresults:return未找到符合条件的商品换个关键词试试# 格式化输出 —— AI 更容易理解结构化的文本lines[f找到{len(results)}件商品\n]forpinresults:lines.append(f [{p[id]}]{p[name]}— ¥{p[price]:.2f}| 库存{p[stock]})return\n.join(lines)注意几个关键点mcp.tool()装饰器加上这个普通 Python 函数就变成了 MCP 工具。fastmcp 自动读取函数名、docstring、参数类型生成 MCP 协议需要的 JSON Schema。docstring 非常重要AI Agent 通过读 docstring 理解这个工具是干嘛的、参数怎么传。写得越清楚AI 调用越准。返回值是字符串MCP 工具返回值统一是字符串。故意返回结构化文本而不是 JSON因为 AI 更容易理解自然语言。定义核心工具创建订单下单工具是 AI 操作商城的关键核心框架完整实现见配套代码mcp.tool()defcreate_order(product_id:int,quantity:int1,customer_name:str匿名用户,address:str,)-str: 创建订单。 Args: product_id: 要购买的商品 ID quantity: 购买数量默认 1 customer_name: 收货人姓名 address: 收货地址 # ① 查找商品不存在返回失败# ② 检查库存不足返回失败# ③ 扣减库存 生成订单号 记录订单# ④ 返回结构化的成功信息订单号/商品/总价/状态return✅ 订单创建成功订单号..., 商品... × N, 总价¥..., 请前往支付页面完成付款。查询订单 物流mcp.tool()defquery_order(order_id:str,customer_name:str)-str: 查询订单状态和物流信息。 Args: order_id: 订单号如 MYD202604270001 customer_name: 按收货人姓名查询模糊匹配 # 按订单号或收货人过滤订单列表# 返回格式化的订单信息订单号/商品/金额/状态/物流/下单时间...声明资源让 AI 了解商城除了工具MCP 还支持资源——AI 可以主动读取的信息mcp.resource(shop://info)defshop_info()-str:商城的基本信息return商城 v2.0\n主营护肤品、化妆品\n营业时间24 小时mcp.resource(shop://categories)defshop_categories()-str:商城商品分类列表return商品分类、.join(set(p[category]forpinPRODUCTS_DB))启动服务if__name____main__:# Streamable HTTP 模式MCP 2026 标准传输方式mcp.run(transportstreamable-http,host0.0.0.0,port8000)一行mcp.run()一个完整的 MCP Server 就跑起来了。transportstreamable-http是 MCP 2026 年推荐的传输方式替代早期的 SSEServer-Sent Events。它支持双向通信、断线重连兼容主流 HTTP 框架。如果 AI 客户端比较老也可以换成transportsse向后兼容。接入扣子 Coze Agent用自然语言操作商城MCP Server 搭好了接下来让 AI Agent 连上来。在扣子中配置 MCP 连接打开扣子Coze的 Agent 编排页面进入插件 / 工具面板选择添加 MCP Server填入 MCP Server 地址http://你的服务器IP:8000/mcp传输协议选择Streamable HTTP点击连接 → 自动识别出所有工具和资源配置 System Prompt给 Agent 写一段提示词让它知道自己是商城客服你是商城的智能客服助手。 你的能力 - 帮用户搜索商品、查看商品详情 - 帮用户下单创建订单 - 帮用户查询订单状态和物流 规则 1. 下单前必须确认商品名称、数量、价格 2. 询问用户收货人姓名和地址 3. 订单创建后告知订单号提醒支付 4. 查物流时先通过姓名或订单号查询 5. 语气亲切适当使用 emoji体验效果配置好后在对话框测试你有没有 200 块以内的护肤品AI 自动调用search_products(keyword护肤, max_price200)返回结果。你帮我买两瓶精华水AI 自动调用create_order(product_id2, quantity2)返回订单号、总价追问收货信息。你我的快递到哪了AI 调用query_order(customer_name...)返回订单状态和物流。从搜索 → 下单 → 查物流全程一句话搞定。这就是 MCP 的力量。在小程序里嵌入 AI 对话入口MCP Server 在后台跑起来了现在要让小程序用户也能用上。前端集成思路在小程序底部加一个 AI 客服入口点击后弹出对话窗口对话内容通过后端转发给 Coze Agent小程序用户 → 对话接口 → 你的后端 → Coze Agent API → AI 回复 ↕ MCP Server你的商城小程序端骨架wxml!-- 页面底部浮动 AI 入口 --viewclassai-entrybindtapopenAIChatimagesrc/images/ai-icon.pngclassai-icon/textAI 助手/text/view!-- 弹出式对话窗口 --viewclasschat-panelwx:if{{showChat}}scroll-viewscroll-yclasschat-messagesviewwx:for{{messages}}wx:keyindexclassmsg {{item.role user ? msg-right : msg-left}}{{item.content}}/view/scroll-viewviewclasschat-inputinputplaceholder问我任何问题...bindinputonInputbindconfirmsendMessage/buttonbindtapsendMessage发送/button/view/view小程序端逻辑js 核心asyncsendMessage(){consttextthis.data.inputText.trim();if(!text)return;this.setData({messages:[...this.data.messages,{role:user,content:text}],inputText:});// 调用后端接口转发给 Coze Agentconstresawaitwx.request({url:https://your-backend.com/api/ai-chat/,method:POST,data:{message:text,session_id:this.data.sessionId},});this.setData({messages:[...this.data.messages,{role:assistant,content:res.data.reply}]});}后端转发Django View 核心框架csrf_exemptdefai_chat(request):小程序 AI 对话接口datajson.loads(request.body)user_messagedata.get(message,)session_iddata.get(session_id,)# 调用扣子 Coze Agent APIAgent 内部通过 MCP 调用商城工具coze_responsehttpx.post(https://api.coze.cn/v3/chat,headers{Authorization:fBearer{settings.COZE_API_KEY}},json{bot_id:settings.COZE_BOT_ID,user_id:session_idordefault,additional_messages:[{role:user,content:user_message,content_type:text}],},timeout30,)ai_replyextract_reply(coze_response.json())returnJsonResponse({reply:ai_reply,session_id:session_id})整个链路跑通后用户在小程序里说一句帮我看看有什么面膜AI 就会通过 MCP 调用商城工具搜索面膜然后返回结果。用户感知和 AI 聊天一样简单。实际发生AI 理解意图 → 调用 MCP 工具 → 获取商城数据 → 组织回复。你可能会担心用户乱说话怎么办比如帮我攻击竞品网站这种离谱要求。放心AI Agent 只会调用你注册的 MCP 工具它没有超纲发挥的能力。你定义了搜索商品、创建订单、查物流它就只会做这三件事。这就是 MCP 安全模型的核心——白名单机制。而且所有的工具调用都有日志记录你可以回溯每一次 AI 调用了什么工具、传了什么参数、返回了什么结果。出了问题一查便知。学完来练练手给 MCP Server 加优惠券工具用户下单时可领取优惠券并抵扣。定义apply_coupon(order_id, coupon_code)让 AI 在下单流程中自动询问用户是否有优惠券。加商品推荐工具根据用户购买历史推荐相关商品。买过面霜的用户推荐精华水实现简单关联推荐逻辑。把模拟数据库替换为真实 Django ORM今天用内存列表模拟数据改成真实的 Django Model 查询连接 Day10 的订单系统。加售后退换货工具用户说我想退货AI 自动查订单、发起退款流程、更新订单状态。在小程序里加语音输入调用微信小程序的wx.getRecorderManager()实现语音输入让 AI 客服支持语音对话——真正的动口不动手。配套文件day14_mcp_server.py商品搜索、订单创建、物流查询、资源声明完整实现可参考学习。本系列为梅雅达编程笔记原创首发于 CSDN。有问题评论区见
阅读完成 · 觉得有帮助?
咨询建站