dbt MCP流媒体应用程序
一个Streamlit应用程序,使用OpenAI连接到远程dbt MCP服务器,用于智能工具选择和路由。
特性
- OpenAI集成:使用GPT-4o进行智能响应
- 远程dbt MCP服务器:连接到dbt Cloud的远程MCP服务器
- 聊天界面:使用dbt工具进行交互式聊天
- 工具执行历史记录:跟踪dbt工具的使用情况和结果
设置
先决条件
- OpenAI API密钥:从 OpenAI平台
- dbt云帐户:带有dbt令牌和生产环境ID
- Python 3.11:运行应用程序所需(Python 3.10+可能有效,但建议使用3.11)
安装
- 克隆仓库:
git clone https://github.com/mani-dbt/custom-streamlit-mcp.git
cd custom-streamlit-mcp- 设置Python 3.11并安装依赖项:
选项A:使用安装脚本(推荐):
cd client
chmod +x setup_python311.sh
./setup_python311.sh选项B:手动安装:
# Install Python 3.11 if not already installed (macOS with Homebrew)
brew install python@3.11
# Install dependencies with Python 3.11
pip3.11 install -r client/requirements.txt- 配置:
所有配置都是通过Streamlit UI完成的,不需要环境文件!
运行应用程序
从项目根目录:
cd client
python3.11 -m streamlit run app.py该应用程序将在 http://localhost:8501
重要请确保使用Python 3.11。使用Python 3.9或更早版本会导致模块导入错误(ModuleNotFoundError: No module named 'mcp').
用法
- 配置OpenAI:在侧栏中输入您的OpenAI API键
- 从获取API密钥 OpenAI平台
- 配置dbt云:在侧栏中输入您的dbt凭据
- dbt令牌:从dbt Cloud获取→ 账户设置→ API令牌 - 生产环境ID:在dbt云中找到→ 编排页面 - dbt主机URL:通常 cloud.getdbt.com (默认)
- 连接到dbt MCP:单击“连接到dbt MCP服务器”
- 开始聊天:询问有关dbt项目和数据的问题
可用的dbt工具
该应用程序连接到dbt的远程MCP服务器,该服务器提供以下工具:
- 发现:获取dbt模型、关系和元数据
- 语义层:查询度量、维度和实体
备注:SQL工具(text_to_sql 和 execute_sql)默认情况下被禁用,因为它们需要额外的配置(用户ID和开发环境ID)。该应用程序通过语义层关注基于消费的用例。
建筑
- 前端:带有聊天界面的流线型用户界面
- 人工智能:OpenAI GPT-4o用于自然语言处理
- 主控程序:远程连接到dbt Cloud MCP服务器
- 工具:通过MCP协议访问dbt工具
