Back to MCP directory
publicPublicdnsLocal runtime

mariadb-mcp-server

这是一个提供MariaDB/MySQL数据库访问的MCP服务器,支持列出数据库、表结构描述和执行SQL查询等功能,具有只读访问、查询验证等安全特性。

article

README

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

该 MCP 服务器提供对 MariaDB / MySQL 数据库的访问。它允许你:

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

🚀 快速开始

本 MCP 服务器可让你轻松访问 MariaDB / MySQL 数据库,执行各类常见的数据库操作。

✨ 主要特性

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

📦 安装指南

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

💻 使用示例

基础用法

list_databases

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

示例

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "sessionId": "session_id from /sse call",
    "name": "list_databases"
  }
}

list_tables

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

  • database(可选):数据库名称(若未指定,则使用默认数据库)

示例

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "sessionId": "session_id from /sse call",
    "name": "list_tables",
    "database": "my_database_name"
  }
}

describe_table

显示特定表的结构。 参数

  • database(可选):数据库名称(若未指定,则使用默认数据库)
  • table(必需):表名称

示例

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "sessionId": "session_id from /sse call",
    "name": "describe_table",
    "database": "my_database_name",
    "table": "my_table_name"
  }
}

execute_query

执行 SQL 查询。 参数

  • query(必需):SQL 查询语句
  • database(可选):数据库名称(若未指定,则使用默认数据库)

示例

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "sessionId": "session_id from /sse call",
    "name": "execute_query",
    "query": "SELECT * FROM my_table LIMIT 10"
  }
}

📚 详细文档

测试

服务器会自动测试 MariaDB,以验证其与你的 MariaDB 设置的功能兼容性。

故障排除

如果你遇到问题:

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

灵感来源

https://github.com/rjsalgado/mariadb-mcp-server

📄 许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client