返回市场
mcp_mysql服务器

mcp_mysql服务器

作者:Dr-NIJIKA2 星标更新:2025-06-27

项目介绍

项目概述

该项目是一个基于MCP的MySQL数据库查询系统,通过Streamlit提供图形用户界面。通过MCP接口,使用自然语言与数据库系统进行交互,查询相关信息,并实现一系列增强功能和安全控制处理。

目录

功能特点

核心功能

  • MCP服务操作:通过MCP服务连接MySQL实例
  • 自然语言到SQL转换:通过MCP接口将自然语言转换成精确的SQL查询
  • 数据库结构可视化:直观显示表结构和查询结果信息
  • GUI和CLI查询界面:实现了CLI和GUI(Streamlit)查询界面

高级功能

  • SQL安全防护:内置SQL注入检测、敏感字段过滤和只读SQL白名单过滤
  • 简化表结构输出:支持按表名过滤返回模式
  • 查询结果分页:支持在GUI中自动分页并返回长结果
  • 查询性能优化:自动优化生成的SQL语句
  • 查询日志记录:MCP服务器记录每次执行的SQL和时间戳
  • 数据导出:一键导出查询结果至CSV格式

安装与运行

前置条件

  • Python 3.10
  • MySQL 8.0+数据库
  • API Key

安装步骤

克隆仓库

git clone https://github.com/Dr-NIJIKA/MCP_MYSQL.git
cd mcp-mysql

设置虚拟环境

# Windows
python -m venv venv
venv\Scripts\activate
	
# 建议使用Conda(Anaconda/Miniconda)

安装依赖

pip install -r requirements.txt

配置环境

创建.env文件:
# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=college  # 默认
    
# Deepseek API配置
DEEPSEEK_API_KEY=your_api_key
POOL_SIZE=5

运行应用

# 使用GUI界面
streamlit run streamlit_app.py
	
# 使用CLI界面
python mcp_service.py # 启动服务
python cli.py         # 使用cli界面

用户指南

连接数据库

  • 在侧边栏输入数据库名称(默认是college)
  • 测试连接以确保正确配置

执行查询

  • 在输入框中输入您要查询的内容
    示例查询:
    • 显示历史系的学生
    • 搜索所有有先修课程的课程

浏览结果

  • 输出生成的SQL语句
  • 使用分页控件浏览数据
    • 您可以在侧边栏选择所需的分页大小
    • 您可以选择向上(向下)或输入页码跳转到下一页进行页面转换

查看表结构

  • 勾选“显示表结构”以查看详细的字段信息
  • 输入要查看的表名并获取表结构

结果导出

  • 点击“导出所有结果为CSV”以保存获得的结果

技术架构

核心组件

  1. 前端界面:基于Streamlit构建的响应式GUI
  2. LLM API交互:Deepseek自然语言处理
  3. MCP服务:基于MCP的服务器与MySQL数据库交互

参考项目:

meanands/mysql-mcp