dbt MCP Streamlit应用

一个Streamlit应用,通过OpenAI智能选择工具并路由,连接到远程dbt MCP服务器。

  • by mani-dbt
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mani-dbt/custom-streamlit-mcp

使用说明

dbt MCP流媒体应用程序

一个Streamlit应用程序,使用OpenAI连接到远程dbt MCP服务器,用于智能工具选择和路由。

特性

  • OpenAI集成:使用GPT-4o进行智能响应
  • 远程dbt MCP服务器:连接到dbt Cloud的远程MCP服务器
  • 聊天界面:使用dbt工具进行交互式聊天
  • 工具执行历史记录:跟踪dbt工具的使用情况和结果

设置

先决条件

  1. OpenAI API密钥:从 OpenAI平台
  2. dbt云帐户:带有dbt令牌和生产环境ID
  3. Python 3.11:运行应用程序所需(Python 3.10+可能有效,但建议使用3.11)

安装

  1. 克隆仓库:

    git clone https://github.com/mani-dbt/custom-streamlit-mcp.git
    cd custom-streamlit-mcp
    
  2. 设置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
    
  3. 配置: 所有配置都是通过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').

用法

  1. 配置OpenAI:在侧栏中输入您的OpenAI API键

  2. 配置dbt云:在侧栏中输入您的dbt凭据

    • dbt令牌:从dbt Cloud获取→ 账户设置→ API令牌
    • 生产环境ID:在dbt云中找到→ 编排页面
    • dbt主机URL:通常 cloud.getdbt.com (默认)
  3. 连接到dbt MCP:单击“连接到dbt MCP服务器”

  4. 开始聊天:询问有关dbt项目和数据的问题

可用的dbt工具

该应用程序连接到dbt的远程MCP服务器,该服务器提供以下工具:

  • 发现:获取dbt模型、关系和元数据
  • 语义层:查询度量、维度和实体

备注:SQL工具(text_to_sql 和 execute_sql)默认情况下被禁用,因为它们需要额外的配置(用户ID和开发环境ID)。该应用程序通过语义层关注基于消费的用例。

建筑

  • 前端:带有聊天界面的流线型用户界面
  • 人工智能:OpenAI GPT-4o用于自然语言处理
  • 主控程序:远程连接到dbt Cloud MCP服务器
  • 工具:通过MCP协议访问dbt工具