mcp-for-db
本服务提供自然语言操作数据库的功能,让您直接使用自然语言实现对数据库操作的需求,比如描述查询需求,分析数据库健康状态,分析复杂SQL语句,慢查询等,但是做了鉴权哦,没有权限是会执行失败的。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp_db": {
"args": [
"run",
"-m",
"server.mcp.server_mysql",
"--mode",
"stdio"
],
"command": "uv",
"disabled": true,
"env": {
"MYSQL_DATABASE": "mcp_db",
"MYSQL_HOST": "localhost",
"MYSQL_PASSWORD": "password",
"MYSQL_PORT": "3306",
"MYSQL_ROLE": "admin",
"MYSQL_USER": "root",
"PYTHONPATH": "/Users/admin/Downloads/Codes/MCP/MCP-DB/"
},
"timeout": 60,
"type": "stdio"
},
"mcp_mysql": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://localhost:3000/mcp/"
},
"mysql_mcp_server_pro": {
"disabled": true,
"timeout": 60,
"type": "sse",
"url": "http://localhost:9000/sse"
}
}
}
该服务需要配置环境变量:MYSQL_DATABASE、MYSQL_HOST、MYSQL_PASSWORD、MYSQL_PORT、MYSQL_ROLE、MYSQL_USER
服务介绍
工具列表
| 工具 | 功能说明 |
|---|---|
| sql_executor | 执行单条SQL语句,但集成了SQL安全分析器、范围检查和权限控制,且只允许使用安全的参数化查询防止SQL注入攻击。 |
| get_table_desc | 根据表名搜索数据库中对应的表字段 |
| get_table_index | 根据表名搜索数据库中对应的表索引 |
| get_table_name | 根据表中文名或表描述搜索数据库中对应的表名 |
| get_database_info | 获取数据库基本信息 |
| get_database_tables | 获取数据库所有表和对应的表注释 |
| analyze_table_stats | 分析表统计信息和列统计信息 |
| check_table_constraints | 检查表约束信息 |
| get_table_lock | 获取当前 MySQL 服务器行级锁、表级锁情况 |
| mysql_show_columns | 获取表的列信息 |
| mysql_show_create_table | 获取表的创建语句 |
| get_db_health_running | 获取当前 MySQL 的健康状态 |
| get_db_health_index_usage | 获取当前连接的MySQL库的索引使用情况,包含冗余索引情况、性能较差的索引情况、未使用索引且查询时间大于30秒top10情况 |
| get_process_list | 获取当前进程列表 |
| switch_database | 动态切换数据库连接配置 |