数据库自然语言管理工具

一个通过自然语言对话管理MySQL数据库库存的MCP服务器,集成Claude Desktop实现AI驱动的数据库操作。

  • by NandakrishnanR
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NandakrishnanR/MCP_server_with_claude_and_MySQL

使用说明

这个项目做什么

这是一个 模型上下文协议(MCP)服务器 连接 克劳德桌面 到你的 MySQL数据库。它允许您通过与Claude的自然语言对话来管理库存。

关键组件

  1. MCP服务器 (main.py):将数据库操作作为工具公开的Python服务器
  2. mysql数据库 (database.sql):存储包含产品、位置和数量的库存数据
  3. 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.刀具设计模式

每个工具都遵循以下模式:

  1. 连接 到数据库
  2. 执行 SQL 查询
  3. 过程 结果
  4. 关闭 连接
  5. 返回 结构化数据

可用工具

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.sql

2.安装依赖项

uv sync

3.运行开发模式

uv run mcp dev main.py

4.安装在克劳德桌面

uv run mcp install main.py -n InventoryMCP

5.在Claude中使用

  • 打开克劳德桌面
  • 在工具中启用“InventoryMCP”
  • 问:“显示所有库存”或“在孟买添加5台笔记本电脑”