MariaDB/MySQL数据库访问MCP服务

MariaDB/MySQL数据库访问MCP服务是一个提供对MariaDB/MySQL数据库访问的中间件服务。它允许用户列出可用的数据库、列出数据库中的表、描述表结构以及执行SQL查询。该服务默认提供只读访问,具有查询验证、查询超时和行限制等安全特性,以确保数据库的安全和稳定运行。

  • by bretoreta
  • 更新于
在 GitHub 查看 bretoreta/mariadb-mcp-server

使用说明

基本能力

产品定位

MariaDB/MySQL数据库访问MCP服务是一个中间件服务,旨在提供安全、高效的MariaDB/MySQL数据库访问能力。

核心功能

  • 列出可用的数据库
  • 列出数据库中的表
  • 描述表结构
  • 执行SQL查询

安全特性

  • 默认只读访问: 支持SELECT、SHOW、DESCRIBE和EXPLAIN操作
  • 查询验证: 防止SQL注入并阻止任何数据修改尝试
  • 查询超时: 防止长时间运行的查询消耗资源
  • 行限制: 防止返回过多数据

适用场景

  • 数据库查询和分析
  • 数据库结构查看和管理
  • 数据报表生成
  • 数据库监控

工具列表

  • list_databases: 列出MariaDB/MySQL服务器上所有可访问的数据库
  • list_tables: 列出指定数据库中的所有表
  • describe_table: 显示特定表的模式
  • execute_query: 执行SQL查询

使用教程

使用依赖

确保已安装Node.js和pnpm。

安装教程

选项1: 从源代码构建

# 克隆仓库
git clone https://github.com/bretoreta/mariadb-mcp-server.git
cd mariadb-mcp-server

# 安装依赖并构建
pnpm install
pnpm run build

2. 配置环境变量

服务器需要以下环境变量:

  • MARIADB_HOST: 数据库服务器主机名
  • MARIADB_PORT: 数据库服务器端口(默认: 3306)
  • MARIADB_USER: 数据库用户名
  • MARIADB_PASSWORD: 数据库密码
  • MARIADB_DATABASE: 默认数据库名称(可选)
  • MARIADB_ALLOW_INSERT: false
  • MARIADB_ALLOW_UPDATE: false
  • MARIADB_ALLOW_DELETE: false
  • MARIADB_TIMEOUT_MS: 10000
  • MARIADB_ROW_LIMIT: 1000

3. 添加到MCP设置

将以下配置添加到您的MCP设置文件中:

如果您从源代码构建:

{
  "mcpServers": {
    "mariadb": {
      "command": "node",
      "args": ["/path/to/mariadb-mcp-server/dist/index.js"],
      "env": {
        "MARIADB_HOST": "your-host",
        "MARIADB_PORT": "3306",
        "MARIADB_USER": "your-user",
        "MARIADB_PASSWORD": "your-password",
        "MARIADB_DATABASE": "your-default-database",
        "MARIADB_ALLOW_INSERT": "false",
        "MARIADB_ALLOW_UPDATE": "false",
        "MARIADB_ALLOW_DELETE": "false",
        "MARIADB_TIMEOUT_MS": "10000",
        "MARIADB_ROW_LIMIT": "1000",
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

调试方式

如果遇到问题:

  1. 检查服务器日志以获取错误消息
  2. 验证您的MariaDB凭据和连接详细信息
  3. 确保您的MariaDB用户具有适当的权限
  4. 检查您的查询是否为只读并正确格式化