0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

可联动天气+高德地图!涂鸦MCP SDK,手把手教你把传统厨电设备开发成AI美食管家

涂鸦开发者 2025-09-12 17:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上周的涂鸦技术专家直播中,我们详细演示了如何用涂鸦 MCPSDK,把家里普通的厨电设备,开发成懂天气、懂推荐、懂你的 AI 美食管家,受到了很多开发者的欢迎,并反馈想要文字版的教程,方便跟着上手实操。今天,我们就整理了一版超详细的手把手开发教程,从架构解析、代码实战,到知识库配置与智能体调试,流程完善、操作门槛低!大家也可以根据实际场景需求,大胆发挥想象,自定义开发其他更多样、更个性化的MCP 服务。


本次,我们将从以下四个方面入手,帮助大家更好理解整个开发流程:

厘清 Cook MCP 服务的架构设计

基于涂鸦 MCP SDK,掌握自定义 MCP 服务的进阶能力

在涂鸦 AI 云开发者平台,配置和调试 MCP 服务

了解智能体配置和实际使用效果


01
Cook MCP 架构设计的特别之处

1、整体架构图

74ee860a-8fbc-11f0-8ce9-92fbcf53809c.png

2、核心组件架构的设计亮点

2.1 服务启动器(源代码路径:`cook/__main__.py`)

依赖管理:自动协调服务启动顺序,解决依赖问题

健康检查:实时监管服务状态,支持自动修复故障

弹性设计:网络中断可自动重连,指数退避算法

信号处理:支持优雅关闭信号,并自动清理资源


2.2 FastMCP 服务

(`cook/recipe_mcp/recipe_mcp_server.py`)

支持双协议:HTTP API + WebSocket,适应不同客户端

声明式工具注册:通过装饰器快速添加功能,开发更便捷

类型安全:Pydantic 模型确保参数验证

健康监管:内置状态检查和性能监管


2.3 统一代理层(`cook/recipe_agent.py`)

数据代理:统一数据源访问接口

LLM 代理:封装智能推荐算法,支持多场景推荐、智能去重

缓存策略:多级缓存提升性能,减少网络请求

配置管理:支持灵活的参数配置


2.4 集成涂鸦 MCP SDK(`src/mcp_sdk/`)

认证机制:安全的签名验证和访问控制

连接管理:WebSocket 连接池和心跳检测

消息路由:高效的消息分发和处理

恢复异常:网络出现错误时可自动重连、恢复状态


02
开发前期准备

1、开发需要哪些资源?

1.1 登录涂鸦平台账号

注册并登录涂鸦 AI 云开发者平台:https://platform.tuya.com/

1.2 获取 LLMAPI 访问权限

我们推荐使用通义千问,下方是对应的大模型,调用大模型所需的 API 密钥,需在阿里云平台开通授权:

`qwen3-30b-a3b-instruct-2507`

1.3 开发环境

Python 3.10+ 环境,且支持访问涂鸦和 LLM API 的网络环境。


2、提前规划你想要实现的功能

美食管家:支持丰富的菜谱推荐和膳食计划


多场景推荐:支持每日/周、聚餐三种场景的菜谱推荐


智能去重:避免推荐相似菜品,确保菜谱多样性


科学推荐:融合天气、地点、人数、过敏原等因素


联动智能厨电:支持联动烤箱、电饭煲等电器


附近食材推荐:接入高德地图,快速定位采购点



03
实战开发:从代码到部署

1. 什么是涂鸦 MCP SDK?

1.1 MCP SDK 架构组成

753e63d2-8fbc-11f0-8ce9-92fbcf53809c.png

1.2配置关键参数

```python# Tuya MCP SDK 配置MCPSdkConfig( endpoint="wss://your-tuya-endpoint.com", # 涂鸦平台提供的 WebSocket 端点 access_id="your-access-id", # 涂鸦平台分配的访问 ID access_secret="your-access-secret", # 涂鸦平台分配的访问密钥 heartbeat_interval=30, # 心跳间隔 reconnect_interval=5, # 重连间隔)# 自定义 MCP 服务配置MCPClientConfig( server_endpoint="http://localhost:9000/mcp",# 本地 MCP 服务端点 timeout=30 # 请求超时时间)```

2、创建自定义 MCP 服务的核心代码

2.1 开发核心业务工具

```pythonfromfastmcpimportFastMCPfrompydanticimportFieldfromtypingimportAnnotatedclassRecipeMCPServer: def__init__(self, api_key:str=None, model:str="qwen-max"): self.app = FastMCP("Cook MCP Server") self.api_key = api_key self.model = model self._register_tools()
def_register_tools(self): """注册自定义工具 - 这是核心部分"""
@self.app.tool asyncdefget_recipes_by_category( category: Annotated[str, Field(description="菜谱分类:水产、早餐、荤菜等")] ) ->str: """根据分类查询菜谱""" # 实现具体业务逻辑 returnawaitself._query_recipes_by_category(category)```

2.2 集成涂鸦 MCP SDK

```pythonfrommcp_sdkimportcreate_mcpsdkasyncdefstart_cook_mcp_service(): """启动完整的 Cook MCP 服务"""
# 1. 创建自定义 MCP 服务 mcp_server = RecipeMCPServer( data_source=config.data_sourceor"url", api_key=config.api_key, model=config.model, base_url=config.base_url )
# 2. 启动本地 MCP 服务 server_task = asyncio.create_task( mcp_server.start_server(host="localhost", port=9000) )
# 3. 连接 Tuya MCP SDK asyncwithcreate_mcpsdk( endpoint="https://your-tuya-endpoint.com", access_id="your-access-id", access_secret="your-access-secret", custom_mcp_server_endpoint="http://localhost:9000/mcp" )assdk: awaitsdk.run()```

3、在涂鸦平台创建和配置 MCP 服务

3.1 创建自定义 MCP 服务

3.1.1 登录涂鸦 AI 云开发者平台,进入【MCP 管理】界面,自定义MCP 服务。

7552686e-8fbc-11f0-8ce9-92fbcf53809c.png

3.1.2 完成上述操作后,点击【添加自定义 MCP】,填写下方信息:

服务名称:美食管家

服务描述:基于 AI 的智能菜谱推荐和膳食计划服务,支持根据天气、位置、人数等因素提供个性化饮食建议

图标:上传美食相关图标


3.2 配置数据中心+获取认证信息

在【服务详情】页面,点击【添加数据中心】

选择合适的数据中心区域

复制下方配置信息:

``` 接入地址 (Endpoint):https://xxx.tuya.com Access ID:tuyaxxxxxxxxxxxx Access Secret:xxxxxxxxxxxxxxxxxxxxxxxx ```

4、本地开发和测试

4.1 环境准备和代码部署

```bash# 1. 克隆 Cook MCP 项目gitclonehttps://github.com/flyhawk1010/cook-mcp.gitcdcook-mcp# 2. 创建虚拟环境python -m venv .venvsource.venv/bin/activate # Linux/macOS# .venv\Scripts\activate # Windows# 3. 安装依赖pip install -e .```

4.2 启动服务并验证

```bash# 启动完整服务(MCP 服务 + Tuya SDK)python -m cook all \ --endpoint$MCP_ENDPOINT\ --access-id$MCP_ACCESS_ID\ --access-secret$MCP_ACCESS_SECRET\ --custom-mcp-server-endpoint http://localhost:9000/mcp \ --api-key$API_KEY\ --model$MODEL\ --base-url$BASE_URL# 验证服务状态curl http://localhost:9000/healthcurl http://localhost:9000/recipes/status```

5、在涂鸦平台调试 MCP 服务

5.1 检查服务状态

在涂鸦平台选择【MCP 管理】>【自定义 MCP 服务】

进入【服务详情】页面

在数据中心配置下,检查服务状态是否成功连接


5.2调试测试工具

5.2.1 点击【工具】选项卡,查看自动发现的工具列表(这里为菜谱功能分类)

756c5d64-8fbc-11f0-8ce9-92fbcf53809c.png

5.2.2 选择一个工具进行试运行

测试 1:按分类查询

```json { "category": "水产" } ```

测试 2:智能推荐

```json { "location":"北京三里屯", "weather":"北京今日天气为晴,最低温度 15℃,最高温度 25℃,空气质量优", "categories":"荤菜,素菜", "people_count": 4, "taste_preferences":"清淡,营养" } ```

3.点击【运行】,查看返回结果

4.确认左下角显示【调试通过】


04
配置知识库

1、创建知识库

在配置智能体之前,我们需要为智能体添加知识库,以提升智能体在特定领域的专业能力。

1.1 进入知识库管理

在智能体配置页面,找到【知识库】选项

757e03fc-8fbc-11f0-8ce9-92fbcf53809c.png

点击【创建知识库】,选择【AI Agent 知识库】

75913ff8-8fbc-11f0-8ce9-92fbcf53809c.jpg

1.2 创建菜谱知识库,并按照下方图片配置相关信息。

75a91eca-8fbc-11f0-8ce9-92fbcf53809c.jpg

2、添加知识库内容

2.1 手动添加菜谱知识

点击【新增知识】,添加你想要的菜谱信息。

75b76dd6-8fbc-11f0-8ce9-92fbcf53809c.png75cc6d9e-8fbc-11f0-8ce9-92fbcf53809c.png

2.2 批量导入知识

如果手头有大量的菜谱数据,可以点击【导入】,并按照提示完成批量知识库的上传。

3、知识库管理

在知识库列表中,拥有已发布、草稿和未发布三种状态

支持编辑和维护知识

支持搜索和筛选知识

75ddf294-8fbc-11f0-8ce9-92fbcf53809c.png

4、智能体集成知识库

在智能体配置中,可添加已完成设置的菜谱知识库。

75ecd426-8fbc-11f0-8ce9-92fbcf53809c.png

5、配置知识库的注意事项

5.1 内容格式

最好使用能统一格式的菜谱参数,如菜品名称、烹饪温度、烹饪时间等。

5.2 标签分类

为不同类型的菜谱添加分类标签,如早餐、荤菜、快手菜等。

5.3 设备兼容性

明确标注该系统适用的设备类型和品牌型号。


05
配置智能体+体验最终效果

1、创建智能体

1.1 复制下方链接,进入【我的智能体】页面,点击【创建智能体】配置基本信息:

https://platform.tuya.com/exp/ai

75fbc3c8-8fbc-11f0-8ce9-92fbcf53809c.png

2、配置智能体技能

2.1 添加官方技能

在【模型能力配置】>【技能配置】中添加:天气技能、智能家居设备控制、高德地图关键字搜索。

2.2 添加自定义 Cook MCP 服务

在【技能配置】中找到【MCP 服务】

选择【自定义 MCP 服务】

找到并添加【美食管家】服务

确认下方所有工具都已启用

756c5d64-8fbc-11f0-8ce9-92fbcf53809c.png

3、智能体提示词优化

具体提示词的话术,大家可从角色设定、背景、核心任务、规则和约束等方面,分别给智能体进行详细的提示,可参考下方图片:

76281068-8fbc-11f0-8ce9-92fbcf53809c.png763d54c8-8fbc-11f0-8ce9-92fbcf53809c.png

4、实战测试和调试效果

Q
推荐一些水产类的菜谱
智能体:[调用 get_recipes_by_category 工具]
Q
今天 4 个人吃晚餐,有什么推荐的?
智能体:[先调用天气工具获取天气],[再调用 recommend_recipes_for_dinner 工具]

5、正式发布和体验

点击【发布】并选择发布范围(仅自己、团队或公开),AI 美食管家的开发就大功告成!你可以在手机端跟它对话,咨询菜谱、规划个性化的饮食建议、推荐附近好吃的餐馆;也能联动家里的蒸箱、烤箱或电饭煲,来个一站式的懒人版自制美食。

7655ccba-8fbc-11f0-8ce9-92fbcf53809c.jpg
06
开发经验大总结

1、开发要点

采用微服务架构,实现服务间松耦合与独立扩展

工具描述尽量清晰,参数类型细分准确

考虑到所有可能出现的错误情况,并实现完善的异常处理和重试机制

使用缓存机制,避免重复计算


2、调试技巧

坚持本地优先测试,逐步部署

启用详细日志,快速定位问题

采用渐进式功能扩展策略,先部署基础功能,再逐步添加复杂功能


3、扩展建议

集成更多食谱和营养信息,丰富数据源

建立用户偏好模型,实现更精准的菜谱推荐

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1094

    浏览量

    51235
  • MCP
    MCP
    +关注

    关注

    0

    文章

    286

    浏览量

    14916
  • 涂鸦智能
    +关注

    关注

    7

    文章

    289

    浏览量

    20526
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!
    的头像 发表于 11-19 13:56 1444次阅读
    迅为Hi3403<b class='flag-5'>开发</b>板极速启航 | <b class='flag-5'>手把手</b>带你玩转核心例程,轻松上手<b class='flag-5'>AI</b>视觉!

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 576次阅读
    【迅为RK3568<b class='flag-5'>开发</b>板NPU实战】别再闲置你的NPU!<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>玩转RKNN-Toolkit2 的使用

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行移植,下篇则教您改写SDK
    的头像 发表于 07-17 14:40 3070次阅读
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>实现VGLite图形驱动适配 | 技术集结

    手把手教你如何调优Linux网络参数

    并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 669次阅读

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门!

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门! 一、视频观看 正点原子手把手教你学STM32MP257
    发表于 05-16 10:42

    请求赠阅《零基础开发AI Agent——手把手教你用扣子做智能体》

    博主好!致敬叶涛 管锴 张心雨三位AI具身智能-智能体方面的专家、导师! 《零基础开发AI Agent——手把手教你用扣子做智能体》一不懂编
    发表于 04-10 12:16

    GPU显卡维修避坑指南:手把手教你识别行业套路!

    的今天,高端显卡维修已成“暴利暗流”。虚报价、偷换配件、技术陷阱……用户稍有不慎,轻则损失数万,重则设备报废。今天小助手将揭露行业乱象,手把手教你识别套路,并推荐
    的头像 发表于 04-02 20:31 3258次阅读
    GPU显卡维修避坑指南:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>识别行业套路!

    《零基础开发AI Agent——手把手教你用扣子做智能体》

    《零基础开发AI Agent——手把手教你用扣子做智能体》是一本为普通人量身打造的AI开发指南。
    发表于 03-18 12:03

    手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程课件汇总

    为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“电子发烧友”再次联合推出《手把手教你做星闪
    发表于 03-18 10:33

    手把手教你做PC-KaihongOS笔记本电脑开发实战》课件汇总

    ”携手“电子发烧友”联合推出了 《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。 此次首发内容是《手把手教你做PC-Kaihong
    发表于 03-18 10:25

    【第四章 定时任务】手把手教你玩转新版正点原子云

    【第四章 定时任务】手把手教你玩转新版正点原子云 承接上篇,除了报警联动这个功能,原子云还有一个特色功能也是各开发者喜欢用的,定时任务功能。 【正点原子】云平台:原子云(点击登录原子
    发表于 03-13 10:19

    【第三章 警报联动手把手教你玩转新版正点原子云

    本帖最后由 jf_85110202 于 2025-3-13 14:43 编辑 【第三章 警报联动手把手教你玩转新版正点原子云 新版原子云网址:原子云(点击登录原子云) 原子云特色功能:设置
    发表于 03-12 16:05

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!
    的头像 发表于 02-17 19:40 668次阅读
    <b class='flag-5'>开发</b>者集结!《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》第二课开讲啦!

    手把手教你做星闪无人机》即将开播,锁定15日晚七点!

    ”再次联合推出《手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程,该课程与《手把手教你做PC—KaihongOS笔记本
    的头像 发表于 01-13 19:42 889次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》即将开播,锁定15日晚七点!

    手把手教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    ”携手“电子发烧友”联合推出了《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。此次首发内容是《手把手教你做PC-
    的头像 发表于 01-06 20:46 872次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑<b class='flag-5'>开发</b>实战