MySQL只读MCP服务器添加福利群:解决AI开发者的「MCP实战痛点」
该MCP服务器提供对MySQL数据库的只读访问权限。它允许您:
# 全局安装
npm install -g mysql-mcp-server
# 或在项目中本地安装
npm install mysql-mcp-server

# 克隆仓库
git clone https://github.com/dpflucas/mysql-mcp-server.git
cd mysql-mcp-server
# 安装依赖并构建
npm install
npm run build

要通过Smithery为Claude AI自动安装MySQL数据库访问MCP服务器:
npx -y @smithery/cli install @dpflucas/mysql-mcp-server --client claude
服务器需要以下环境变量:
MYSQL_HOST:数据库服务器主机名MYSQL_PORT:数据库服务器端口(默认:3306)MYSQL_USER:数据库用户名MYSQL_PASSWORD:数据库密码(可选,但建议用于安全连接)MYSQL_DATABASE:默认数据库名(可选)将以下配置添加到您的MCP设置文件中:
如果您通过npm安装(选项1):
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "您的MySQL主机",
"MYSQL_PORT": "3306",
"MYSQL_USER": "您的MySQL用户",
"MYSQL_PASSWORD": "您的MySQL密码",
"MYSQL_DATABASE": "您的默认数据库"
},
"disabled": false,
"autoApprove": []
}
}
}

如果您从源代码构建(选项2):
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/path/to/mysql-mcp-server/build/index.js"],
"env": {
"MYSQL_HOST": "您的MySQL主机",
"MYSQL_PORT": "3306",
"MYSQL_USER": "您的MySQL用户",
"MYSQL_PASSWORD": "您的MySQL密码",
"MYSQL_DATABASE": "您的默认数据库"
},
"disabled": false,
"autoApprove": []
}
}
}

列出MySQL服务器上所有可访问的数据库。
参数:无
示例:
{
"server_name": "mysql",
"tool_name": "list_databases",
"arguments": {}
}

列出指定数据库中的所有表。
参数:
database(可选):数据库名(如果未指定则使用默认值)示例:
{
"server_name": "mysql",
"tool_name": "list_tables",
"arguments": {
"database": "我的数据库"
}
}

显示特定表的架构。
参数:
database(可选):数据库名(如果未指定则使用默认值)table(必需):表名示例:
{
"server_name": "mysql",
"tool_name": "describe_table",
"arguments": {
"database": "我的数据库",
"table": "我的表"
}
}

执行只读SQL查询。
参数:
query(必需):SQL查询(仅允许SELECT、SHOW、DESCRIBE和EXPLAIN语句)database(可选):数据库名(如果未指定则使用默认值)示例:
{
"server_name": "mysql",
"tool_name": "execute_query",
"arguments": {
"database": "我的数据库",
"query": "SELECT * FROM 我的表 LIMIT 10"
}
}

要更精细地控制MySQL连接池行为,您可以配置其他参数:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "您的MySQL主机",
"MYSQL_PORT": "3306",
"MYSQL_USER": "您的MySQL用户",
"MYSQL_PASSWORD": "您的MySQL密码",
"MYSQL_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设置的兼容性:
此脚本创建一个测试数据库、表和示例数据:
# 将您的MySQL凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=您的用户名
export MYSQL_PASSWORD=您的密码
# 运行设置脚本
npm run test:setup

此脚本针对测试数据库测试每个MCP工具:
# 将您的MySQL凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=您的用户名
export MYSQL_PASSWORD=您的密码
export MYSQL_DATABASE=mcp_test_db
# 运行工具测试脚本
npm run test:tools

要同时运行设置和工具测试:
# 将您的MySQL凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=您的用户名
export MYSQL_PASSWORD=您的密码
# 运行所有测试
npm test

如果您遇到问题:
该项目根据MIT许可证授权 - 详情请参阅LICENSE文件。