自然语言转SQL服务

Vanna AI MCP Server是一个基于Vanna AI和Azure OpenAI的自然语言转SQL工具,支持SQL执行、日志记录和热重载,适用于金融数据库查询场景。

  • by AmanBhattShorthillsAI
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AmanBhattShorthillsAI/Vanna-MCP-Server

使用说明

Vanna AI MCP服务器

该项目使用Vanna AI实现了一个模型上下文协议(MCP)服务器,用于在金融数据库上进行自然语言到SQL的转换和SQL执行。它的特点是:

  • 自然语言到SQL生成 使用Vanna AI和Azure OpenAI
  • SQL执行 针对SQLite数据库
  • 完整的架构和文档上下文 提供给LLM以获得准确的SQL
  • Excel日志记录 所有查询、提示、LLM令牌使用、成本、时间和结果
  • 热重载工作流程 为了快速发展
  • 平滑关闭 以及强大的错误处理

特性

  • ask_sql:使用LLM将自然语言问题转换为SQL查询,并将所有详细信息记录到 query_log.xlsx.
  • run_sql:执行SQL查询,并将执行时间和结果记录到Excel中。
  • LLM代币/成本跟踪:记录每个LLM调用的输入/输出令牌和估计成本。
  • 信号处理:按Ctrl+C或kill清除关机。
  • 热重载:轻松重启服务器和检查器,实现快速迭代。

设置

1.克隆存储库

git clone <your-repo-url>
cd <your-repo-directory>

2.安装Python依赖项

pip install -r requirements.txt

3.安装Node.js检查器(可选,用于UI)

npm install -g @modelcontextprotocol/inspector

4.设置环境变量

创建一个 .env 使用您的凭据文件:

OPENAI_API_KEY=your-openai-key
AZURE_OPENAI_ENDPOINT=your-azure-endpoint
WEAVIATE_URL=your-weaviate-url
WEAVIATE_API_KEY=your-weaviate-key

5.准备SQLite数据库

放置您的 financial.sqlite 项目根目录中的数据库。

6.(可选)训练Vanna AI

运行你的训练脚本(例如。, train.py)一次填充向量存储。

用法

启动MCP服务器(热重新加载)

pip install watchfiles
watchfiles "uv run mcp dev app.py" .

启动MCP检查器(UI)

mcp-inspector

(可选)在浏览器中打开检查器

open http://localhost:6277  # macOS
# or
xdg-open http://localhost:6277  # Linux

日志记录

  • 所有查询、提示、LLM令牌使用、成本、时间和结果都记录到 query_log.xlsx.
  • 每个新查询都会附加一行;SQL执行会用获取时间和结果更新最后一行。

优雅地关闭

  • 服务器处理SIGINT/SIGTERM以实现干净关闭和端口释放。

定制

  • 调整LLM成本计算 calculate_cost() 根据需要。
  • 更新中的架构、文档和培训数据 app.py 随着数据库的发展。

故障排除

  • 如果在检查器中看到“未连接”错误,请重新启动服务器和检查器。
  • 确保所有环境变量都已设置,并且数据库存在。

许可证

麻省理工学院