这个项目做什么
这是一个 模型上下文协议(MCP)服务器 连接 克劳德桌面 到你的 MySQL数据库。它允许您通过与Claude的自然语言对话来管理库存。
关键组件
- MCP服务器 (
main.py):将数据库操作作为工具公开的Python服务器 - mysql数据库 (
database.sql):存储包含产品、位置和数量的库存数据 - Claude桌面集成:工具出现在Claude的自然语言查询界面中
建筑深潜
1.MCP(模型上下文协议)
- 目的:人工智能助手与外部系统交互的标准化方式
- 运作原理:您的服务器公开了Claude可以调用的“工具”
- 运输:使用stdio(标准输入/输出)与Claude通信
2.FastMCP框架
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(name="inventory_mcp")- FastMCP:简化MCP服务器创建的Python库
- 装饰器:
@mcp.tool()将函数转换为可调用工具 - 自动序列化:处理Claude和您的函数之间的JSON转换
3.数据库集成
db_config = {
"host": "localhost",
"user": "root",
"password": "9446122497",
"database": "aaitech_inventory"
}- 连接管理:每个工具打开/关闭自己的连接
- SQL操作:直接MySQL查询CRUD操作
- 错误处理:基本连接管理(可以改进)
4.刀具设计模式
每个工具都遵循以下模式:
- 连接 到数据库
- 执行 SQL 查询
- 过程 结果
- 关闭 连接
- 返回 结构化数据
可用工具
1. add_inventory(item_id, product_name, location, quantity)
- 目的:添加新库存或更新现有库存
- SQL语言:用途
INSERT ... ON DUPLICATE KEY UPDATE - 退货:带有详细信息的确认消息
2. remove_inventory(item_id, location, quantity)
- 目的:降低库存水平
- 安全:只有在存在足够数量的情况下才能删除
- SQL语言:
UPDATE带数量检查
3. check_stock(item_id, location)
- 目的:获取特定商品/地点的当前库存
- 退货:项目详细信息,如果找不到,则为零
- 用例:快速库存检查
4. list_inventory()
- 目的:获取所有地点的所有库存
- 退货:JSON格式的完整库存列表
- 用例:完整的库存报告
如何使用
1.设置MySQL
# Create database and table
mysql -u root -p < database.sql2.安装依赖项
uv sync3.运行开发模式
uv run mcp dev main.py4.安装在克劳德桌面
uv run mcp install main.py -n InventoryMCP5.在Claude中使用
- 打开克劳德桌面
- 在工具中启用“InventoryMCP”
- 问:“显示所有库存”或“在孟买添加5台笔记本电脑”
