LLM大模型之MCP·商品搜索服务

目标

探索使用MCP与商品结合的场景,让大模型能回答和理解用户的产品需求并获得需要的产品信息。

  • 用户搜索产品场景
    • 根据关键字搜索产品详情。
    • 根据多参数,如产品名称或货号搜索产品。
    • 最热门商品
  • 根据用户个性化推荐场景
    • 根据用户ID推荐商品。

实践

编写MCP服务程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 引入 fastmcp 包
from fastmcp import FastMCP
# 创建一个mcp服务
mcp = FastMCP("ProductServer")

# 定义工具,也就是实际执行的内容,类似于 RestAPI 中的 POST,mcp主要的能力都在这里体现。

# 定义根据关键字keyword搜索产品详情的工具函数
@mcp.tool()
def search_produc_by_keyword(keyword):
"""search product by keyword"""
# mock data
return {"name": keyword, "description": "小米SU7"},

# 定义获取热门商品的工具函数
@mcp.tool()
def get_popular_products():
"""List of popular products"""
# mock data
hot_products = ('[{"product_name":"iPhone 14 Pro Max", "price": 5999, "category": "Electronics"},'
'{"product_name":"小米SU7 Ultra", "price": 529999, "category": "Car"},'
'{"product_name":"红米K80", "price": 2399, "category": "Electronics"}]')

return hot_products


# 定义为指定用户获取推荐商品的工具函数
@mcp.tool()
def get_recommended_products(user_id):
"""Products recommended for users"""
# mock data
recommended_products = '{"product_name":"小米SU7 Ultra", "price": 529999, "category": "Car"}'
return recommended_products


if __name__ == "__main__":
mcp.run(transport='stdio')

运行mcp

1
fastmcp run main.py

FastMCP 提供了内置的调试工具 fastmcp dev,可实时测试服务器功能,在dos窗口,激活运行环境中,运行测试命令

1
fastmcp dev main.py

在Cherry Studio中配置MCP

  • 在mcp配置mcp
    1
    uv --directory /Users/hongjunyao/Desktop/fastmcp/ run main.py
    JrtIR3

相关

结合FastMCP创建自己的MCP服务,实现哔哩视频查询
基于FastMCP 2.0的MCP Server快速搭建指南