自然语言SQL查询服务

一个将自然语言查询转换为SQL并执行的服务,适用于需要快速从数据库中获取信息的场景。

  • by mikhilv
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mikhilv/mcp_server_new

使用说明

用于自然语言SQL查询的MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,该服务器接受自然语言查询,使用机器学习将其转换为SQL,在SnowSQL数据库上执行它们,并以JSON格式返回结果。

设置

  1. 克隆存储库
  2. 创建虚拟环境:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:
    pip install -r requirements.txt
    
  4. 配置您的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生成失败
  • 数据库连接问题
  • 查询执行错误