使用说明
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
备注
- 默认情况下,服务器是安全的,除非显式启用写标志,否则只允许只读操作。
- 写操作仍然受到查询验证和运行时限制。
故障排除
如果您遇到问题:
- 检查服务器日志中的错误消息
- 验证您的MariaDB/MySQL凭据和连接详细信息
- 确保您的MariaDB/MySQL用户具有适当的权限
- 检查您的查询是否为只读且格式正确
灵感 https://github.com/dpflucas/mysql-mcp-server
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。