mysql mcp server sse
A server that provides MySQL database operations through SSE (Server-Sent Events) based on the MCP (Model-Controller-Provider) framework, enabling real-time data transmission from MySQL databases.
A server that provides MySQL database operations through SSE (Server-Sent Events) based on the MCP (Model-Controller-Provider) framework, enabling real-time data transmission from MySQL databases.
这是一个基于MCP(Model-Controller-Provider)框架的MySQL查询服务器,提供了通过SSE(Server-Sent Events)进行MySQL数据库操作的功能。
系统提供以下四大类工具:
mysql_query
: 执行任意SQL查询,支持参数化查询mysql_show_tables
: 获取数据库中的表列表,支持模式匹配和限制结果数量mysql_show_columns
: 获取表的列信息mysql_describe_table
: 描述表结构mysql_show_create_table
: 获取表的创建语句mysql_show_databases
: 获取所有数据库列表,支持过滤系统数据库mysql_show_variables
: 获取MySQL服务器变量mysql_show_status
: 获取MySQL服务器状态信息mysql_show_indexes
: 获取表的索引信息mysql_show_table_status
: 获取表状态信息mysql_show_foreign_keys
: 获取表的外键约束信息mysql_paginate_results
: 提供结果分页功能克隆项目到本地:
git clone [项目地址]
cd mysql-query-server
安装依赖包:
pip install -r requirements.txt
配置环境变量:
.env.example
文件并重命名为.env
.env
文件中的配置在.env
文件中配置以下参数:
HOST
: 服务器监听地址(默认:127.0.0.1)PORT
: 服务器监听端口(默认:3000)MYSQL_HOST
: MySQL服务器地址MYSQL_PORT
: MySQL服务器端口MYSQL_USER
: MySQL用户名MYSQL_PASSWORD
: MySQL密码MYSQL_DATABASE
: MySQL数据库名ENV_TYPE
: 环境类型(development/production)ALLOWED_RISK_LEVELS
: 允许的风险等级(LOW/MEDIUM/HIGH/CRITICAL)BLOCKED_PATTERNS
: 禁止的SQL模式(正则表达式,用逗号分隔)ENABLE_QUERY_CHECK
: 是否启用SQL安全检查(true/false)ALLOW_SENSITIVE_INFO
: 是否允许查询敏感信息(true/false)SENSITIVE_INFO_FIELDS
: 自定义敏感字段模式列表(逗号分隔)系统会自动检测并隐藏包含以下关键词的变量/状态值: - password、auth、credential、key、secret、private - ssl、tls、cipher、certificate - host、path、directory等系统路径信息
运行以下命令启动服务器:
python src/server.py
服务器将在配置的地址和端口上启动,默认为 http://127.0.0.1:3000/sse
.
├── src/ # 源代码目录
│ ├── server.py # 主服务器文件
│ ├── db/ # 数据库相关代码
│ │ └── mysql_operations.py # MySQL操作实现
│ ├── security/ # SQL安全相关代码
│ │ ├── interceptor.py # SQL拦截器
│ │ ├── query_limiter.py # SQL安全检查器
│ │ └── sql_analyzer.py # SQL分析器
│ └── tools/ # 工具类代码
│ ├── mysql_tool.py # 基础查询工具
│ ├── mysql_metadata_tool.py # 元数据查询工具
│ ├── mysql_info_tool.py # 数据库信息查询工具
│ ├── mysql_schema_tool.py # 表结构高级查询工具
│ └── metadata_base_tool.py # 元数据工具基类
├── tests/ # 测试代码目录
├── .env.example # 环境变量示例文件
└── requirements.txt # 项目依赖文件
服务器包含完整的日志记录系统,可以在控制台和日志文件中查看运行状态和错误信息。日志级别可以在server.py
中配置。
服务器包含完善的错误处理机制: - MySQL连接器导入检查 - 数据库配置验证 - SQL安全检查 - 运行时错误捕获和记录 - 事务自动回滚
欢迎提交Issue和Pull Request来改进项目。
MIT License
Copyright (c) 2024 MCP MySQL Query Server
特此免费授予任何获得本软件副本和相关文档文件("软件")的人不受限制地处理本软件的权利,包括不受限制地使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本,以及允许本软件的使用者这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
本软件按"原样"提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,产生于、源于或与本软件有关,或与本软件的使用或其他交易有关。