项目简介

dbt Semantic Layer MCP Server 是一个 Model Context Protocol (MCP) 服务器,旨在连接 AI 助手(如 Claude Desktop)和 dbt Semantic Layer。它允许用户通过自然语言与 dbt Semantic Layer 交互,查询和分析在 dbt 项目中定义的业务指标。

主要功能点

  • 指标发现: 允许 AI 助手浏览和搜索 dbt Semantic Layer 中可用的业务指标及其定义。
  • 自然语言查询: 支持用户使用自然语言生成和执行针对 dbt Semantic Layer 的语义查询。
  • 数据分析: 提供过滤、分组和排序指标的功能,以进行深入的数据洞察。
  • 结果可视化: 查询结果可以以易于理解的格式在 AI 助手界面中展示。
  • 文档支持: 提供 'get_documentation' 工具,方便用户理解如何使用该 MCP 服务器及其提供的工具。

安装步骤

推荐使用 Smithery 平台进行安装:

  1. 确保已安装 Node.js (v14 或更高版本)。
  2. 打开终端,运行以下命令:
    npx -y @smithery/cli install @TommyBez/dbt-semantic-layer-mcp --client claude
    按照提示完成安装过程。

服务器配置

MCP 客户端(如 Claude Desktop)需要以下配置信息才能连接到 dbt Semantic Layer MCP Server。请将以下 JSON 配置添加到 MCP 客户端的服务器配置中。

{
  "serverName": "dbt-semantic-layer-mcp",  // MCP 服务器名称,需要与仓库中 LiteMCP 构造函数中定义的名称一致
  "command": "node",                       // 启动服务器的命令,这里使用 node 运行 JavaScript 代码
  "args": ["./src/index.js"],               // 启动命令的参数,指向服务器入口文件 (假设已经build到js,或者使用ts-node运行ts文件)
  "env": {                                  // 环境变量配置,MCP 服务器运行时需要以下环境变量
    "SEMANTIC_LAYER_API_KEY": "<your_dbt_semantic_layer_api_key>", // 你的 dbt Semantic Layer API 密钥
    "SEMANTIC_LAYER_URL": "<your_dbt_semantic_layer_url>",         // 你的 dbt Semantic Layer GraphQL API URL
    "SEMANTIC_LAYER_ENVIRONMENT_ID": "<your_dbt_environment_id>"  // 你的 dbt 环境 ID
  }
}

请注意:

  • 请将 '<your_dbt_semantic_layer_api_key>'、'<your_dbt_semantic_layer_url>' 和 '<your_dbt_environment_id>' 替换为你在 dbt Cloud 中获取的真实 API 密钥、API URL 和环境 ID。
  • 'args' 参数假设你已经将 TypeScript 代码编译为 JavaScript 文件,并将入口文件放置在 './src/index.js'。如果直接运行 TypeScript 代码,可能需要调整 'args' 参数,例如使用 'ts-node src/index.ts'。但更推荐先进行 build 打包。
  • 确保你的 dbt Cloud 账户已启用 Semantic Layer 功能,并且你配置的 API 密钥具有访问 Semantic Layer 的权限。

基本使用方法

  1. 启动 MCP 服务器: 通过 Smithery 平台或手动运行配置的启动命令来启动 dbt Semantic Layer MCP Server。
  2. 在 AI 助手中使用: 在 Claude Desktop 或其他兼容的 AI 助手客户端中,配置并连接到该 MCP 服务器。
  3. 查询指标: 在 AI 助手中,你可以使用自然语言提问,例如:
    • "What metrics are available in my dbt Semantic Layer?" (我的 dbt Semantic Layer 中有哪些可用指标?)
    • "Show me monthly revenue for the last quarter grouped by product category" (展示上个季度按产品类别分组的月收入)
    • "What's the week-over-week growth in user signups?" (用户注册量的周环比增长是多少?)
  4. 利用 'get_documentation' 工具: 如果遇到使用问题,可以调用 'get_documentation' 工具获取详细的使用指南和工具说明。 例如,在 Claude 中输入 'get_documentation' 并执行。

通过以上步骤,你就可以在 AI 助手中利用 dbt Semantic Layer MCP Server 方便地查询和分析 dbt Semantic Layer 中的数据了。

信息

分类

AI与计算