mysql服务器
--- > 对于中文文档,请参见 --- 一个提供MySQL数据库操作的模型上下文协议服务器。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mysql": {
"args": [
"-y",
"@fhuang/mcp-mysql-server"
],
"command": "npx",
"env": {
"MYSQL_DATABASE": "your_database",
"MYSQL_HOST": "your_host",
"MYSQL_PASSWORD": "your_password",
"MYSQL_USER": "your_user"
}
}
}
}
该服务需要配置环境变量:MYSQL_DATABASE、MYSQL_HOST、MYSQL_PASSWORD、MYSQL_USER
服务介绍
@fhuang/mcp-mysql-server
[English | 中文文档]
有关中文文档,请参阅 README.zh-CN.md
这是一个提供 MySQL 数据库操作的 Model Context Protocol 服务器。该服务器通过标准化接口使 AI 模型能够与 MySQL 数据库进行交互。
安装
通过 Smithery 安装
要通过 Smithery 自动安装适用于 Claude Desktop 的 MySQL 服务器:
npx -y @smithery/cli install @fhuang/mcp-mysql-server --client claude
手动安装
npx @fhuang/mcp-mysql-server
配置
服务器需要在您的 MCP 设置配置文件中设置以下环境变量:
推荐使用
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server", "mysql://user:password@localhost:port/database"],
}
}
}
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server"],
"env": {
"MYSQL_HOST": "your_host",
"MYSQL_USER": "your_user",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
运行 evals
evals 包会加载一个 mcp 客户端,然后运行 index.ts 文件,因此在测试之间无需重新构建。您可以通过在 npx 命令前加上环境变量来加载它们。完整文档请参见 这里。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
可用工具
1. connect_db
使用提供的凭据建立与 MySQL 数据库的连接。
use_mcp_tool({
server_name: "mysql",
tool_name: "connect_db",
arguments: {
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
}
});
2. query
执行带有可选预处理语句参数的 SELECT 查询。
use_mcp_tool({
server_name: "mysql",
tool_name: "query",
arguments: {
sql: "SELECT * FROM users WHERE id = ?",
params: [1]
}
});
3. execute
执行带有可选预处理语句参数的 INSERT、UPDATE 或 DELETE 查询。
use_mcp_tool({
server_name: "mysql",
tool_name: "execute",
arguments: {
sql: "INSERT INTO users (name, email) VALUES (?, ?)",
params: ["John Doe", "john@example.com"]
}
});
4. list_tables
列出已连接数据库中的所有表。
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables",
arguments: {}
});
5. describe_table
获取特定表的结构。
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
6. show_statement
执行 SHOW 语句(如 SHOW STATUS, SHOW VARIABLES 等)。
use_mcp_tool({
server_name: "mysql",
tool_name: "show_statement",
arguments: {
sql: "SHOW VARIABLES"
}
});
7. explain
使用 EXPLAIN 分析 SQL 查询性能。返回包括访问类型、检查的行数和可能的优化在内的执行计划详细信息。
use_mcp_tool({
server_name: "mysql",
tool_name: "explain",
arguments: {
sql: "SELECT * FROM users WHERE id = ?"
}
});
特性
- 安全连接处理并自动清理
- 支持带查询参数的预处理语句
- 全面的错误处理和验证
- TypeScript 支持
- 自动连接管理
安全性
- 使用预处理语句防止 SQL 注入
- 通过环境变量支持安全密码处理
- 在执行前验证查询
- 完成后自动关闭连接
错误处理
服务器为常见问题提供了详细的错误消息:
- 连接失败
- 无效查询
- 缺少参数
- 数据库错误
贡献
欢迎贡献!请随时向 https://github.com/huangfeng19820712/mcp-mysql-server 提交 Pull Request
许可证
MIT