Skip to main content
Glama

MySQL Database Access

npm 版本 铁匠徽章

MySQL 数据库访问 MCP 服务器

此 MCP 服务器提供对 MySQL 数据库的只读访问权限。它允许您:

  • 列出可用的数据库

  • 列出数据库中的表

  • 描述表模式

  • 执行只读 SQL 查询

安全功能

  • 只读访问:仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句

  • 查询验证:防止 SQL 注入并阻止任何数据修改尝试

  • 查询超时:防止长时间运行的查询消耗资源

  • 行限制:防止返回过多的数据

Related MCP server: MCP Server for MySQL

安装

1. 使用以下方法之一进行安装:

从 NPM 安装

# Install globally npm install -g mysql-mcp-server # Or install locally in your project npm install mysql-mcp-server

从源代码构建

# Clone the repository git clone https://github.com/dpflucas/mysql-mcp-server.git cd mysql-mcp-server # Install dependencies and build npm install npm run build

通过 Smithery 安装

要通过Smithery自动为 Claude AI 安装 MySQL 数据库访问 MCP 服务器:

npx -y @smithery/cli install @dpflucas/mysql-mcp-server --client claude

2.配置环境变量

服务器需要以下环境变量:

  • MYSQL_HOST :数据库服务器主机名

  • MYSQL_PORT :数据库服务器端口(默认值:3306)

  • MYSQL_USER :数据库用户名

  • MYSQL_PASSWORD :数据库密码(可选,但建议用于安全连接)

  • MYSQL_DATABASE :默认数据库名称(可选)

3. 添加到 MCP 设置

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

如果您通过 npm 安装(选项 1):

{ "mcpServers": { "mysql": { "command": "npx", "args": ["mysql-mcp-server"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }

如果您从源代码构建(选项 2):

{ "mcpServers": { "mysql": { "command": "node", "args": ["/path/to/mysql-mcp-server/build/index.js"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }

可用工具

列出数据库

列出 MySQL 服务器上所有可访问的数据库。

参数:无

例子

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

列表表

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

参数

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

例子

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

描述表

显示特定表的模式。

参数

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

  • table (必填):表名

例子

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

执行查询

执行只读 SQL 查询。

参数

  • query (必需):SQL 查询(仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句)

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

例子

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

高级连接池配置

为了更好地控制 MySQL 连接池行为,您可以配置其他参数:

{ "mcpServers": { "mysql": { "command": "npx", "args": ["mysql-mcp-server"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database", "MYSQL_CONNECTION_LIMIT": "10", "MYSQL_QUEUE_LIMIT": "0", "MYSQL_CONNECT_TIMEOUT": "10000", "MYSQL_IDLE_TIMEOUT": "60000", "MYSQL_MAX_IDLE": "10" }, "disabled": false, "autoApprove": [] } } }

这些高级选项允许您:

  • MYSQL_CONNECTION_LIMIT :控制池中的最大连接数(默认值:10)

  • MYSQL_QUEUE_LIMIT :设置排队的最大连接请求数(默认值:0,无限制)

  • MYSQL_CONNECT_TIMEOUT :以毫秒为单位调整连接超时(默认值:10000)

  • MYSQL_IDLE_TIMEOUT :配置连接在释放之前可以空闲多长时间(以毫秒为单位)

  • MYSQL_MAX_IDLE :设置池中保留的最大空闲连接数

测试

该服务器包含测试脚本,用于验证 MySQL 设置的功能:

1. 设置测试数据库

该脚本创建测试数据库、表和示例数据:

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run the setup script npm run test:setup

2. 测试 MCP 工具

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

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password export MYSQL_DATABASE=mcp_test_db # Run the tools test script npm run test:tools

3. 运行所有测试

要运行设置和工具测试:

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run all tests npm test

故障排除

如果您遇到问题:

  1. 检查服务器日志中的错误消息

  2. 验证您的 MySQL 凭据和连接详细信息

  3. 确保您的 MySQL 用户具有适当的权限

  4. 检查您的查询是否为只读且格式正确

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dpflucas/mysql-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server