MySQL查询服务器

MySQL查询服务器

site icon
2025.04.08 6
Python数据库查询数据库管理数据库
MySQL查询服务器是一个基于MCP(Model-Controller-Provider)框架的MySQL查询服务器,提供了通过SSE(Server-Sent Events)进行MySQL数据库操作的功能。该服务器支持实时数据传输、完整的日志记录系统、自动事务管理以及SQL安全检查机制,适用于需要安全、高效地操作MySQL数据库的场景。
View on GitHub

Overview

基本能力

产品定位

MySQL查询服务器是一个基于MCP框架的MySQL数据库操作工具,提供安全、高效的数据库查询和管理功能。

核心功能

  • 基于FastMCP框架构建
  • 支持SSE(Server-Sent Events)实时数据传输
  • 提供MySQL数据库查询接口
  • 完整的日志记录系统
  • 自动事务管理(提交/回滚)
  • 环境变量配置支持
  • SQL安全检查机制
  • 风险等级控制
  • SQL注入防护
  • 危险操作拦截
  • WHERE子句强制检查
  • 自动返回修改操作影响的行数
  • 敏感信息保护机制
  • 自动对元数据查询结果进行格式化和增强

适用场景

  • 需要实时查询MySQL数据库的应用
  • 需要安全执行SQL操作的场景
  • 需要自动化管理MySQL数据库的任务
  • 需要保护敏感信息的数据库操作

工具列表

  1. 基础查询工具
  2. mysql_query: 执行任意SQL查询,支持参数化查询

  3. 元数据查询工具

  4. mysql_show_tables: 获取数据库中的表列表,支持模式匹配和限制结果数量
  5. mysql_show_columns: 获取表的列信息
  6. mysql_describe_table: 描述表结构
  7. mysql_show_create_table: 获取表的创建语句

  8. 数据库信息查询工具

  9. mysql_show_databases: 获取所有数据库列表,支持过滤系统数据库
  10. mysql_show_variables: 获取MySQL服务器变量
  11. mysql_show_status: 获取MySQL服务器状态信息

  12. 表结构高级查询工具

  13. mysql_show_indexes: 获取表的索引信息
  14. mysql_show_table_status: 获取表状态信息
  15. mysql_show_foreign_keys: 获取表的外键约束信息
  16. mysql_paginate_results: 提供结果分页功能

常见问题解答

  1. DELETE操作未执行成功
  2. 检查DELETE操作是否包含WHERE条件
  3. 无WHERE条件的DELETE操作被标记为CRITICAL风险级别
  4. 确保环境变量ALLOWED_RISK_LEVELS中包含CRITICAL(如果需要执行该操作)
  5. 检查影响行数返回值,确认操作是否实际影响了数据库

  6. 环境变量未生效

  7. 确保在server.py中的load_dotenv()调用发生在导入其他模块之前
  8. 重启应用以确保环境变量被正确加载
  9. 检查日志中"从环境变量读取到的风险等级设置"的输出

  10. 操作被安全机制拒绝

  11. 检查操作的风险级别是否在允许的范围内
  12. 如果需要执行高风险操作,相应地调整ALLOWED_RISK_LEVELS
  13. 对于不带WHERE条件的UPDATE或DELETE,可以添加条件(即使是WHERE 1=1)降低风险级别

  14. 无法查看敏感信息

  15. 在开发环境中,设置ALLOW_SENSITIVE_INFO=true
  16. 在生产环境中,敏感信息默认会被隐藏,这是安全特性

使用教程

使用依赖

  1. 确保已安装Python 3.6+和MySQL服务器
  2. 安装依赖包:
pip install mysql-connector-python python-dotenv mcp

安装教程

  1. 克隆项目到本地:
git clone [项目地址]
cd mysql-query-server
  1. 安装依赖包:
pip install -r requirements.txt
  1. 配置环境变量:
  2. 复制.env.example文件并重命名为.env
  3. 根据实际情况修改.env文件中的配置

调试方式

  1. 启动服务器:
python src/server.py
  1. 检查日志输出,确保服务器正常运行
  2. 使用工具进行查询,验证功能是否正常

许可证

该项目遵循 MIT 开源许可条款。