MySQL性能调优MCP
用于MySQL性能调优和分析的模型上下文协议(MCP)服务器。
概述
mysqltuner_mcp 通过模型上下文协议提供人工智能驱动的MySQL数据库性能分析。它提供了查询优化、索引推荐、健康监测等工具
特性
性能分析
慢速查询检测 :从performance_schema中识别慢速查询
查询分析 :获取详细的解释计划和建议
表统计 :分析表大小、行数和碎片
报表分析 :分析临时表、排序和完整扫描的SQL语句
指标优化
索引建议 :基于查询模式的人工智能建议
未使用的索引查找器 :识别从不读取的索引
重复检测 :查找冗余和重叠的索引
索引统计 :基数、选择性和使用指标
健康监测
健康检查 :带评分的综合数据库健康评估
活动查询 :实时查询监控
等待事件分析 :识别I/O并锁定瓶颈
配置审查 :设置分析和建议
存储引擎分析
发动机统计 :分析存储引擎的使用和分布
碎片检测 :使用OPTIMIZE建议查找碎片表
自动增量分析 :检测接近溢出限制的列
InnoDB分析
InnoDB状态 :分析SHOW ENGINE INNODB状态
缓冲池分析 :按模式和表详细说明缓冲池使用情况
交易分析 :监视事务、锁等待和死锁
内存分析
内存计算 :计算每个线程和全局缓冲区的使用情况
按主机/用户划分的内存 :按连接源细分内存使用情况
表缓存分析 :分析表打开缓存效率
复制监控
主/从状态 :监视复制运行状况和延迟
加莱拉星团 :MariaDB/Percona的完整Galera集群状态
组复制 :MySQL组复制监控
证券分析
安全审计 :检查匿名用户、弱密码、危险权限
用户权限 :分析各级用户权限
审核日志 :检查审核日志记录配置
资源和提示
内置最佳实践文档
常见调优任务的预配置提示
指数优化指南
配置优化指南
安装
来源
复制 git clone https://github.com/yourusername/mysqltuner_mcp.git
cd mysqltuner_mcp
pip install -e .
使用pip(发布时)
复制 pip install mysqltuner_mcp
配置
环境变量
变量
描述
默认值
MYSQL_URI
MySQL连接URI(必需)
-
MYSQL_POOL_SIZE
连接池大小
5
MYSQL_SSL
启用SSL/TLS连接
false
MYSQL_SSL_CA
CA证书文件的路径
-
MYSQL_SSL_CERT
客户端证书文件的路径
-
MYSQL_SSL_KEY
客户端私钥文件的路径
-
MYSQL_SSL_VERIFY_CERT
验证服务器证书
true
MYSQL_SSL_VERIFY_IDENTITY
验证服务器主机名是否与证书匹配
false
连接URI格式
环境变量
复制 export MYSQL_URI="mysql://user:password@host:3306/database"
export MYSQL_SSL=true
export MYSQL_SSL_CA="/path/to/ca.pem" # Optional: CA certificate for verification
连接URI查询参数
复制 export MYSQL_URI="mysql://user:password@host:3306/database?ssl=true&ssl_ca=/path/to/ca.pem"
用法
运行服务器
服务器支持三种传输模式: 标准 (默认), 上海证券交易所 ,以及 可流式传输http .
复制 # As a module
python -m mysqltuner_mcp
# Using the entry point
mysqltuner-mcp
# Explicitly specifying stdio mode
python -m mysqltuner_mcp --mode stdio
SSE模式(服务器发送事件)
使用服务器发送事件的HTTP传输,适用于基于web的MCP客户端:
复制 # Start SSE server on default port 8080
python -m mysqltuner_mcp --mode sse
# Specify custom host and port
python -m mysqltuner_mcp --mode sse --host 127.0.0.1 --port 3000
# Enable debug mode
python -m mysqltuner_mcp --mode sse --debug
SSE端点:
http://<host>:<port>/sse -SSE连接端点
http://<host>:<port>/messages/ -消息发布端点
流式HTTP模式
具有会话管理的现代HTTP传输:
复制 # Start streamable HTTP server (stateful, with session tracking)
python -m mysqltuner_mcp --mode streamable-http
# Start in stateless mode (fresh transport per request)
python -m mysqltuner_mcp --mode streamable-http --stateless
# Specify custom host and port
python -m mysqltuner_mcp --mode streamable-http --host 127.0.0.1 --port 3000
可流式传输HTTP端点:
http://<host>:<port>/mcp -所有MCP通信的单一端点
命令行选项
选项
描述
默认值
--mode
服务器模式: stdio, sse,或 streamable-http
stdio
--host
要绑定的主机(仅限HTTP模式)
0.0.0.0
--port
监听端口(仅限HTTP模式)
8080 或 PORT 有人是。
--stateless
在无状态模式下运行(仅限可流式传输的http)
false
--debug
启用调试日志记录
false
MCP客户端配置
添加到您的MCP客户端配置中(例如,Claude Desktop):
复制 {
"mcpServers": {
"mysqltuner_mcp": {
"command": "python",
"args": ["-m", "mysqltuner_mcp"],
"env": {
"MYSQL_URI": "mysql://root:your_password@localhost:3306/your_database"
}
}
}
}
启用SSL/TLS
复制 {
"mcpServers": {
"mysqltuner_mcp": {
"command": "python",
"args": ["-m", "mysqltuner_mcp"],
"env": {
"MYSQL_URI": "mysql://root:your_password@localhost:3306/your_database",
"MYSQL_SSL": "true",
"MYSQL_SSL_CA": "/path/to/ca.pem"
}
}
}
}
可用工具
性能工具
工具
说明
get_slow_queries
使用详细统计信息从performance_schema检索慢速查询
analyze_query
获取带有优化建议的查询的解释计划和分析
get_table_stats
获取表统计信息,包括大小、行数、碎片和索引
compare_explain_plans
两种查询变体的不同解释计划;返回判决+理由
get_table_io_hotspots
按I/O延迟排列的排名表 performance_schema.file_summary_by_instance
索引工具
工具
说明
get_index_recommendations
基于performance_schema查询模式的AI索引建议
find_unused_indexes
使用DROP语句查找未使用、重复和冗余的索引
get_index_stats
详细的索引统计信息,包括基数、选择性和使用度量
健康工具
工具
说明
check_database_health
带评分的全面健康检查(连接、缓冲池、查询等)
get_active_queries
监控当前正在运行的查询,并识别长时间运行/被阻止的查询
review_settings
使用最佳实践建议分析MySQL配置设置
analyze_wait_events
识别等待事件瓶颈(I/O、锁、缓冲区、日志等待)
存储引擎工具
工具
说明
analyze_storage_engines
分析存储引擎的使用情况、统计数据和建议
get_fragmented_tables
查找具有明显碎片和浪费空间的表
analyze_auto_increment
检查自动递增列是否存在潜在的溢出问题
InnoDB工具
工具
说明
get_innodb_status
解析和分析SHOW ENGINE INNODB STATUS输出
analyze_buffer_pool
按模式和表对InnoDB缓冲池进行详细分析
analyze_innodb_transactions
分析InnoDB事务、锁等待和死锁
analyze_innodb_redo_log_pressure
测量重做日志填充率并提出建议 innodb_redo_log_capacity
内存工具
工具
说明
calculate_memory_usage
计算MySQL内存使用情况(每个线程和全局缓冲区)
get_memory_by_host
按主机、用户或事件获取内存使用情况明细
get_table_memory_usage
按表分析表缓存和InnoDB缓冲池
复制工具
工具
说明
get_replication_status
获取主/从复制状态和运行状况
get_galera_status
获取Galera集群状态(MariaDB/Percona XtraDB集群)
get_group_replication_status
获取MySQL组复制状态
安全工具
工具
说明
analyze_security
全面的安全分析(用户、密码、SSL、权限)
analyze_user_privileges
分析特定用户或所有用户的权限
check_audit_log
检查审核日志配置和状态
报表分析工具
工具
说明
analyze_statements
从performance_schema进行全面的SQL语句分析
get_statements_with_temp_tables
查找创建临时表(内存和磁盘)的语句
get_statements_with_sorting
查找具有排序操作和文件排序的语句
get_statements_with_full_scans
查找执行全表扫描的语句
get_statements_with_errors
查找产生错误或警告的语句
find_temporary_table_spills_in_progress
立即列出溢出到磁盘的查询(实时,非历史)
诊断工具
工具
说明
analyze_connections
连接状态分析(睡眠/查询/锁定故障,按用户、按主机)
analyze_table_locks
表锁争用分析(元数据锁、锁等待)
analyze_temp_tables
临时表和磁盘溢出历史分析
check_perf_schema_config
验证performance_schema是否已启用和配置
review_optimizer_config
审查优化器开关和成本模型
analyze_lock_wait_graph
构建InnoDB锁等待依赖图;查找根阻塞程序并检测周期(MySQL 8.0+)
可用提示
提示
描述
optimize_slow_query
分析和优化慢速查询
health_check
进行全面的健康评估
index_review
查看数据库的索引
performance_audit
全面绩效审计
需求
Python 3.10+
MySQL 5.7+或MySQL 8.0+
performance_schema 已启用(用于完整功能)
MySQL权限
MySQL用户需要以下权限:
复制 GRANT SELECT ON performance_schema.* TO 'your_user'@'%';
GRANT SELECT ON information_schema.* TO 'your_user'@'%';
GRANT PROCESS ON *.* TO 'your_user'@'%';
-- For EXPLAIN on user databases:
GRANT SELECT ON your_database.* TO 'your_user'@'%';
发展
设置开发环境
复制 git clone https://github.com/yourusername/mysqltuner_mcp.git
cd mysqltuner_mcp
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e .