项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于安全地为大型语言模型 (LLM) 或AI助手提供对MySQL数据库的只读访问能力。它允许AI助手执行查询、获取数据库结构信息以及查看可用的数据库连接环境。

主要功能点

  • 安全查询执行: 只允许执行 'SELECT', 'SHOW', 'DESCRIBE', 'DESC' 等只读SQL语句,保障数据安全。
  • 多环境支持: 支持配置并连接到预定义的多个数据库环境(如本地、开发、测试、生产)。
  • 数据库信息获取: AI助手可以获取数据库的版本、状态、变量等信息。
  • 环境列表: AI助手可以查询哪些数据库环境已被配置并可使用。
  • 安全连接: 支持通过SSL连接数据库。
  • 查询超时控制: 防止长时间运行的查询导致系统不稳定。

安装步骤

您可以使用 npm 全局安装此服务器:

npm install -g mysql-query-mcp-server

安装完成后,您可以在命令行通过 'mysql-query-mcp' 命令直接运行此服务器。

服务器配置 (在您的AI助手/MCP客户端中配置)

MCP服务器通常由支持MCP协议的AI助手(如 Cursor IDE 等)按需启动和管理。您需要在AI助手的MCP配置文件(例如 '.cursor/mcp.json')中添加配置信息,以便AI助手知道如何启动和连接到此MySQL查询MCP服务器。

配置的关键信息通常包括:

  • 服务器的唯一标识符: 在配置文件中使用一个键名(例如 '"mysql"')来标识此服务器。
  • 显示名称 ('name'): 一个用户友好的名称,AI助手会显示它(例如 '"MySQL查询工具"')。
  • 描述 ('description'): 简要说明服务器的功能(例如 '"通过MCP访问只读MySQL"')。
  • 启动方式: 指定AI助手如何运行服务器程序。如果已全局安装,可以使用 'type: "bin"' 和 'bin: "mysql-query-mcp"'。如果想使用 'npx' 运行最新版本,可以使用 'command: "npx"' 和 'args: ["mysql-query-mcp-server@latest"]'。
  • 环境变量 ('env'): 这是配置数据库连接信息的地方。您需要在 'env' 部分设置相应的环境变量。

对于数据库连接,您需要为每个期望使用的环境('local', 'development', 'staging', 'production')配置以下环境变量:

  • '[ENVIRONMENT]_DB_HOST': 数据库主机名
  • '[ENVIRONMENT]_DB_USER': 数据库用户名
  • '[ENVIRONMENT]_DB_PASS': 数据库密码
  • '[ENVIRONMENT]_DB_NAME': 数据库名
  • '[ENVIRONMENT]_DB_PORT': 数据库端口 (可选,默认 3306)
  • '[ENVIRONMENT]_DB_SSL': 设置为 '"true"' 可为该环境启用 SSL (可选)

例如,配置本地数据库,您需要设置 'LOCAL_DB_HOST', 'LOCAL_DB_USER', 'LOCAL_DB_PASS', 'LOCAL_DB_NAME'。

此外,还可以设置一些全局环境变量:

  • 'DEBUG': 设置为 '"true"' 以启用服务器的调试日志输出。
  • 'MCP_MYSQL_SSL': 设置为 '"true"' 以全局启用 SSL 连接 (会被每个环境单独的 '*_DB_SSL' 覆盖)。
  • 'MCP_MYSQL_REJECT_UNAUTHORIZED': 设置为 '"false"' 可以禁用 SSL 证书验证 (默认为 '"true"')。

请至少配置一个环境,并确保提供了所有必需的 'HOST', 'USER', 'PASS', 'NAME' 变量,以便服务器能够创建数据库连接池。具体的JSON格式和位置请参考您AI助手的文档。

基本使用方法 (通过AI助手与服务器交互)

一旦在您的AI助手中配置并启用了此MCP服务器,您就可以通过与AI助手对话来利用它提供的工具。服务器公开了三个主要工具:

  1. 'query' 工具: 用于执行只读SQL查询。

    • 示例AI提示: "在 local 数据库环境中运行一个查询,获取 'users' 表的前10条记录:'SELECT * FROM users LIMIT 10;'"
    • 功能: 执行您指定的 'SELECT', 'SHOW', 'DESCRIBE', 'DESC' 语句,并返回结果。
  2. 'info' 工具: 用于获取数据库的详细信息。

    • 示例AI提示: "使用 info 工具查看一下 production 数据库的状态信息。"
    • 功能: 返回指定数据库环境的版本、状态、变量、进程列表、可用数据库等信息。
  3. 'environments' 工具: 用于列出已配置的可用环境。

    • 示例AI提示: "列出所有我当前可以访问的数据库环境。"
    • 功能: 返回在MCP配置中已成功加载连接信息的数据库环境列表。

请注意,具体的交互方式取决于您的AI助手如何集成和展示这些MCP工具。

信息

分类

数据库与文件