MySQL数据库交互服务器

一个使用Model Context Protocol (MCP)与MySQL数据库交互的服务器,提供标准化的API接口和数据库操作功能。

  • by aqaranewbiz
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aqaranewbiz/mysql-aqaranewbiz

使用说明

SQL MCP服务器

该项目是使用Smithery的Model Context Protocol(MCP)与MySQL数据库进行交互的服务器。

安装

通过Smithery安装

要通过Smithery自动安装MySQL Server for Claude Desktop,请执行以下操作:

npx -y @smithery/cli install @aqaranewbiz/mysql-aqaranewbiz --client claude

手动安装

npx @aqaranewbiz/mysql-aqaranewbiz

配置

服务器要求在MCP设置配置文件中设置以下环境变量:

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@aqaranewbiz/mysql-aqaranewbiz"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

可用工具

1.connect_db

使用提供的凭据建立与MySQL数据库的连接。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2.查询

使用可选的准备语句参数执行SELECT查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});

3.执行

使用可选的准备语句参数执行INSERT、UPDATE或DELETE查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "john@example.com"]
  }
});

4.列表表

列出连接数据库中的所有表。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables",
  arguments: {}
});

5.描述表

获取特定表的结构。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

主要功能

  • 连接和运行MySQL数据库并执行查询
  • 通过MCP协议提供标准化API
  • 基于FastAPI的RESTful API端点
  • 通过环境变量管理设置

开始

基本要求

  • Python 3.11或更高版本
  • SQL服务器
  • Docker(可选)

首选参数

  1. .env 创建文件:
MYSQL_HOST=your_mysql_host
MYSQL_USER=your_mysql_user
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=your_database_name

安装方法

本地安装(推荐)

  1. 创建和激活Python虚拟环境:
# Windows
python -m venv venv
venv\Scripts\activate

# macOS/Linux
python3 -m venv venv
source venv/bin/activate
  1. 依赖性安装:
pip install -r requirements.txt
  1. 服务器运行:
python mcp_server.py

安装Docker

  1. 构建Docker映像:
docker build -t mysql-mcp-server .
  1. 运行容器:
docker run -e MYSQL_HOST=host -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db mysql-mcp-server

本地开发设置

  1. 设置开发环境:
# 개발용 의존성 설치
pip install -r requirements-dev.txt  # 필요한 경우 생성

# 코드 포맷팅 및 린팅 설정
pip install black flake8
  1. 执行代码:
# 개발 모드로 실행
python mcp_server.py --dev
  1. 运行测试:
# 테스트 실행
python -m pytest tests/

API端点

查询服务器信息

GET /status

返回服务器的状态和可用工具列表。

运行查询

POST /execute

运行MySQL查询并返回结果。

开发指南

项目结构

@MCP-Server-for-Smithery/
├── mcp_server.py      # 메인 서버 코드
├── requirements.txt   # Python 의존성
├── Dockerfile        # Docker 설정
├── .env              # 환경 변수 (템플릿)
└── tests/            # 테스트 코드

添加新功能

  1. mcp_server.py在中添加新工具
  2. 所需的依赖性 requirements.txt添加到
  3. 编写测试代码
  4. 重新构建Docker映像(使用Docker时)

故障排除

常见问题

  1. 连接错误:

    • 验证是否运行了MySQL服务器
    • 验证环境变量设置是否正确
    • 验证本地安装是否安装了MySQL客户端库
  2. 查询执行错误:

    • 检查SQL语法
    • 验证数据库权限
    • 在本地安装时验证MySQL连接器版本

记录

默认情况下,服务器会将日志记录到标准输出中。要在本地安装时调整日志级别,请:

python mcp_server.py --log-level DEBUG

要查看使用Docker时的日志,请:

docker logs [container-id]

贡献

  1. 创建问题
  2. 创建分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add some AmazingFeature')
  4. 分支推送(git push origin feature/AmazingFeature)
  5. 创建Pull Request

许可证

该项目在MIT许可下分发。有关详细信息,请访问 LICENSE 请参考文件。

联系方式

如果有疑问,请生成问题。