mcpField
M
MySQL Database Access MCP Server

MySQL Database Access MCP Server

本地服务
github.com/allizwellai数据库179 周前更新

关于 MySQL Database Access MCP Server

MySQL Database Access MCP Server 为 MCP 客户端提供 MySQL 数据库的只读访问,适合需要检查数据库结构和查询数据的场景。它通过查询校验、超时和行数限制约束查询行为。

主要功能

  1. 01列出可访问的数据库
  2. 02列出数据库中的表
  3. 03查看表结构
  4. 04执行只读 SQL 查询
  5. 05查询校验与资源限制

适用场景

  1. 01盘点 MySQL 实例中的数据库和表
  2. 02检查表字段与结构
  3. 03运行 SELECT 等只读查询

MCP 相关

作为 MCP 服务,它向客户端提供数据库列表、表列表、表结构查看和只读 SQL 查询工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mysql-mcp-server-allizwellai": {
"command": "npx",
"args": [
"-y",
"mysql-mcp-server"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>"
}
}
}
}
启动命令npx -y mysql-mcp-server
需要配置的环境变量
MYSQL_HOST
MYSQL_PORT
MYSQL_USER
MYSQL_PASSWORD密钥
MYSQL_DATABASE

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmysql-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mysql-mcp-server MCP 服务

npm version smithery badge

MySQL 数据库访问 MCP 服务

此 MCP 服务提供对 MySQL 数据库的只读访问权限。它支持以下操作:

  • 列出可用数据库
  • 列出数据库中的表
  • 描述表结构
  • 执行只读 SQL 查询

安全功能

  • 只读访问:仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句
  • 查询验证:防止 SQL 注入并阻止任何数据修改操作
  • 查询超时:防止长时间运行的查询消耗资源
  • 行数限制:防止返回过多数据

安装

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/allizwellai/mysql-mcp-server.git
cd mysql-mcp-server

# Install dependencies and build
npm install
npm run build
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": []
    }
  }
}

可用工具

list_databases

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

参数:无

示例:

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

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

参数:

  • database(可选):数据库名称(未指定时使用默认数据库)

示例:

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

显示指定表的结构。

参数:

  • database(可选):数据库名称(未指定时使用默认数据库)
  • table(必填):表名称

示例:

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

执行只读 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 配置是否兼容:

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 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。