关于 MariaDB / MySQL Database Access MCP Server
为 MCP 客户端提供 MariaDB 和 MySQL 数据库访问的 MCP 服务,支持数据库与表发现、结构查看和 SQL 执行。默认只读,也可配置写入权限。
主要功能
- 01列出数据库和表
- 02查看表结构
- 03执行 SQL 查询
- 04默认启用只读访问
- 05可配置写入权限与查询限制
适用场景
- 01发现可访问的数据库
- 02查询前检查表结构
- 03对 MariaDB 或 MySQL 执行受限查询
- 04启用指定写入操作
MCP 相关
将 MariaDB 和 MySQL 的数据库列表、表列表、结构查看及 SQL 执行作为 MCP 工具提供。默认只读,写入权限可配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
mcp.json · 通用配置
启动命令
npx -y mariadb-mcp-server需要配置的环境变量
MARIADB_HOSTMARIADB_PORTMARIADB_USERMARIADB_PASSWORD密钥MARIADB_DATABASEMARIADB_ALLOW_INSERTMARIADB_ALLOW_UPDATEMARIADB_ALLOW_DELETEMARIADB_TIMEOUT_MSMARIADB_ROW_LIMIT本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
4收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
MariaDB / MySQL MCP 服务
此 MCP 服务向 Claude Desktop、VS Code 等 MCP 客户端及其他兼容工具提供 MariaDB 和 MySQL 数据库访问能力。
它提供以下工具:
- 列出可用数据库
- 列出数据库中的表
- 描述表结构
- 执行 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
注意事项
- 此服务默认安全,除非明确启用写入标志,否则只允许只读操作。
- 写入操作仍受查询验证和运行时限制约束。
故障排除
如果遇到问题:
- 检查服务日志中的错误消息
- 确认 MariaDB/MySQL 凭据和连接信息
- 确保 MariaDB/MySQL 用户具有适当的权限
- 检查查询是否为只读且格式正确
灵感来源 https://github.com/dpflucas/mysql-mcp-server
许可证
此项目采用 MIT License 许可,详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。