article
README
🚀 SQLGenius - 智能SQL助手
SQLGenius是一款强大的智能SQL助手,它能让您使用自然语言对BigQuery数据库进行查询。该项目基于MCP(模型上下文协议)、Vertex AI的Gemini Pro以及Streamlit构建,为您提供高效便捷的数据库查询体验。
✨ 主要特性
- 智能转换:借助Gemini Pro,可将自然语言精准转换为SQL语句。
- 交互界面:拥有多个标签页的交互式Streamlit界面,操作方便。
- 实时反馈:支持实时查询执行,并对结果进行可视化展示。
- 架构探索:方便进行数据库架构探索,了解数据结构。
- 历史跟踪:可跟踪查询历史记录,便于回顾和复用。
- 安全验证:具备安全查询验证机制,保障数据安全。
- 深度集成:与BigQuery深度集成,充分利用其强大功能。
- 架构支撑:基于MCP架构,提供稳定的工具支持。
🎥 演示
观看SQLGenius的实际操作!以下是一个快速演示如何使用该应用程序的视频:

在本演示中,您可以看到:
- 自然语言查询到SQL的转换过程。
- 交互式数据分析可视化效果。
- 数据库架构探索的操作方式。
- 查询历史记录跟踪的功能展示。
📦 安装指南
- 克隆仓库并进入项目目录:
cd sql_mcp_server
- 安装依赖项:
pip install -r requirements.txt
- 复制
.env.example文件为.env并填写配置信息:
cp .env.example .env
- 在
.env中设置您的环境变量:
PROJECT_ID=your-project-id
DATASET_ID=your-dataset-id
GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account.json
VERTEX_AI_LOCATION=us-central1
💻 使用示例
基础用法
- 启动应用程序:
streamlit run streamlit_app.py
-
当Streamlit应用程序启动时,MCP服务器会自动运行。
-
使用标签页进行以下操作:
- 用自然语言提问关于数据的问题。
- 直接编写和执行SQL查询。
- 探索数据库架构。
高级用法
要在MCP服务器上添加自定义工具:
- 编辑
sql_mcp_server.py中的register_tools()方法。 - 使用
@self.tool()装饰器添加您的自定义工具。 - 重启服务器。
📊 界面标签页
💬 自然语言查询
用普通英语提问并获得SQL结果:
- "显示收入前5名的客户"
- "一月份销售最高的产品有哪些?"
- "上个月下了多少订单?"
📊 SQL 查询
直接编写和执行SQL查询:
SELECT * FROM orders
WHERE order_date > '2023-01-01'
ORDER BY total_amount DESC
LIMIT 10
📋 数据库探索者
- 浏览所有可用的表。
- 查看表架构信息。
- 查看任何表的样例数据。
🔧 技术细节
安全特性
- 只允许执行SELECT查询,避免数据被误修改或删除。
- 进行查询验证,防止危险操作,保障数据安全。
- 采用安全凭证管理,确保用户身份和数据的安全性。
- 具备错误处理和输入验证机制,提高系统的稳定性。
架构
SQLGenius使用模型上下文协议(MCP)来暴露工具,这些工具包括:
- 自然语言处理:将英文问题转换为SQL。
- 数据探索:获取架构信息和样例数据。
- SQL执行:在数据库上运行验证的查询。
该架构由以下部分组成:
- MCP服务器:处理数据库连接并提供工具。
- Streamlit前端界面:用户与系统交互的界面。
- Vertex AI(Gemini Pro):提供自然语言理解功能。
- BigQuery:在您的数据上执行SQL查询。
MCP 工具
以下MCP工具可供使用:
execute_nl_query:执行自然语言查询。execute_sql_query:执行原始SQL查询。list_tables:列出所有可用的表。get_table_schema:获取特定表的架构。
🤝 贡献
欢迎贡献!请随意提交拉取请求。
微信扫一扫