MariaDB/MySQL MCP服务器

该MCP服务器将MariaDB和MySQL数据库暴露给MCP客户端,提供数据库列表、表结构查询和SQL执行等功能。

  • by rjsalgado
  • JavaScript
  • 本地部署
  • 14 星标
  • 更新于
在 GitHub 查看 rjsalgado/mariadb-mcp-server

使用说明

MariaDB/MySQL MCP服务器

此MCP服务器将MariaDB和MySQL数据库暴露给MCP客户端,如Claude Desktop、VS Code和其他兼容工具。

它提供了以下工具:

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

特性

  • 默认情况下是安全的:默认情况下启用只读访问
  • 查询验证以阻止不允许的语句并降低注入风险
  • 通过环境变量配置写入权限
  • 超时和行限制保护
  • MariaDB驱动程序返回的插入ID和BIGINT值的数字安全

安装

选项1:从npm安装

npm install -g mariadb-mcp-server

选项2:本地安装

npm install mariadb-mcp-server

选项3:从源代码构建

git clone https://github.com/rjsalgado/mariadb-mcp-server.git
cd mariadb-mcp-server
npm install
npm run build

配置

启动服务器之前,请设置以下环境变量:

  • MARIADB_HOST:数据库主机
  • MARIADB_PORT:数据库端口(默认值: 3306)
  • MARIADB_USER:数据库用户名
  • MARIADB_PASSWORD:数据库密码
  • MARIADB_DATABASE:默认数据库名称(可选)
  • MARIADB_ALLOW_INSERT:启用 INSERT 声明(true/false)
  • MARIADB_ALLOW_UPDATE:启用 UPDATE 声明(true/false)
  • MARIADB_ALLOW_DELETE:启用 DELETE 声明(true/false)
  • MARIADB_TIMEOUT_MS:查询超时(毫秒)(默认值: 10000)
  • MARIADB_ROW_LIMIT:返回的最大行数(默认值: 1000)

例子:

export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=myuser
export MARIADB_PASSWORD=mypassword
export MARIADB_DATABASE=mydb
export MARIADB_ALLOW_INSERT=false
export MARIADB_ALLOW_UPDATE=false
export MARIADB_ALLOW_DELETE=false
export MARIADB_TIMEOUT_MS=10000
export MARIADB_ROW_LIMIT=1000

MCP配置

使用npm包

{
  "mcpServers": {
    "mariadb": {
      "command": "npx",
      "args": ["mariadb-mcp-server"],
      "env": {
        "MARIADB_HOST": "your-host",
        "MARIADB_PORT": "3306",
        "MARIADB_USER": "your-user",
        "MARIADB_PASSWORD": "your-password",
        "MARIADB_DATABASE": "your-database",
        "MARIADB_ALLOW_INSERT": "false",
        "MARIADB_ALLOW_UPDATE": "false",
        "MARIADB_ALLOW_DELETE": "false",
        "MARIADB_TIMEOUT_MS": "10000",
        "MARIADB_ROW_LIMIT": "1000"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

使用内置的本地服务器

{
  "mcpServers": {
    "mariadb": {
      "command": "node",
      "args": ["/absolute/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-database",
        "MARIADB_ALLOW_INSERT": "false",
        "MARIADB_ALLOW_UPDATE": "false",
        "MARIADB_ALLOW_DELETE": "false",
        "MARIADB_TIMEOUT_MS": "10000",
        "MARIADB_ROW_LIMIT": "1000"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

可用工具

服务器注册了以下MCP工具:

list_databases

列出配置用户可访问的所有数据库。

list_tables

列出特定数据库中的表。

参数:

  • database (可选):要检查的数据库名称

describe_table

返回特定表的架构。

参数:

  • database (可选):数据库名称
  • table (必填):表名

execute_query

执行SQL查询。

参数:

  • database (可选):数据库名称
  • query (必需):要运行的SQL语句

测试

该存储库包括根据MariaDB或MySQL实例验证服务器的脚本。

npm run test:setup
npm run test:tools

或者把所有东西都放在一起:

npm test

备注

  • 默认情况下,服务器是安全的,除非显式启用写标志,否则只允许只读操作。
  • 写操作仍然受到查询验证和运行时限制。

故障排除

如果您遇到问题:

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

灵感 https://github.com/dpflucas/mysql-mcp-server

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。