上周的涂鸦技术专家直播中,我们详细演示了如何用涂鸦 MCP SDK,把家里普通的厨电设备,开发成懂天气、懂推荐、懂你的 AI 美食管家,受到了很多开发者的欢迎,并反馈想要文字版的教程,方便跟着上手实操。今天,我们就整理了一版超详细的手把手开发教程,从架构解析、代码实战,到知识库配置与智能体调试,流程完善、操作门槛低!大家也可以根据实际场景需求,大胆发挥想象,自定义开发其他更多样、更个性化的 MCP 服务。
本次,我们将从以下四个方面入手,帮助大家更好理解整个开发流程:
厘清 Cook MCP 服务的架构设计
基于涂鸦 MCP SDK,掌握自定义 MCP 服务的进阶能力
在涂鸦 AI 云开发者平台,配置和调试 MCP 服务
了解智能体配置和实际使用效果
01
Cook MCP 架构设计的特别之处
1、整体架构图

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 获取 LLM API 访问权限
我们推荐使用通义千问,下方是对应的大模型,调用大模型所需的 API 密钥,需在阿里云平台开通授权:
`qwen3-30b-a3b-instruct-2507`
1.3 开发环境
Python 3.10+ 环境,且支持访问涂鸦和 LLM API 的网络环境。
2、提前规划你想要实现的功能
美食管家:支持丰富的菜谱推荐和膳食计划
多场景推荐:支持每日/周、聚餐三种场景的菜谱推荐
智能去重:避免推荐相似菜品,确保菜谱多样性
科学推荐:融合天气、地点、人数、过敏原等因素
联动智能厨电:支持联动烤箱、电饭煲等电器
附近食材推荐:接入高德地图,快速定位采购点
03
实战开发:从代码到部署
1. 什么是涂鸦 MCP SDK?
1.1 MCP SDK 架构组成

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 开发核心业务工具
```pythonfrom fastmcp import FastMCPfrom pydantic import Fieldfrom typing import Annotatedclass RecipeMCPServer: 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 async def get_recipes_by_category( category: Annotated[str, Field(description="菜谱分类:水产、早餐、荤菜等")] ) -> str: """根据分类查询菜谱""" # 实现具体业务逻辑 return await self._query_recipes_by_category(category)```
2.2 集成涂鸦 MCP SDK
```pythonfrom mcp_sdk import create_mcpsdkasync def start_cook_mcp_service(): """启动完整的 Cook MCP 服务"""
# 1. 创建自定义 MCP 服务 mcp_server = RecipeMCPServer( data_source=config.data_source or "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 async with create_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" ) as sdk: await sdk.run()```
3、在涂鸦平台创建和配置 MCP 服务
3.1 创建自定义 MCP 服务
3.1.1 登录涂鸦 AI 云开发者平台,进入【MCP 管理】界面,自定义 MCP 服务。

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 项目git clone https://github.com/flyhawk1010/cook-mcp.gitcd cook-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 点击【工具】选项卡,查看自动发现的工具列表(这里为菜谱功能分类):

5.2.2 选择一个工具进行试运行
测试 1:按分类查询
```json { "category": "水产" } ```
测试 2:智能推荐
```json { "location": "北京三里屯", "weather": "北京今日天气为晴,最低温度 15℃,最高温度 25℃,空气质量优", "categories": "荤菜,素菜", "people_count": 4, "taste_preferences": "清淡,营养" } ```
3. 点击【运行】,查看返回结果
4. 确认左下角显示【调试通过】
04
配置知识库
1、创建知识库
在配置智能体之前,我们需要为智能体添加知识库,以提升智能体在特定领域的专业能力。
1.1 进入知识库管理
在智能体配置页面,找到【知识库】选项

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

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

2、添加知识库内容
2.1 手动添加菜谱知识
点击【新增知识】,添加你想要的菜谱信息。


2.2 批量导入知识
如果手头有大量的菜谱数据,可以点击【导入】,并按照提示完成批量知识库的上传。
3、知识库管理
在知识库列表中,拥有已发布、草稿和未发布三种状态
支持编辑和维护知识
支持搜索和筛选知识

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

5、配置知识库的注意事项
5.1 内容格式
最好使用能统一格式的菜谱参数,如菜品名称、烹饪温度、烹饪时间等。
5.2 标签分类
为不同类型的菜谱添加分类标签,如早餐、荤菜、快手菜等。
5.3 设备兼容性
明确标注该系统适用的设备类型和品牌型号。
05
配置智能体+体验最终效果
1、创建智能体
1.1 复制下方链接,进入【我的智能体】页面,点击【创建智能体】配置基本信息:
https://platform.tuya.com/exp/ai

2、配置智能体技能
2.1 添加官方技能
在【模型能力配置】>【技能配置】中添加:天气技能、智能家居设备控制、高德地图关键字搜索。
2.2 添加自定义 Cook MCP 服务
在【技能配置】中找到【MCP 服务】
选择【自定义 MCP 服务】
找到并添加【美食管家】服务
确认下方所有工具都已启用

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


4、实战测试和调试效果
Q
推荐一些水产类的菜谱
智能体:[调用 get_recipes_by_category 工具]
Q
今天 4 个人吃晚餐,有什么推荐的?
智能体:[先调用天气工具获取天气],[再调用 recommend_recipes_for_dinner 工具]
5、正式发布和体验
点击【发布】并选择发布范围(仅自己、团队或公开),AI 美食管家的开发就大功告成!你可以在手机端跟它对话,咨询菜谱、规划个性化的饮食建议、推荐附近好吃的餐馆;也能联动家里的蒸箱、烤箱或电饭煲,来个一站式的懒人版自制美食。

06
开发经验大总结
1、开发要点
采用微服务架构,实现服务间松耦合与独立扩展
工具描述尽量清晰,参数类型细分准确
考虑到所有可能出现的错误情况,并实现完善的异常处理和重试机制
使用缓存机制,避免重复计算
2、调试技巧
坚持本地优先测试,逐步部署
启用详细日志,快速定位问题
采用渐进式功能扩展策略,先部署基础功能,再逐步添加复杂功能
3、扩展建议
集成更多食谱和营养信息,丰富数据源
建立用户偏好模型,实现更精准的菜谱推荐
全部0条评论
快来发表一下你的评论吧 !