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
cd 2.安装Python依赖项
pip install -r requirements.txt3.安装Node.js检查器(可选,用于UI)
npm install -g @modelcontextprotocol/inspector4.设置环境变量
创建一个 .env 使用您的凭据文件:
OPENAI_API_KEY=your-openai-key
AZURE_OPENAI_ENDPOINT=your-azure-endpoint
WEAVIATE_URL=your-weaviate-url
WEAVIATE_API_KEY=your-weaviate-key5.准备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随着数据库的发展。
故障排除
- 如果在检查器中看到“未连接”错误,请重新启动服务器和检查器。
- 确保所有环境变量都已设置,并且数据库存在。
许可证
麻省理工学院
