SQL自然语言接口

通过Claude Desktop为本地MySQL数据库提供自然语言交互界面的MCP服务器,实现自然语言到SQL查询的转换。

  • by meanands
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 meanands/mysql-mcp

使用说明

Claude桌面版SQL MCP服务器

通过Claude Desktop与本地MySQL数据库的自然语言接口。此MCP(机器通信协议)服务器允许Claude在本地MySQL数据库上执行SQL查询,使您能够使用自然语言与数据库进行交互。

特性

  • 通过Claude实现自然语言到SQL查询的转换
  • 与本地MySQL数据库的安全连接
  • 支持多个数据库
  • 数据一致性事务管理
  • 连接池以获得更好的性能
  • 支持所有类型的SQL查询(SELECT、INSERT、UPDATE、DELETE等)

先决条件

  • Python 3.8或更高版本
  • MySQL服务器已安装并正在运行
  • Claude桌面应用程序
  • 虚拟环境(推荐)

安装

  1. 克隆此存储库:
git clone git@github.com:meanands/mysql-mcp.git
cd mysql-mcp
  1. 创建并激活虚拟环境:
# For macOS/Linux
python -m venv venv
source venv/bin/activate

# For Windows
python -m venv venv
venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建一个 .env 使用MySQL凭据在项目根目录中创建文件:
MYSQL_HOST=localhost
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
  1. 更新中的目录路径 run.sh:
# Open run.sh and replace this line:
cd /Users/yourname/code/sql-mcp
# with your actual project directory path, for example:
cd /Users/yourname/projects/mysql-mcp
  1. 使运行脚本可执行:
chmod +x run.sh

Claude桌面中的配置

  1. 打开Claude Desktop的MCP配置
  2. 添加以下配置:
{
  "sql": {
    "command": "/absolute/path/to/your/mysql-mcp/run.sh"
  }
}

替换 /absolute/path/to/your/mysql-mcp 使用项目目录的实际绝对路径。

用法

配置后,您可以使用自然语言通过Claude Desktop与数据库进行交互。示例:

  1. 选择数据库并创建表:
Use the 'employees' database and create a table for storing employee information with fields for name, email, and department.
  1. 插入数据:
Insert a new employee named John Doe with email john.doe@example.com in the Engineering department.
  1. 查询数据:
Show me all employees in the Engineering department.

重要提示

  • 在run.sh脚本和Claude Desktop配置中始终使用绝对路径
  • 在使用MCP服务器之前,确保MySQL服务器正在运行
  • 保护.env文件的安全,永远不要将其提交给版本控制
  • MCP服务器使用连接池,默认池大小为5个连接

故障排除

  1. 如果出现“连接被拒绝”错误,请确保MySQL服务器正在运行
  2. 如果遇到身份验证错误,请在.env文件中验证您的凭据
  3. 对于权限错误,请确保MySQL用户对您尝试执行的操作具有适当的权限

安全考虑

  • 将敏感凭据存储在.env文件中
  • 使用具有适当权限的MySQL用户(避免使用root)
  • 使您的虚拟环境和依赖关系保持最新
  • 如果访问非本地主机MySQL服务器,请考虑网络安全