b

bretoreta

@bretoreta/mariadb-mcp-server
0 Stars 352 次浏览 bretoreta 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

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

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

它允许您:

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

安全特性

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

安装

选项 1:从源代码构建

bash

克隆仓库

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 设置文件中:

如果您是从源代码构建的:
json
{
"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 服务器上所有可访问的数据库。
参数: 无

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

list_tables

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

参数:

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

示例:
json
{
"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 (必需): 表名称

示例:
json
{
"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 (可选): 数据库名称(未指定时使用默认值)

示例:
json
{
"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 文件获取详细信息。

相关 MCP 服务