MCP服务器:杂货店模拟
这是一个Python模型上下文协议(MCP)服务器,它公开了与杂货店模拟数据库交互的工具 Database/grocery_simulation.db.
工具
list_products(query?, limit?, offset?, confirmation_token?):列出可用产品的价格/重量/单位。需要确认。get_user_info(user_id? | phone? | email?, confirmation_token?):返回用户资料和钱包余额。需要确认。get_order_history(user_id? | phone? | email?, start_date?, end_date?, limit?, offset?, confirmation_token?):列出包含项目的过去订单。需要确认。place_order(items_json, user_id? | phone? | email?, confirmation_token?):下订单时,请填写\[{“名称”:“牛奶”,“数量”:2}\]。需要确认。cancel_order(user_id? | phone? | email?, order_id? | order_date? | products_json?, confirmation_token?):取消未送达的订单。需要确认。confirm(token, proceed=true):批准或取消待处理操作的第二步。
确认流程
所有工具(包括读取)都受到确认层的保护。第一次调用返回a Token 以及人类可读性 Summary。要继续,请致电 confirm 使用令牌(或取消)。确认后,服务器执行存储的动作。
设置
- 确保SQLite数据库存在于
Database/grocery_simulation.db。您可以通过运行来重新生成它Database/databaseCreation.py. - 使用Python 3.11+。
- 安装依赖项:
- 如果需要,激活您的virtualenv。 - pip install -r server/requirements.txt
运行(stdio)
python server/mcp_server.py
从ChatGPT(MCP)连接
- 在ChatGPT中,添加一个指向以下命令的模型上下文协议(MCP)服务器:
python带argsserver/mcp_server.py(或绝对路径)。该应用程序将使用stdio进行通信。
备注
- 产品名称必须与中的条目匹配
Products表中按产品名称列出的订购/取消信息。 - 仅允许取消以下订单
Status != 'Delivered'退款记录在Wallet作为积极的RECHARGE与订单关联。 - 钱包余额是用户所有钱包交易的总和。
