此 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 自动安装 MySQL 数据库访问 MCP 服务器到 Claude AI:
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": "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 设置的功能:
此脚本创建一个测试数据库、表和示例数据:
# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# 运行设置脚本
npm run test:setup
此脚本针对测试数据库测试每个 MCP 工具:
# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=mcp_test_db
# 运行工具测试脚本
npm run test:tools
要运行设置和工具测试:
# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# 运行所有测试
npm test
如果您遇到问题:
该项目根据 MIT 许可证发布 - 查看 LICENSE 文件获取详细信息。