返回市场
MariaDB-MCP服务器

MariaDB-MCP服务器

作者:rjsalgado14 星标更新:2025-10-31

项目介绍

MariaDB / MySQL 数据库访问 MCP 服务器

MCP 已通过 MCP 审查认证 https://mcpreview.com/mcp-servers/rjsalgado/mariadb-mcp-server

此 MCP 服务器提供对 MariaDB / MySQL 数据库的访问。

它允许您:

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

安全特性

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

安装

方案 1:从 NPM 安装(推荐)

# 全局安装
npm install -g mariadb-mcp-server

# 或在项目中本地安装
npm install mariadb-mcp-server

方案 2:从源码构建

# 克隆仓库
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: false
  • MARIADB_ALLOW_UPDATE: false
  • MARIADB_ALLOW_DELETE: false
  • MARIADB_TIMEOUT_MS: 10000
  • MARIADB_ROW_LIMIT: 1000

添加到 MCP 设置

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

如果通过 npm 安装(方案 1):

{
  "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": []
    }
  }
}

如果从源码构建(方案 2):

{
  "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": []
    }
  }
}

可用工具

"server_name": "mariadb""server_name": "mysql"

list_databases

列出 MariaDB / MySQL 服务器上所有可访问的数据库。 参数:无

示例

{
  "server_name": "mariadb",
  "tool_name": "list_databases",
  "arguments": {}
}

list_tables

列出指定数据库中的所有表。

参数

  • database(可选):数据库名(未指定时使用默认值)

示例

{
  "server_name": "mariadb",
  "tool_name": "list_tables",
  "arguments": {
    "database": "my_database"
  }
}

describe_table

显示特定表的结构。

参数

  • database(可选):数据库名(未指定时使用默认值)
  • table(必需):表名

示例

{
  "server_name": "mariadb",
  "tool_name": "describe_table",
  "arguments": {
    "database": "my_database",
    "table": "my_table"
  }
}

execute_query

执行 SQL 查询。

参数

  • query(必需):SQL 查询
  • database(可选):数据库名(未指定时使用默认值)

示例

{
  "server_name": "mariadb",
  "tool_name": "execute_query",
  "arguments": {
    "database": "my_database",
    "query": "SELECT * FROM my_table LIMIT 10"
  }
}

测试

服务器包括测试脚本以验证与您的 MariaDB / MySQL 设置的功能:

1. 设置测试数据库

此脚本创建一个测试数据库、表和示例数据:

# 将您的 MariaDB / MySQL 凭据设置为环境变量
export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=your_username
export MARIADB_PASSWORD=your_password
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

# 运行设置脚本
npm run test:setup

2. 测试 MCP 工具

此脚本针对测试数据库测试每个 MCP 工具:

####
# 将您的 MariaDB / MySQL 凭据设置为环境变量
MARIADB_HOST=localhost
MARIADB_PORT=3306
MARIADB_USER=your_username
MARIADB_PASSWORD=your_password
MARIADB_DATABASE=mcp_test_db
MARIADB_ALLOW_INSERT=false
MARIADB_ALLOW_UPDATE=false
MARIADB_ALLOW_DELETE=false
MARIADB_TIMEOUT_MS=10000
MARIADB_ROW_LIMIT=1000
MARIADB_DEBUG_SQL=true
####
export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=your_username
export MARIADB_PASSWORD=your_password
export MARIADB_DATABASE=mcp_test_db
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

# 运行工具测试脚本
npm run test:tools

3. 运行所有测试

要运行设置和工具测试:

# 将您的 MariaDB / MySQL 凭据设置为环境变量
export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=your_username
export MARIADB_PASSWORD=your_password
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

# 运行所有测试
npm test

故障排除

如果您遇到问题:

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

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

许可证

该项目根据 MIT 许可证发布 - 查看 LICENSE 文件获取详细信息。