用于自然语言SQL查询的MCP服务器
该项目实现了一个模型上下文协议(MCP)服务器,该服务器接受自然语言查询,使用机器学习将其转换为SQL,在SnowSQL数据库上执行它们,并以JSON格式返回结果。
设置
- 克隆存储库
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 配置您的SnowSQL连接:
- 复制 .env.example 到 .env - 更新中的值 .env 使用您的SnowSQL凭据
运行服务器
要运行服务器,请执行以下操作:
uvicorn src.server:app --reload服务器将于启动 http://localhost:8000
API使用
POST/查询
发送自然语言查询以获取SQL结果。
请求正文:
{
"query": "Show me all sales from last month"
}答复:
{
"sql_query": "SELECT * FROM sales WHERE date >= DATEADD(month, -1, CURRENT_DATE())",
"results": [
{
"sale_id": 1,
"amount": 100.50,
"date": "2023-09-15"
}
// ... more results
]
}安全说明
- 出于安全原因,服务器只允许SELECT查询
- 确保正确配置SnowSQL用户权限
- 保护.env文件的安全,永远不要将其提交给版本控制
错误处理
服务器为以下对象提供详细的错误消息:
- 无效的自然语言查询
- SQL生成失败
- 数据库连接问题
- 查询执行错误
